make
Linuxで他のMakefileを編集または使用するときに、LinuxがMakefileで予期しないGNU-Make固有の拡張機能を拒否するようにする既知の方法はありますか?私の言葉は、GNU-Makeの動作を制限するということです。make
POSIXで指定GNU-Make特定の拡張を拒否しますか?
.POSIX
「特別な目標では十分ではない」によると4.9特殊組み込みターゲット名(gnu.org)マニュアルページには、このコマンドラインオプションへの言及はありません。
他のmake
ユーティリティを使用することもオプションです。
— アップロード日: 2018-10-19 —
まだ私の質問に対する直接的な答えは見つかりませんでしたが、この質問をしたときに存在しなかったトピックに関する1つ以上の文書があります。 ポータブルMakefileチュートリアル(nullprogram.com)。
答え1
私はGNU make拡張を無効にする方法がないと確信しています。このターゲットは互換性を向上させますが、関数、ポイントごとのターゲット、ターゲットのパターンなどの.POSIX
互換性のある拡張機能を無効にしません。%
私はPOSIXの機能に準拠するmakeの実装を知りません。たとえば、MINIX、Solaris、OpenBSD には独自の拡張機能があります。少なくともこれら4つの実装を使用してプログラムをビルドしてみることができます(プログラムがこれらのすべてのプラットフォームで構築されていると仮定して)、実際にはかなり良い移植性を保証します。make
無料でないOSにアクセスできる場合(VS無料版で十分です)、Visual Studioのユーティリティを使用してWindowsを追加し、一部のUnixシェルツールにポートを追加します。