MAKFILE 的target中写ifeq

问题:

由于工程可配置度高,想在makefile的target中用条件判断来决定使用哪个ld文件。但不知语法如何。

解决方案:

发现下面这个链接能够回答我的问题。

【已解决】Makefile中目标中嵌套使用ifeq条件判断 – 在路上 (crifan.org)

遗留问题:

1 能否在target后定义变量,并在运行时根据某种条件赋值,还没有找到解决方案。

2 本来想在target中用“ifeq (,$(wildcard $(BUILD_DIR)/$(TEST).ld))” 来判断文件是否存在,决定使用哪个ld文件,结果发现wsl2下和原生的linux系统下结果不一样。后者下可以达到我的目标,但在WSL2下,该ld文件明明之前刚产生,但结果还是认为不存在,可能WSL2下刚产生的文件确实不能实时判断是否存在,有一段延迟。

 遗留问题解决 补充:

最后发现之前的办法还是不靠谱,最后采用下面的方法解决:

    cp -rpf ${RTL_BUILD_DIR}/link.ld test_case.ld  2>/dev/null || : && \
    cp -rpf ${RTL_BUILD_DIR}/${TEST}.ld test_case.ld 2>/dev/null || : && \

就是如果两个文件都存在,最后复制的文件如果存在就会覆盖前面的,其优先级最高。

带的参数是为了当文件不存在时,不引发错误。参见:

shell – 当源文件不存在时,如何让’cp’命令不会触发错误?_xxom-CSDN博客

比较完美的解决了我的makefile 需求。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值