如何从bash脚本文件执行gmake / make?

时间:2012-08-02 10:02:44

标签: bash makefile gnu-make freebsd

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

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

2 个答案:

答案 0 :(得分:3)

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

${MAKE} ...

编辑:更改--ver到--version

答案 1 :(得分:1)

您可以使用uname

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

正如我在wikipedia上看到的,在FreeBSD uname -s上将打印FreeBSD,在Linux上将输出Linux(在我的机器上)。

编辑:FreeBSD而不是Linux。