Опитвам се да напиша 'if' check in define директива в един от нашите 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
Не искам да получавам проверките „if“ заедно с командата „env“. Интересувам се само от
env PERLLIB=$(EXTLIBS)/$(PLAT32)/lib/perl5/site_perl/5.8.0 --template
Как мога да поправя този проблем?