Android.mk revision a96ddc18f0d52c5a73864ee1e7135478cc873c78
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 20# by setting BRILLO_USE_* values. Note that we define local variables like 21# local_use_* to prevent leaking our default setting for other packages. 22local_use_binder := $(if $(BRILLO_USE_BINDER),$(BRILLO_USE_BINDER),1) 23local_use_dbus := $(if $(BRILLO_USE_DBUS),$(BRILLO_USE_DBUS),0) 24local_use_hwid_override := \ 25 $(if $(BRILLO_USE_HWID_OVERRIDE),$(BRILLO_USE_HWID_OVERRIDE),0) 26local_use_mtd := $(if $(BRILLO_USE_MTD),$(BRILLO_USE_MTD),0) 27local_use_power_management := \ 28 $(if $(BRILLO_USE_POWER_MANAGEMENT),$(BRILLO_USE_POWER_MANAGEMENT),0) 29local_use_weave := $(if $(BRILLO_USE_WEAVE),$(BRILLO_USE_WEAVE),0) 30 31ue_common_cflags := \ 32 -DUSE_BINDER=$(local_use_binder) \ 33 -DUSE_DBUS=$(local_use_dbus) \ 34 -DUSE_HWID_OVERRIDE=$(local_use_hwid_override) \ 35 -DUSE_MTD=$(local_use_mtd) \ 36 -DUSE_POWER_MANAGEMENT=$(local_use_power_management) \ 37 -DUSE_WEAVE=$(local_use_weave) \ 38 -D_FILE_OFFSET_BITS=64 \ 39 -D_POSIX_C_SOURCE=199309L \ 40 -Wa,--noexecstack \ 41 -Wall \ 42 -Werror \ 43 -Wextra \ 44 -Wformat=2 \ 45 -Wno-psabi \ 46 -Wno-unused-parameter \ 47 -ffunction-sections \ 48 -fstack-protector-strong \ 49 -fvisibility=hidden 50ue_common_cppflags := \ 51 -Wnon-virtual-dtor \ 52 -fno-strict-aliasing \ 53 -std=gnu++11 54ue_common_ldflags := \ 55 -Wl,--gc-sections 56ue_common_c_includes := \ 57 $(LOCAL_PATH)/client_library/include \ 58 external/gtest/include \ 59 system 60ue_common_shared_libraries := \ 61 libbrillo \ 62 libbrillo-http \ 63 libbrillo-stream \ 64 libchrome 65 66ifeq ($(local_use_dbus),1) 67 68# update_engine_client-dbus-proxies (from generate-dbus-proxies.gypi) 69# ======================================================== 70include $(CLEAR_VARS) 71LOCAL_MODULE := update_engine_client-dbus-proxies 72LOCAL_MODULE_CLASS := STATIC_LIBRARIES 73LOCAL_SRC_FILES := \ 74 dbus_bindings/dbus-service-config.json \ 75 dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml 76LOCAL_DBUS_PROXY_PREFIX := update_engine 77include $(BUILD_STATIC_LIBRARY) 78 79endif # local_use_dbus == 1 80 81# update_metadata-protos (type: static_library) 82# ======================================================== 83# Protobufs. 84ue_update_metadata_protos_exported_static_libraries := \ 85 update_metadata-protos 86ue_update_metadata_protos_exported_shared_libraries := \ 87 libprotobuf-cpp-lite 88 89ue_update_metadata_protos_src_files := \ 90 update_metadata.proto 91 92# Build for the host. 93include $(CLEAR_VARS) 94LOCAL_MODULE := update_metadata-protos 95LOCAL_MODULE_CLASS := STATIC_LIBRARIES 96LOCAL_IS_HOST_MODULE := true 97generated_sources_dir := $(call local-generated-sources-dir) 98LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated_sources_dir)/proto/system 99LOCAL_SRC_FILES := $(ue_update_metadata_protos_src_files) 100include $(BUILD_HOST_STATIC_LIBRARY) 101 102# Build for the target. 103include $(CLEAR_VARS) 104LOCAL_MODULE := update_metadata-protos 105LOCAL_MODULE_CLASS := STATIC_LIBRARIES 106generated_sources_dir := $(call local-generated-sources-dir) 107LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated_sources_dir)/proto/system 108LOCAL_SRC_FILES := $(ue_update_metadata_protos_src_files) 109include $(BUILD_STATIC_LIBRARY) 110 111ifeq ($(local_use_dbus),1) 112 113# update_engine-dbus-adaptor (from generate-dbus-adaptors.gypi) 114# ======================================================== 115# Chrome D-Bus bindings. 116include $(CLEAR_VARS) 117LOCAL_MODULE := update_engine-dbus-adaptor 118LOCAL_MODULE_CLASS := STATIC_LIBRARIES 119LOCAL_SRC_FILES := \ 120 dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml 121include $(BUILD_STATIC_LIBRARY) 122 123# update_engine-dbus-libcros-client (from generate-dbus-proxies.gypi) 124# ======================================================== 125include $(CLEAR_VARS) 126LOCAL_MODULE := update_engine-dbus-libcros-client 127LOCAL_MODULE_CLASS := STATIC_LIBRARIES 128LOCAL_SRC_FILES := \ 129 dbus_bindings/org.chromium.LibCrosService.dbus-xml 130LOCAL_DBUS_PROXY_PREFIX := libcros 131include $(BUILD_STATIC_LIBRARY) 132 133endif # local_use_dbus == 1 134 135# libpayload_consumer (type: static_library) 136# ======================================================== 137# The payload application component and common dependencies. 138ue_libpayload_consumer_exported_static_libraries := \ 139 update_metadata-protos \ 140 libxz-host \ 141 libbz \ 142 $(ue_update_metadata_protos_exported_static_libraries) 143ue_libpayload_consumer_exported_shared_libraries := \ 144 libcrypto-host \ 145 libcurl-host \ 146 libssl-host \ 147 $(ue_update_metadata_protos_exported_shared_libraries) 148 149ue_libpayload_consumer_src_files := \ 150 common/action_processor.cc \ 151 common/boot_control_stub.cc \ 152 common/certificate_checker.cc \ 153 common/clock.cc \ 154 common/constants.cc \ 155 common/cpu_limiter.cc \ 156 common/error_code_utils.cc \ 157 common/hash_calculator.cc \ 158 common/http_common.cc \ 159 common/http_fetcher.cc \ 160 common/hwid_override.cc \ 161 common/libcurl_http_fetcher.cc \ 162 common/multi_range_http_fetcher.cc \ 163 common/platform_constants_android.cc \ 164 common/prefs.cc \ 165 common/subprocess.cc \ 166 common/terminator.cc \ 167 common/utils.cc \ 168 payload_consumer/bzip_extent_writer.cc \ 169 payload_consumer/delta_performer.cc \ 170 payload_consumer/download_action.cc \ 171 payload_consumer/extent_writer.cc \ 172 payload_consumer/file_descriptor.cc \ 173 payload_consumer/file_writer.cc \ 174 payload_consumer/filesystem_verifier_action.cc \ 175 payload_consumer/install_plan.cc \ 176 payload_consumer/payload_constants.cc \ 177 payload_consumer/payload_verifier.cc \ 178 payload_consumer/postinstall_runner_action.cc \ 179 payload_consumer/xz_extent_writer.cc 180 181ifeq ($(HOST_OS),linux) 182# Build for the host. 183include $(CLEAR_VARS) 184LOCAL_MODULE := libpayload_consumer 185LOCAL_MODULE_CLASS := STATIC_LIBRARIES 186LOCAL_CPP_EXTENSION := .cc 187LOCAL_CLANG := true 188LOCAL_CFLAGS := $(ue_common_cflags) 189LOCAL_CPPFLAGS := $(ue_common_cppflags) 190LOCAL_LDFLAGS := $(ue_common_ldflags) 191LOCAL_C_INCLUDES := \ 192 $(ue_common_c_includes) \ 193 external/e2fsprogs/lib 194LOCAL_STATIC_LIBRARIES := \ 195 update_metadata-protos \ 196 $(ue_libpayload_consumer_exported_static_libraries) \ 197 $(ue_update_metadata_protos_exported_static_libraries) 198LOCAL_SHARED_LIBRARIES := \ 199 $(ue_common_shared_libraries) \ 200 $(ue_libpayload_consumer_exported_shared_libraries) \ 201 $(ue_update_metadata_protos_exported_shared_libraries) 202LOCAL_SRC_FILES := $(ue_libpayload_consumer_src_files) 203include $(BUILD_HOST_STATIC_LIBRARY) 204endif # HOST_OS == linux 205 206# Build for the target. 207include $(CLEAR_VARS) 208LOCAL_MODULE := libpayload_consumer 209LOCAL_MODULE_CLASS := STATIC_LIBRARIES 210LOCAL_CPP_EXTENSION := .cc 211LOCAL_CLANG := true 212LOCAL_CFLAGS := $(ue_common_cflags) 213LOCAL_CPPFLAGS := $(ue_common_cppflags) 214LOCAL_LDFLAGS := $(ue_common_ldflags) 215LOCAL_C_INCLUDES := \ 216 $(ue_common_c_includes) \ 217 external/e2fsprogs/lib 218LOCAL_STATIC_LIBRARIES := \ 219 update_metadata-protos \ 220 $(ue_libpayload_consumer_exported_static_libraries:-host=) \ 221 $(ue_update_metadata_protos_exported_static_libraries) 222LOCAL_SHARED_LIBRARIES := \ 223 $(ue_common_shared_libraries) \ 224 $(ue_libpayload_consumer_exported_shared_libraries:-host=) \ 225 $(ue_update_metadata_protos_exported_shared_libraries) 226LOCAL_SRC_FILES := $(ue_libpayload_consumer_src_files) 227include $(BUILD_STATIC_LIBRARY) 228 229ifdef BRILLO 230 231# libupdate_engine (type: static_library) 232# ======================================================== 233# The main daemon static_library with all the code used to check for updates 234# with Omaha and expose a DBus daemon. 235ue_libupdate_engine_exported_c_includes := \ 236 $(LOCAL_PATH)/include \ 237 external/cros/system_api/dbus 238ue_libupdate_engine_exported_static_libraries := \ 239 libpayload_consumer \ 240 update_metadata-protos \ 241 update_engine-dbus-adaptor \ 242 update_engine-dbus-libcros-client \ 243 update_engine_client-dbus-proxies \ 244 libbz \ 245 libfs_mgr \ 246 $(ue_libpayload_consumer_exported_static_libraries) \ 247 $(ue_update_metadata_protos_exported_static_libraries) 248ue_libupdate_engine_exported_shared_libraries := \ 249 libdbus \ 250 libbrillo-dbus \ 251 libchrome-dbus \ 252 libmetrics \ 253 libshill-client \ 254 libexpat \ 255 libbrillo-policy \ 256 libhardware \ 257 libcutils \ 258 $(ue_libpayload_consumer_exported_shared_libraries) \ 259 $(ue_update_metadata_protos_exported_shared_libraries) 260ifeq ($(local_use_binder),1) 261ue_libupdate_engine_exported_shared_libraries += \ 262 libbinder \ 263 libbinderwrapper \ 264 libbrillo-binder \ 265 libutils 266endif # local_use_binder == 1 267ifeq ($(local_use_weave),1) 268ue_libupdate_engine_exported_shared_libraries += \ 269 libbinderwrapper \ 270 libbrillo-binder \ 271 libweaved 272endif # local_use_weave == 1 273 274include $(CLEAR_VARS) 275LOCAL_MODULE := libupdate_engine 276LOCAL_MODULE_CLASS := STATIC_LIBRARIES 277LOCAL_CPP_EXTENSION := .cc 278LOCAL_CLANG := true 279LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libupdate_engine_exported_c_includes) 280LOCAL_CFLAGS := $(ue_common_cflags) 281LOCAL_CPPFLAGS := $(ue_common_cppflags) 282LOCAL_LDFLAGS := $(ue_common_ldflags) 283LOCAL_C_INCLUDES := \ 284 $(ue_common_c_includes) \ 285 $(ue_libupdate_engine_exported_c_includes) 286LOCAL_STATIC_LIBRARIES := \ 287 libpayload_consumer \ 288 update_metadata-protos \ 289 update_engine-dbus-adaptor \ 290 update_engine-dbus-libcros-client \ 291 update_engine_client-dbus-proxies \ 292 $(ue_libupdate_engine_exported_static_libraries:-host=) \ 293 $(ue_libpayload_consumer_exported_static_libraries:-host=) \ 294 $(ue_update_metadata_protos_exported_static_libraries) 295LOCAL_SHARED_LIBRARIES := \ 296 $(ue_common_shared_libraries) \ 297 $(ue_libupdate_engine_exported_shared_libraries:-host=) \ 298 $(ue_libpayload_consumer_exported_shared_libraries:-host=) \ 299 $(ue_update_metadata_protos_exported_shared_libraries) 300LOCAL_SRC_FILES := \ 301 boot_control_android.cc \ 302 chrome_browser_proxy_resolver.cc \ 303 common_service.cc \ 304 connection_manager.cc \ 305 daemon.cc \ 306 dbus_service.cc \ 307 hardware_android.cc \ 308 image_properties_android.cc \ 309 libcros_proxy.cc \ 310 metrics.cc \ 311 metrics_utils.cc \ 312 omaha_request_action.cc \ 313 omaha_request_params.cc \ 314 omaha_response_handler_action.cc \ 315 p2p_manager.cc \ 316 payload_state.cc \ 317 proxy_resolver.cc \ 318 real_system_state.cc \ 319 shill_proxy.cc \ 320 update_attempter.cc \ 321 update_manager/boxed_value.cc \ 322 update_manager/chromeos_policy.cc \ 323 update_manager/default_policy.cc \ 324 update_manager/evaluation_context.cc \ 325 update_manager/policy.cc \ 326 update_manager/real_config_provider.cc \ 327 update_manager/real_device_policy_provider.cc \ 328 update_manager/real_random_provider.cc \ 329 update_manager/real_shill_provider.cc \ 330 update_manager/real_system_provider.cc \ 331 update_manager/real_time_provider.cc \ 332 update_manager/real_updater_provider.cc \ 333 update_manager/state_factory.cc \ 334 update_manager/update_manager.cc \ 335 update_status_utils.cc \ 336 weave_service_factory.cc 337ifeq ($(local_use_binder),1) 338LOCAL_AIDL_INCLUDES += $(LOCAL_PATH)/binder_bindings 339LOCAL_SRC_FILES += \ 340 binder_bindings/android/brillo/IUpdateEngine.aidl \ 341 binder_bindings/android/brillo/IUpdateEngineStatusCallback.aidl \ 342 binder_service_brillo.cc \ 343 parcelable_update_engine_status.cc 344endif # local_use_binder == 1 345ifeq ($(local_use_weave),1) 346LOCAL_SRC_FILES += \ 347 weave_service.cc 348endif # local_use_weave == 1 349include $(BUILD_STATIC_LIBRARY) 350 351else # !defined(BRILLO) 352 353ifneq ($(local_use_binder),1) 354$(error USE_BINDER is disabled but is required in non-Brillo devices.) 355endif # local_use_binder == 1 356 357# libupdate_engine_android (type: static_library) 358# ======================================================== 359# The main daemon static_library used in Android (non-Brillo). This only has a 360# loop to apply payloads provided by the upper layer via a Binder interface. 361ue_libupdate_engine_android_exported_static_libraries := \ 362 libpayload_consumer \ 363 libfs_mgr \ 364 $(ue_libpayload_consumer_exported_static_libraries) 365ue_libupdate_engine_android_exported_shared_libraries := \ 366 $(ue_libpayload_consumer_exported_shared_libraries) \ 367 libbinder \ 368 libbinderwrapper \ 369 libbrillo-binder \ 370 libcutils \ 371 libhardware \ 372 libutils 373 374include $(CLEAR_VARS) 375LOCAL_MODULE := libupdate_engine_android 376LOCAL_MODULE_CLASS := STATIC_LIBRARIES 377LOCAL_CPP_EXTENSION := .cc 378LOCAL_CLANG := true 379LOCAL_CFLAGS := $(ue_common_cflags) 380LOCAL_CPPFLAGS := $(ue_common_cppflags) 381LOCAL_LDFLAGS := $(ue_common_ldflags) 382LOCAL_C_INCLUDES := $(ue_common_c_includes) 383#TODO(deymo): Remove external/cros/system_api/dbus once the strings are moved 384# out of the DBus interface. 385LOCAL_C_INCLUDES += \ 386 external/cros/system_api/dbus 387LOCAL_STATIC_LIBRARIES := \ 388 $(ue_libupdate_engine_android_exported_static_libraries:-host=) 389LOCAL_SHARED_LIBRARIES += \ 390 $(ue_common_shared_libraries) \ 391 $(ue_libupdate_engine_android_exported_shared_libraries:-host=) 392LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder_bindings 393LOCAL_SRC_FILES += \ 394 binder_bindings/android/os/IUpdateEngine.aidl \ 395 binder_bindings/android/os/IUpdateEngineCallback.aidl \ 396 binder_service_android.cc \ 397 boot_control_android.cc \ 398 daemon.cc \ 399 daemon_state_android.cc \ 400 hardware_android.cc \ 401 proxy_resolver.cc \ 402 update_attempter_android.cc \ 403 update_status_utils.cc 404include $(BUILD_STATIC_LIBRARY) 405 406endif # !defined(BRILLO) 407 408# update_engine (type: executable) 409# ======================================================== 410# update_engine daemon. 411include $(CLEAR_VARS) 412LOCAL_MODULE := update_engine 413LOCAL_MODULE_CLASS := EXECUTABLES 414LOCAL_REQUIRED_MODULES := \ 415 bspatch \ 416 cacerts_google 417ifeq ($(local_use_weave),1) 418LOCAL_REQUIRED_MODULES += updater.json 419endif # local_use_weave == 1 420LOCAL_CPP_EXTENSION := .cc 421LOCAL_CLANG := true 422LOCAL_CFLAGS := $(ue_common_cflags) 423LOCAL_CPPFLAGS := $(ue_common_cppflags) 424LOCAL_LDFLAGS := $(ue_common_ldflags) 425LOCAL_C_INCLUDES := \ 426 $(ue_common_c_includes) 427LOCAL_SHARED_LIBRARIES := \ 428 $(ue_common_shared_libraries) 429LOCAL_SRC_FILES := \ 430 main.cc 431 432ifdef BRILLO 433LOCAL_C_INCLUDES += \ 434 $(ue_libupdate_engine_exported_c_includes) 435LOCAL_STATIC_LIBRARIES := \ 436 libupdate_engine \ 437 $(ue_libupdate_engine_exported_static_libraries:-host=) 438LOCAL_SHARED_LIBRARIES += \ 439 $(ue_libupdate_engine_exported_shared_libraries:-host=) 440else # !defined(BRILLO) 441LOCAL_STATIC_LIBRARIES := \ 442 libupdate_engine_android \ 443 $(ue_libupdate_engine_android_exported_static_libraries:-host=) 444LOCAL_SHARED_LIBRARIES += \ 445 $(ue_libupdate_engine_android_exported_shared_libraries:-host=) 446endif # !defined(BRILLO) 447 448LOCAL_INIT_RC := update_engine.rc 449include $(BUILD_EXECUTABLE) 450 451# libupdate_engine_client (type: shared_library) 452# ======================================================== 453include $(CLEAR_VARS) 454LOCAL_MODULE := libupdate_engine_client 455LOCAL_CFLAGS := \ 456 -Wall \ 457 -Werror \ 458 -Wno-unused-parameter \ 459 -DUSE_DBUS=$(local_use_dbus) \ 460 -DUSE_BINDER=$(local_use_binder) 461LOCAL_CLANG := true 462LOCAL_CPP_EXTENSION := .cc 463# TODO(deymo): Remove "external/cros/system_api/dbus" when dbus is not used. 464LOCAL_C_INCLUDES := \ 465 $(LOCAL_PATH)/client_library/include \ 466 external/cros/system_api/dbus \ 467 system \ 468 external/gtest/include 469LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/client_library/include 470LOCAL_SHARED_LIBRARIES := \ 471 libchrome \ 472 libbrillo 473LOCAL_SRC_FILES := \ 474 client_library/client.cc \ 475 update_status_utils.cc 476 477# We can only compile support for one IPC mechanism. If both "binder" and "dbus" 478# are defined, we prefer binder. 479ifeq ($(local_use_binder),1) 480LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder_bindings 481LOCAL_SHARED_LIBRARIES += \ 482 libbinder \ 483 libbrillo-binder \ 484 libutils 485LOCAL_SRC_FILES += \ 486 binder_bindings/android/brillo/IUpdateEngine.aidl \ 487 binder_bindings/android/brillo/IUpdateEngineStatusCallback.aidl \ 488 client_library/client_binder.cc \ 489 parcelable_update_engine_status.cc 490else # local_use_binder != 1 491LOCAL_STATIC_LIBRARIES := \ 492 update_engine_client-dbus-proxies 493LOCAL_SHARED_LIBRARIES += \ 494 libchrome-dbus \ 495 libbrillo-dbus 496LOCAL_SRC_FILES += \ 497 client_library/client_dbus.cc 498endif # local_use_binder == 1 499 500include $(BUILD_SHARED_LIBRARY) 501 502# update_engine_client (type: executable) 503# ======================================================== 504# update_engine console client. 505include $(CLEAR_VARS) 506LOCAL_MODULE := update_engine_client 507LOCAL_MODULE_CLASS := EXECUTABLES 508LOCAL_CPP_EXTENSION := .cc 509LOCAL_CLANG := true 510LOCAL_CFLAGS := $(ue_common_cflags) 511LOCAL_CPPFLAGS := $(ue_common_cppflags) 512LOCAL_LDFLAGS := $(ue_common_ldflags) 513LOCAL_C_INCLUDES := $(ue_common_c_includes) 514LOCAL_SHARED_LIBRARIES := $(ue_common_shared_libraries) 515ifdef BRILLO 516LOCAL_SHARED_LIBRARIES += \ 517 libupdate_engine_client 518LOCAL_SRC_FILES := \ 519 update_engine_client.cc \ 520 common/error_code_utils.cc 521else # !defined(BRILLO) 522#TODO(deymo): Remove external/cros/system_api/dbus once the strings are moved 523# out of the DBus interface. 524LOCAL_C_INCLUDES += \ 525 external/cros/system_api/dbus 526LOCAL_SHARED_LIBRARIES += \ 527 libbinder \ 528 libbinderwrapper \ 529 libbrillo-binder \ 530 libutils 531LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder_bindings 532LOCAL_SRC_FILES := \ 533 binder_bindings/android/os/IUpdateEngine.aidl \ 534 binder_bindings/android/os/IUpdateEngineCallback.aidl \ 535 common/error_code_utils.cc \ 536 update_engine_client_android.cc \ 537 update_status_utils.cc 538endif # !defined(BRILLO) 539include $(BUILD_EXECUTABLE) 540 541# libpayload_generator (type: static_library) 542# ======================================================== 543# server-side code. This is used for delta_generator and unittests but not 544# for any client code. 545ue_libpayload_generator_exported_static_libraries := \ 546 libpayload_consumer \ 547 update_metadata-protos \ 548 $(ue_libpayload_consumer_exported_static_libraries) \ 549 $(ue_update_metadata_protos_exported_static_libraries) 550ue_libpayload_generator_exported_shared_libraries := \ 551 libext2fs-host \ 552 $(ue_libpayload_consumer_exported_shared_libraries) \ 553 $(ue_update_metadata_protos_exported_shared_libraries) 554 555ue_libpayload_generator_src_files := \ 556 payload_generator/ab_generator.cc \ 557 payload_generator/annotated_operation.cc \ 558 payload_generator/blob_file_writer.cc \ 559 payload_generator/block_mapping.cc \ 560 payload_generator/bzip.cc \ 561 payload_generator/cycle_breaker.cc \ 562 payload_generator/delta_diff_generator.cc \ 563 payload_generator/delta_diff_utils.cc \ 564 payload_generator/ext2_filesystem.cc \ 565 payload_generator/extent_ranges.cc \ 566 payload_generator/extent_utils.cc \ 567 payload_generator/full_update_generator.cc \ 568 payload_generator/graph_types.cc \ 569 payload_generator/graph_utils.cc \ 570 payload_generator/inplace_generator.cc \ 571 payload_generator/payload_file.cc \ 572 payload_generator/payload_generation_config.cc \ 573 payload_generator/payload_signer.cc \ 574 payload_generator/raw_filesystem.cc \ 575 payload_generator/tarjan.cc \ 576 payload_generator/topological_sort.cc 577 578ifeq ($(HOST_OS),linux) 579# Build for the host. 580include $(CLEAR_VARS) 581LOCAL_MODULE := libpayload_generator 582LOCAL_MODULE_CLASS := STATIC_LIBRARIES 583LOCAL_CPP_EXTENSION := .cc 584LOCAL_CLANG := true 585LOCAL_CFLAGS := $(ue_common_cflags) 586LOCAL_CPPFLAGS := $(ue_common_cppflags) 587LOCAL_LDFLAGS := $(ue_common_ldflags) 588LOCAL_C_INCLUDES := $(ue_common_c_includes) 589LOCAL_STATIC_LIBRARIES := \ 590 libpayload_consumer \ 591 update_metadata-protos \ 592 $(ue_libpayload_consumer_exported_static_libraries) \ 593 $(ue_update_metadata_protos_exported_static_libraries) 594LOCAL_SHARED_LIBRARIES := \ 595 $(ue_common_shared_libraries) \ 596 $(ue_libpayload_generator_exported_shared_libraries) \ 597 $(ue_libpayload_consumer_exported_shared_libraries) \ 598 $(ue_update_metadata_protos_exported_shared_libraries) 599LOCAL_SRC_FILES := $(ue_libpayload_generator_src_files) 600include $(BUILD_HOST_STATIC_LIBRARY) 601endif # HOST_OS == linux 602 603# Build for the target. 604include $(CLEAR_VARS) 605LOCAL_MODULE := libpayload_generator 606LOCAL_MODULE_CLASS := STATIC_LIBRARIES 607LOCAL_CPP_EXTENSION := .cc 608LOCAL_CLANG := true 609LOCAL_CFLAGS := $(ue_common_cflags) 610LOCAL_CPPFLAGS := $(ue_common_cppflags) 611LOCAL_LDFLAGS := $(ue_common_ldflags) 612LOCAL_C_INCLUDES := $(ue_common_c_includes) 613LOCAL_STATIC_LIBRARIES := \ 614 libpayload_consumer \ 615 update_metadata-protos \ 616 $(ue_libpayload_consumer_exported_static_libraries:-host=) \ 617 $(ue_update_metadata_protos_exported_static_libraries) 618LOCAL_SHARED_LIBRARIES := \ 619 $(ue_common_shared_libraries) \ 620 $(ue_libpayload_generator_exported_shared_libraries:-host=) \ 621 $(ue_libpayload_consumer_exported_shared_libraries:-host=) \ 622 $(ue_update_metadata_protos_exported_shared_libraries) 623LOCAL_SRC_FILES := $(ue_libpayload_generator_src_files) 624include $(BUILD_STATIC_LIBRARY) 625 626# delta_generator (type: executable) 627# ======================================================== 628# server-side delta generator. 629ue_delta_generator_src_files := \ 630 payload_generator/generate_delta_main.cc 631 632ifeq ($(HOST_OS),linux) 633# Build for the host. 634include $(CLEAR_VARS) 635LOCAL_MODULE := delta_generator 636LOCAL_MODULE_CLASS := EXECUTABLES 637LOCAL_CPP_EXTENSION := .cc 638LOCAL_CLANG := true 639LOCAL_CFLAGS := $(ue_common_cflags) 640LOCAL_CPPFLAGS := $(ue_common_cppflags) 641LOCAL_LDFLAGS := $(ue_common_ldflags) 642LOCAL_C_INCLUDES := $(ue_common_c_includes) 643LOCAL_STATIC_LIBRARIES := \ 644 libpayload_consumer \ 645 libpayload_generator \ 646 $(ue_libpayload_consumer_exported_static_libraries) \ 647 $(ue_libpayload_generator_exported_static_libraries) 648LOCAL_SHARED_LIBRARIES := \ 649 $(ue_common_shared_libraries) \ 650 $(ue_libpayload_consumer_exported_shared_libraries) \ 651 $(ue_libpayload_generator_exported_shared_libraries) 652LOCAL_SRC_FILES := $(ue_delta_generator_src_files) 653include $(BUILD_HOST_EXECUTABLE) 654endif # HOST_OS == linux 655 656# Build for the target. 657include $(CLEAR_VARS) 658LOCAL_MODULE := delta_generator 659LOCAL_MODULE_CLASS := EXECUTABLES 660LOCAL_CPP_EXTENSION := .cc 661LOCAL_CLANG := true 662LOCAL_CFLAGS := $(ue_common_cflags) 663LOCAL_CPPFLAGS := $(ue_common_cppflags) 664LOCAL_LDFLAGS := $(ue_common_ldflags) 665LOCAL_C_INCLUDES := $(ue_common_c_includes) 666LOCAL_STATIC_LIBRARIES := \ 667 libpayload_consumer \ 668 libpayload_generator \ 669 $(ue_libpayload_consumer_exported_static_libraries:-host=) \ 670 $(ue_libpayload_generator_exported_static_libraries:-host=) 671LOCAL_SHARED_LIBRARIES := \ 672 $(ue_common_shared_libraries) \ 673 $(ue_libpayload_consumer_exported_shared_libraries:-host=) \ 674 $(ue_libpayload_generator_exported_shared_libraries:-host=) 675LOCAL_SRC_FILES := $(ue_delta_generator_src_files) 676include $(BUILD_EXECUTABLE) 677 678# Weave schema files 679# ======================================================== 680include $(CLEAR_VARS) 681LOCAL_MODULE := updater.json 682LOCAL_MODULE_CLASS := ETC 683LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/weaved/traits 684LOCAL_SRC_FILES := weaved/traits/$(LOCAL_MODULE) 685include $(BUILD_PREBUILT) 686 687# Update payload signing public key. 688# ======================================================== 689ifdef BRILLO 690include $(CLEAR_VARS) 691LOCAL_MODULE := brillo-update-payload-key 692LOCAL_MODULE_CLASS := ETC 693LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/update_engine 694LOCAL_MODULE_STEM := update-payload-key.pub.pem 695LOCAL_SRC_FILES := update_payload_key/brillo-update-payload-key.pub.pem 696LOCAL_BUILT_MODULE_STEM := update_payload_key/brillo-update-payload-key.pub.pem 697include $(BUILD_PREBUILT) 698endif # BRILLO 699 700# Brillo update payload generation script 701# ======================================================== 702ifeq ($(HOST_OS),linux) 703include $(CLEAR_VARS) 704LOCAL_SRC_FILES := scripts/brillo_update_payload 705LOCAL_MODULE := brillo_update_payload 706LOCAL_MODULE_CLASS := EXECUTABLES 707LOCAL_IS_HOST_MODULE := true 708LOCAL_MODULE_TAGS := optional 709LOCAL_REQUIRED_MODULES := \ 710 delta_generator \ 711 shflags 712include $(BUILD_PREBUILT) 713endif # HOST_OS == linux 714