変数 $(CFLAGS2) を設定して、作成するターゲットに応じて異なる値を保持したいと思います。具体的には、プロジェクトを「-g -Wall」でコンパイルするターゲットと、「-O3」でコンパイルする別のターゲットが必要です。
私はこのように試しました:
CC=gcc
COPT=-c $< -o $@ $(CADD) $(CFLAGS) $(CFLAGS2)
.PHONY: opti
.PHONY: debi
opti: seto
make hammingtest
debi: setd
make hammingtest
.PHONY: seto
seto:
$(eval CFLAGS2 := -O3)
.PHONY: setd
setd:
$(eval CFLAGS2 :=-g -Wall)
hamming.o: hamming.cpp hamming.h
$(CC) $(COPT) $(DEFS) $(CFLAGS2)
hammingtest.o: hammingtest.cpp hamming.h
$(CC) $(COPT) $(DEFS) $(CFLAGS2)
hammingtest: hammingtest.o hamming.o
$(CC) -o hammingtest hammingtest.o hamming.o
しかし、「make debi」を実行すると、$(CFLAGS") がまったく設定されていないかのように動作します (「make opti」と同じ)。どうすればこれを達成できますか?