g++ と mingw をそれぞれ使用して、プログラムを Linux と Windows の両方にコンパイルしたいと考えています。コンパイル間の唯一の違いは、使用するコンパイラと出力ファイル名です。
1 つのmake
コマンドで両方の出力ファイルを生成する必要があります。メイクファイルの重複をできるだけ少なくしてこれを達成する最善の方法は何ですか?
これはどう:
linux-name: CC:=g++
windows-name: CC:=mingw
linux-name windows-name:
$(CC) whatever -o $@
編集:
上に書いたのは、makefile の新しい部分だけです。メイクファイルの残りの部分は暗示されていると思いました。より明確にするには:
all: linux-name windows-name
linux-name: CC:=g++
windows-name: CC:=mingw
linux-name windows-name: foo.o bar.o baz.o SomethingElse
$(CC) $(CCFLAGS) whatever $^ -o $@
%.o: %.cc
$(CC) $(CFLAGS) -I$(INC_DIR) whatever -c $< -o $@
SomethingElse:
build somehow