Я фиксирую намерение Makefile в псевдокоде, а затем указываю на проблемы, которые у меня есть. Я ищу Makefile, более удобный в тестовой среде. Правильное использование Makefile - одно из следующих.
make CATEGORY=parser TEST=basic.
make ALL
Если пользователь дает "ПРОСТО" команды, как указано ниже, он должен распечатать сообщение "CATEGORY defined TEST undefined" и наоборот.
make CATEGORY=parser
make TEST=basic
Я попытался написать Makefile следующими способами, но возникла ошибка:
help:
echo"Usage: make CATEGORY=<advanced|basic> TEST=<test-case>
echo" make ALL
ifdef CATEGORY
ifdef TEST
CATEGORY_TEST_DEFINED = 1
else
echo "TEST not defined"
else
echo "CATEGORY not defined"
endif
ifeq ($(CATEGORY_TEST_DEFINED), 1)
$(CATEGORY):
cd $(PROJ)/$(CATEGORY)
make -f test.mk $(TEST)
endif
ifdef ALL
$(ALL):
for i in `ls`
cd $$(i)
make all
endif
У меня есть следующие вопросы:
Могут ли правила в Makefile быть выборочными (с использованием ifdef для выбора правил и целей).
эхо не работает. echo должно помочь пользователю в правильном использовании.