轉載自 http://www.humbug.in/2012/makefile-check-if-a-file-exists-using-wildcard-function/
The following snippet of code can be used to check for the existence of a file from within a Makefile.
ifneq ("$(wildcard $(PATH_TO_FILE))","") FILE_EXISTS = 1 else FILE_EXISTS = 0 endif
Quoting from make documentation.
$(wildcard
pattern
)
The argument
pattern
is a file name pattern, typically containing
wildcard characters (as in shell file name patterns). The result of
wildcard
is a space-separated list of the names of existing files
that match the pattern.
In this present case, we are not using any wildcards, but the absolute path to the file.
********************************************************************************************************
If file1
does not exist then $(wildcard file1)
will evaluate to an empty string.
ifeq ($(wildcard file1),) CLEAN_SRC = else CLEAN_SRC = *.h file3 endif