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