0

コンパイルされているシステムに応じて、make/gmake を使用して bash スクリプト ファイルから Makefile を実行したいと考えています。そのために、システムにインストールされている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

ウィキペディアで見られるように、FreeBSDではFreeBSDuname -sが印刷され、Linuxでは出力Linuxが出力されます(私のマシンでも)。

編集:Linuxの代わりにFreeBSD。

于 2012-08-02T13:11:35.423 に答える