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