Linuxのmake
を作成する既知の方法はありますか Linuxで他のMakefileを編集または使用するときに、MakefileでGNU‑Make固有の拡張機能を意図せずに使用することを拒否しますか?つまり、GNU‑Makeをmake
として動作するように制限します POSIXで指定され、GNU‑Make固有の拡張機能を拒否しますか?
.POSIX
「4.9特別な組み込みターゲット名(gnu.org)」によると、特別なターゲットでは不十分です。マニュアルページには、このためのコマンドラインオプションについては記載されていません。
別のmake
を使用する ユーティリティはオプションかもしれません。
—更新2018-10-19 —
質問に対する直接の回答はまだ見つかりませんが、少なくともこの問題に関するドキュメントがあります。このドキュメントは、この質問があった時点では存在していませんでした。ポータブルMakefileのチュートリアル(nullprogram.com)
承認された回答:
GNUmake拡張機能を無効にする方法はないと確信しています。 .POSIX
targetは互換性を向上させますが、関数、独自のドットターゲット、%
などの互換性のある拡張機能を無効にしません ターゲットなどのパターン。
POSIX機能に固執するmakeの実装を知りません。たとえば、MINIX、Solaris、OpenBSDにはすべて独自の拡張機能があります。少なくとも、これらの4つの実装を使用してプログラムを構築することを試みることができます(プログラムがこれらすべてのプラットフォームで構築されると仮定します)。これにより、実際にはかなり優れた移植性が保証されます。 make
を使用してWindowsを追加します Visual Studioのユーティリティに加えて、フリーでないOSを使用できる場合は、いくつかのUnixシェルツールのポート(無料バージョンのVSで十分だと思います)。