# Programs.
HASFLEXML:=$(shell type flexml 2> /dev/null)

FLEXML = flexml 
FLEXMLOPTS=-v  -s ./skel  -b 1000000
FLEX=flex -Cfer

%.dtd: skel
#
#     # Generate linkable XML processor with header for application.
%.l %.h: %.dtd
	$(FLEXML) $(FLEXMLOPTS) $<

# Generate C source from flex scanner.
%.c:    %.l
	$(FLEX) -Pxml_yy -B -o"$@" "$<"

# Generate XML application C source to link with processor.
# Note: The dependency must be of the form "appl.c: appl.act proc.dtd".
%.c:    %.act
	$(FLEXML) $(FLEXMLOPTS) -D -a $^ 

# Direct generation of stand-alone XML processor+application.
# Note: The dependency must be of the form "appl.l: appl.act proc.dtd".
%.l:    %.act
	$(FLEXML) $(FLEXMLOPTS) -A -a $^ 
	


all: parser 

triggers.l: triggers_act.act triggers.dtd
triggers.c: triggers_act.act triggers.dtd
triggers_act.c: triggers_act.act triggers.dtd

parser : refresh.pregenerated
	
	#gcc triggers_act.c  triggers.c attr.c -o x1

refresh.pregenerated:  triggers_act.c  triggers.c attr.c
	cp triggers.c triggers_act.c triggers.h  pregenerated

clean : 
	rm triggers.l triggers.c triggers_act.c triggers.h
