0

このようなmakeファイルがあるとします。通常のビルドを介しmakeて取得し、デバッグ ビルドを介して取得できますmake debug。しかし、次のような 1 つのコマンドで通常のビルドとデバッグ ビルドの両方を取得できるようにターゲットを作成する方法はmake both?

DST := /data/result
debug: CFLAGS += -DDEBUG -g
debug: DST = /some/dir
target: src1.c src2.c
    gcc -bla -bla -o target
    cp target $(DST)
debug: target

私の最終的な解決策は次のとおりです:</p>

DST := /data/result
debug: CFLAGS += -DDEBUG -g
debug: DST = /some/dir
target: src1.c src2.c
    gcc -bla -bla -o target
    cp target $(DST)
debug: target

both:
    make debug && make clean && make all
4

2 に答える 2

0
NORMAL := /data/result/target
DEBUG := /some/dir/target

$(NORMAL) $(DEBUG): src1.c src2.c
    gcc -bla -bla $(CFLAGS) $^ -o $@

debug: $(DEBUG)
$(DEBUG): CFLAGS += -DDEBUG -g

both: $(NORMAL) $(DEBUG)
于 2013-01-14T04:13:05.290 に答える
0
both : target debug

target debug : src1.c src2.c
    gcc $(CFLAGS) -o $@ $^

debug : CFLAGS += -g
于 2013-01-11T09:47:01.140 に答える