0

我想使用make / gmake从bash脚本文件执行我的Makefile,具体取决于它正在编译的系统:FreeBSD上的gmake(不是标准make)和其他人的make。为此,我想确定系统上安装的 make 命令是否是 GNU make: - 如果 GNU make 则使用 make 编译 - 如果不是 GNU make 则使用 gmake 编译(如果未安装 gmake,则会引发错误)

有没有一种简单的方法可以做到这一点?

4

2 回答 2

3
if make --version | grep "^GNU Make" >& /dev/null
then
  MAKE=make
else
  MAKE=gmake
fi

${MAKE} ...

编辑:将 --ver 更改为 --version

于 2012-08-02T10:10:52.363 回答
1

您可以使用uname

if [ `uname -s` = "FreeBSD" ]; then
    makeprg=gmake
else
    makeprg=make
fi

正如我在维基百科上看到的那样,FreeBSDuname -s将打印 FreeBSD,而在 Linux 上将输出 Linux(也在我的机器上)。

编辑:FreeBSD 而不是 Linux。

于 2012-08-02T13:11:35.423 回答