1# Copyright 2009 The Android Open Source Project 2# 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. 14 15LOCAL_PATH := $(call my-dir) 16 17tune2fs_static_libraries := \ 18 libext2_com_err \ 19 libext2_blkid \ 20 libext2_quota \ 21 libext2_uuid \ 22 libext2_e2p \ 23 libext2fs 24 25updater_common_static_libraries := \ 26 libapplypatch \ 27 libbspatch \ 28 libedify \ 29 libziparchive \ 30 libotautil \ 31 libbootloader_message \ 32 libutils \ 33 libmounts \ 34 libotafault \ 35 libext4_utils \ 36 libfec \ 37 libfec_rs \ 38 libfs_mgr \ 39 liblog \ 40 libselinux \ 41 libsparse \ 42 libsquashfs_utils \ 43 libbz \ 44 libz \ 45 libbase \ 46 libcrypto \ 47 libcrypto_utils \ 48 libcutils \ 49 libtune2fs \ 50 libbrotli \ 51 $(tune2fs_static_libraries) 52 53# libupdater (static library) 54# =============================== 55include $(CLEAR_VARS) 56 57LOCAL_MODULE := libupdater 58 59LOCAL_SRC_FILES := \ 60 install.cpp \ 61 blockimg.cpp 62 63LOCAL_C_INCLUDES := \ 64 $(LOCAL_PATH)/.. \ 65 $(LOCAL_PATH)/include \ 66 external/e2fsprogs/misc 67 68LOCAL_CFLAGS := \ 69 -Wall \ 70 -Werror 71 72LOCAL_EXPORT_C_INCLUDE_DIRS := \ 73 $(LOCAL_PATH)/include 74 75LOCAL_STATIC_LIBRARIES := \ 76 $(updater_common_static_libraries) 77 78include $(BUILD_STATIC_LIBRARY) 79 80# updater (static executable) 81# =============================== 82include $(CLEAR_VARS) 83 84LOCAL_MODULE := updater 85 86LOCAL_SRC_FILES := \ 87 updater.cpp 88 89LOCAL_C_INCLUDES := \ 90 $(LOCAL_PATH)/.. \ 91 $(LOCAL_PATH)/include 92 93LOCAL_CFLAGS := \ 94 -Wall \ 95 -Werror 96 97LOCAL_STATIC_LIBRARIES := \ 98 libupdater \ 99 $(TARGET_RECOVERY_UPDATER_LIBS) \ 100 $(TARGET_RECOVERY_UPDATER_EXTRA_LIBS) \ 101 $(updater_common_static_libraries) 102 103# 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 114LOCAL_MODULE_CLASS := EXECUTABLES 115inc := $(call local-generated-sources-dir)/register.inc 116 117$(inc) : libs := $(TARGET_RECOVERY_UPDATER_LIBS) 118$(inc) : 119 $(hide) mkdir -p $(dir $@) 120 $(hide) echo "" > $@ 121 $(hide) $(foreach lib,$(libs),echo "extern void Register_$(lib)(void);" >> $@;) 122 $(hide) echo "void RegisterDeviceExtensions() {" >> $@ 123 $(hide) $(foreach lib,$(libs),echo " Register_$(lib)();" >> $@;) 124 $(hide) echo "}" >> $@ 125 126LOCAL_GENERATED_SOURCES := $(inc) 127 128inc := 129 130LOCAL_FORCE_STATIC_EXECUTABLE := true 131 132include $(BUILD_EXECUTABLE) 133