これはかなり一般的な問題だと思いますが、特定の状況ではどこにも答えが見つかりません。私はそのようなターゲットを持っています:
initfs.tar: $(INITFS_FILES)
rm -f ./initfs.tar
cd initfs_root
tar --format ustar --exclude-vcs -cf ../initfs.tar ./
INITFS_FILESは次のように定義されています。
INITFS_FILES:=$(shell find ./initfs_root/ -not -path '*/.*/*' -not -name '.*' -type f)
を呼び出すたびにmake initfs.tar
、このターゲットが実行されます。initfs_rootディレクトリ内のファイルは変更されていません(すべてのファイルはそのfindコマンドを使用して検索されます)。initfs.tarは確かに作成されています。
なぜこれが起こっているのかについて誰かが何か考えを持っていますか?それは私には意味がありません、そして私がインターネット上で出くわした他のすべての投稿と私の現在の専門知識によれば、私はすべて正しいです(しかし、明らかに、私の専門知識はMakefile領域に欠けています;)