我想使用make / gmake从bash脚本文件执行我的Makefile,具体取决于它正在编译的系统:FreeBSD上的gmake(不是标准make)和其他人的make。为此,我想确定系统上安装的 make 命令是否是 GNU make: - 如果 GNU make 则使用 make 编译 - 如果不是 GNU make 则使用 gmake 编译(如果未安装 gmake,则会引发错误)
有没有一种简单的方法可以做到这一点?
if make --version | grep "^GNU Make" >& /dev/null
then
MAKE=make
else
MAKE=gmake
fi
${MAKE} ...
编辑:将 --ver 更改为 --version
您可以使用uname
:
if [ `uname -s` = "FreeBSD" ]; then
makeprg=gmake
else
makeprg=make
fi
正如我在维基百科上看到的那样,FreeBSDuname -s
将打印 FreeBSD,而在 Linux 上将输出 Linux(也在我的机器上)。
编辑:FreeBSD 而不是 Linux。