私はAc、Bc、....、ZcのCソースファイルの長いリストを含むプログラムを持っているとしましょう.Ac、Bcを特定のCFLAGSでコンパイルし、ソースファイルの残りの部分を別のCFLAGS値。Makefileを使って異なるCFLAGSで異なるcファイルをコンパイルするには?
上記の仕事をするためのMakefileの書き方は?現在私のMakefileで行っていることは次のとおりです。
OBJ=[all other .o files here, e.g. D.o, D.o, E.o .... Z.o]
SPECIAL_OBJS=A.o B.o
all: $(OBJ) $(SPECIAL_OBJS)
$(SPECIAL_OBJS):
@echo [Compiling]: $(@:.o=.c)
$(CC) [SOME OTHER GCC OPTIONS HERE] $(CFLAGS) -c $(@:.o=.c) -o [email protected]
%.o: %.c
@echo [Compiling]: $<
$(CC) $(CFLAGS) -o [email protected] -c $<
これはうまくいくものの、愚か/複雑に見えます。 Makefileでこれを行うために推奨される方法は何ですか?ありがとう!
デフォルトの.c - > .oコンパイルルールを再定義しない場合は、 'CFLAGS + = $ (EXTRA_CFLAGS) 'も(少なくともGNU makeでは)うまくいくでしょう。 – sstn
CFLAGSに直接追加することもできます: '$(SPECIAL_OBJS):CFLAGS + = - std = c99'(GNU makeをやり直してください)。 – sstn
@sstn上記のように、任意の有効な形式の割り当てを使用することができます。 –