1 # Copyright (C) 2014 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 LOCAL_PATH:= $(call my-dir) 16 # Don't include in unbundled build. 17 ifeq ($(TARGET_BUILD_APPS),) 18 19 SUPPORT_CURRENT_SDK_VERSION := current 20 21 ########################################################### 22 # Find all of the files in the given subdirs that match the 23 # specified pattern but do not match another pattern. This 24 # function uses $(1) instead of LOCAL_PATH as the base. 25 # $(1): the base dir, relative to the root of the source tree. 26 # $(2): the file name pattern to match. 27 # $(3): the file name pattern to exclude. 28 # $(4): a list of subdirs of the base dir. 29 # Returns: a list of paths relative to the base dir. 30 ########################################################### 31 32 define find-files-in-subdirs-exclude 33 $(sort $(patsubst ./%,%, \ 34 $(shell cd $(1) ; \ 35 find -L $(4) -name $(2) -and -not -name $(3) -and -not -name ".*") \ 36 )) 37 endef 38 39 ########################################################### 40 ## Find all of the files under the named directories where 41 ## the file name matches the specified pattern but does not 42 ## match another pattern. Meant to be used like: 43 ## SRC_FILES := $(call all-named-files-under,.*\.h,src tests) 44 ########################################################### 45 46 define all-named-files-under-exclude 47 $(call find-files-in-subdirs-exclude,$(LOCAL_PATH),"$(1)","$(2)",$(3)) 48 endef 49 50 ########################################################### 51 ## Find all of the files under the current directory where 52 ## the file name matches the specified pattern but does not 53 ## match another pattern. 54 ########################################################### 55 56 define all-subdir-named-files-exclude 57 $(call all-named-files-under-exclude,$(1),$(2),.) 58 endef 59 60 # Pre-process support library AIDLs 61 aidl_files := $(addprefix $(LOCAL_PATH)/, $(call all-subdir-named-files-exclude,*.aidl,I*.aidl)) 62 support-aidl := $(TARGET_OUT_COMMON_INTERMEDIATES)/support.aidl 63 $(support-aidl): $(aidl_files) | $(AIDL) 64 $(AIDL) --preprocess $@ $(aidl_files) 65 66 # Build all support libraries 67 include $(call all-makefiles-under,$(LOCAL_PATH)) 68 69 # Clear out variables 70 SUPPORT_CURRENT_SDK_VERSION := 71 72 endif 73