まず第一に、私は GNU Make に精通していないので、概念がばかげて間違っていると述べた場合は、私をからかうのではなく、修正してください。
異なる依存関係を持つ複数の実行可能ファイルをビルドするデフォルトのターゲットが必要ですが、それがわかりません。これは私が使用している最小限の例です:
CC = gcc-4.8
CFLAGS = # some compiler flags
LDFLAGS = # some linker flags
SOURCES = prog1.c prog2.c
OBJECTS = $(SOURCES:.c=.o)
TARGET = prog1 prog2
$(TARGET) : $(OBJECTS)
$(CC) $(CFLAGS) -o prog1 prog1.o $(LDFLAGS)
$(CC) $(CFLAGS) -o prog2 prog2.o $(LDFLAGS)
.PHONY: clean
clean:
@rm -f $(TARGET) $(OBJECTS) core
しかし、ご覧のとおり、 とprog2
はまったく関係ありませんがprog1.c
、編集prog1.c
すると が再リンクされprog2
ます。これを防ぐ方法はありますか?
(また、誰かが GNU Make の優れたチュートリアルを教えてくれると本当にありがたいです。公式ドキュメントは膨大です...)