blob: e99df8a52aa6769494bd57d781e7c6f711891d30 [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 Deymoc372ab62015-10-29 00:43:26 -070019ue_common_cflags := \
20 -DUSE_HWID_OVERRIDE=0 \
21 -DUSE_MTD=0 \
22 -DUSE_POWER_MANAGEMENT=0 \
23 -D_FILE_OFFSET_BITS=64 \
24 -D_POSIX_C_SOURCE=199309L \
25 -Wa,--noexecstack \
26 -Wall \
27 -Werror \
28 -Wextra \
29 -Wformat=2 \
30 -Wno-psabi \
31 -Wno-unused-parameter \
32 -ffunction-sections \
33 -fstack-protector-strong \
34 -fvisibility=hidden
35ue_common_cppflags := \
36 -Wnon-virtual-dtor \
37 -fno-strict-aliasing \
38 -std=gnu++11
39ue_common_ldflags := \
40 -Wl,--gc-sections
41ue_common_c_includes := \
42 $(LOCAL_PATH)/client_library/include \
43 external/gtest/include \
44 system
45ue_common_shared_libraries := \
46 libbrillo \
47 libbrillo-dbus \
48 libbrillo-http \
49 libbrillo-stream \
50 libchrome \
51 libchrome-dbus
Alex Deymod5561a52015-09-03 23:17:52 -070052
Alex Deymoc372ab62015-10-29 00:43:26 -070053
54# update_engine_client-dbus-proxies (from generate-dbus-proxies.gypi)
55# ========================================================
56include $(CLEAR_VARS)
57LOCAL_MODULE := update_engine_client-dbus-proxies
58LOCAL_MODULE_CLASS := STATIC_LIBRARIES
59LOCAL_SRC_FILES := \
60 dbus_bindings/dbus-service-config.json \
61 dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml
62LOCAL_DBUS_PROXY_PREFIX := update_engine
63include $(BUILD_STATIC_LIBRARY)
Alex Deymod5561a52015-09-03 23:17:52 -070064
65# update_metadata-protos (type: static_library)
66# ========================================================
67# Protobufs.
Alex Deymoc372ab62015-10-29 00:43:26 -070068ue_update_metadata_protos_exported_static_libraries := \
69 update_metadata-protos
70ue_update_metadata_protos_exported_shared_libraries := \
71 libprotobuf-cpp-lite-rtti
72
Alex Deymod5561a52015-09-03 23:17:52 -070073include $(CLEAR_VARS)
74LOCAL_MODULE := update_metadata-protos
75LOCAL_MODULE_CLASS := STATIC_LIBRARIES
76generated_sources_dir := $(call local-generated-sources-dir)
Alex Deymoc372ab62015-10-29 00:43:26 -070077LOCAL_EXPORT_C_INCLUDE_DIRS := $(generated_sources_dir)/proto/system
Alex Deymod5561a52015-09-03 23:17:52 -070078LOCAL_SRC_FILES := \
79 update_metadata.proto
Alex Deymod5561a52015-09-03 23:17:52 -070080include $(BUILD_STATIC_LIBRARY)
81
82# update_engine-dbus-adaptor (from generate-dbus-adaptors.gypi)
83# ========================================================
Alex Deymoc372ab62015-10-29 00:43:26 -070084# Chrome D-Bus bindings.
Alex Deymod5561a52015-09-03 23:17:52 -070085include $(CLEAR_VARS)
86LOCAL_MODULE := update_engine-dbus-adaptor
Alex Deymoc372ab62015-10-29 00:43:26 -070087LOCAL_MODULE_CLASS := STATIC_LIBRARIES
Alex Deymod5561a52015-09-03 23:17:52 -070088LOCAL_SRC_FILES := \
89 dbus_bindings/org.chromium.UpdateEngineInterface.dbus-xml
90include $(BUILD_STATIC_LIBRARY)
91
92# update_engine-dbus-libcros-client (from generate-dbus-proxies.gypi)
93# ========================================================
94include $(CLEAR_VARS)
95LOCAL_MODULE := update_engine-dbus-libcros-client
Alex Deymoc372ab62015-10-29 00:43:26 -070096LOCAL_MODULE_CLASS := STATIC_LIBRARIES
Alex Deymod5561a52015-09-03 23:17:52 -070097LOCAL_SRC_FILES := \
98 dbus_bindings/org.chromium.LibCrosService.dbus-xml
99LOCAL_DBUS_PROXY_PREFIX := libcros
100include $(BUILD_STATIC_LIBRARY)
101
102# libupdate_engine (type: static_library)
103# ========================================================
104# The main static_library with all the code.
Alex Deymoc372ab62015-10-29 00:43:26 -0700105ue_libupdate_engine_exported_c_includes := \
Alex Deymo7eb23052015-10-09 15:27:59 -0700106 $(LOCAL_PATH)/include \
107 external/cros/system_api/dbus
Alex Deymoc372ab62015-10-29 00:43:26 -0700108ue_libupdate_engine_exported_static_libraries := \
Alex Deymod5561a52015-09-03 23:17:52 -0700109 update_metadata-protos \
110 update_engine-dbus-adaptor \
111 update_engine-dbus-libcros-client \
112 update_engine_client-dbus-proxies \
Alex Deymoeadab7d2015-10-09 14:45:02 -0700113 libxz \
David Zeuthen753fadc2015-09-15 16:34:09 -0400114 libbz \
Alex Deymoc372ab62015-10-29 00:43:26 -0700115 libfs_mgr \
116 $(ue_update_metadata_protos_exported_static_libraries)
117ue_libupdate_engine_exported_shared_libraries := \
Alex Deymod5561a52015-09-03 23:17:52 -0700118 libdbus \
119 libcrypto \
120 libcurl \
121 libmetrics \
Alex Deymo7eb23052015-10-09 15:27:59 -0700122 libshill-client \
Alex Deymod5561a52015-09-03 23:17:52 -0700123 libssl \
124 libexpat \
Alex Vakulenko1bab5a82015-10-27 11:47:28 -0700125 libbrillo-policy \
Alex Deymoeadab7d2015-10-09 14:45:02 -0700126 libhardware \
Alex Deymoc372ab62015-10-29 00:43:26 -0700127 libcutils \
128 $(ue_update_metadata_protos_exported_shared_libraries)
129
130include $(CLEAR_VARS)
131LOCAL_MODULE := libupdate_engine
132LOCAL_MODULE_CLASS := STATIC_LIBRARIES
133LOCAL_CPP_EXTENSION := .cc
134LOCAL_RTTI_FLAG := -frtti
135LOCAL_CLANG := true
136LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libupdate_engine_exported_c_includes)
137LOCAL_CFLAGS := $(ue_common_cflags)
138LOCAL_CPPFLAGS := $(ue_common_cppflags)
139LOCAL_LDFLAGS := $(ue_common_ldflags)
140LOCAL_C_INCLUDES := \
141 $(ue_common_c_includes) \
142 $(ue_libupdate_engine_exported_c_includes) \
143 external/e2fsprogs/lib
144LOCAL_STATIC_LIBRARIES := \
145 update_metadata-protos \
146 update_engine-dbus-adaptor \
147 update_engine-dbus-libcros-client \
148 update_engine_client-dbus-proxies \
149 $(ue_libupdate_engine_exported_static_libraries) \
150 $(ue_update_metadata_protos_exported_static_libraries)
151LOCAL_SHARED_LIBRARIES := \
152 $(ue_common_shared_libraries) \
153 $(ue_libupdate_engine_exported_shared_libraries) \
154 $(ue_update_metadata_protos_exported_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700155LOCAL_SRC_FILES := \
156 action_processor.cc \
157 boot_control_android.cc \
David Zeuthen6eddf262015-10-16 15:23:53 -0400158 boot_control_stub.cc \
Alex Deymod5561a52015-09-03 23:17:52 -0700159 bzip_extent_writer.cc \
160 certificate_checker.cc \
161 chrome_browser_proxy_resolver.cc \
162 clock.cc \
163 connection_manager.cc \
164 constants.cc \
165 daemon.cc \
166 dbus_service.cc \
167 delta_performer.cc \
168 download_action.cc \
169 extent_writer.cc \
170 file_descriptor.cc \
171 file_writer.cc \
172 filesystem_verifier_action.cc \
173 hardware_android.cc \
174 http_common.cc \
175 http_fetcher.cc \
176 hwid_override.cc \
Alex Deymo85616652015-10-15 18:48:31 -0700177 image_properties_android.cc \
Alex Deymod5561a52015-09-03 23:17:52 -0700178 install_plan.cc \
179 libcros_proxy.cc \
180 libcurl_http_fetcher.cc \
181 metrics.cc \
182 multi_range_http_fetcher.cc \
183 omaha_hash_calculator.cc \
184 omaha_request_action.cc \
185 omaha_request_params.cc \
186 omaha_response_handler_action.cc \
187 p2p_manager.cc \
188 payload_constants.cc \
189 payload_state.cc \
190 payload_verifier.cc \
Alex Deymoac41a822015-09-15 20:52:53 -0700191 platform_constants_android.cc \
Alex Deymod5561a52015-09-03 23:17:52 -0700192 postinstall_runner_action.cc \
193 prefs.cc \
194 proxy_resolver.cc \
195 real_system_state.cc \
196 shill_proxy.cc \
197 subprocess.cc \
198 terminator.cc \
199 update_attempter.cc \
200 update_manager/boxed_value.cc \
201 update_manager/chromeos_policy.cc \
202 update_manager/default_policy.cc \
203 update_manager/evaluation_context.cc \
204 update_manager/policy.cc \
205 update_manager/real_config_provider.cc \
206 update_manager/real_device_policy_provider.cc \
207 update_manager/real_random_provider.cc \
208 update_manager/real_shill_provider.cc \
209 update_manager/real_system_provider.cc \
210 update_manager/real_time_provider.cc \
211 update_manager/real_updater_provider.cc \
212 update_manager/state_factory.cc \
213 update_manager/update_manager.cc \
Christopher Wileycc8ce0e2015-10-01 16:48:47 -0700214 update_status_utils.cc \
Alex Deymo2e71f902015-09-30 01:25:48 -0700215 utils.cc \
216 xz_extent_writer.cc
Alex Deymod5561a52015-09-03 23:17:52 -0700217include $(BUILD_STATIC_LIBRARY)
218
219# update_engine (type: executable)
220# ========================================================
221# update_engine daemon.
222include $(CLEAR_VARS)
223LOCAL_MODULE := update_engine
224LOCAL_MODULE_CLASS := EXECUTABLES
Alex Deymoc372ab62015-10-29 00:43:26 -0700225LOCAL_CPP_EXTENSION := .cc
226LOCAL_RTTI_FLAG := -frtti
227LOCAL_CLANG := true
228LOCAL_CFLAGS := $(ue_common_cflags)
229LOCAL_CPPFLAGS := $(ue_common_cppflags)
230LOCAL_LDFLAGS := $(ue_common_ldflags)
231LOCAL_C_INCLUDES := \
232 $(ue_common_c_includes) \
233 $(ue_libupdate_engine_exported_c_includes)
234LOCAL_STATIC_LIBRARIES := \
Alex Deymod5561a52015-09-03 23:17:52 -0700235 libupdate_engine \
Alex Deymoc372ab62015-10-29 00:43:26 -0700236 $(ue_libupdate_engine_exported_static_libraries)
237LOCAL_SHARED_LIBRARIES := \
238 $(ue_common_shared_libraries) \
239 $(ue_libupdate_engine_exported_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700240LOCAL_SRC_FILES := \
241 main.cc
Gilad Arnold70141f22015-09-17 09:06:30 -0700242LOCAL_INIT_RC := update_engine.rc
Alex Deymod5561a52015-09-03 23:17:52 -0700243include $(BUILD_EXECUTABLE)
244
245# update_engine_client (type: executable)
246# ========================================================
247# update_engine console client.
248include $(CLEAR_VARS)
249LOCAL_MODULE := update_engine_client
250LOCAL_MODULE_CLASS := EXECUTABLES
Alex Deymoc372ab62015-10-29 00:43:26 -0700251LOCAL_CPP_EXTENSION := .cc
252LOCAL_RTTI_FLAG := -frtti
253LOCAL_CLANG := true
254LOCAL_CFLAGS := $(ue_common_cflags)
255LOCAL_CPPFLAGS := $(ue_common_cppflags)
256LOCAL_LDFLAGS := $(ue_common_ldflags)
257LOCAL_C_INCLUDES := \
258 $(ue_common_c_includes) \
Alex Deymod5561a52015-09-03 23:17:52 -0700259 $(LOCAL_PATH)/include
Alex Deymoc372ab62015-10-29 00:43:26 -0700260LOCAL_STATIC_LIBRARIES := update_engine_client-dbus-proxies
261LOCAL_SHARED_LIBRARIES := $(ue_common_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700262LOCAL_SRC_FILES := \
263 update_engine_client.cc
Alex Deymod5561a52015-09-03 23:17:52 -0700264include $(BUILD_EXECUTABLE)
265
266# libpayload_generator (type: static_library)
267# ========================================================
268# server-side code. This is used for delta_generator and unittests but not
269# for any client code.
Alex Deymoc372ab62015-10-29 00:43:26 -0700270ue_libpayload_generator_exported_c_includes := \
271 $(ue_libupdate_engine_exported_c_includes)
272ue_libpayload_generator_exported_static_libraries := \
273 libupdate_engine \
274 update_metadata-protos \
275 $(ue_libupdate_engine_exported_static_libraries) \
276 $(ue_update_metadata_protos_exported_static_libraries)
277ue_libpayload_generator_exported_shared_libraries := \
278 libext2fs \
279 $(ue_libupdate_engine_exported_shared_libraries) \
280 $(ue_update_metadata_protos_exported_shared_libraries)
281
Alex Deymod5561a52015-09-03 23:17:52 -0700282include $(CLEAR_VARS)
283LOCAL_MODULE := libpayload_generator
284LOCAL_MODULE_CLASS := STATIC_LIBRARIES
Alex Deymoc372ab62015-10-29 00:43:26 -0700285LOCAL_CPP_EXTENSION := .cc
286LOCAL_RTTI_FLAG := -frtti
287LOCAL_CLANG := true
288LOCAL_EXPORT_C_INCLUDE_DIRS := $(ue_libpayload_generator_exported_c_includes)
289LOCAL_CFLAGS := $(ue_common_cflags)
290LOCAL_CPPFLAGS := $(ue_common_cppflags)
291LOCAL_LDFLAGS := $(ue_common_ldflags)
292LOCAL_C_INCLUDES := \
293 $(ue_common_c_includes) \
294 $(ue_libupdate_engine_exported_c_includes)
295LOCAL_STATIC_LIBRARIES := \
Alex Deymod5561a52015-09-03 23:17:52 -0700296 libupdate_engine \
Alex Deymod5561a52015-09-03 23:17:52 -0700297 update_metadata-protos \
Alex Deymoc372ab62015-10-29 00:43:26 -0700298 $(ue_libupdate_engine_exported_static_libraries) \
299 $(ue_update_metadata_protos_exported_static_libraries)
300LOCAL_SHARED_LIBRARIES := \
301 $(ue_common_shared_libraries) \
302 $(ue_libpayload_generator_exported_shared_libraries) \
303 $(ue_libupdate_engine_exported_shared_libraries) \
304 $(ue_update_metadata_protos_exported_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700305LOCAL_SRC_FILES := \
306 payload_generator/ab_generator.cc \
307 payload_generator/annotated_operation.cc \
308 payload_generator/blob_file_writer.cc \
309 payload_generator/block_mapping.cc \
Alex Deymo0bc26112015-10-19 20:54:57 -0700310 payload_generator/bzip.cc \
Alex Deymod5561a52015-09-03 23:17:52 -0700311 payload_generator/cycle_breaker.cc \
312 payload_generator/delta_diff_generator.cc \
313 payload_generator/delta_diff_utils.cc \
314 payload_generator/ext2_filesystem.cc \
315 payload_generator/extent_ranges.cc \
316 payload_generator/extent_utils.cc \
317 payload_generator/full_update_generator.cc \
318 payload_generator/graph_types.cc \
319 payload_generator/graph_utils.cc \
320 payload_generator/inplace_generator.cc \
321 payload_generator/payload_file.cc \
322 payload_generator/payload_generation_config.cc \
323 payload_generator/payload_signer.cc \
324 payload_generator/raw_filesystem.cc \
325 payload_generator/tarjan.cc \
326 payload_generator/topological_sort.cc
Alex Deymod5561a52015-09-03 23:17:52 -0700327include $(BUILD_STATIC_LIBRARY)
328
329# delta_generator (type: executable)
330# ========================================================
331# server-side delta generator.
332include $(CLEAR_VARS)
333LOCAL_MODULE := delta_generator
334LOCAL_MODULE_CLASS := EXECUTABLES
Alex Deymoc372ab62015-10-29 00:43:26 -0700335LOCAL_CPP_EXTENSION := .cc
336LOCAL_RTTI_FLAG := -frtti
337LOCAL_CLANG := true
338LOCAL_CFLAGS := $(ue_common_cflags)
339LOCAL_CPPFLAGS := $(ue_common_cppflags)
340LOCAL_LDFLAGS := $(ue_common_ldflags)
341LOCAL_C_INCLUDES := \
342 $(ue_common_c_includes) \
343 $(ue_libupdate_engine_exported_c_includes) \
344 $(ue_libpayload_generator_exported_c_includes)
345LOCAL_STATIC_LIBRARIES := \
Alex Deymod5561a52015-09-03 23:17:52 -0700346 libupdate_engine \
Alex Deymoc372ab62015-10-29 00:43:26 -0700347 libpayload_generator \
348 $(ue_libupdate_engine_exported_static_libraries) \
349 $(ue_libpayload_generator_exported_static_libraries)
350LOCAL_SHARED_LIBRARIES := \
351 $(ue_common_shared_libraries) \
352 $(ue_libupdate_engine_exported_shared_libraries) \
353 $(ue_libpayload_generator_exported_shared_libraries)
Alex Deymod5561a52015-09-03 23:17:52 -0700354LOCAL_SRC_FILES := \
355 payload_generator/generate_delta_main.cc
Alex Deymod5561a52015-09-03 23:17:52 -0700356include $(BUILD_EXECUTABLE)
357
Christopher Wiley16daa082015-10-01 17:18:40 -0700358# libupdate_engine_client
359# ========================================================
360include $(CLEAR_VARS)
361LOCAL_MODULE := libupdate_engine_client
362LOCAL_RTTI_FLAG := -frtti
363LOCAL_CFLAGS := \
364 -Wall \
365 -Werror \
366 -Wno-unused-parameter
367LOCAL_CLANG := true
368LOCAL_CPP_EXTENSION := .cc
369LOCAL_C_INCLUDES := \
370 $(LOCAL_PATH)/client_library/include \
371 external/cros/system_api/dbus \
372 system \
373 external/gtest/include
374LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/client_library/include
375LOCAL_SHARED_LIBRARIES := \
376 libchrome \
377 libchrome-dbus \
Alex Vakulenko1bab5a82015-10-27 11:47:28 -0700378 libbrillo \
379 libbrillo-dbus
Christopher Wiley16daa082015-10-01 17:18:40 -0700380LOCAL_STATIC_LIBRARIES := \
381 update_engine_client-dbus-proxies
382LOCAL_SRC_FILES := \
383 client_library/client.cc \
384 client_library/client_impl.cc \
385 update_status_utils.cc
386include $(BUILD_SHARED_LIBRARY)
387
Gaurav Shah263614f2015-09-24 14:20:38 -0700388
389# Update payload signing public key.
390# ========================================================
391include $(CLEAR_VARS)
392LOCAL_MODULE := brillo-update-payload-key
393LOCAL_MODULE_CLASS := ETC
394LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/update_engine
395LOCAL_MODULE_STEM := update-payload-key.pub.pem
396LOCAL_SRC_FILES := update_payload_key/brillo-update-payload-key.pub.pem
397LOCAL_BUILT_MODULE_STEM := update_payload_key/brillo-update-payload-key.pub.pem
398include $(BUILD_PREBUILT)