blob: 7613c07c94afc3bef003ccb3eb0cb1ed60ed2840 [file] [log] [blame]
Doug Zongker9931f7f2009-06-10 14:11:53 -07001# Copyright 2009 The Android Open Source Project
Tao Baoba9a42a2015-06-23 23:23:33 -07002#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
Doug Zongker9931f7f2009-06-10 14:11:53 -070014
15LOCAL_PATH := $(call my-dir)
16
Ethan Yonker8373cfe2017-09-08 06:50:54 -050017ifneq ($(wildcard external/e2fsprogs/misc/tune2fs.h),)
18 tune2fs_static_libraries := \
19 libext2_com_err \
20 libext2_blkid \
21 libext2_quota \
22 libext2_uuid \
23 libext2_e2p \
24 libext2fs
25 LOCAL_CFLAGS += -DHAVE_LIBTUNE2FS
26else
27 tune2fs_static_libraries :=
28endif
Doug Zongker9931f7f2009-06-10 14:11:53 -070029
Tao Bao0c7839a2016-10-10 15:48:37 -070030updater_common_static_libraries := \
31 libapplypatch \
Tao Baobedf5fc2016-11-18 12:01:26 -080032 libbootloader_message \
Tao Bao0c7839a2016-10-10 15:48:37 -070033 libbspatch \
34 libedify \
Tianjie Xu8cf5c8f2016-09-08 20:10:11 -070035 libotautil \
Alex Deymo31653662017-01-11 14:02:13 -080036 libext4_utils \
Yifan Hong8ff84d72018-12-19 16:21:55 -080037 libdm \
Tao Bao0c7839a2016-10-10 15:48:37 -070038 libfec \
39 libfec_rs \
Tianjie Xu5bb443a2019-11-22 13:46:19 -080040 libavb \
Tianjie Xu69ffa152018-08-01 16:40:00 -070041 libverity_tree \
Tao Bao0c7839a2016-10-10 15:48:37 -070042 liblog \
Yifan Hong8ff84d72018-12-19 16:21:55 -080043 liblp \
Tao Bao0c7839a2016-10-10 15:48:37 -070044 libselinux \
Alex Deymo67f3aa82017-01-11 14:38:20 -080045 libsparse \
Tao Bao0c7839a2016-10-10 15:48:37 -070046 libsquashfs_utils \
Tao Bao673bb6f2018-08-03 20:56:25 -070047 libbrotli \
Tao Bao0c7839a2016-10-10 15:48:37 -070048 libbz \
Tao Bao673bb6f2018-08-03 20:56:25 -070049 libziparchive \
Tao Bao0c7839a2016-10-10 15:48:37 -070050 libz \
51 libbase \
Colin Cross0e643e42019-09-18 11:05:34 -070052 libcrypto_static \
Tao Bao0c7839a2016-10-10 15:48:37 -070053 libcrypto_utils \
54 libcutils \
Tianjie Xuc1a5e262019-05-22 14:34:12 -070055 libutils
56
57
58# Each library in TARGET_RECOVERY_UPDATER_LIBS should have a function
59# named "Register_<libname>()". Here we emit a little C function that
60# gets #included by updater.cpp. It calls all those registration
61# functions.
62# $(1): the path to the register.inc file
63# $(2): a list of TARGET_RECOVERY_UPDATER_LIBS
64define generate-register-inc
65 $(hide) mkdir -p $(dir $(1))
66 $(hide) echo "" > $(1)
67 $(hide) $(foreach lib,$(2),echo "extern void Register_$(lib)(void);" >> $(1);)
68 $(hide) echo "void RegisterDeviceExtensions() {" >> $(1)
69 $(hide) $(foreach lib,$(2),echo " Register_$(lib)();" >> $(1);)
70 $(hide) echo "}" >> $(1)
71endef
72
Sami Tolvanen0a7b4732015-06-25 10:25:36 +010073
Tao Bao0c7839a2016-10-10 15:48:37 -070074# updater (static executable)
75# ===============================
76include $(CLEAR_VARS)
Michael Rungeb278c252014-11-21 00:12:28 -080077
Tao Bao0c7839a2016-10-10 15:48:37 -070078LOCAL_MODULE := updater
Bob Badour29be3f62021-02-12 18:00:57 -080079LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
80LOCAL_LICENSE_CONDITIONS := notice
81LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../NOTICE
Tao Bao0c7839a2016-10-10 15:48:37 -070082
83LOCAL_SRC_FILES := \
Tianjie Xu58d59122019-05-03 01:05:04 -070084 updater_main.cpp
Tao Bao0c7839a2016-10-10 15:48:37 -070085
86LOCAL_C_INCLUDES := \
Tao Bao0c7839a2016-10-10 15:48:37 -070087 $(LOCAL_PATH)/include
88
89LOCAL_CFLAGS := \
Tianjie Xuc89d1e72017-08-28 14:15:07 -070090 -Wall \
Tao Bao0c7839a2016-10-10 15:48:37 -070091 -Werror
92
93LOCAL_STATIC_LIBRARIES := \
Tianjie Xuc1a5e262019-05-22 14:34:12 -070094 libupdater_device \
95 libupdater_core \
Tao Bao0c7839a2016-10-10 15:48:37 -070096 $(TARGET_RECOVERY_UPDATER_LIBS) \
97 $(TARGET_RECOVERY_UPDATER_EXTRA_LIBS) \
Tianjie Xuc1a5e262019-05-22 14:34:12 -070098 $(updater_common_static_libraries) \
99 libfs_mgr \
100 libtune2fs \
101 $(tune2fs_static_libraries)
Doug Zongker9931f7f2009-06-10 14:11:53 -0700102
Elliott Hughesa85d7a02021-04-20 11:58:05 -0700103LOCAL_HEADER_LIBRARIES := libgtest_prod_headers
104
Tianjie Xuc1a5e262019-05-22 14:34:12 -0700105LOCAL_MODULE_CLASS := EXECUTABLES
106inc := $(call local-generated-sources-dir)/register.inc
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700107
108# Devices can also add libraries to TARGET_RECOVERY_UPDATER_EXTRA_LIBS.
109# These libs are also linked in with updater, but we don't try to call
110# any sort of registration function for these. Use this variable for
111# any subsidiary static libraries required for your registered
112# extension libs.
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700113$(inc) : libs := $(TARGET_RECOVERY_UPDATER_LIBS)
Dan Willemsenedec27a2017-03-21 16:41:14 -0700114$(inc) :
Tianjie Xuc1a5e262019-05-22 14:34:12 -0700115 $(call generate-register-inc,$@,$(libs))
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700116
Dan Willemsenedec27a2017-03-21 16:41:14 -0700117LOCAL_GENERATED_SOURCES := $(inc)
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700118
Ying Wangeef790d2012-06-11 14:53:08 -0700119inc :=
Doug Zongker9931f7f2009-06-10 14:11:53 -0700120
121LOCAL_FORCE_STATIC_EXECUTABLE := true
122
123include $(BUILD_EXECUTABLE)