首页 > 解决方案 > 如何只用一个命令执行一堆makefile?或者如何编写我的makefile?

问题描述

搜索大约 2 horus 的解决方案我什么也没找到,因为我什至不知道如何正确搜索它......我的问题是:我必须使用不同的“tad”文件(tad、tad01、tad02、tad03 .. .tad27),那么有什么方法可以制作某种“for循环”并执行27次makefile仅通过所需的tad更改标签NAME ??

.PHONY= doc clean

NAME= tad02 #############I MEAN THIS LABEL<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
CC=g++
OPTIONS= -g 
DEBUG= #-D DEBUG
LIBDIR=lib
INCLUDEDIR=include
_OBJ= file1.o file2.o file3.o 
OBJ = $(patsubst %,$(LIBDIR)/%,$(_OBJ))

tad:    src/$(NAME).cpp $(OBJ)
    $(CC) $(OPTIONS) $(DEBUG) -I$(INCLUDEDIR) src/$(NAME).cpp $(OBJ) -o $(NAME)

$(LIBDIR)/%.o : $(LIBDIR)/%.cpp $(INCLUDEDIR)/%.h
    $(CC) $(OPTIONS) $(DEBUG) -c -I$(INCLUDEDIR) -o $@ $<

doc:
    doxygen

clean:
    rm -f $(OBJ) 

标签: shellloopsmakefile

解决方案


有很多方法可以做到这一点。这是一个:

TADS:= tad tad01 tadthree someothertad tad27

allTads: $(TADS)

$(TADS): %: src/%.cpp $(OBJ)
    $(CC) $(OPTIONS) $(DEBUG) -I$(INCLUDEDIR) $< $(OBJ) -o $@

推荐阅读