CC_BIN ?= gcc LEX_BIN ?= flex YACC_BIN ?= bison GRAMMARS_DIR ?= ./grammars GRAMMAR_ID ?= lysator SAMPLES_DIR ?= ./samples output ?= $(GRAMMAR_ID)-cocc all: $(output) $(GRAMMAR_ID).tab.h: $(GRAMMARS_DIR)/$(GRAMMAR_ID).y $(YACC_BIN) -d $? lex.yy.c: $(GRAMMARS_DIR)/$(GRAMMAR_ID).l $(GRAMMAR_ID).tab.h $(LEX_BIN) $< $(output): lex.yy.c $(GRAMMAR_ID).tab.c $(GRAMMAR_ID).tab.h $(CC_BIN) -o $@ lex.yy.c $(GRAMMAR_ID).tab.c clean: rm -f lex.yy.c *.tab.c *.tab.h *-cocc test: $(SAMPLES_DIR) $(output) for cfile in $(SAMPLES_DIR)/*; do printf "\n\n *** file: %s *** \n" $$cfile; ./$(output) < $$cfile; [ -eq $$? 0 ]; done