使用条件中的条件的Makefile问题在命令的命令部分中使用
发布时间:2020-12-16 07:24:42 所属栏目:百科 来源:网络整理
导读:我有一段具有这种结构的makefile: bob:ifdef DEBUG @echo runningendif @echo chug chug chugifdef DEBUG @echo doneendif bobit: @echo "before" @make bob @echo "after" 我在这里大大简化了,所有的回声实际上都是非常重要的命令块,并且有更多条件的东西,
我有一段具有这种结构的makefile:
bob: ifdef DEBUG @echo running endif @echo chug chug chug ifdef DEBUG @echo done endif bobit: @echo "before" @make bob @echo "after" 我在这里大大简化了,所有的回声实际上都是非常重要的命令块,并且有更多条件的东西,但这抓住了我的问题的本质. 由于技术原因,我现在不想进入,我需要摆脱那个submake,但因为echo代表了大量的代码,我不想只是复制并通过bob的主体代替submake. 理想情况下,我想做的就是这样 define BOB_BODY ifdef DEBUG @echo running endif @echo chug chug chug ifdef DEBUG @echo done endif endef bob: $(BOB_BODY) bobit: @echo "before" $(BOB_BODY) @echo "after" 不幸的是,条件似乎是在削减我,他们产生“ifdef:Command not found”错误,我尝试使用eval和call的各种组合解决这个问题,但似乎无法找到让它工作的方法. 我该如何工作?甚至是解决问题的正确方法? 解决方法
我修复它的方法是使用bash条件,这实际上有一定的意义,因为我们正在使用命令而不是制定规则.
所以我从上面得到的理想解决方案就像是 define BOB_BODY @if [[ -n "$(DEBUG)" ]]; then echo running; fi; @echo chug chug chug @if [[ -n "$(DEBUG)" ]]; then echo done; fi endef (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |