对于下面的makefile,我运行“make args = abc”来编译abc。如何将条件更改为abc编译的“make abc”和所有内容的“make all”?谢谢!
modules = \
abc \
bfg \
cyz
MISC = clean all
all: build
ifdef args
SUBDIRS="$$args"
else
SUBDIRS=$(modules)
endif
build:
for dir in $(SUBDIRS); do \
$(MAKE) -C $$dir all; \
done
答案 0 :(得分:1)
不要使用all
目标。
为每个模块使用单独的目标。
所以make abc
或make cba
或make all
取决于您需要做什么。
你想要这样的东西:
modules = \
abc \
bfg \
cyz
.PHONY: all $(modules)
all: $(modules)
$(modules):
$(MAKE) -C '$@'