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