Home | History | Annotate | Download | only in core
      1 # Copyright (C) 2010 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 #
     15 
     16 # this file is included from prebuilt-shared-library.mk or
     17 # prebuilt-static-library.mk to declare prebuilt library binaries.
     18 #
     19 
     20 $(call assert-defined, LOCAL_BUILD_SCRIPT LOCAL_MAKEFILE LOCAL_PREBUILT_PREFIX LOCAL_PREBUILT_SUFFIX)
     21 
     22 $(call check-defined-LOCAL_MODULE,$(LOCAL_BUILD_SCRIPT))
     23 $(call check-LOCAL_MODULE,$(LOCAL_MAKEFILE))
     24 $(call check-LOCAL_MODULE_FILENAME)
     25 
     26 # Check that LOCAL_SRC_FILES contains only the path to one library
     27 ifneq ($(words $(LOCAL_SRC_FILES)),1)
     28 $(call __ndk_info,ERROR:$(LOCAL_MAKEFILE):$(LOCAL_MODULE): The LOCAL_SRC_FILES for a prebuilt library should only contain one item))
     29 $(call __ndk_error,Aborting)
     30 endif
     31 
     32 bad_prebuilts := $(filter-out %$(LOCAL_PREBUILT_SUFFIX),$(LOCAL_SRC_FILES))
     33 ifdef bad_prebuilts
     34 $(call __ndk_info,ERROR:$(LOCAL_MAKEFILE):$(LOCAL_MODULE): LOCAL_SRC_FILES should point to a file ending with "$(LOCAL_PREBUILT_SUFFIX)")
     35 $(call __ndk_info,The following file is unsupported: $(bad_prebuilts))
     36 $(call __ndk_error,Aborting)
     37 endif
     38 
     39 prebuilt_path := $(call local-prebuilt-path,$(LOCAL_SRC_FILES))
     40 prebuilt := $(strip $(wildcard $(prebuilt_path)))
     41 
     42 ifndef prebuilt
     43 $(call __ndk_info,ERROR:$(LOCAL_MAKEFILE):$(LOCAL_MODULE): LOCAL_SRC_FILES points to a missing file)
     44 $(call __ndk_info,Check that $(prebuilt_path) exists, or that its path is correct)
     45 $(call __ndk_error,Aborting)
     46 endif
     47 
     48 # If LOCAL_MODULE_FILENAME is defined, it will be used to name the file
     49 # in the TARGET_OUT directory, and then the installation one. Note that
     50 # it shouldn't have an .a or .so extension nor contain directory separators.
     51 #
     52 # If the variable is not defined, we determine its value from LOCAL_SRC_FILES
     53 #
     54 LOCAL_MODULE_FILENAME := $(strip $(LOCAL_MODULE_FILENAME))
     55 ifndef LOCAL_MODULE_FILENAME
     56     LOCAL_MODULE_FILENAME := $(notdir $(LOCAL_SRC_FILES))
     57     LOCAL_MODULE_FILENAME := $(LOCAL_MODULE_FILENAME:%$(LOCAL_PREBUILT_SUFFIX)=%)
     58 endif
     59 $(eval $(call ev-check-module-filename))
     60 
     61 # If LOCAL_BUILT_MODULE is not defined, then ensure that the prebuilt is
     62 # copied to TARGET_OUT during the build.
     63 LOCAL_BUILT_MODULE := $(strip $(LOCAL_BUILT_MODULE))
     64 ifndef LOCAL_BUILT_MODULE
     65   LOCAL_BUILT_MODULE := $(TARGET_OUT)/$(LOCAL_MODULE_FILENAME)$(LOCAL_PREBUILT_SUFFIX)
     66   LOCAL_OBJECTS      := $(prebuilt)
     67 
     68   $(LOCAL_BUILT_MODULE): $(LOCAL_OBJECTS)
     69 endif
     70 
     71 LOCAL_OBJS_DIR  := $(TARGET_OBJS)/$(LOCAL_MODULE)
     72 LOCAL_SRC_FILES :=
     73 
     74 include $(BUILD_SYSTEM)/build-module.mk
     75