我试图为我的这个项目创建一个makefile,但我对这个概念很陌生。我有一个每个项目的makefile,以及我主目录中的一个总体make文件,我可以调用它与所有其他makefile进行通信。
我有几个我命名的文件" test"帮我调试我的项目。默认情况下,我希望将这些测试文件包含在我的构建中,但是使用宏(例如:make TEST_FILES = false),我想省略构建中的文件。
是否有一种方便的方法可以省略所有名为" test"?
的文件提前谢谢!
答案 0 :(得分:1)
尝试这样的事情:
# 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
参考文献: