取决于Makefile内成功编译的条件语句

取决于Makefile内成功编译的条件语句,makefile,conditional,compilation,conditional-compilation,Makefile,Conditional,Compilation,Conditional Compilation,对于makefile,我试图让它在编译成功的情况下运行一个代码块,或者在其他情况下运行一个else块 我试过这样的东西 default: ifeq ($(gcc -obuild main.c), 0) echo "successful" else echo "you fail lol" endif 但是我无法得到编译命令的求值结果,因为我的代码表明我需要它。我以为它可以像Bash一样工作,但似乎不行,或者我错过了一些我不知道的东西 如何完成此任务?使用shell,而不是Make

对于makefile,我试图让它在编译成功的情况下运行一个代码块,或者在其他情况下运行一个else块

我试过这样的东西

default:
ifeq ($(gcc -obuild main.c), 0)
    echo "successful"
else
    echo "you fail lol"
endif
但是我无法得到编译命令的求值结果,因为我的代码表明我需要它。我以为它可以像Bash一样工作,但似乎不行,或者我错过了一些我不知道的东西


如何完成此任务?

使用shell,而不是Make:

default:
    if gcc -obuild main.c  ; then \                                        
echo "sucessful" ; \
else echo "you fail" ; fi

请注意,只有第一行命令(
if…
)以制表符开头。

您的答案是错误的,在“You fail”中,缺少了一个“lol”,这是我的代码所必需的。@Mario,我是一个年龄很小的人,无法忍受编写FORTRAN或lolspeak,所以,尽管投我一票,让你见鬼去吧。别担心,我理解,我也没那么坏。我试过你的代码,猜猜是什么WTF LOL它在OMFG中工作得非常好,所以我会使用它,非常感谢。笑死我了ROFL@Mario我的眼睛!啊,我的眼睛!你不是想要
ifeq
而不是
ifdef
吗?你是对的,我在写答案时犯了一个错误,在我的Makefile中我实际上使用了一个ifeq。谢谢