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