github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/make/target/product/vndk/Android.mk (about) 1 ifneq ($(BOARD_VNDK_VERSION),) 2 LOCAL_PATH:= $(call my-dir) 3 4 ##################################################################### 5 # Create the list of vndk libraries from the source code. 6 INTERNAL_VNDK_LIB_LIST := $(call intermediates-dir-for,PACKAGING,vndk)/libs.txt 7 $(INTERNAL_VNDK_LIB_LIST): 8 @echo "Generate: $@" 9 @mkdir -p $(dir $@) 10 $(hide) echo -n > $@ 11 $(hide) $(foreach lib, $(filter-out libclang_rt.%,$(LLNDK_LIBRARIES)), \ 12 echo LLNDK: $(lib).so >> $@;) 13 $(hide) $(foreach lib, $(VNDK_SAMEPROCESS_LIBRARIES), \ 14 echo VNDK-SP: $(lib).so >> $@;) 15 $(hide) $(foreach lib, $(filter-out libclang_rt.%,$(VNDK_CORE_LIBRARIES)), \ 16 echo VNDK-core: $(lib).so >> $@;) 17 $(hide) $(foreach lib, $(VNDK_PRIVATE_LIBRARIES), \ 18 echo VNDK-private: $(lib).so >> $@;) 19 20 ##################################################################### 21 # This is the up-to-date list of vndk libs. 22 # TODO(b/62012285): the lib list should be stored somewhere under 23 # /prebuilts/vndk 24 ifeq (REL,$(PLATFORM_VERSION_CODENAME)) 25 LATEST_VNDK_LIB_LIST := $(LOCAL_PATH)/$(PLATFORM_VNDK_VERSION).txt 26 ifeq ($(wildcard $(LATEST_VNDK_LIB_LIST)),) 27 $(error $(LATEST_VNDK_LIB_LIST) file not found. Please copy "$(LOCAL_PATH)/current.txt" to "$(LATEST_VNDK_LIB_LIST)" and commit a CL for release branch) 28 endif 29 else 30 LATEST_VNDK_LIB_LIST := $(LOCAL_PATH)/current.txt 31 endif 32 33 ##################################################################### 34 # Check the generate list against the latest list stored in the 35 # source tree 36 .PHONY: check-vndk-list 37 38 # Check if vndk list is changed 39 droidcore: check-vndk-list 40 41 check-vndk-list-timestamp := $(call intermediates-dir-for,PACKAGING,vndk)/check-list-timestamp 42 check-vndk-list: $(check-vndk-list-timestamp) 43 44 _vndk_check_failure_message := " error: VNDK library list has been changed.\n" 45 ifeq (REL,$(PLATFORM_VERSION_CODENAME)) 46 _vndk_check_failure_message += " Changing the VNDK library list is not allowed in API locked branches." 47 else 48 _vndk_check_failure_message += " Run update-vndk-list.sh to update $(LATEST_VNDK_LIB_LIST)" 49 endif 50 51 $(check-vndk-list-timestamp): $(INTERNAL_VNDK_LIB_LIST) $(LATEST_VNDK_LIB_LIST) $(HOST_OUT_EXECUTABLES)/update-vndk-list.sh 52 $(hide) ( diff --old-line-format="Removed %L" \ 53 --new-line-format="Added %L" \ 54 --unchanged-line-format="" \ 55 $(LATEST_VNDK_LIB_LIST) $(INTERNAL_VNDK_LIB_LIST) \ 56 || ( echo -e $(_vndk_check_failure_message); exit 1 )) 57 $(hide) mkdir -p $(dir $@) 58 $(hide) touch $@ 59 60 ##################################################################### 61 # Script to update the latest VNDK lib list 62 include $(CLEAR_VARS) 63 LOCAL_MODULE := update-vndk-list.sh 64 LOCAL_MODULE_CLASS := EXECUTABLES 65 LOCAL_MODULE_STEM := $(LOCAL_MODULE) 66 LOCAL_IS_HOST_MODULE := true 67 include $(BUILD_SYSTEM)/base_rules.mk 68 $(LOCAL_BUILT_MODULE): PRIVATE_INTERNAL_VNDK_LIB_LIST := $(INTERNAL_VNDK_LIB_LIST) 69 $(LOCAL_BUILT_MODULE): PRIVATE_LATEST_VNDK_LIB_LIST := $(LATEST_VNDK_LIB_LIST) 70 $(LOCAL_BUILT_MODULE): 71 @echo "Generate: $@" 72 @mkdir -p $(dir $@) 73 @rm -f $@ 74 $(hide) echo "#!/bin/bash" > $@ 75 ifeq (REL,$(PLATFORM_VERSION_CODENAME)) 76 $(hide) echo "echo Updating VNDK library list is NOT allowed in API locked branches." >> $@; \ 77 echo "exit 1" >> $@ 78 else 79 $(hide) echo "if [ -z \"\$${ANDROID_BUILD_TOP}\" ]; then" >> $@; \ 80 echo " echo Run lunch or choosecombo first" >> $@; \ 81 echo " exit 1" >> $@; \ 82 echo "fi" >> $@; \ 83 echo "cd \$${ANDROID_BUILD_TOP}" >> $@; \ 84 echo "cp $(PRIVATE_INTERNAL_VNDK_LIB_LIST) $(PRIVATE_LATEST_VNDK_LIB_LIST)" >> $@; \ 85 echo "echo $(PRIVATE_LATEST_VNDK_LIB_LIST) updated." >> $@ 86 endif 87 @chmod a+x $@ 88 89 include $(CLEAR_VARS) 90 LOCAL_MODULE := vndk_package 91 LOCAL_REQUIRED_MODULES := \ 92 $(addsuffix .vendor,$(VNDK_CORE_LIBRARIES)) \ 93 $(addsuffix .vendor,$(VNDK_SAMEPROCESS_LIBRARIES)) \ 94 $(LLNDK_LIBRARIES) \ 95 llndk.libraries.txt \ 96 vndksp.libraries.txt 97 include $(BUILD_PHONY_PACKAGE) 98 99 include $(CLEAR_VARS) 100 LOCAL_MODULE := vndk_snapshot_package 101 LOCAL_REQUIRED_MODULES := \ 102 $(foreach vndk_ver,$(PRODUCT_EXTRA_VNDK_VERSIONS),vndk_v$(vndk_ver)_$(TARGET_ARCH)) 103 include $(BUILD_PHONY_PACKAGE) 104 105 endif # BOARD_VNDK_VERSION is set