RAGEL = ragel
RLCODEGEN = rlcodegen

all: statechart

ps: statechart.ps

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

statechart.cpp: statechart.rl 
	$(RAGEL) statechart.rl | $(RLCODEGEN) -G2 -o statechart.cpp

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

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

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