.PHONY: all all: tst_b.o tst_a.o Makefile:: ; tst_b.o tst_a.o: tst_a.h tst_b.h #.SECONDARY: tst_a.c tst_b.c %.o: %.c @echo 'C: *=$* @=$@ <=$<' sleep .5 @for i in $^; do test -f "$$i" || echo "Missing: $$i"; done @for i in $^; do test -s "$$i" || echo "Empty: $$i"; done %.c %.h: %.a @echo 'A: *=$* @=$@ <=$<' rm -f $*.[ch] touch $*.c $*.h sleep 1 echo "$*.c ($<)" >$*.c sleep 1 echo "$*.h ($<)" >$*.h %.c %.h: %.b @echo 'B: *=$* @=$@ <=$<' rm -f $*.[ch] touch $*.c $*.h sleep 1 echo "$*.c ($<)" >$*.c sleep 1 echo "$*.h ($<)" >$*.h