Bei den meisten Make-Implementationen ist in Makefiles die Einrückung kritisch! Das Muster der Regel muss am Anfang der Zeile beginnen und alle Kommandos für die Regel müssen ohne Leerzeilen dazwischen direkt auf das Muster folgen sowie jeweils durch genau ein horizontales Tabulatorzeichen eingerückt sein.
Folgendes funktioniert zum Beispiel mit GNU Make einwandfrei:
# Konfigurierbare Programm- und Dateipfade
FSMDRAW=fsmdraw
DOT=dot
MORPH=morph.lab
# Startregel (kein Dateiziel, daher als PHONY markiert)
.PHONY: all
all: $(patsubst %.fsa, %.ps, $(wildcard *.fsa))
# Musterregel fsa -> ps
%.ps: %.fsa
$(FSMDRAW) -i $(MORPH) $^ | $(DOT) -Tps >$@
(edit: Scheinbar ist am Forum etwas kaputt, was alle Zeilenumbrüche im Codeblock verdoppelt -- das ist keine Absicht!)
When C++ is your hammer, every problem looks like your thumb.