BSD make の代わりに gmake が使用されていることを makefile 内でチェックすることは可能ですか?
それとも、GNUmakefile の大ハンマー アプローチに固執しているのでしょうか。
@Amiramix は、同じ質問に対するこのSO の回答に対する彼のコメントで、私の留保を簡潔に表現しています。
編集: Makefile の評価に BSD make が使用されている場合は、代わりに gmake を実行して Makefile を評価する必要があることを確認してください。
編集 2: @devnull から悲しいことに削除された回答を取得し、それを取得するために少し遊んでみました:
MAKEVERSION=Not_GNU
checkVariant:
@MAKEVERSION=`${MAKE} --version 2>/dev/null | head -1 | sed -e 's/^\(GNU\).*$/\1/'`; \
if [ "${MAKEVERSION}" != "GNU" ]; then \
echo "Not using gmake"; \
exit 1; \
fi
しかし、sed は、コマンド ラインで正常に動作するコマンドが文字化けしていると不平を言います。
もっと遊ぶ機会があればまた来ます。