ヘッダーの変更を追跡して、ディレクトリ内に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でこれを行っています。