RAGEL = ../../ragel

all: statechart

ps: statechart.ps

statechart: statechart.o
	g++ -g -o statechart statechart.o 

statechart.cpp: statechart.rl $(RAGEL)
	$(RAGEL) -m -G2 -C -o statechart.cpp statechart.rl

statechart.o: statechart.cpp
	g++ -Wall -g -c -O3 -o $@ $<

statechart.ps: statechart.rl $(RAGEL)
	$(RAGEL) -Vm statechart.rl | dot -Tps > statechart.ps

distclean clean:
	rm -Rf *.o statechart.cpp statechart statechart.ps
