xref: /aosp_15_r20/bootable/deprecated-ota/updater/Android.mk (revision acea8879c968027b49a027136800575dd9783ddf)
1*acea8879SAndroid Build Coastguard Worker# Copyright 2009 The Android Open Source Project
2*acea8879SAndroid Build Coastguard Worker#
3*acea8879SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*acea8879SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*acea8879SAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*acea8879SAndroid Build Coastguard Worker#
7*acea8879SAndroid Build Coastguard Worker#      http://www.apache.org/licenses/LICENSE-2.0
8*acea8879SAndroid Build Coastguard Worker#
9*acea8879SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*acea8879SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*acea8879SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*acea8879SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*acea8879SAndroid Build Coastguard Worker# limitations under the License.
14*acea8879SAndroid Build Coastguard Worker
15*acea8879SAndroid Build Coastguard WorkerLOCAL_PATH := $(call my-dir)
16*acea8879SAndroid Build Coastguard Worker
17*acea8879SAndroid Build Coastguard Workertune2fs_static_libraries := \
18*acea8879SAndroid Build Coastguard Worker    libext2_com_err \
19*acea8879SAndroid Build Coastguard Worker    libext2_blkid \
20*acea8879SAndroid Build Coastguard Worker    libext2_quota \
21*acea8879SAndroid Build Coastguard Worker    libext2_uuid \
22*acea8879SAndroid Build Coastguard Worker    libext2_e2p \
23*acea8879SAndroid Build Coastguard Worker    libext2fs
24*acea8879SAndroid Build Coastguard Worker
25*acea8879SAndroid Build Coastguard Workerupdater_common_static_libraries := \
26*acea8879SAndroid Build Coastguard Worker    libapplypatch \
27*acea8879SAndroid Build Coastguard Worker    libbootloader_message \
28*acea8879SAndroid Build Coastguard Worker    libbspatch \
29*acea8879SAndroid Build Coastguard Worker    libedify \
30*acea8879SAndroid Build Coastguard Worker    libotautil \
31*acea8879SAndroid Build Coastguard Worker    libext4_utils \
32*acea8879SAndroid Build Coastguard Worker    libdm \
33*acea8879SAndroid Build Coastguard Worker    libfec \
34*acea8879SAndroid Build Coastguard Worker    libfec_rs \
35*acea8879SAndroid Build Coastguard Worker    libavb \
36*acea8879SAndroid Build Coastguard Worker    libverity_tree \
37*acea8879SAndroid Build Coastguard Worker    liblog \
38*acea8879SAndroid Build Coastguard Worker    liblp \
39*acea8879SAndroid Build Coastguard Worker    libselinux \
40*acea8879SAndroid Build Coastguard Worker    libsparse \
41*acea8879SAndroid Build Coastguard Worker    libsquashfs_utils \
42*acea8879SAndroid Build Coastguard Worker    libbrotli \
43*acea8879SAndroid Build Coastguard Worker    libbz \
44*acea8879SAndroid Build Coastguard Worker    libziparchive \
45*acea8879SAndroid Build Coastguard Worker    libz_stable \
46*acea8879SAndroid Build Coastguard Worker    libbase \
47*acea8879SAndroid Build Coastguard Worker    libcrypto_static \
48*acea8879SAndroid Build Coastguard Worker    libcrypto_utils \
49*acea8879SAndroid Build Coastguard Worker    libcutils \
50*acea8879SAndroid Build Coastguard Worker    libutils
51*acea8879SAndroid Build Coastguard Worker
52*acea8879SAndroid Build Coastguard Worker
53*acea8879SAndroid Build Coastguard Worker# Each library in TARGET_RECOVERY_UPDATER_LIBS should have a function
54*acea8879SAndroid Build Coastguard Worker# named "Register_<libname>()".  Here we emit a little C function that
55*acea8879SAndroid Build Coastguard Worker# gets #included by updater.cpp.  It calls all those registration
56*acea8879SAndroid Build Coastguard Worker# functions.
57*acea8879SAndroid Build Coastguard Worker# $(1): the path to the register.inc file
58*acea8879SAndroid Build Coastguard Worker# $(2): a list of TARGET_RECOVERY_UPDATER_LIBS
59*acea8879SAndroid Build Coastguard Workerdefine generate-register-inc
60*acea8879SAndroid Build Coastguard Worker    $(hide) mkdir -p $(dir $(1))
61*acea8879SAndroid Build Coastguard Worker    $(hide) echo "" > $(1)
62*acea8879SAndroid Build Coastguard Worker    $(hide) $(foreach lib,$(2),echo "extern void Register_$(lib)(void);" >> $(1);)
63*acea8879SAndroid Build Coastguard Worker    $(hide) echo "void RegisterDeviceExtensions() {" >> $(1)
64*acea8879SAndroid Build Coastguard Worker    $(hide) $(foreach lib,$(2),echo "  Register_$(lib)();" >> $(1);)
65*acea8879SAndroid Build Coastguard Worker    $(hide) echo "}" >> $(1)
66*acea8879SAndroid Build Coastguard Workerendef
67*acea8879SAndroid Build Coastguard Worker
68*acea8879SAndroid Build Coastguard Worker
69*acea8879SAndroid Build Coastguard Worker# updater (static executable)
70*acea8879SAndroid Build Coastguard Worker# ===============================
71*acea8879SAndroid Build Coastguard Workerinclude $(CLEAR_VARS)
72*acea8879SAndroid Build Coastguard Worker
73*acea8879SAndroid Build Coastguard WorkerLOCAL_MODULE := updater
74*acea8879SAndroid Build Coastguard WorkerLOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
75*acea8879SAndroid Build Coastguard WorkerLOCAL_LICENSE_CONDITIONS := notice
76*acea8879SAndroid Build Coastguard WorkerLOCAL_NOTICE_FILE := $(LOCAL_PATH)/../NOTICE
77*acea8879SAndroid Build Coastguard Worker
78*acea8879SAndroid Build Coastguard WorkerLOCAL_SRC_FILES := \
79*acea8879SAndroid Build Coastguard Worker    updater_main.cpp
80*acea8879SAndroid Build Coastguard Worker
81*acea8879SAndroid Build Coastguard WorkerLOCAL_C_INCLUDES := \
82*acea8879SAndroid Build Coastguard Worker    $(LOCAL_PATH)/include
83*acea8879SAndroid Build Coastguard Worker
84*acea8879SAndroid Build Coastguard WorkerLOCAL_CFLAGS := \
85*acea8879SAndroid Build Coastguard Worker    -Wall \
86*acea8879SAndroid Build Coastguard Worker    -Werror
87*acea8879SAndroid Build Coastguard Worker
88*acea8879SAndroid Build Coastguard WorkerLOCAL_STATIC_LIBRARIES := \
89*acea8879SAndroid Build Coastguard Worker    libupdater_device \
90*acea8879SAndroid Build Coastguard Worker    libupdater_core \
91*acea8879SAndroid Build Coastguard Worker    $(TARGET_RECOVERY_UPDATER_LIBS) \
92*acea8879SAndroid Build Coastguard Worker    $(TARGET_RECOVERY_UPDATER_EXTRA_LIBS) \
93*acea8879SAndroid Build Coastguard Worker    $(updater_common_static_libraries) \
94*acea8879SAndroid Build Coastguard Worker    libfs_mgr \
95*acea8879SAndroid Build Coastguard Worker    libtune2fs \
96*acea8879SAndroid Build Coastguard Worker    $(tune2fs_static_libraries)
97*acea8879SAndroid Build Coastguard Worker
98*acea8879SAndroid Build Coastguard WorkerLOCAL_HEADER_LIBRARIES := libgtest_prod_headers
99*acea8879SAndroid Build Coastguard Worker
100*acea8879SAndroid Build Coastguard WorkerLOCAL_MODULE_CLASS := EXECUTABLES
101*acea8879SAndroid Build Coastguard Workerinc := $(call local-generated-sources-dir)/register.inc
102*acea8879SAndroid Build Coastguard Worker
103*acea8879SAndroid Build Coastguard Worker# Devices can also add libraries to TARGET_RECOVERY_UPDATER_EXTRA_LIBS.
104*acea8879SAndroid Build Coastguard Worker# These libs are also linked in with updater, but we don't try to call
105*acea8879SAndroid Build Coastguard Worker# any sort of registration function for these.  Use this variable for
106*acea8879SAndroid Build Coastguard Worker# any subsidiary static libraries required for your registered
107*acea8879SAndroid Build Coastguard Worker# extension libs.
108*acea8879SAndroid Build Coastguard Worker$(inc) : libs := $(TARGET_RECOVERY_UPDATER_LIBS)
109*acea8879SAndroid Build Coastguard Worker$(inc) :
110*acea8879SAndroid Build Coastguard Worker	$(call generate-register-inc,$@,$(libs))
111*acea8879SAndroid Build Coastguard Worker
112*acea8879SAndroid Build Coastguard WorkerLOCAL_GENERATED_SOURCES := $(inc)
113*acea8879SAndroid Build Coastguard Worker
114*acea8879SAndroid Build Coastguard Workerinc :=
115*acea8879SAndroid Build Coastguard Worker
116*acea8879SAndroid Build Coastguard WorkerLOCAL_FORCE_STATIC_EXECUTABLE := true
117*acea8879SAndroid Build Coastguard Worker
118*acea8879SAndroid Build Coastguard Workerinclude $(BUILD_EXECUTABLE)
119