前提・実現したいこと
makeによるコンパイル時にオプションを指定することでプログラムの機能を切り替えることができるプログラムを作りたいと考えています。
そのために、ソースコード内の切り替えたい箇所をマクロ定義のifdef文で囲み、makefile内でターゲットを指定することでマクロ定義を変更できるようにしたいと考えました。
これを実現するためこちらのサイトを参考にmakefileを変更してみたのですが、上手くターゲットの指定によるマクロ定義の変更ができませんでした。
該当のソースコード
こちらの都合上そのままのものを載せることができないので申し訳ありませんが簡略化したものを載せています。
makefile
1CC = gcc 2CFLAGS = -Wall -Wextra 3 4all p1 p2 p3: $(TARGET) 5 6p1 := CFLAGS = -Wall -Wextra -DTEST 7p2 := CFLAGS = -Wall -Wextra -DDEBUG 8p3 := CFLAGS = -Wall -Wextra -DDEBUG -DTEST 9 10$(TARGET): $(OBJS) 11 $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) 12 13$(OUTDIR)/%.o:%.c 14 @if [ ! -e `dirname $@` ]; then mkdir -p `dirname $@`; fi 15 $(CC) $(CFLAGS) -o $@ -c $< $(LDFLAGS)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/28 05:26