# In the original, the pattern rules are in an included non-specific # Makefile. %.rr: %.uml @echo "rule %.rr: %.uml ------" touch $@ %.norm-stamp: %.rr @echo "rule %.norm-stamp: %.rr ------" touch a.norm touch b.norm touch $@ %.ada: %.norm @echo "rule %.ada: %.norm ------" touch $@ %.gen: %.ada @echo "rule %.gen: %.ada ------" touch $@ # This is in the specific Makefile. It expects a file "many.uml", and # generates "a.gen" and "b.gen" from it. # # The first time you say "make a.gen", all is OK. If you "touch # many.uml", then "make a.gen" should run through the complete set of # rules. # # However, if this rule doesn't have the "empty recipe" indicator ";", # then "make a.gen" only goes as far as running the "%.norm-stamp: # %.rr" rule; you have to say "make a.gen" again for the rest of the # job to be done. a.norm b.norm: many.norm-stamp ; clean: -rm *.ada *.gen *.norm* *.rr