blob: 78d0bd451c95b9b298d0b623731c53da9e87c99e [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
Tao Baod80a9982016-03-03 11:43:47 -080017tune2fs_static_libraries := \
18 libext2_com_err \
19 libext2_blkid \
20 libext2_quota \
Alex Deymo7c5dbd62017-01-13 17:32:20 -080021 libext2_uuid \
Tao Baod80a9982016-03-03 11:43:47 -080022 libext2_e2p \
23 libext2fs
24
Tao Bao0c7839a2016-10-10 15:48:37 -070025updater_common_static_libraries := \
26 libapplypatch \
Tao Baobedf5fc2016-11-18 12:01:26 -080027 libbootloader_message \
Tao Bao9a319f02018-01-04 13:19:11 -080028 libedify \
Tao Bao0c7839a2016-10-10 15:48:37 -070029 libotafault \
Tao Bao9a319f02018-01-04 13:19:11 -080030 libotautil \
31 libbspatch \
32 libziparchive \
33 libutils \
Alex Deymo31653662017-01-11 14:02:13 -080034 libext4_utils \
Tao Bao0c7839a2016-10-10 15:48:37 -070035 libfec \
36 libfec_rs \
Tianjie Xu69ffa152018-08-01 16:40:00 -070037 libverity_tree \
Tao Baobedf5fc2016-11-18 12:01:26 -080038 libfs_mgr \
Tao Bao6a7e4af2018-06-14 21:57:43 -070039 libgtest_prod \
Tao Bao0c7839a2016-10-10 15:48:37 -070040 liblog \
41 libselinux \
Alex Deymo67f3aa82017-01-11 14:38:20 -080042 libsparse \
Tao Bao0c7839a2016-10-10 15:48:37 -070043 libsquashfs_utils \
44 libbz \
45 libz \
46 libbase \
47 libcrypto \
48 libcrypto_utils \
49 libcutils \
Tao Baod80a9982016-03-03 11:43:47 -080050 libtune2fs \
Tianjie Xu107a34f2017-06-29 17:04:21 -070051 libbrotli \
Tao Baod80a9982016-03-03 11:43:47 -080052 $(tune2fs_static_libraries)
Sami Tolvanen0a7b4732015-06-25 10:25:36 +010053
Tao Bao0c7839a2016-10-10 15:48:37 -070054# libupdater (static library)
55# ===============================
56include $(CLEAR_VARS)
Stephen Smalley779701d2012-02-09 14:13:23 -050057
Tao Bao0c7839a2016-10-10 15:48:37 -070058LOCAL_MODULE := libupdater
59
60LOCAL_SRC_FILES := \
Tao Baoc3901232018-05-21 16:05:56 -070061 commands.cpp \
Tao Bao0c7839a2016-10-10 15:48:37 -070062 install.cpp \
63 blockimg.cpp
64
65LOCAL_C_INCLUDES := \
Tao Bao0c7839a2016-10-10 15:48:37 -070066 $(LOCAL_PATH)/include \
67 external/e2fsprogs/misc
68
69LOCAL_CFLAGS := \
Tianjie Xuc89d1e72017-08-28 14:15:07 -070070 -Wall \
Tao Bao0c7839a2016-10-10 15:48:37 -070071 -Werror
72
73LOCAL_EXPORT_C_INCLUDE_DIRS := \
74 $(LOCAL_PATH)/include
75
76LOCAL_STATIC_LIBRARIES := \
77 $(updater_common_static_libraries)
78
79include $(BUILD_STATIC_LIBRARY)
80
81# updater (static executable)
82# ===============================
83include $(CLEAR_VARS)
84
85LOCAL_MODULE := updater
86
87LOCAL_SRC_FILES := \
88 updater.cpp
89
90LOCAL_C_INCLUDES := \
Tao Bao0c7839a2016-10-10 15:48:37 -070091 $(LOCAL_PATH)/include
92
93LOCAL_CFLAGS := \
Tianjie Xuc89d1e72017-08-28 14:15:07 -070094 -Wall \
Tao Bao0c7839a2016-10-10 15:48:37 -070095 -Werror
96
97LOCAL_STATIC_LIBRARIES := \
98 libupdater \
99 $(TARGET_RECOVERY_UPDATER_LIBS) \
100 $(TARGET_RECOVERY_UPDATER_EXTRA_LIBS) \
101 $(updater_common_static_libraries)
Doug Zongker9931f7f2009-06-10 14:11:53 -0700102
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700103# Each library in TARGET_RECOVERY_UPDATER_LIBS should have a function
104# named "Register_<libname>()". Here we emit a little C function that
105# gets #included by updater.c. It calls all those registration
106# functions.
107
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.
113
Dan Willemsenedec27a2017-03-21 16:41:14 -0700114LOCAL_MODULE_CLASS := EXECUTABLES
115inc := $(call local-generated-sources-dir)/register.inc
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700116
117$(inc) : libs := $(TARGET_RECOVERY_UPDATER_LIBS)
Dan Willemsenedec27a2017-03-21 16:41:14 -0700118$(inc) :
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700119 $(hide) mkdir -p $(dir $@)
120 $(hide) echo "" > $@
Michael Ward6242a8b2011-07-14 15:06:12 -0700121 $(hide) $(foreach lib,$(libs),echo "extern void Register_$(lib)(void);" >> $@;)
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700122 $(hide) echo "void RegisterDeviceExtensions() {" >> $@
Michael Ward6242a8b2011-07-14 15:06:12 -0700123 $(hide) $(foreach lib,$(libs),echo " Register_$(lib)();" >> $@;)
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700124 $(hide) echo "}" >> $@
125
Dan Willemsenedec27a2017-03-21 16:41:14 -0700126LOCAL_GENERATED_SOURCES := $(inc)
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700127
Ying Wangeef790d2012-06-11 14:53:08 -0700128inc :=
Ying Wangeef790d2012-06-11 14:53:08 -0700129
Doug Zongker9931f7f2009-06-10 14:11:53 -0700130LOCAL_FORCE_STATIC_EXECUTABLE := true
131
132include $(BUILD_EXECUTABLE)