正如我所知,Makefile中的$wildcard函数用于扩展*或?。例如,
$(wildcard *.c)
扩展到所有扩展名为.c的文件。但在linux Makefile中,我看到了许多没有*或?的通配符函数实例?。例如
ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
为什么我们不能只做
ARCH_POSTLINK := $(srctree)/arch/$(SRCARCH)/Makefile.postlink
我不认为$(srctree(和$(SRCACH(在这里被扩展为多个值。
除了扩展globbing字符外,wildcard
还可以用于确定文件是否存在。
ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
这里ARCH_POSTLINK
被设置为$(srctree)/arch/$(SRCARCH)/Makefile.postlink
,当且仅当该文件存在;否则它被设置为空字符串。
ARCH_POSTLINK := $(srctree)/arch/$(SRCARCH)/Makefile.postlink
这里ARCH_POSTLINK
被设置为$(srctree)/arch/$(SRCARCH)/Makefile.postlink
,而不管该文件是否存在。