ヘッダーの変更を追跡して、ディレクトリ内にmakeすべてを構築したいと考えています。最初にgcc出力をオプション付きの依存関係を持つターゲットにしてから、実際にコンパイルを呼び出すそのターゲットに本体を追加する.cppことでそれを試みます:-MM
OPTIONS = -std=c++11 -Wall
export
all : $(patsubst %.cpp, %.o, $(wildcard *.cpp))
%.o : %.mkt
make -f $*.mkt
%.mkt : %.cpp
gcc $(OPTIONS) -MM $*.cpp > $&.mkt1
echo gcc $(OPTIONS) -c %.cpp > $*.mkt2
cat $*.mkt1 $*.mkt2 > $*.mkt
しかし、どういうわけか、このスクリプトはフォームの呼び出しを発行します
g++ -c -o something.o something.cpp
.cppディレクトリ内の各ファイルに対して。一時ファイル.mkt1、.mkt2および.mktは作成されません。なぜこれが起こるのですか?望ましい動作を達成するにはどうすればよいですか? 私はmingwを使用してWindowsでこれを行っています。