嗨,我正在尝试向我的 make 文件添加条件语句,以根据输入变量选择一组配置文件,并使用外部 bash 脚本处理它们,但无法使其工作。我在 Unix 平台上,这是我的 make 文件的部分:
包装:
@echo Making Package
@if [ $(PRODUCT) == PROD_1 ]; then\
@echo configure PROD_1;\
./$(CONFIG_AREA)/copier.sh $(CONFIG_AREA)/Prod1_configuration $(STAGING_AREA);\
else\
@if [ $(PRODUCT) == PROD_2 ]; then\
@echo configure PROD_2;\
./$(CONFIG_AREA)/copier.sh $(CONFIG_AREA)/Prod2_configuration $(STAGING_AREA);\
fi;\
fi
-@cp $(STAGING_ZIP_AREA)/version.txt $(STAGING_AREA)
copier.sh 脚本接受两个参数:源目录和目标目录。我收到以下错误: 制作包装 /bin/sh: -c: 第 7 行:意外标记附近出现语法错误
fi' /bin/sh: -c: line 7:
fi;'
好的,谢谢您的回复,我已经完全更改了它,发现了另一篇文章:
ifeq ($(PRODUCT),PROD_1)
@echo "PROD_1 Configuration"
$(CONFIG_AREA)/copier.sh $(CONFIG_AREA)/Prod1_configuration $(STAGING_AREA)
else
ifeq ($(PRODUCT),PROD_2)
@echo "PROD_2 Configuration"
$(CONFIG_AREA)/copier.sh $(CONFIG_AREA)/Prod2_configuration $(STAGING_AREA)
endif
endif
请注意,ifeq、else 和 endif 是用空格而不是制表符缩进的,因为制表符不起作用,但制表符在它们之间缩进。