blob: 3c1d0d41f224765fa63dae1c3302b4f1906033f4 [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 \
21 libext2_uuid_static \
22 libext2_e2p \
23 libext2fs
24
Tao Bao0c7839a2016-10-10 15:48:37 -070025updater_common_static_libraries := \
26 libapplypatch \
27 libedify \
Tianjie Xu8cf5c8f2016-09-08 20:10:11 -070028 libziparchive \
29 libotautil \
30 libutils \
Tao Bao0c7839a2016-10-10 15:48:37 -070031 libmounts \
32 libotafault \
33 libext4_utils_static \
34 libfec \
35 libfec_rs \
36 liblog \
37 libselinux \
38 libsparse_static \
39 libsquashfs_utils \
40 libbz \
41 libz \
42 libbase \
43 libcrypto \
44 libcrypto_utils \
45 libcutils \
Tao Baod80a9982016-03-03 11:43:47 -080046 libtune2fs \
47 $(tune2fs_static_libraries)
Sami Tolvanen0a7b4732015-06-25 10:25:36 +010048
Tao Bao0c7839a2016-10-10 15:48:37 -070049# libupdater (static library)
50# ===============================
51include $(CLEAR_VARS)
Stephen Smalley779701d2012-02-09 14:13:23 -050052
Tao Bao0c7839a2016-10-10 15:48:37 -070053LOCAL_MODULE := libupdater
54
55LOCAL_SRC_FILES := \
56 install.cpp \
57 blockimg.cpp
58
59LOCAL_C_INCLUDES := \
60 $(LOCAL_PATH)/.. \
61 $(LOCAL_PATH)/include \
62 external/e2fsprogs/misc
63
64LOCAL_CFLAGS := \
65 -Wno-unused-parameter \
66 -Werror
67
68LOCAL_EXPORT_C_INCLUDE_DIRS := \
69 $(LOCAL_PATH)/include
70
71LOCAL_STATIC_LIBRARIES := \
72 $(updater_common_static_libraries)
73
74include $(BUILD_STATIC_LIBRARY)
75
76# updater (static executable)
77# ===============================
78include $(CLEAR_VARS)
79
80LOCAL_MODULE := updater
81
82LOCAL_SRC_FILES := \
83 updater.cpp
84
85LOCAL_C_INCLUDES := \
86 $(LOCAL_PATH)/.. \
87 $(LOCAL_PATH)/include
88
89LOCAL_CFLAGS := \
90 -Wno-unused-parameter \
91 -Werror
92
93LOCAL_STATIC_LIBRARIES := \
94 libupdater \
95 $(TARGET_RECOVERY_UPDATER_LIBS) \
96 $(TARGET_RECOVERY_UPDATER_EXTRA_LIBS) \
97 $(updater_common_static_libraries)
Doug Zongker9931f7f2009-06-10 14:11:53 -070098
Doug Zongker2b0fdc62009-06-19 11:22:06 -070099# Each library in TARGET_RECOVERY_UPDATER_LIBS should have a function
100# named "Register_<libname>()". Here we emit a little C function that
101# gets #included by updater.c. It calls all those registration
102# functions.
103
104# Devices can also add libraries to TARGET_RECOVERY_UPDATER_EXTRA_LIBS.
105# These libs are also linked in with updater, but we don't try to call
106# any sort of registration function for these. Use this variable for
107# any subsidiary static libraries required for your registered
108# extension libs.
109
110inc := $(call intermediates-dir-for,PACKAGING,updater_extensions)/register.inc
111
Ying Wangeef790d2012-06-11 14:53:08 -0700112# Encode the value of TARGET_RECOVERY_UPDATER_LIBS into the filename of the dependency.
113# So if TARGET_RECOVERY_UPDATER_LIBS is changed, a new dependency file will be generated.
114# Note that we have to remove any existing depency files before creating new one,
115# so no obsolete dependecy file gets used if you switch back to an old value.
116inc_dep_file := $(inc).dep.$(subst $(space),-,$(sort $(TARGET_RECOVERY_UPDATER_LIBS)))
117$(inc_dep_file): stem := $(inc).dep
118$(inc_dep_file) :
119 $(hide) mkdir -p $(dir $@)
120 $(hide) rm -f $(stem).*
121 $(hide) touch $@
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700122
123$(inc) : libs := $(TARGET_RECOVERY_UPDATER_LIBS)
Ying Wangeef790d2012-06-11 14:53:08 -0700124$(inc) : $(inc_dep_file)
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700125 $(hide) mkdir -p $(dir $@)
126 $(hide) echo "" > $@
Michael Ward6242a8b2011-07-14 15:06:12 -0700127 $(hide) $(foreach lib,$(libs),echo "extern void Register_$(lib)(void);" >> $@;)
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700128 $(hide) echo "void RegisterDeviceExtensions() {" >> $@
Michael Ward6242a8b2011-07-14 15:06:12 -0700129 $(hide) $(foreach lib,$(libs),echo " Register_$(lib)();" >> $@;)
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700130 $(hide) echo "}" >> $@
131
Bruce Beare4c3c7a92014-09-12 09:09:52 -0700132$(call intermediates-dir-for,EXECUTABLES,updater,,,$(TARGET_PREFER_32_BIT))/updater.o : $(inc)
Doug Zongker2b0fdc62009-06-19 11:22:06 -0700133LOCAL_C_INCLUDES += $(dir $(inc))
134
Ying Wangeef790d2012-06-11 14:53:08 -0700135inc :=
136inc_dep_file :=
137
Doug Zongker9931f7f2009-06-10 14:11:53 -0700138LOCAL_FORCE_STATIC_EXECUTABLE := true
139
140include $(BUILD_EXECUTABLE)