Я относительно новичок в Makefiles. У меня есть следующий (упрощенный) код как часть моего Makefile. Я хочу sh знать, можно ли объявить цель и рецепт внутри оператора else. Допустимо ли это писать рецепт внутри блока ifeq. Если нет, подскажите, как его улучшить.
CUR_PI_VERSION:= abc
CUR_GIT_VERSION:= cde
LAST_PI_VERSION:= bbc
LAST_GIT_VERSION:= cde
$(info $$CUR_GIT_VERSION is [${CUR_GIT_VERSION}])
$(info $$CUR_PI_VERSION is [${CUR_PI_VERSION}])
$(info $$LAST_GIT_VERSION is [${LAST_GIT_VERSION}])
$(info $$LAST_PI_VERSION is [${LAST_PI_VERSION}])
ABC_AG := ./abc_ag.py
ABC_KG := ./abc_kg.vhd
ABC_OC := ./abc_ef.txt
ifeq ($(CUR_PI_VERSION)@$(CUR_GIT_VERSION),$(LAST_PI_VERSION)@$(LAST_GIT_VERSION))
| #echo "Everything matched, so don't need the make top"
else
# is this valid !!!
.PHONY: $(ABC_KG)
$(ABC_AG) $(ABC_KG) $(ABC_OC):
printf "\t TEST \n"
endif
clean: clean_fpi
clean_fpi:
@rm -f $(ABC_KG); \
| rm -f $(ABC_OC); \
| rm -f $(ABC_AG);
Спасибо. Любые отзывы приветствуются.