blob: 98045765dcf1888656d2f6cc37a1e00193e5ff6b [file] [log] [blame]
Alex Deymod5561a52015-09-03 23:17:52 -07001#
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
Alex Deymo787dc412015-10-29 11:39:20 -070019# 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
Alex Deymoc372ab62015-10-29 00:43:26 -070024ue_common_cflags := \
Alex Deymo787dc412015-10-29 11:39:20 -070025 -DUSE_HWID_OVERRIDE=$(BRILLO_USE_HWID_OVERRIDE) \
26 -DUSE_MTD=$(BRILLO_USE_MTD) \
27 -DUSE_POWER_MANAGEMENT=$(BRILLO_USE_POWER_MANAGEMENT) \
Alex Deymoc372ab62015-10-29 00:43:26 -070028 -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
Alex Deymod5561a52015-09-03 23:17:52 -070057
Alex Deymoc372ab62015-10-29 00:43:26 -070058
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)
Alex Deymod5561a52015-09-03 23:17:52 -070069
70# update_metadata-protos (type: static_library)
71# ========================================================
72# Protobufs.
Alex Deymoc372ab62015-10-29 00:43:26 -070073ue_update_metadata_protos_exported_static_libraries := \
74 update_metadata-protos
75ue_update_metadata_protos_exported_shared_libraries := \
76 libprotobuf-cpp-lite-rtti
77
Alex Deymod5561a52015-09-03 23:17:52 -070078include $(CLEAR_VARS)
79LOCAL_MODULE := update_metadata-protos
80LOCAL_MODULE_CLASS := STATIC_LIBRARIES
81generated_sources_dir := $(call local-generated-sources-dir)
Alex Deymoc372ab62015-10-29 00:43:26 -070082LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated_sources_dir)/proto/system
Alex Deymod5561a52015-09-03 23:17:52 -070083LOCAL_SRC_FILES := \
84 update_metadata.proto
Alex Deymod5561a52015-09-03 23:17:52 -070085include $(BUILD_STATIC_LIBRARY)
86
87# update_engine-dbus-adaptor (from generate-dbus-adaptors.gypi)
88# ========================================================
Alex Deymoc372ab62015-10-29 00:43:26 -070089# Chrome D-Bus bindings.
Alex Deymod5561a52015-09-03 23:17:52 -070090include $(CLEAR_VARS)
91LOCAL_MODULE := update_engine-dbus-adaptor
Alex Deymoc372ab62015-10-29 00:43:26 -070092LOCAL_MODULE_CLASS := STATIC_LIBRARIES
Alex Deymod5561a52015-09-03 23:17:52 -070093LOCAL_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
Alex Deymoc372ab62015-10-29 00:43:26 -0700101LOCAL_MODULE_CLASS := STATIC_LIBRARIES
Alex Deymod5561a52015-09-03 23:17:52 -0700102LOCAL_SRC_FILES := \
103 dbus_bindings/org.chromium.LibCrosService.dbus-xml
104LOCAL_DBUS_PROXY_PREFIX := libcros
105include $(BUILD_STATIC_LIBRARY)
106
107# libupdate_engine (type: static_library)
108# ========================================================
109# The main static_library with all the code.
Alex Deymoc372ab62015-10-29 00:43:26 -0700110ue_libupdate_engine_exported_c_includes := \
Alex Deymo7eb23052015-10-09 15:27:59 -0700111 $(LOCAL_PATH)/include \
112 external/cros/system_api/dbus
Alex Deymoc372ab62015-10-29 00:43:26 -0700113ue_libupdate_engine_exported_static_libraries := \
Alex Deymod5561a52015-09-03 23:17:52 -0700114 update_metadata-protos \
115 update_engine-dbus-adaptor \
116 update_engine-dbus-libcros-client \
117 update_engine_client-dbus-proxies \
Alex Deymoeadab7d2015-10-09 14:45:02 -0700118 libxz \
David Zeuthen753fadc2015-09-15 16:34:09 -0400119 libbz \
Alex Deymoc372ab62015-10-29 00:43:26 -0700120 libfs_mgr \
121 $(ue_update_metadata_protos_exported_static_libraries)
122ue_libupdate_engine_exported_shared_libraries := \
Alex Deymod5561a52015-09-03 23:17:52 -0700123 libdbus \
124 libcrypto \
125 libcurl \
126 libmetrics \
Alex Deymo7eb23052015-10-09 15:27:59 -0700127 libshill-client \
Alex Deymod5561a52015-09-03 23:17:52 -0700128 libssl \
129 libexpat \
Alex Vakulenko1bab5a82015-10-27 11:47:28 -0700130 libbrillo-policy \
Alex Deymoeadab7d2015-10-09 14:45:02 -0700131 libhardware \
Alex Deymoc372ab62015-10-29 00:43:26 -0700132 libcutils \
133 $(ue_update_metadata_protos_exported_shared_libraries)
134
135include $(CLEAR_VARS)
136LOCAL_MODULE := libupdate_engine
137LOCAL_MODULE_CLASS := STATIC_LIBRARIES
138LOCAL_CPP_EXTENSION := .cc
139LOCAL_RTTI_FLAG := -frtti
140LOCAL_CLANG := true
141LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libupdate_engine_exported_c_includes)
142LOCAL_CFLAGS := $(ue_common_cflags)
143LOCAL_CPPFLAGS := $(ue_common_cppflags)
144LOCAL_LDFLAGS := $(ue_common_ldflags)
145LOCAL_C_INCLUDES := \
146 $(ue_common_c_includes) \
147 $(ue_libupdate_engine_exported_c_includes) \
148 external/e2fsprogs/lib
149LOCAL_STATIC_LIBRARIES := \
150 update_metadata-protos \
151 update_engine-dbus-adaptor \
152 update_engine-dbus-libcros-client \
153 update_engine_client-dbus-proxies \
154 $(ue_libupdate_engine_exported_static_libraries) \
155 $(ue_update_metadata_protos_exported_static_libraries)
156LOCAL_SHARED_LIBRARIES := \
157 $(ue_common_shared_libraries) \
158 $(ue_libupdate_engine_exported_shared_libraries) \
159 $(ue_update_metadata_protos_exported_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700160LOCAL_SRC_FILES := \
161 action_processor.cc \
162 boot_control_android.cc \
David Zeuthen6eddf262015-10-16 15:23:53 -0400163 boot_control_stub.cc \
Alex Deymod5561a52015-09-03 23:17:52 -0700164 bzip_extent_writer.cc \
165 certificate_checker.cc \
166 chrome_browser_proxy_resolver.cc \
167 clock.cc \
168 connection_manager.cc \
169 constants.cc \
170 daemon.cc \
171 dbus_service.cc \
172 delta_performer.cc \
173 download_action.cc \
174 extent_writer.cc \
175 file_descriptor.cc \
176 file_writer.cc \
177 filesystem_verifier_action.cc \
178 hardware_android.cc \
179 http_common.cc \
180 http_fetcher.cc \
181 hwid_override.cc \
Alex Deymo85616652015-10-15 18:48:31 -0700182 image_properties_android.cc \
Alex Deymod5561a52015-09-03 23:17:52 -0700183 install_plan.cc \
184 libcros_proxy.cc \
185 libcurl_http_fetcher.cc \
186 metrics.cc \
187 multi_range_http_fetcher.cc \
188 omaha_hash_calculator.cc \
189 omaha_request_action.cc \
190 omaha_request_params.cc \
191 omaha_response_handler_action.cc \
192 p2p_manager.cc \
193 payload_constants.cc \
194 payload_state.cc \
195 payload_verifier.cc \
Alex Deymoac41a822015-09-15 20:52:53 -0700196 platform_constants_android.cc \
Alex Deymod5561a52015-09-03 23:17:52 -0700197 postinstall_runner_action.cc \
198 prefs.cc \
199 proxy_resolver.cc \
200 real_system_state.cc \
201 shill_proxy.cc \
202 subprocess.cc \
203 terminator.cc \
204 update_attempter.cc \
205 update_manager/boxed_value.cc \
206 update_manager/chromeos_policy.cc \
207 update_manager/default_policy.cc \
208 update_manager/evaluation_context.cc \
209 update_manager/policy.cc \
210 update_manager/real_config_provider.cc \
211 update_manager/real_device_policy_provider.cc \
212 update_manager/real_random_provider.cc \
213 update_manager/real_shill_provider.cc \
214 update_manager/real_system_provider.cc \
215 update_manager/real_time_provider.cc \
216 update_manager/real_updater_provider.cc \
217 update_manager/state_factory.cc \
218 update_manager/update_manager.cc \
Christopher Wileycc8ce0e2015-10-01 16:48:47 -0700219 update_status_utils.cc \
Alex Deymo2e71f902015-09-30 01:25:48 -0700220 utils.cc \
221 xz_extent_writer.cc
Alex Deymod5561a52015-09-03 23:17:52 -0700222include $(BUILD_STATIC_LIBRARY)
223
224# update_engine (type: executable)
225# ========================================================
226# update_engine daemon.
227include $(CLEAR_VARS)
228LOCAL_MODULE := update_engine
229LOCAL_MODULE_CLASS := EXECUTABLES
Alex Deymoc372ab62015-10-29 00:43:26 -0700230LOCAL_CPP_EXTENSION := .cc
231LOCAL_RTTI_FLAG := -frtti
232LOCAL_CLANG := true
233LOCAL_CFLAGS := $(ue_common_cflags)
234LOCAL_CPPFLAGS := $(ue_common_cppflags)
235LOCAL_LDFLAGS := $(ue_common_ldflags)
236LOCAL_C_INCLUDES := \
237 $(ue_common_c_includes) \
238 $(ue_libupdate_engine_exported_c_includes)
239LOCAL_STATIC_LIBRARIES := \
Alex Deymod5561a52015-09-03 23:17:52 -0700240 libupdate_engine \
Alex Deymoc372ab62015-10-29 00:43:26 -0700241 $(ue_libupdate_engine_exported_static_libraries)
242LOCAL_SHARED_LIBRARIES := \
243 $(ue_common_shared_libraries) \
244 $(ue_libupdate_engine_exported_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700245LOCAL_SRC_FILES := \
246 main.cc
Gilad Arnold70141f22015-09-17 09:06:30 -0700247LOCAL_INIT_RC := update_engine.rc
Alex Deymod5561a52015-09-03 23:17:52 -0700248include $(BUILD_EXECUTABLE)
249
250# update_engine_client (type: executable)
251# ========================================================
252# update_engine console client.
253include $(CLEAR_VARS)
254LOCAL_MODULE := update_engine_client
255LOCAL_MODULE_CLASS := EXECUTABLES
Alex Deymoc372ab62015-10-29 00:43:26 -0700256LOCAL_CPP_EXTENSION := .cc
257LOCAL_RTTI_FLAG := -frtti
258LOCAL_CLANG := true
259LOCAL_CFLAGS := $(ue_common_cflags)
260LOCAL_CPPFLAGS := $(ue_common_cppflags)
261LOCAL_LDFLAGS := $(ue_common_ldflags)
262LOCAL_C_INCLUDES := \
263 $(ue_common_c_includes) \
Alex Deymod5561a52015-09-03 23:17:52 -0700264 $(LOCAL_PATH)/include
Alex Deymoc372ab62015-10-29 00:43:26 -0700265LOCAL_STATIC_LIBRARIES := update_engine_client-dbus-proxies
266LOCAL_SHARED_LIBRARIES := $(ue_common_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700267LOCAL_SRC_FILES := \
268 update_engine_client.cc
Alex Deymod5561a52015-09-03 23:17:52 -0700269include $(BUILD_EXECUTABLE)
270
271# libpayload_generator (type: static_library)
272# ========================================================
273# server-side code. This is used for delta_generator and unittests but not
274# for any client code.
Alex Deymoc372ab62015-10-29 00:43:26 -0700275ue_libpayload_generator_exported_c_includes := \
276 $(ue_libupdate_engine_exported_c_includes)
277ue_libpayload_generator_exported_static_libraries := \
278 libupdate_engine \
279 update_metadata-protos \
280 $(ue_libupdate_engine_exported_static_libraries) \
281 $(ue_update_metadata_protos_exported_static_libraries)
282ue_libpayload_generator_exported_shared_libraries := \
283 libext2fs \
284 $(ue_libupdate_engine_exported_shared_libraries) \
285 $(ue_update_metadata_protos_exported_shared_libraries)
286
Alex Deymod5561a52015-09-03 23:17:52 -0700287include $(CLEAR_VARS)
288LOCAL_MODULE := libpayload_generator
289LOCAL_MODULE_CLASS := STATIC_LIBRARIES
Alex Deymoc372ab62015-10-29 00:43:26 -0700290LOCAL_CPP_EXTENSION := .cc
291LOCAL_RTTI_FLAG := -frtti
292LOCAL_CLANG := true
293LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libpayload_generator_exported_c_includes)
294LOCAL_CFLAGS := $(ue_common_cflags)
295LOCAL_CPPFLAGS := $(ue_common_cppflags)
296LOCAL_LDFLAGS := $(ue_common_ldflags)
297LOCAL_C_INCLUDES := \
298 $(ue_common_c_includes) \
299 $(ue_libupdate_engine_exported_c_includes)
300LOCAL_STATIC_LIBRARIES := \
Alex Deymod5561a52015-09-03 23:17:52 -0700301 libupdate_engine \
Alex Deymod5561a52015-09-03 23:17:52 -0700302 update_metadata-protos \
Alex Deymoc372ab62015-10-29 00:43:26 -0700303 $(ue_libupdate_engine_exported_static_libraries) \
304 $(ue_update_metadata_protos_exported_static_libraries)
305LOCAL_SHARED_LIBRARIES := \
306 $(ue_common_shared_libraries) \
307 $(ue_libpayload_generator_exported_shared_libraries) \
308 $(ue_libupdate_engine_exported_shared_libraries) \
309 $(ue_update_metadata_protos_exported_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700310LOCAL_SRC_FILES := \
311 payload_generator/ab_generator.cc \
312 payload_generator/annotated_operation.cc \
313 payload_generator/blob_file_writer.cc \
314 payload_generator/block_mapping.cc \
Alex Deymo0bc26112015-10-19 20:54:57 -0700315 payload_generator/bzip.cc \
Alex Deymod5561a52015-09-03 23:17:52 -0700316 payload_generator/cycle_breaker.cc \
317 payload_generator/delta_diff_generator.cc \
318 payload_generator/delta_diff_utils.cc \
319 payload_generator/ext2_filesystem.cc \
320 payload_generator/extent_ranges.cc \
321 payload_generator/extent_utils.cc \
322 payload_generator/full_update_generator.cc \
323 payload_generator/graph_types.cc \
324 payload_generator/graph_utils.cc \
325 payload_generator/inplace_generator.cc \
326 payload_generator/payload_file.cc \
327 payload_generator/payload_generation_config.cc \
328 payload_generator/payload_signer.cc \
329 payload_generator/raw_filesystem.cc \
330 payload_generator/tarjan.cc \
331 payload_generator/topological_sort.cc
Alex Deymod5561a52015-09-03 23:17:52 -0700332include $(BUILD_STATIC_LIBRARY)
333
334# delta_generator (type: executable)
335# ========================================================
336# server-side delta generator.
337include $(CLEAR_VARS)
338LOCAL_MODULE := delta_generator
339LOCAL_MODULE_CLASS := EXECUTABLES
Alex Deymoc372ab62015-10-29 00:43:26 -0700340LOCAL_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 $(ue_libupdate_engine_exported_c_includes) \
349 $(ue_libpayload_generator_exported_c_includes)
350LOCAL_STATIC_LIBRARIES := \
Alex Deymod5561a52015-09-03 23:17:52 -0700351 libupdate_engine \
Alex Deymoc372ab62015-10-29 00:43:26 -0700352 libpayload_generator \
353 $(ue_libupdate_engine_exported_static_libraries) \
354 $(ue_libpayload_generator_exported_static_libraries)
355LOCAL_SHARED_LIBRARIES := \
356 $(ue_common_shared_libraries) \
357 $(ue_libupdate_engine_exported_shared_libraries) \
358 $(ue_libpayload_generator_exported_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700359LOCAL_SRC_FILES := \
360 payload_generator/generate_delta_main.cc
Alex Deymod5561a52015-09-03 23:17:52 -0700361include $(BUILD_EXECUTABLE)
362
Christopher Wiley16daa082015-10-01 17:18:40 -0700363# libupdate_engine_client
364# ========================================================
365include $(CLEAR_VARS)
366LOCAL_MODULE := libupdate_engine_client
367LOCAL_RTTI_FLAG := -frtti
368LOCAL_CFLAGS := \
369 -Wall \
370 -Werror \
371 -Wno-unused-parameter
372LOCAL_CLANG := true
373LOCAL_CPP_EXTENSION := .cc
374LOCAL_C_INCLUDES := \
375 $(LOCAL_PATH)/client_library/include \
376 external/cros/system_api/dbus \
377 system \
378 external/gtest/include
379LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/client_library/include
380LOCAL_SHARED_LIBRARIES := \
381 libchrome \
382 libchrome-dbus \
Alex Vakulenko1bab5a82015-10-27 11:47:28 -0700383 libbrillo \
384 libbrillo-dbus
Christopher Wiley16daa082015-10-01 17:18:40 -0700385LOCAL_STATIC_LIBRARIES := \
386 update_engine_client-dbus-proxies
387LOCAL_SRC_FILES := \
388 client_library/client.cc \
389 client_library/client_impl.cc \
390 update_status_utils.cc
391include $(BUILD_SHARED_LIBRARY)
392
Gaurav Shah263614f2015-09-24 14:20:38 -0700393
394# Update payload signing public key.
395# ========================================================
396include $(CLEAR_VARS)
397LOCAL_MODULE := brillo-update-payload-key
398LOCAL_MODULE_CLASS := ETC
399LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/update_engine
400LOCAL_MODULE_STEM := update-payload-key.pub.pem
401LOCAL_SRC_FILES := update_payload_key/brillo-update-payload-key.pub.pem
402LOCAL_BUILT_MODULE_STEM := update_payload_key/brillo-update-payload-key.pub.pem
403include $(BUILD_PREBUILT)