私のプロジェクトには、任意の数のCソースファイルを含むtests/
というディレクトリがあり、それぞれがライブラリをテストするための自己完結型プログラムです。これらのソースファイルごとに、build/
ディレクトリに同じ名前の実行可能ファイルを作成したいとします。GNU Makeを使用してファイルのディレクトリを反復する
など。 tests/test_init.c
は実行可能ファイルbuild/test_init
にコンパイルされます。
BUILD_DIR = build
TEST_DIR = tests
test_sources:= $(TEST_DIR)/*.c
test_executables:= $(patsubst %.c, %, $(test_sources))
.PHONY: tests
tests: $(test_executables)
$(CC) $^ -o [email protected] -g
しかし、これは、所望の結果を生成するために失敗します。
は現在、私のMakefileのスニペットは次のようになります。どんな助けでも大歓迎です。対応するソースからテスト実行可能ファイルを構築するために
test_executables:= $(patsubst $(TEST_DIR)/%.c, $(BUILD_DIR)/%, $(test_sources))
その後
test_sources:= $(wildcard $(TEST_DIR)/*.c)
その後
正しい名前の実行可能ファイル用: