在 make 文件中使用嵌套 if

问题描述 投票:0回答:1

嗨,我正在尝试向我的 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;'

makefile
1个回答
0
投票

好的,谢谢您的回复,我已经完全更改了它,发现了另一篇文章:

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 是用空格而不是制表符缩进的,因为制表符不起作用,但制表符在它们之间缩进。

© www.soinside.com 2019 - 2024. All rights reserved.