Good morning. Here is a rule from an automake generated makefile.
$(am__depfiles_remade): @$(MKDIR_P) $(@D) @echo '# dummy' >$@-t && $(am__mv) $@-t $@ This rule restores a missing depfile file by creating a file with one line '# dummy'. (Next version of automake will create an empty one). There must have been a reason for generating such a depfile. However, this depfile fails dependency tracking. Once a depfile was removed and recreated in this shape, it will no longer perform its function. Below is a sample bash session with gnu make which demonstrates how a dummy shuffle.Po makefile fails to have shuffle.o rebuilt when shuffle.h changes. $ make -j3 CFLAGS='-Wall -Wextra -ggdb -m64 -O0 -DMAKE_MAINTAINER_MODE=1' ./config.status --header=src/mkconfig.h Making all in lib make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64/lib' make all-recursive config.status: creating src/mkconfig.h config.status: src/mkconfig.h is unchanged make[2]: Entering directory '/home/dgoncharov/src/gmake/make/l64/lib' make[3]: Entering directory '/home/dgoncharov/src/gmake/make/l64/lib' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/lib' make[2]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/lib' make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/lib' Making all in po make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64/po' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/po' Making all in doc make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64/doc' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/doc' make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64' make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64' $ ls -l src/shuffle.o -rw-r--r-- 1 dgoncharov wireshark 13K Feb 7 21:16 src/shuffle.o $ head src/.deps/shuffle.Po src/shuffle.o: ../src/shuffle.c /usr/include/stdc-predef.h \ ../src/makeint.h src/config.h ../src/../src/mkcustom.h lib/alloca.h \ /usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/stddef.h \ ../src/gnumake.h /usr/include/sys/types.h /usr/include/features.h \ /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \ /usr/include/bits/long-double.h /usr/include/gnu/stubs.h \ /usr/include/gnu/stubs-64.h /usr/include/bits/types.h \ /usr/include/bits/timesize.h /usr/include/bits/typesizes.h \ /usr/include/bits/time64.h /usr/include/bits/types/clock_t.h \ /usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \ $ grep shuffle.h src/.deps/*.Po src/.deps/file.Po: ../src/variable.h ../src/debug.h ../src/shuffle.h src/.deps/file.Po:../src/shuffle.h: src/.deps/implicit.Po: ../src/output.h ../src/commands.h ../src/shuffle.h /usr/include/assert.h src/.deps/implicit.Po:../src/shuffle.h: src/.deps/job.Po: ../src/variable.h ../src/os.h ../src/dep.h ../src/shuffle.h \ src/.deps/job.Po:../src/shuffle.h: src/.deps/main.Po: ../src/shuffle.h /usr/include/assert.h /usr/include/fcntl.h \ src/.deps/main.Po:../src/shuffle.h: src/.deps/shuffle.Po: /usr/include/glob.h ../src/shuffle.h ../src/filedef.h ../src/hash.h \ src/.deps/shuffle.Po:../src/shuffle.h: $ rm src/.deps/shuffle.Po $ make -j3 CFLAGS='-Wall -Wextra -ggdb -m64 -O0 -DMAKE_MAINTAINER_MODE=1' ./config.status --header=src/mkconfig.h Making all in lib make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64/lib' make all-recursive make[2]: Entering directory '/home/dgoncharov/src/gmake/make/l64/lib' config.status: creating src/mkconfig.h config.status: src/mkconfig.h is unchanged make[3]: Entering directory '/home/dgoncharov/src/gmake/make/l64/lib' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/lib' make[2]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/lib' make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/lib' Making all in po make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64/po' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/po' Making all in doc make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64/doc' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/doc' make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64' make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64' $ head src/.deps/shuffle.Po # dummy $ touch ../src/shuffle.h $ make -j3 CFLAGS='-Wall -Wextra -ggdb -m64 -O0 -DMAKE_MAINTAINER_MODE=1' ./config.status --header=src/mkconfig.h Making all in lib make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64/lib' make all-recursive config.status: creating src/mkconfig.h config.status: src/mkconfig.h is unchanged make[2]: Entering directory '/home/dgoncharov/src/gmake/make/l64/lib' make[3]: Entering directory '/home/dgoncharov/src/gmake/make/l64/lib' make[3]: Nothing to be done for 'all-am'. make[3]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/lib' make[2]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/lib' make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/lib' Making all in po make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64/po' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/po' Making all in doc make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64/doc' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64/doc' make[1]: Entering directory '/home/dgoncharov/src/gmake/make/l64' depbase=`echo src/file.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ gcc -DHAVE_CONFIG_H -Isrc -I../src -Ilib -I../lib -DLIBDIR=\"/usr/local/lib\" -DLOCALEDIR=\"/usr/local/share/locale\" -DMAKE_MAINTAINER_MODE -C -Wall -Wextra -Werror -Wwrite-strings -Wshadow -Wdeclaration-after-statement -Wbad-function-cast -Wformat-security -Wtype-limits -Wunused-but-set-parameter -Wlogical-op -Wpointer-arith -Wignored-qualifiers -Wformat-signedness -Wduplicated-cond -Wall -Wextra -ggdb -m64 -O0 -DMAKE_MAINTAINER_MODE=1 -MT src/file.o -MD -MP -MF $depbase.Tpo -c -o src/file.o ../src/file.c &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/implicit.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ gcc -DHAVE_CONFIG_H -Isrc -I../src -Ilib -I../lib -DLIBDIR=\"/usr/local/lib\" -DLOCALEDIR=\"/usr/local/share/locale\" -DMAKE_MAINTAINER_MODE -C -Wall -Wextra -Werror -Wwrite-strings -Wshadow -Wdeclaration-after-statement -Wbad-function-cast -Wformat-security -Wtype-limits -Wunused-but-set-parameter -Wlogical-op -Wpointer-arith -Wignored-qualifiers -Wformat-signedness -Wduplicated-cond -Wall -Wextra -ggdb -m64 -O0 -DMAKE_MAINTAINER_MODE=1 -MT src/implicit.o -MD -MP -MF $depbase.Tpo -c -o src/implicit.o ../src/implicit.c &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/job.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ gcc -DHAVE_CONFIG_H -Isrc -I../src -Ilib -I../lib -DLIBDIR=\"/usr/local/lib\" -DLOCALEDIR=\"/usr/local/share/locale\" -DMAKE_MAINTAINER_MODE -C -Wall -Wextra -Werror -Wwrite-strings -Wshadow -Wdeclaration-after-statement -Wbad-function-cast -Wformat-security -Wtype-limits -Wunused-but-set-parameter -Wlogical-op -Wpointer-arith -Wignored-qualifiers -Wformat-signedness -Wduplicated-cond -Wall -Wextra -ggdb -m64 -O0 -DMAKE_MAINTAINER_MODE=1 -MT src/job.o -MD -MP -MF $depbase.Tpo -c -o src/job.o ../src/job.c &&\ mv -f $depbase.Tpo $depbase.Po depbase=`echo src/main.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ gcc -DHAVE_CONFIG_H -Isrc -I../src -Ilib -I../lib -DLIBDIR=\"/usr/local/lib\" -DLOCALEDIR=\"/usr/local/share/locale\" -DMAKE_MAINTAINER_MODE -C -Wall -Wextra -Werror -Wwrite-strings -Wshadow -Wdeclaration-after-statement -Wbad-function-cast -Wformat-security -Wtype-limits -Wunused-but-set-parameter -Wlogical-op -Wpointer-arith -Wignored-qualifiers -Wformat-signedness -Wduplicated-cond -Wall -Wextra -ggdb -m64 -O0 -DMAKE_MAINTAINER_MODE=1 -MT src/main.o -MD -MP -MF $depbase.Tpo -c -o src/main.o ../src/main.c &&\ mv -f $depbase.Tpo $depbase.Po gcc -C -Wall -Wextra -Werror -Wwrite-strings -Wshadow -Wdeclaration-after-statement -Wbad-function-cast -Wformat-security -Wtype-limits -Wunused-but-set-parameter -Wlogical-op -Wpointer-arith -Wignored-qualifiers -Wformat-signedness -Wduplicated-cond -Wall -Wextra -ggdb -m64 -O0 -DMAKE_MAINTAINER_MODE=1 -Wl,--export-dynamic -m64 -fsanitize=address -fsanitize=pointer-compare -fsanitize=undefined -fsanitize=leak -ldl -o make src/ar.o src/arscan.o src/commands.o src/default.o src/dir.o src/expand.o src/file.o src/function.o src/getopt.o src/getopt1.o src/guile.o src/hash.o src/implicit.o src/job.o src/load.o src/loadapi.o src/main.o src/misc.o src/output.o src/read.o src/remake.o src/rule.o src/shuffle.o src/signame.o src/strcache.o src/variable.o src/version.o src/vpath.o src/posixos.o src/remote-stub.o lib/libgnu.a make[1]: Leaving directory '/home/dgoncharov/src/gmake/make/l64' $ ls -l src/main.o src/shuffle.o -rw-r--r-- 1 dgoncharov wireshark 107K Feb 7 21:18 src/main.o -rw-r--r-- 1 dgoncharov wireshark 13K Feb 7 21:16 src/shuffle.o $ regards, Dmitry