Makefile宏忽略所有名为test的文件
我正试图为我的这个项目创建一个makefile,但我对这个概念还很陌生。每个项目都有一个makefile,在我的主目录中有一个全局makefile,我可以调用它来与所有其他makefile进行通信 我有几个名为“test”的文件来帮助我调试我的项目。默认情况下,我希望在构建中包含这些测试文件,但对于宏(例如:make test_files=false),我希望在构建中忽略这些文件 是否有一种方便的方法可以省略所有名为“test”的文件Makefile宏忽略所有名为test的文件,makefile,macros,Makefile,Macros,我正试图为我的这个项目创建一个makefile,但我对这个概念还很陌生。每个项目都有一个makefile,在我的主目录中有一个全局makefile,我可以调用它来与所有其他makefile进行通信 我有几个名为“test”的文件来帮助我调试我的项目。默认情况下,我希望在构建中包含这些测试文件,但对于宏(例如:make test_files=false),我希望在构建中忽略这些文件 是否有一种方便的方法可以省略所有名为“test”的文件 提前谢谢你 试试这样的方法: # Makefile ife
提前谢谢你 试试这样的方法:
# Makefile
ifeq ($(TEST_FILES),false)
SOURCES := $(filter-out test%, $(wildcard *.txt))
else
SOURCES := $(wildcard *.txt)
endif
all:
@echo $(SOURCES)
这是什么意思
$ LC_ALL=C ls -nlah && \
> make all && \
> TEST_FILES=false make all
total 72K
drwx------ 2 10335 11111 4.0K May 26 15:36 .
drwxrwxrwt 585 0 0 60K May 26 15:31 ..
-rw-r--r-- 1 10335 11111 157 May 26 15:36 Makefile
-rw-r--r-- 1 10335 11111 0 May 26 14:57 bar.txt
-rw-r--r-- 1 10335 11111 0 May 26 14:57 foo.txt
-rw-r--r-- 1 10335 11111 0 May 26 14:57 qux.txt
-rw-r--r-- 1 10335 11111 0 May 26 15:30 test_bar.txt
-rw-r--r-- 1 10335 11111 0 May 26 15:30 test_foo.txt
-rw-r--r-- 1 10335 11111 0 May 26 15:27 test_qux.txt
bar.txt foo.txt qux.txt test_bar.txt test_foo.txt test_qux.txt
bar.txt foo.txt qux.txt
参考资料:
Makefile
声音。。。不寻常。大多数make
文档假定每个项目都有一个Makefile
;i、 e.,正在构建的软件的最高目录。哦,天哪,这是我一个非常重要的打字错误。它实际上是每个项目的makefile,而不是源文件。编辑!