target: dependencies
command1
command2
私のシステム (Mac OS X) では、make
Makefile の各行の内容の前にタブ文字が必要であるようですcommand
。そうしないと、構文エラーが発生します。
私のエディターは常にスペースのみになるように設定されているため、Makefile を作成または編集するときにはこれが煩わしいです。
タブ文字なしで有効な Makefile を作成できますか?
ベストアンサー1
これは の構文上の奇妙さ/要件でありmake
、Mac OS X とは関係ありません。残念ながら、 を使用する場合はこれについて何もできませんmake
。
編集: GNU Makeはカスタムレシピプレフィックスをサポートするようになりました。この答え。
のこの側面を嫌うのはあなたが最初ではありませんmake
。引用するとUnix 嫌いのためのハンドブック:
Dennis の Makefile の問題は、コメント行を追加したときに、2 行目の先頭のタブ文字の前にスペースを誤って挿入したことです。タブ文字は、Makefile の構文の非常に重要な部分です。すべてのコマンド ライン (この例では cc で始まる行) はタブで始まる必要があります。変更を加えた後、2 行目はタブで始まっていなかったので、エラーが発生しました。
「それで何?」とあなたは尋ねます。「それの何が問題なの?」
それ自体は何も悪いものではありません。ただ、Unix の他のプログラミング ツールの動作を考えると、構文の一部としてタブを使用することは、グリーン ベレーのパンジー スティック トラップの 1 つのようなものです。カンザス州のかわいそうな子供がジョン ウェインの前を歩いていて、トリップ ワイヤーに気づきません。結局のところ、カンザスのトウモロコシ畑には注意すべきトリップ ワイヤーはありません。ドカン!