У меня есть следующий блок кода в make-файле:
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
По сути, это необходимо, так как я не могу потерять мой make-файл и умереть, если каталог сборки не существует - яхочу, чтобы он воссоздал недостающие части дерева каталогов.Вложенность происходит из-за того, что у меня есть каталог сборки, каталог тестов внутри сборки (для тестов модулей и полных программ), а затем в этом каталоге тестов отдельные каталоги для тестов, каждый из которых нуждается в исходном коде, объекте obj икаталог bin.Так много вещей для создания!
Вот мой вопрос.Есть ли способ воспользоваться преимуществом makefile "magic", чтобы передать ему какую-то одну переменную, такую как:
PATH=./build/tests/param_test/bin
, и заставить ее создавать все нужные мне каталоги, как один или два лайнера, а не как огромныеСкажите?
Заранее спасибо !!