%.dvi:%.tex tex $< %.ps:%.dvi dvips $< %.pnm:%.ps pstopnm -stdout $< > $ %.png:%.pnm pnmtopng $< > $
tut das Gefragte. Die erste pattern rule ist übrigens bereits in GNU make eingebaut.
Überlegt euch, was Make sich überlegt, wenn man make onepage.ps oder make onepage.png sagt – und was passiert, wenn die verschiedenen Dateien schon existieren.
Nebenbei: Wenn ihr das probieren wollt, braucht ihr das netpbm-Paket. Ihr werdet merken, dass make die Zwischen-targets löscht – wenn ihr sie behalten wollt, könnt ihr sie durch Aufzählen im Pseudo-Target .PRECIOUS als “wertvoll” deklarieren, make lässt sie dann stehen (was eine gute Idee ist, wenn ihre Erzeugung viel Rechenzeit braucht).