Android.mk revision 38429cf76aaac8c499004b6f537229a26b381602
1# 2# Copyright (C) 2015 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17LOCAL_PATH := $(my-dir) 18 19# Default values for the USE flags. Override these USE flags from your product. 20BRILLO_USE_HWID_OVERRIDE ?= 0 21BRILLO_USE_MTD ?= 0 22BRILLO_USE_POWER_MANAGEMENT ?= 0 23 24ue_common_cflags := \ 25 -DUSE_HWID_OVERRIDE=$(BRILLO_USE_HWID_OVERRIDE) \ 26 -DUSE_MTD=$(BRILLO_USE_MTD) \ 27 -DUSE_POWER_MANAGEMENT=$(BRILLO_USE_POWER_MANAGEMENT) \ 28 -D_FILE_OFFSET_BITS=64 \ 29 -D_POSIX_C_SOURCE=199309L \ 30 -Wa,--noexecstack \ 31 -Wall \ 32 -Werror \ 33 -Wextra \ 34 -Wformat=2 \ 35 -Wno-psabi \ 36 -Wno-unused-parameter \ 37 -ffunction-sections \ 38 -fstack-protector-strong \ 39 -fvisibility=hidden 40ue_common_cppflags := \ 41 -Wnon-virtual-dtor \ 42 -fno-strict-aliasing \ 43 -std=gnu++11 44ue_common_ldflags := \ 45 -Wl,--gc-sections 46ue_common_c_includes := \ 47 $(LOCAL_PATH)/client_library/include \ 48 external/gtest/include \ 49 system 50ue_common_shared_libraries := \ 51 libbrillo \ 52 libbrillo-dbus \ 53 libbrillo-http \ 54 libbrillo-stream \ 55 libchrome \ 56 libchrome-dbus 57 58 59# update_engine_client-dbus-proxies (from generate-dbus-proxies.gypi) 60# ======================================================== 61include $(CLEAR_VARS) 62LOCAL_MODULE := update_engine_client-dbus-proxies 63LOCAL_MODULE_CLASS := STATIC_LIBRARIES 64LOCAL_SRC_FILES := \ 65 dbus_bindings/dbus-service-config.json \ 66 dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml 67LOCAL_DBUS_PROXY_PREFIX := update_engine 68include $(BUILD_STATIC_LIBRARY) 69 70# update_metadata-protos (type: static_library) 71# ======================================================== 72# Protobufs. 73ue_update_metadata_protos_exported_static_libraries := \ 74 update_metadata-protos 75ue_update_metadata_protos_exported_shared_libraries := \ 76 libprotobuf-cpp-lite-rtti 77 78include $(CLEAR_VARS) 79LOCAL_MODULE := update_metadata-protos 80LOCAL_MODULE_CLASS := STATIC_LIBRARIES 81generated_sources_dir := $(call local-generated-sources-dir) 82LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated_sources_dir)/proto/system 83LOCAL_SRC_FILES := \ 84 update_metadata.proto 85include $(BUILD_STATIC_LIBRARY) 86 87# update_engine-dbus-adaptor (from generate-dbus-adaptors.gypi) 88# ======================================================== 89# Chrome D-Bus bindings. 90include $(CLEAR_VARS) 91LOCAL_MODULE := update_engine-dbus-adaptor 92LOCAL_MODULE_CLASS := STATIC_LIBRARIES 93LOCAL_SRC_FILES := \ 94 dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml 95include $(BUILD_STATIC_LIBRARY) 96 97# update_engine-dbus-libcros-client (from generate-dbus-proxies.gypi) 98# ======================================================== 99include $(CLEAR_VARS) 100LOCAL_MODULE := update_engine-dbus-libcros-client 101LOCAL_MODULE_CLASS := STATIC_LIBRARIES 102LOCAL_SRC_FILES := \ 103 dbus_bindings/org.chromium.LibCrosService.dbus-xml 104LOCAL_DBUS_PROXY_PREFIX := libcros 105include $(BUILD_STATIC_LIBRARY) 106 107# libpayload_consumer (type: static_library) 108# ======================================================== 109# The payload application component and common dependencies. 110ue_libpayload_consumer_exported_c_includes := \ 111 $(LOCAL_PATH)/include \ 112 external/cros/system_api/dbus 113ue_libpayload_consumer_exported_static_libraries := \ 114 update_metadata-protos \ 115 update_engine-dbus-libcros-client \ 116 update_engine_client-dbus-proxies \ 117 libxz \ 118 libbz \ 119 libfs_mgr \ 120 $(ue_update_metadata_protos_exported_static_libraries) 121ue_libpayload_consumer_exported_shared_libraries := \ 122 libcrypto \ 123 libcurl \ 124 libmetrics \ 125 libshill-client \ 126 libssl \ 127 libexpat \ 128 libbrillo-policy \ 129 libhardware \ 130 libcutils \ 131 $(ue_update_metadata_protos_exported_shared_libraries) 132 133include $(CLEAR_VARS) 134LOCAL_MODULE := libpayload_consumer 135LOCAL_MODULE_CLASS := STATIC_LIBRARIES 136LOCAL_CPP_EXTENSION := .cc 137LOCAL_RTTI_FLAG := -frtti 138LOCAL_CLANG := true 139LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libpayload_consumer_exported_c_includes) 140LOCAL_CFLAGS := $(ue_common_cflags) 141LOCAL_CPPFLAGS := $(ue_common_cppflags) 142LOCAL_LDFLAGS := $(ue_common_ldflags) 143LOCAL_C_INCLUDES := \ 144 $(ue_common_c_includes) \ 145 $(ue_libpayload_consumer_exported_c_includes) \ 146 external/e2fsprogs/lib 147LOCAL_STATIC_LIBRARIES := \ 148 update_metadata-protos \ 149 update_engine-dbus-libcros-client \ 150 update_engine_client-dbus-proxies \ 151 $(ue_libpayload_consumer_exported_static_libraries) \ 152 $(ue_update_metadata_protos_exported_static_libraries) 153LOCAL_SHARED_LIBRARIES := \ 154 $(ue_common_shared_libraries) \ 155 $(ue_libpayload_consumer_exported_shared_libraries) \ 156 $(ue_update_metadata_protos_exported_shared_libraries) 157LOCAL_SRC_FILES := \ 158 common/action_processor.cc \ 159 common/boot_control_android.cc \ 160 common/boot_control_stub.cc \ 161 common/certificate_checker.cc \ 162 common/clock.cc \ 163 common/constants.cc \ 164 common/hardware_android.cc \ 165 common/hash_calculator.cc \ 166 common/http_common.cc \ 167 common/http_fetcher.cc \ 168 common/hwid_override.cc \ 169 common/libcurl_http_fetcher.cc \ 170 common/multi_range_http_fetcher.cc \ 171 common/platform_constants_android.cc \ 172 common/prefs.cc \ 173 common/subprocess.cc \ 174 common/terminator.cc \ 175 common/utils.cc \ 176 payload_consumer/bzip_extent_writer.cc \ 177 payload_consumer/delta_performer.cc \ 178 payload_consumer/download_action.cc \ 179 payload_consumer/extent_writer.cc \ 180 payload_consumer/file_descriptor.cc \ 181 payload_consumer/file_writer.cc \ 182 payload_consumer/filesystem_verifier_action.cc \ 183 payload_consumer/install_plan.cc \ 184 payload_consumer/payload_constants.cc \ 185 payload_consumer/payload_verifier.cc \ 186 payload_consumer/postinstall_runner_action.cc \ 187 payload_consumer/xz_extent_writer.cc 188include $(BUILD_STATIC_LIBRARY) 189 190# libupdate_engine (type: static_library) 191# ======================================================== 192# The main daemon static_library with all the code used to check for updates 193# with Omaha and expose a DBus daemon. 194ue_libupdate_engine_exported_c_includes := \ 195 $(LOCAL_PATH)/include \ 196 external/cros/system_api/dbus \ 197 $(ue_libpayload_consumer_exported_c_includes) 198ue_libupdate_engine_exported_static_libraries := \ 199 libpayload_consumer \ 200 update_metadata-protos \ 201 update_engine-dbus-adaptor \ 202 update_engine-dbus-libcros-client \ 203 update_engine_client-dbus-proxies \ 204 libxz \ 205 libbz \ 206 libfs_mgr \ 207 $(ue_libpayload_consumer_exported_static_libraries) \ 208 $(ue_update_metadata_protos_exported_static_libraries) 209ue_libupdate_engine_exported_shared_libraries := \ 210 libdbus \ 211 libcrypto \ 212 libcurl \ 213 libmetrics \ 214 libshill-client \ 215 libssl \ 216 libexpat \ 217 libbrillo-policy \ 218 libhardware \ 219 libcutils \ 220 $(ue_libpayload_consumer_exported_shared_libraries) \ 221 $(ue_update_metadata_protos_exported_shared_libraries) 222 223include $(CLEAR_VARS) 224LOCAL_MODULE := libupdate_engine 225LOCAL_MODULE_CLASS := STATIC_LIBRARIES 226LOCAL_CPP_EXTENSION := .cc 227LOCAL_RTTI_FLAG := -frtti 228LOCAL_CLANG := true 229LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libupdate_engine_exported_c_includes) 230LOCAL_CFLAGS := $(ue_common_cflags) 231LOCAL_CPPFLAGS := $(ue_common_cppflags) 232LOCAL_LDFLAGS := $(ue_common_ldflags) 233LOCAL_C_INCLUDES := \ 234 $(ue_common_c_includes) \ 235 $(ue_libupdate_engine_exported_c_includes) \ 236 $(ue_libpayload_consumer_exported_c_includes) 237LOCAL_STATIC_LIBRARIES := \ 238 libpayload_consumer \ 239 update_metadata-protos \ 240 update_engine-dbus-adaptor \ 241 update_engine-dbus-libcros-client \ 242 update_engine_client-dbus-proxies \ 243 $(ue_libupdate_engine_exported_static_libraries) \ 244 $(ue_libpayload_consumer_exported_static_libraries) \ 245 $(ue_update_metadata_protos_exported_static_libraries) 246LOCAL_SHARED_LIBRARIES := \ 247 $(ue_common_shared_libraries) \ 248 $(ue_libupdate_engine_exported_shared_libraries) \ 249 $(ue_libpayload_consumer_exported_shared_libraries) \ 250 $(ue_update_metadata_protos_exported_shared_libraries) 251LOCAL_SRC_FILES := \ 252 chrome_browser_proxy_resolver.cc \ 253 connection_manager.cc \ 254 daemon.cc \ 255 dbus_service.cc \ 256 image_properties_android.cc \ 257 libcros_proxy.cc \ 258 metrics.cc \ 259 metrics_utils.cc \ 260 omaha_request_action.cc \ 261 omaha_request_params.cc \ 262 omaha_response_handler_action.cc \ 263 p2p_manager.cc \ 264 payload_state.cc \ 265 proxy_resolver.cc \ 266 real_system_state.cc \ 267 shill_proxy.cc \ 268 update_attempter.cc \ 269 update_manager/boxed_value.cc \ 270 update_manager/chromeos_policy.cc \ 271 update_manager/default_policy.cc \ 272 update_manager/evaluation_context.cc \ 273 update_manager/policy.cc \ 274 update_manager/real_config_provider.cc \ 275 update_manager/real_device_policy_provider.cc \ 276 update_manager/real_random_provider.cc \ 277 update_manager/real_shill_provider.cc \ 278 update_manager/real_system_provider.cc \ 279 update_manager/real_time_provider.cc \ 280 update_manager/real_updater_provider.cc \ 281 update_manager/state_factory.cc \ 282 update_manager/update_manager.cc \ 283 update_status_utils.cc 284include $(BUILD_STATIC_LIBRARY) 285 286# update_engine (type: executable) 287# ======================================================== 288# update_engine daemon. 289include $(CLEAR_VARS) 290LOCAL_MODULE := update_engine 291LOCAL_MODULE_CLASS := EXECUTABLES 292LOCAL_CPP_EXTENSION := .cc 293LOCAL_RTTI_FLAG := -frtti 294LOCAL_CLANG := true 295LOCAL_CFLAGS := $(ue_common_cflags) 296LOCAL_CPPFLAGS := $(ue_common_cppflags) 297LOCAL_LDFLAGS := $(ue_common_ldflags) 298LOCAL_C_INCLUDES := \ 299 $(ue_common_c_includes) \ 300 $(ue_libupdate_engine_exported_c_includes) 301LOCAL_STATIC_LIBRARIES := \ 302 libupdate_engine \ 303 $(ue_libupdate_engine_exported_static_libraries) 304LOCAL_SHARED_LIBRARIES := \ 305 $(ue_common_shared_libraries) \ 306 $(ue_libupdate_engine_exported_shared_libraries) 307LOCAL_SRC_FILES := \ 308 main.cc 309LOCAL_INIT_RC := update_engine.rc 310include $(BUILD_EXECUTABLE) 311 312# update_engine_client (type: executable) 313# ======================================================== 314# update_engine console client. 315include $(CLEAR_VARS) 316LOCAL_MODULE := update_engine_client 317LOCAL_MODULE_CLASS := EXECUTABLES 318LOCAL_CPP_EXTENSION := .cc 319LOCAL_RTTI_FLAG := -frtti 320LOCAL_CLANG := true 321LOCAL_CFLAGS := $(ue_common_cflags) 322LOCAL_CPPFLAGS := $(ue_common_cppflags) 323LOCAL_LDFLAGS := $(ue_common_ldflags) 324LOCAL_C_INCLUDES := \ 325 $(ue_common_c_includes) \ 326 $(LOCAL_PATH)/include 327LOCAL_STATIC_LIBRARIES := update_engine_client-dbus-proxies 328LOCAL_SHARED_LIBRARIES := $(ue_common_shared_libraries) 329LOCAL_SRC_FILES := \ 330 update_engine_client.cc 331include $(BUILD_EXECUTABLE) 332 333# libpayload_generator (type: static_library) 334# ======================================================== 335# server-side code. This is used for delta_generator and unittests but not 336# for any client code. 337ue_libpayload_generator_exported_c_includes := \ 338 $(ue_libupdate_engine_exported_c_includes) 339ue_libpayload_generator_exported_static_libraries := \ 340 libupdate_engine \ 341 update_metadata-protos \ 342 $(ue_libupdate_engine_exported_static_libraries) \ 343 $(ue_update_metadata_protos_exported_static_libraries) 344ue_libpayload_generator_exported_shared_libraries := \ 345 libext2fs \ 346 $(ue_libupdate_engine_exported_shared_libraries) \ 347 $(ue_update_metadata_protos_exported_shared_libraries) 348 349include $(CLEAR_VARS) 350LOCAL_MODULE := libpayload_generator 351LOCAL_MODULE_CLASS := STATIC_LIBRARIES 352LOCAL_CPP_EXTENSION := .cc 353LOCAL_RTTI_FLAG := -frtti 354LOCAL_CLANG := true 355LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libpayload_generator_exported_c_includes) 356LOCAL_CFLAGS := $(ue_common_cflags) 357LOCAL_CPPFLAGS := $(ue_common_cppflags) 358LOCAL_LDFLAGS := $(ue_common_ldflags) 359LOCAL_C_INCLUDES := \ 360 $(ue_common_c_includes) \ 361 $(ue_libupdate_engine_exported_c_includes) 362LOCAL_STATIC_LIBRARIES := \ 363 libupdate_engine \ 364 update_metadata-protos \ 365 $(ue_libupdate_engine_exported_static_libraries) \ 366 $(ue_update_metadata_protos_exported_static_libraries) 367LOCAL_SHARED_LIBRARIES := \ 368 $(ue_common_shared_libraries) \ 369 $(ue_libpayload_generator_exported_shared_libraries) \ 370 $(ue_libupdate_engine_exported_shared_libraries) \ 371 $(ue_update_metadata_protos_exported_shared_libraries) 372LOCAL_SRC_FILES := \ 373 payload_generator/ab_generator.cc \ 374 payload_generator/annotated_operation.cc \ 375 payload_generator/blob_file_writer.cc \ 376 payload_generator/block_mapping.cc \ 377 payload_generator/bzip.cc \ 378 payload_generator/cycle_breaker.cc \ 379 payload_generator/delta_diff_generator.cc \ 380 payload_generator/delta_diff_utils.cc \ 381 payload_generator/ext2_filesystem.cc \ 382 payload_generator/extent_ranges.cc \ 383 payload_generator/extent_utils.cc \ 384 payload_generator/full_update_generator.cc \ 385 payload_generator/graph_types.cc \ 386 payload_generator/graph_utils.cc \ 387 payload_generator/inplace_generator.cc \ 388 payload_generator/payload_file.cc \ 389 payload_generator/payload_generation_config.cc \ 390 payload_generator/payload_signer.cc \ 391 payload_generator/raw_filesystem.cc \ 392 payload_generator/tarjan.cc \ 393 payload_generator/topological_sort.cc 394include $(BUILD_STATIC_LIBRARY) 395 396# delta_generator (type: executable) 397# ======================================================== 398# server-side delta generator. 399include $(CLEAR_VARS) 400LOCAL_MODULE := delta_generator 401LOCAL_MODULE_CLASS := EXECUTABLES 402LOCAL_CPP_EXTENSION := .cc 403LOCAL_RTTI_FLAG := -frtti 404LOCAL_CLANG := true 405LOCAL_CFLAGS := $(ue_common_cflags) 406LOCAL_CPPFLAGS := $(ue_common_cppflags) 407LOCAL_LDFLAGS := $(ue_common_ldflags) 408LOCAL_C_INCLUDES := \ 409 $(ue_common_c_includes) \ 410 $(ue_libupdate_engine_exported_c_includes) \ 411 $(ue_libpayload_generator_exported_c_includes) 412LOCAL_STATIC_LIBRARIES := \ 413 libupdate_engine \ 414 libpayload_generator \ 415 $(ue_libupdate_engine_exported_static_libraries) \ 416 $(ue_libpayload_generator_exported_static_libraries) 417LOCAL_SHARED_LIBRARIES := \ 418 $(ue_common_shared_libraries) \ 419 $(ue_libupdate_engine_exported_shared_libraries) \ 420 $(ue_libpayload_generator_exported_shared_libraries) 421LOCAL_SRC_FILES := \ 422 payload_generator/generate_delta_main.cc 423include $(BUILD_EXECUTABLE) 424 425# libupdate_engine_client 426# ======================================================== 427include $(CLEAR_VARS) 428LOCAL_MODULE := libupdate_engine_client 429LOCAL_RTTI_FLAG := -frtti 430LOCAL_CFLAGS := \ 431 -Wall \ 432 -Werror \ 433 -Wno-unused-parameter 434LOCAL_CLANG := true 435LOCAL_CPP_EXTENSION := .cc 436LOCAL_C_INCLUDES := \ 437 $(LOCAL_PATH)/client_library/include \ 438 external/cros/system_api/dbus \ 439 system \ 440 external/gtest/include 441LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/client_library/include 442LOCAL_SHARED_LIBRARIES := \ 443 libchrome \ 444 libchrome-dbus \ 445 libbrillo \ 446 libbrillo-dbus 447LOCAL_STATIC_LIBRARIES := \ 448 update_engine_client-dbus-proxies 449LOCAL_SRC_FILES := \ 450 client_library/client.cc \ 451 client_library/client_impl.cc \ 452 update_status_utils.cc 453include $(BUILD_SHARED_LIBRARY) 454 455 456# Update payload signing public key. 457# ======================================================== 458include $(CLEAR_VARS) 459LOCAL_MODULE := brillo-update-payload-key 460LOCAL_MODULE_CLASS := ETC 461LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/update_engine 462LOCAL_MODULE_STEM := update-payload-key.pub.pem 463LOCAL_SRC_FILES := update_payload_key/brillo-update-payload-key.pub.pem 464LOCAL_BUILT_MODULE_STEM := update_payload_key/brillo-update-payload-key.pub.pem 465include $(BUILD_PREBUILT) 466