all: .PHONY
.PHONY:

CFLAGS = -g -Og -Wall -Wextra -Werror -std=c99
YFLAGS = -v

.SUFFIXES: .awk
.SUFFIXES: .c
.SUFFIXES: .l
.SUFFIXES: .sh
.SUFFIXES: .y

.sh .awk:
	cp $< $@.tmp && chmod a+x $@.tmp && mv -f $@.tmp $@
.l.c:
	$(LEX) $(LFLAGS) -o $@ $<
.y.c:
	$(YACC) $(YFLAGS) -d -o $@ $<

all: vermerge

vermerge: insert
vermerge: parse

parse: scan.o parse.o
	$(CC) -o $@ $(CFLAGS) $(LDFLAGS) scan.o parse.o

parse.c: parse.y
parse.h: parse.c
parse.o: syntax.h
scan.c: scan.l
scan.o: parse.h
scan.o: syntax.h

clean:
	-rm -f insert
	-rm -f insert.tmp
	-rm -f parse
	-rm -f parse.c
	-rm -f parse.h
	-rm -f parse.o
	-rm -f parse.output
	-rm -f scan.c
	-rm -f scan.o
	-rm -f vermerge
	-rm -f vermerge.tmp
