您好我想在3个不同的目录中为3个独立的makefile创建一个主文件。 Makefile自己工作,但不是来自mastermakefile(下面)。进入A目录后,我收到一个错误:make:Circular A< - 依赖项被删除。 make:'A'是最新的。
PROG = A B C
TRGTS = A B C
$(PROG): $(TRGTS)
all: $(TRGTS)
A:
cd ./A ; make a
B:
cd ./B ; make b
C:
cd ./C ; make c
clean:
/ rm -f *.o *~
cd ./A ; make clean
cd ./B ; make clean
cd ./C ; make clean
答案 0 :(得分:2)
以下代码几乎与William回答相同,但没有使用'for'循环语句。
subdirs := A B C
.PHONY: all $(subdirs)
all: $(subdirs)
$(subdirs):
$(MAKE) -C $@
答案 1 :(得分:0)
我在makefile上生锈,并且确定以下不是最好的答案。但它现在可能会有所帮助......
TARGETS = A B C
.phoney: all
all:
@for subdir in $(TARGETS); do \
$(MAKE) -C $$subdir all || exit 1; \
done
请注意,缩进必须使用TAB,而不是空格