メイクファイルに次のコード ブロックがあります。
param_test_dir:
@if test -d $(BUILD_DIR); then \
echo Build exists...; \
else \
echo Build directory does not exist, making build dir...; \
mkdir $(BUILD_DIR); \
fi
@if test -d $(TEST_DIR); then \
echo Tests exists...; \
else \
echo Tests directory does not exist, making tests dir...; \
mkdir $(TEST_DIR); \
fi
@if test -d $(TEST_DIR)/param_unit_test; then \
echo Param unit test directory exists...; \
else \
echo Param unit test directory does \
not exist, making build dir...; \
mkdir $(TEST_DIR)/param_unit_test; \
fi
@if test -d $(TEST_DIR)/param_unit_test/source; then \
echo Param unit test source directory exists...; \
else \
echo Param unit test source directory does \
not exist, making build dir...; \
mkdir $(TEST_DIR)/param_unit_test/source; \
fi
@if test -d $(TEST_DIR)/param_unit_test/obj; then \
echo Param unit test object directory exists...; \
else \
echo Param unit test object directory does \
not exist, making object dir...; \
mkdir $(TEST_DIR)/param_unit_test/obj; \
fi
@if test -d $(TEST_DIR)/param_unit_test/bin; then \
echo Param unit test executable directory exists...; \
else \
echo Param unit test executable directory does \
not exist, making executable dir...; \
mkdir $(TEST_DIR)/param_unit_test/bin; \
fi
基本的に、ビルドディレクトリが存在しない場合にメイクファイルがクラッシュして死ぬことはないので、これは必要です。ディレクトリツリーの欠落部分を再作成したいのです。入れ子になっているのは、ビルド ディレクトリ、ビルド内のテスト ディレクトリ (モジュール テストと完全なプログラムの場合)、およびそのテスト ディレクトリ内にテスト用の個々のディレクトリがあり、それぞれにソース、obj、およびが必要なためです。ビンディレクトリ。そのため、作成するものがたくさんあります。
これが私の質問です。メイクファイルの「魔法」を利用して、次のような単一の変数を供給する方法はありますか?
PATH=./build/tests/param_test/bin
その巨大な if ステートメントではなく、1 つまたは 2 つのライナーのように、必要なすべてのディレクトリを作成しますか?
前もって感謝します!!