GNU Makeが-B
オプションを持っていて、make
に既存のターゲットを無視させるオプション。ターゲットを再構築できますが、ターゲットのすべての依存関係ツリーも再構築されます。依存関係を再構築せずに(GNU Makeオプション、Makefileの設定、互換性のあるmake
のようなソフトウェアなどを使用して)ターゲットを強制的に再構築する方法はありますか?問題の依存関係を再構築せずにターゲット(make -B)を強制的に再構築する方法はありますか?
イラスト:もちろん
$ mkdir test; cd test
$ unexpand -t4 >Makefile <<EOF
huge:
@echo "rebuilding huge"; date >huge
small: huge
@echo "rebuilding small"; sh -c 'cat huge; date' >small
EOF
$ make small
rebuilding huge
rebuilding small
$ ls
huge Makefile small
$ make small
make: 'small' is up to date.
$ make -B small
rebuilding huge # how to get rid of this line?
rebuilding small
$ make --version | head -n3
GNU Make 4.0
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2013 Free Software Foundation, Inc.
1はrm small; make small
ことができますが、組み込みの方法はありますか?私はあなたがドキュメントを読み違えていると思う
-o FILE, --old-file=FILE, --assume-old=FILE Consider FILE to be very old and don't remake it.
EDIT
:
ん[この質問を](http://stackoverflow.com/questions/12199237/telling-make-to-ignore-dependencies-when-top-target-has-been-created)はあなたを助けますか? – sycko
ありがとうございます:私は 'ls'を使って示したように' hugeS 'は(.SECONDARY: 'ターゲットなしで)保存されており、' -B'のせいで再構築されています。 –