我正在使用gnu make。
我有这样的版本:
MYLIST := $(filter-out $(if $(filter 1,$(exclude_file1)), file1.c),$(wildcard *.c))
效果很好:当我过滤掉“file1.c”时,我设置了环境变量exclude_file1。
现在我想要相反:当没有设置环境变量时,我想要排除file1.c。
你能指出我应该做些什么改变吗?
答案 0 :(得分:0)
MYLIST := $(filter-out $(if $(filter undefined,$(origin exclude_file1)),,file1.c),$(wildcard *.c))
或
MYLIST := $(filter-out $(if $(filter-out undefined,$(origin exclude_file1)),file1.c),$(wildcard *.c))
或
MYLIST := $(filter-out $(if ${exclude_file1},,file1.c),$(wildcard *.c))
等
前两个公式的一个优点是,当非常有用的--warn-undefined-variables
生效时,它们不会生成消息。