I would like make to reference the timestamp of a dependency if and only if the file already exists. I have a pattern rule like this:
%.pdf: %.sil
With a sufficiently new version of GNU make you can use:
.SECONDEXPANSION: %.pdf: %.sil $$(wildcard $$*.lua) sile $< -o $@
See the manual section for SECONDEXPANSION targets and the wildcard function.