Я пытаюсь написать «если» в директиве определения в одном из наших make-файлов. На самом деле я пытаюсь проверить платформу и продолжить настройку среды.
define templ_32
mkdir -p $(@D)
if [ "$(PLAT)" = "x86_64" ]; then env PERLLIB=$(EXTLIBS)/$(PLAT32)/lib/perl5/site_perl/5.10.0 --template $<; fi
if [ "$(PLAT)" = "aarch64" ]; then env PERLLIB=$(EXTLIBS)/$(PLAT32)/lib/perl5/site_perl/5.8.0 --template $<; fi
endef
Я использую указанную выше директиву определения в одном из моих целевых рецептов следующим образом.
some/%.c: test/tmpl-%.c $(NEW_DATA32)
$(templ_32) --initialization $(NEW_DATA32)
Когда я запускаю сборку с указанными выше изменениями. Я получаю сообщение об ошибке:
/bin/sh: -c: line 0: syntax error near unexpected token `--initialization'
А также из журнала я вижу все условие «если» следующим образом.
if [ "aarch64" = "x86_64" ]; then env PERLLIB=$(EXTLIBS)/$(PLAT32)/lib/perl5/site_perl/5.8.0 --template /test/deploy/tmpl-kt.c ; fi --initialization /work/deploy/test.pl
Из моего журнала успеха, в котором нет условных утверждений «если», я вижу только
env PERLLIB=$(EXTLIBS)/$(PLAT32)/lib/perl5/site_perl/5.8.0 --template /test/deploy/tmpl-kt.c --initialization /work/deploy/test.pl
Я не хочу получать проверки «если» вместе с командой «env». Меня интересует только
env PERLLIB=$(EXTLIBS)/$(PLAT32)/lib/perl5/site_perl/5.8.0 --template
Как я могу решить эту проблему?