我在Android.mk构建文件中使用Make's wildcard
function时出现问题。
我的其他makefile使用类似这样的行来指定“此文件夹中的所有.c文件”:
CFILES := $(wildcard *.c)
在我的Android.mk文件中,我尝试了这个:
LOCAL_SRC_FILES := $(wildcard *.c)
然而,这与不包括任何文件的情况具有相同的效果。
如果我手动包含文件,那么构建就像我期望的那样工作。
我想知道在评估此语句时,当前工作目录是否不是我的项目路径?如果是这样,我可以使用$(call my-dir)
和通配符函数的组合来获取我想要的列表吗?
答案 0 :(得分:22)
以下是我过去使用过的内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mylibrary
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.c)
include $(BUILD_STATIC_LIBRARY)
'my-dir'是构建系统提供的一个宏,它返回包含Android.mk文件的目录路径。
答案 1 :(得分:2)
如果您对“此目录”的定义是“包含此makefile的目录”,那么
$(wildcard $(dir $(lastword $(MAKEFILE_LIST)))*.c)
应该工作。
(警告:我不知道Android)