Makefile宏忽略所有名为test的文件

Makefile宏忽略所有名为test的文件,makefile,macros,Makefile,Macros,我正试图为我的这个项目创建一个makefile,但我对这个概念还很陌生。每个项目都有一个makefile,在我的主目录中有一个全局makefile,我可以调用它来与所有其他makefile进行通信 我有几个名为“test”的文件来帮助我调试我的项目。默认情况下,我希望在构建中包含这些测试文件,但对于宏(例如:make test_files=false),我希望在构建中忽略这些文件 是否有一种方便的方法可以省略所有名为“test”的文件 提前谢谢你 试试这样的方法: # Makefile ife

我正试图为我的这个项目创建一个makefile,但我对这个概念还很陌生。每个项目都有一个makefile,在我的主目录中有一个全局makefile,我可以调用它来与所有其他makefile进行通信

我有几个名为“test”的文件来帮助我调试我的项目。默认情况下,我希望在构建中包含这些测试文件,但对于宏(例如:make test_files=false),我希望在构建中忽略这些文件

是否有一种方便的方法可以省略所有名为“test”的文件


提前谢谢你

试试这样的方法:

# 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,而不是源文件。编辑!