Android.mk revision ab0d976fa47844870d55c87ab530072cea0c8c53
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/hash_calculator.cc \ 157 common/http_common.cc \ 158 common/http_fetcher.cc \ 159 common/hwid_override.cc \ 160 common/libcurl_http_fetcher.cc \ 161 common/multi_range_http_fetcher.cc \ 162 common/platform_constants_android.cc \ 163 common/prefs.cc \ 164 common/subprocess.cc \ 165 common/terminator.cc \ 166 common/utils.cc \ 167 payload_consumer/bzip_extent_writer.cc \ 168 payload_consumer/delta_performer.cc \ 169 payload_consumer/download_action.cc \ 170 payload_consumer/extent_writer.cc \ 171 payload_consumer/file_descriptor.cc \ 172 payload_consumer/file_writer.cc \ 173 payload_consumer/filesystem_verifier_action.cc \ 174 payload_consumer/install_plan.cc \ 175 payload_consumer/payload_constants.cc \ 176 payload_consumer/payload_verifier.cc \ 177 payload_consumer/postinstall_runner_action.cc \ 178 payload_consumer/xz_extent_writer.cc 179 180ifeq ($(HOST_OS),linux) 181# Build for the host. 182include $(CLEAR_VARS) 183LOCAL_MODULE := libpayload_consumer 184LOCAL_MODULE_CLASS := STATIC_LIBRARIES 185LOCAL_CPP_EXTENSION := .cc 186LOCAL_CLANG := true 187LOCAL_CFLAGS := $(ue_common_cflags) 188LOCAL_CPPFLAGS := $(ue_common_cppflags) 189LOCAL_LDFLAGS := $(ue_common_ldflags) 190LOCAL_C_INCLUDES := \ 191 $(ue_common_c_includes) \ 192 external/e2fsprogs/lib 193LOCAL_STATIC_LIBRARIES := \ 194 update_metadata-protos \ 195 $(ue_libpayload_consumer_exported_static_libraries) \ 196 $(ue_update_metadata_protos_exported_static_libraries) 197LOCAL_SHARED_LIBRARIES := \ 198 $(ue_common_shared_libraries) \ 199 $(ue_libpayload_consumer_exported_shared_libraries) \ 200 $(ue_update_metadata_protos_exported_shared_libraries) 201LOCAL_SRC_FILES := $(ue_libpayload_consumer_src_files) 202include $(BUILD_HOST_STATIC_LIBRARY) 203endif # HOST_OS == linux 204 205# Build for the target. 206include $(CLEAR_VARS) 207LOCAL_MODULE := libpayload_consumer 208LOCAL_MODULE_CLASS := STATIC_LIBRARIES 209LOCAL_CPP_EXTENSION := .cc 210LOCAL_CLANG := true 211LOCAL_CFLAGS := $(ue_common_cflags) 212LOCAL_CPPFLAGS := $(ue_common_cppflags) 213LOCAL_LDFLAGS := $(ue_common_ldflags) 214LOCAL_C_INCLUDES := \ 215 $(ue_common_c_includes) \ 216 external/e2fsprogs/lib 217LOCAL_STATIC_LIBRARIES := \ 218 update_metadata-protos \ 219 $(ue_libpayload_consumer_exported_static_libraries:-host=) \ 220 $(ue_update_metadata_protos_exported_static_libraries) 221LOCAL_SHARED_LIBRARIES := \ 222 $(ue_common_shared_libraries) \ 223 $(ue_libpayload_consumer_exported_shared_libraries:-host=) \ 224 $(ue_update_metadata_protos_exported_shared_libraries) 225LOCAL_SRC_FILES := $(ue_libpayload_consumer_src_files) 226include $(BUILD_STATIC_LIBRARY) 227 228ifdef BRILLO 229 230# libupdate_engine (type: static_library) 231# ======================================================== 232# The main daemon static_library with all the code used to check for updates 233# with Omaha and expose a DBus daemon. 234ue_libupdate_engine_exported_c_includes := \ 235 $(LOCAL_PATH)/include \ 236 external/cros/system_api/dbus 237ue_libupdate_engine_exported_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 libbz \ 244 libfs_mgr \ 245 $(ue_libpayload_consumer_exported_static_libraries) \ 246 $(ue_update_metadata_protos_exported_static_libraries) 247ue_libupdate_engine_exported_shared_libraries := \ 248 libdbus \ 249 libbrillo-dbus \ 250 libchrome-dbus \ 251 libmetrics \ 252 libshill-client \ 253 libexpat \ 254 libbrillo-policy \ 255 libhardware \ 256 libcutils \ 257 $(ue_libpayload_consumer_exported_shared_libraries) \ 258 $(ue_update_metadata_protos_exported_shared_libraries) 259ifeq ($(local_use_binder),1) 260ue_libupdate_engine_exported_shared_libraries += \ 261 libbinder \ 262 libbinderwrapper \ 263 libbrillo-binder \ 264 libutils 265endif # local_use_binder == 1 266ifeq ($(local_use_weave),1) 267ue_libupdate_engine_exported_shared_libraries += \ 268 libbinderwrapper \ 269 libbrillo-binder \ 270 libweaved 271endif # local_use_weave == 1 272 273include $(CLEAR_VARS) 274LOCAL_MODULE := libupdate_engine 275LOCAL_MODULE_CLASS := STATIC_LIBRARIES 276LOCAL_CPP_EXTENSION := .cc 277LOCAL_CLANG := true 278LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libupdate_engine_exported_c_includes) 279LOCAL_CFLAGS := $(ue_common_cflags) 280LOCAL_CPPFLAGS := $(ue_common_cppflags) 281LOCAL_LDFLAGS := $(ue_common_ldflags) 282LOCAL_C_INCLUDES := \ 283 $(ue_common_c_includes) \ 284 $(ue_libupdate_engine_exported_c_includes) 285LOCAL_STATIC_LIBRARIES := \ 286 libpayload_consumer \ 287 update_metadata-protos \ 288 update_engine-dbus-adaptor \ 289 update_engine-dbus-libcros-client \ 290 update_engine_client-dbus-proxies \ 291 $(ue_libupdate_engine_exported_static_libraries:-host=) \ 292 $(ue_libpayload_consumer_exported_static_libraries:-host=) \ 293 $(ue_update_metadata_protos_exported_static_libraries) 294LOCAL_SHARED_LIBRARIES := \ 295 $(ue_common_shared_libraries) \ 296 $(ue_libupdate_engine_exported_shared_libraries:-host=) \ 297 $(ue_libpayload_consumer_exported_shared_libraries:-host=) \ 298 $(ue_update_metadata_protos_exported_shared_libraries) 299LOCAL_SRC_FILES := \ 300 boot_control_android.cc \ 301 chrome_browser_proxy_resolver.cc \ 302 common_service.cc \ 303 connection_manager.cc \ 304 daemon.cc \ 305 dbus_service.cc \ 306 hardware_android.cc \ 307 image_properties_android.cc \ 308 libcros_proxy.cc \ 309 metrics.cc \ 310 metrics_utils.cc \ 311 omaha_request_action.cc \ 312 omaha_request_params.cc \ 313 omaha_response_handler_action.cc \ 314 p2p_manager.cc \ 315 payload_state.cc \ 316 proxy_resolver.cc \ 317 real_system_state.cc \ 318 shill_proxy.cc \ 319 update_attempter.cc \ 320 update_manager/boxed_value.cc \ 321 update_manager/chromeos_policy.cc \ 322 update_manager/default_policy.cc \ 323 update_manager/evaluation_context.cc \ 324 update_manager/policy.cc \ 325 update_manager/real_config_provider.cc \ 326 update_manager/real_device_policy_provider.cc \ 327 update_manager/real_random_provider.cc \ 328 update_manager/real_shill_provider.cc \ 329 update_manager/real_system_provider.cc \ 330 update_manager/real_time_provider.cc \ 331 update_manager/real_updater_provider.cc \ 332 update_manager/state_factory.cc \ 333 update_manager/update_manager.cc \ 334 update_status_utils.cc \ 335 weave_service_factory.cc 336ifeq ($(local_use_binder),1) 337LOCAL_AIDL_INCLUDES += $(LOCAL_PATH)/binder_bindings 338LOCAL_SRC_FILES += \ 339 binder_bindings/android/brillo/IUpdateEngine.aidl \ 340 binder_bindings/android/brillo/IUpdateEngineStatusCallback.aidl \ 341 binder_service_brillo.cc \ 342 parcelable_update_engine_status.cc 343endif # local_use_binder == 1 344ifeq ($(local_use_weave),1) 345LOCAL_SRC_FILES += \ 346 weave_service.cc 347endif # local_use_weave == 1 348include $(BUILD_STATIC_LIBRARY) 349 350else # !defined(BRILLO) 351 352ifneq ($(local_use_binder),1) 353$(error USE_BINDER is disabled but is required in non-Brillo devices.) 354endif # local_use_binder == 1 355 356# libupdate_engine_android (type: static_library) 357# ======================================================== 358# The main daemon static_library used in Android (non-Brillo). This only has a 359# loop to apply payloads provided by the upper layer via a Binder interface. 360ue_libupdate_engine_android_exported_static_libraries := \ 361 libpayload_consumer \ 362 $(ue_libpayload_consumer_exported_static_libraries) 363ue_libupdate_engine_android_exported_shared_libraries := \ 364 $(ue_libpayload_consumer_exported_shared_libraries) \ 365 libbinder \ 366 libbinderwrapper \ 367 libbrillo-binder \ 368 libutils 369 370include $(CLEAR_VARS) 371LOCAL_MODULE := libupdate_engine_android 372LOCAL_MODULE_CLASS := STATIC_LIBRARIES 373LOCAL_CPP_EXTENSION := .cc 374LOCAL_CLANG := true 375LOCAL_CFLAGS := $(ue_common_cflags) 376LOCAL_CPPFLAGS := $(ue_common_cppflags) 377LOCAL_LDFLAGS := $(ue_common_ldflags) 378LOCAL_C_INCLUDES := $(ue_common_c_includes) 379LOCAL_STATIC_LIBRARIES := \ 380 $(ue_libupdate_engine_android_exported_static_libraries:-host=) 381LOCAL_SHARED_LIBRARIES += \ 382 $(ue_common_shared_libraries) \ 383 $(ue_libupdate_engine_android_exported_shared_libraries:-host=) 384LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder_bindings 385LOCAL_SRC_FILES += \ 386 binder_bindings/android/os/IUpdateEngine.aidl \ 387 binder_bindings/android/os/IUpdateEngineCallback.aidl \ 388 binder_service_android.cc \ 389 daemon.cc \ 390 daemon_state_android.cc 391include $(BUILD_STATIC_LIBRARY) 392 393endif # !defined(BRILLO) 394 395# update_engine (type: executable) 396# ======================================================== 397# update_engine daemon. 398include $(CLEAR_VARS) 399LOCAL_MODULE := update_engine 400LOCAL_MODULE_CLASS := EXECUTABLES 401LOCAL_REQUIRED_MODULES := \ 402 bspatch \ 403 cacerts_google 404ifeq ($(local_use_weave),1) 405LOCAL_REQUIRED_MODULES += updater.json 406endif # local_use_weave == 1 407LOCAL_CPP_EXTENSION := .cc 408LOCAL_CLANG := true 409LOCAL_CFLAGS := $(ue_common_cflags) 410LOCAL_CPPFLAGS := $(ue_common_cppflags) 411LOCAL_LDFLAGS := $(ue_common_ldflags) 412LOCAL_C_INCLUDES := \ 413 $(ue_common_c_includes) 414LOCAL_SHARED_LIBRARIES := \ 415 $(ue_common_shared_libraries) 416LOCAL_SRC_FILES := \ 417 main.cc 418 419ifdef BRILLO 420LOCAL_C_INCLUDES += \ 421 $(ue_libupdate_engine_exported_c_includes) 422LOCAL_STATIC_LIBRARIES := \ 423 libupdate_engine \ 424 $(ue_libupdate_engine_exported_static_libraries:-host=) 425LOCAL_SHARED_LIBRARIES += \ 426 $(ue_libupdate_engine_exported_shared_libraries:-host=) 427else # !defined(BRILLO) 428LOCAL_STATIC_LIBRARIES := \ 429 libupdate_engine_android \ 430 $(ue_libupdate_engine_android_exported_static_libraries:-host=) 431LOCAL_SHARED_LIBRARIES += \ 432 $(ue_libupdate_engine_android_exported_shared_libraries:-host=) 433endif # !defined(BRILLO) 434 435LOCAL_INIT_RC := update_engine.rc 436include $(BUILD_EXECUTABLE) 437 438# update_engine_client (type: executable) 439# ======================================================== 440# update_engine console client. 441include $(CLEAR_VARS) 442LOCAL_MODULE := update_engine_client 443LOCAL_MODULE_CLASS := EXECUTABLES 444LOCAL_CPP_EXTENSION := .cc 445LOCAL_CLANG := true 446LOCAL_CFLAGS := $(ue_common_cflags) 447LOCAL_CPPFLAGS := $(ue_common_cppflags) 448LOCAL_LDFLAGS := $(ue_common_ldflags) 449LOCAL_C_INCLUDES := $(ue_common_c_includes) 450LOCAL_SHARED_LIBRARIES := $(ue_common_shared_libraries) 451ifdef BRILLO 452LOCAL_SHARED_LIBRARIES += \ 453 libupdate_engine_client 454LOCAL_SRC_FILES := \ 455 update_engine_client.cc 456else # !defined(BRILLO) 457#TODO(deymo): Remove external/cros/system_api/dbus once the strings are moved 458# out of the DBus interface. 459LOCAL_C_INCLUDES += \ 460 external/cros/system_api/dbus 461LOCAL_SHARED_LIBRARIES += \ 462 libbinder \ 463 libbrillo-binder \ 464 libutils 465LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder_bindings 466LOCAL_SRC_FILES := \ 467 binder_bindings/android/os/IUpdateEngine.aidl \ 468 binder_bindings/android/os/IUpdateEngineCallback.aidl \ 469 update_engine_client_android.cc \ 470 update_status_utils.cc 471endif # !defined(BRILLO) 472include $(BUILD_EXECUTABLE) 473 474# libpayload_generator (type: static_library) 475# ======================================================== 476# server-side code. This is used for delta_generator and unittests but not 477# for any client code. 478ue_libpayload_generator_exported_static_libraries := \ 479 libpayload_consumer \ 480 update_metadata-protos \ 481 $(ue_libpayload_consumer_exported_static_libraries) \ 482 $(ue_update_metadata_protos_exported_static_libraries) 483ue_libpayload_generator_exported_shared_libraries := \ 484 libext2fs-host \ 485 $(ue_libpayload_consumer_exported_shared_libraries) \ 486 $(ue_update_metadata_protos_exported_shared_libraries) 487 488ue_libpayload_generator_src_files := \ 489 payload_generator/ab_generator.cc \ 490 payload_generator/annotated_operation.cc \ 491 payload_generator/blob_file_writer.cc \ 492 payload_generator/block_mapping.cc \ 493 payload_generator/bzip.cc \ 494 payload_generator/cycle_breaker.cc \ 495 payload_generator/delta_diff_generator.cc \ 496 payload_generator/delta_diff_utils.cc \ 497 payload_generator/ext2_filesystem.cc \ 498 payload_generator/extent_ranges.cc \ 499 payload_generator/extent_utils.cc \ 500 payload_generator/full_update_generator.cc \ 501 payload_generator/graph_types.cc \ 502 payload_generator/graph_utils.cc \ 503 payload_generator/inplace_generator.cc \ 504 payload_generator/payload_file.cc \ 505 payload_generator/payload_generation_config.cc \ 506 payload_generator/payload_signer.cc \ 507 payload_generator/raw_filesystem.cc \ 508 payload_generator/tarjan.cc \ 509 payload_generator/topological_sort.cc 510 511ifeq ($(HOST_OS),linux) 512# Build for the host. 513include $(CLEAR_VARS) 514LOCAL_MODULE := libpayload_generator 515LOCAL_MODULE_CLASS := STATIC_LIBRARIES 516LOCAL_CPP_EXTENSION := .cc 517LOCAL_CLANG := true 518LOCAL_CFLAGS := $(ue_common_cflags) 519LOCAL_CPPFLAGS := $(ue_common_cppflags) 520LOCAL_LDFLAGS := $(ue_common_ldflags) 521LOCAL_C_INCLUDES := $(ue_common_c_includes) 522LOCAL_STATIC_LIBRARIES := \ 523 libpayload_consumer \ 524 update_metadata-protos \ 525 $(ue_libpayload_consumer_exported_static_libraries) \ 526 $(ue_update_metadata_protos_exported_static_libraries) 527LOCAL_SHARED_LIBRARIES := \ 528 $(ue_common_shared_libraries) \ 529 $(ue_libpayload_generator_exported_shared_libraries) \ 530 $(ue_libpayload_consumer_exported_shared_libraries) \ 531 $(ue_update_metadata_protos_exported_shared_libraries) 532LOCAL_SRC_FILES := $(ue_libpayload_generator_src_files) 533include $(BUILD_HOST_STATIC_LIBRARY) 534endif # HOST_OS == linux 535 536# Build for the target. 537include $(CLEAR_VARS) 538LOCAL_MODULE := libpayload_generator 539LOCAL_MODULE_CLASS := STATIC_LIBRARIES 540LOCAL_CPP_EXTENSION := .cc 541LOCAL_CLANG := true 542LOCAL_CFLAGS := $(ue_common_cflags) 543LOCAL_CPPFLAGS := $(ue_common_cppflags) 544LOCAL_LDFLAGS := $(ue_common_ldflags) 545LOCAL_C_INCLUDES := $(ue_common_c_includes) 546LOCAL_STATIC_LIBRARIES := \ 547 libpayload_consumer \ 548 update_metadata-protos \ 549 $(ue_libpayload_consumer_exported_static_libraries:-host=) \ 550 $(ue_update_metadata_protos_exported_static_libraries) 551LOCAL_SHARED_LIBRARIES := \ 552 $(ue_common_shared_libraries) \ 553 $(ue_libpayload_generator_exported_shared_libraries:-host=) \ 554 $(ue_libpayload_consumer_exported_shared_libraries:-host=) \ 555 $(ue_update_metadata_protos_exported_shared_libraries) 556LOCAL_SRC_FILES := $(ue_libpayload_generator_src_files) 557include $(BUILD_STATIC_LIBRARY) 558 559# delta_generator (type: executable) 560# ======================================================== 561# server-side delta generator. 562ue_delta_generator_src_files := \ 563 payload_generator/generate_delta_main.cc 564 565ifeq ($(HOST_OS),linux) 566# Build for the host. 567include $(CLEAR_VARS) 568LOCAL_MODULE := delta_generator 569LOCAL_MODULE_CLASS := EXECUTABLES 570LOCAL_CPP_EXTENSION := .cc 571LOCAL_CLANG := true 572LOCAL_CFLAGS := $(ue_common_cflags) 573LOCAL_CPPFLAGS := $(ue_common_cppflags) 574LOCAL_LDFLAGS := $(ue_common_ldflags) 575LOCAL_C_INCLUDES := $(ue_common_c_includes) 576LOCAL_STATIC_LIBRARIES := \ 577 libpayload_consumer \ 578 libpayload_generator \ 579 $(ue_libpayload_consumer_exported_static_libraries) \ 580 $(ue_libpayload_generator_exported_static_libraries) 581LOCAL_SHARED_LIBRARIES := \ 582 $(ue_common_shared_libraries) \ 583 $(ue_libpayload_consumer_exported_shared_libraries) \ 584 $(ue_libpayload_generator_exported_shared_libraries) 585LOCAL_SRC_FILES := $(ue_delta_generator_src_files) 586include $(BUILD_HOST_EXECUTABLE) 587endif # HOST_OS == linux 588 589# Build for the target. 590include $(CLEAR_VARS) 591LOCAL_MODULE := delta_generator 592LOCAL_MODULE_CLASS := EXECUTABLES 593LOCAL_CPP_EXTENSION := .cc 594LOCAL_CLANG := true 595LOCAL_CFLAGS := $(ue_common_cflags) 596LOCAL_CPPFLAGS := $(ue_common_cppflags) 597LOCAL_LDFLAGS := $(ue_common_ldflags) 598LOCAL_C_INCLUDES := $(ue_common_c_includes) 599LOCAL_STATIC_LIBRARIES := \ 600 libpayload_consumer \ 601 libpayload_generator \ 602 $(ue_libpayload_consumer_exported_static_libraries:-host=) \ 603 $(ue_libpayload_generator_exported_static_libraries:-host=) 604LOCAL_SHARED_LIBRARIES := \ 605 $(ue_common_shared_libraries) \ 606 $(ue_libpayload_consumer_exported_shared_libraries:-host=) \ 607 $(ue_libpayload_generator_exported_shared_libraries:-host=) 608LOCAL_SRC_FILES := $(ue_delta_generator_src_files) 609include $(BUILD_EXECUTABLE) 610 611# libupdate_engine_client 612# ======================================================== 613include $(CLEAR_VARS) 614LOCAL_MODULE := libupdate_engine_client 615LOCAL_CFLAGS := \ 616 -Wall \ 617 -Werror \ 618 -Wno-unused-parameter \ 619 -DUSE_DBUS=$(local_use_dbus) \ 620 -DUSE_BINDER=$(local_use_binder) 621LOCAL_CLANG := true 622LOCAL_CPP_EXTENSION := .cc 623# TODO(deymo): Remove "external/cros/system_api/dbus" when dbus is not used. 624LOCAL_C_INCLUDES := \ 625 $(LOCAL_PATH)/client_library/include \ 626 external/cros/system_api/dbus \ 627 system \ 628 external/gtest/include 629LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/client_library/include 630LOCAL_SHARED_LIBRARIES := \ 631 libchrome \ 632 libbrillo 633LOCAL_SRC_FILES := \ 634 client_library/client.cc \ 635 update_status_utils.cc 636 637# We can only compile support for one IPC mechanism. If both "binder" and "dbus" 638# are defined, we prefer binder. 639ifeq ($(local_use_binder),1) 640LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder_bindings 641LOCAL_SHARED_LIBRARIES += \ 642 libbinder \ 643 libbrillo-binder \ 644 libutils 645LOCAL_SRC_FILES += \ 646 binder_bindings/android/brillo/IUpdateEngine.aidl \ 647 binder_bindings/android/brillo/IUpdateEngineStatusCallback.aidl \ 648 client_library/client_binder.cc \ 649 parcelable_update_engine_status.cc 650else # local_use_binder != 1 651LOCAL_STATIC_LIBRARIES := \ 652 update_engine_client-dbus-proxies 653LOCAL_SHARED_LIBRARIES += \ 654 libchrome-dbus \ 655 libbrillo-dbus 656LOCAL_SRC_FILES += \ 657 client_library/client_dbus.cc 658endif # local_use_binder == 1 659 660include $(BUILD_SHARED_LIBRARY) 661 662# Weave schema files 663# ======================================================== 664include $(CLEAR_VARS) 665LOCAL_MODULE := updater.json 666LOCAL_MODULE_CLASS := ETC 667LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/weaved/traits 668LOCAL_SRC_FILES := weaved/traits/$(LOCAL_MODULE) 669include $(BUILD_PREBUILT) 670 671# Update payload signing public key. 672# ======================================================== 673ifdef BRILLO 674include $(CLEAR_VARS) 675LOCAL_MODULE := brillo-update-payload-key 676LOCAL_MODULE_CLASS := ETC 677LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/update_engine 678LOCAL_MODULE_STEM := update-payload-key.pub.pem 679LOCAL_SRC_FILES := update_payload_key/brillo-update-payload-key.pub.pem 680LOCAL_BUILT_MODULE_STEM := update_payload_key/brillo-update-payload-key.pub.pem 681include $(BUILD_PREBUILT) 682endif # BRILLO 683 684# Brillo update payload generation script 685# ======================================================== 686ifeq ($(HOST_OS),linux) 687include $(CLEAR_VARS) 688LOCAL_SRC_FILES := scripts/brillo_update_payload 689LOCAL_MODULE := brillo_update_payload 690LOCAL_MODULE_CLASS := EXECUTABLES 691LOCAL_IS_HOST_MODULE := true 692LOCAL_MODULE_TAGS := optional 693LOCAL_REQUIRED_MODULES := \ 694 delta_generator \ 695 shflags 696include $(BUILD_PREBUILT) 697endif # HOST_OS == linux 698