我希望编译$(APPS)的部分目标,但不包括makefile中$(OFF)中的目标:
APPS = a b c d e f g
OFF = d e
all: $(APPS)
partial: $(APPS) - $(OFF)
我怎样才能做到这一点?
我可能会采取稍微不同的方法:
ON = a b c f g
OFF = d e
APPS = $(ON) $(OFF)
partial: $(ON)
但是,如果这对于您的需求来说过于简单,那么有一个filter-out
函数可以提供您想要的确切操作:
objects=main1.o foo.o main2.o bar.o
mains=main1.o main2.o
$(filter-out $(mains),$(objects))
我认为以这种格式重写您的示例将是:
APPS = a b c d e f g
OFF = c d
partial: $(filter-out $(APPS),$(OFF))