$(shell touch foo.testfile1 foo.testfile2)

# when a rule has commands and no prerequisites, should it be executed?
# double-colon: yes
# single-colon: no

all: foo.testfile1 foo.testfile2
	test "$$(cat foo.testfile1)" = ""
	test "$$(cat foo.testfile2)" = "remade:foo.testfile2"
	@echo TEST-PASS

foo.testfile1:
	@echo TEST-FAIL

foo.testfile2::
	printf "remade:$@"> $@