組み込みルールを変更する方法

組み込みルールを変更する方法

makefile がない場合に、make によって自動的に適用されるルールを変更する方法があるかどうかを知りたいです。例を挙げると、make fooというファイルを含むディレクトリに書き込むと、ディレクトリ内にファイル がない場合でもfoo.cpp実行されます 。g++ foo.cpp -o foomakefile

必要に応じて変更したいのですが、 g++ foo.cpp -o foo --std=c++11 -W -O2 -I .... .c、.java、.texなどの他の拡張子にも新しいルールを追加したいです。

新しいルールを定義する方法はわかっていますが、各ディレクトリに makefile を作成する以外に、どこで指定すればよいかわかりません。これらの組み込みルールをすべて保持するファイルがあると思いますが、それを見つけることができていません。また、独自のルールでそれをオーバーロードする方法もわかりません。

私は主に Mingw と cygwin を使って作業しています。

答え1

によるマニュアル実際のルールは次のとおりです。

n.ccは、、、n.cppまたはn.C' ' 形式のレシピから自動的に作成されません。C ++ ソース ファイルには、' ' ではなく$(CXX) $(CPPFLAGS) $(CXXFLAGS) -cサフィックス ' ' を使用することをお勧めします。.cc.C

したがって、環境変数を調整するか (たとえば、~/.bashrc)、そのルールをオーバーライドする Makefile を作成する必要があります。

make -pすべてのデフォルトと組み込みルールを学習するには、Makefile のないディレクトリで使用します。

関連情報