主makefile文件

时间:2012-10-15 23:13:09

标签: makefile

您好我想在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

2 个答案:

答案 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,而不是空格