# this Makefile uses a flat directory structure for demonstration # purposes; the main directory (../..) contains a slightly more # modular organization. SPLINT_ROOT = $(shell pwd)/../.. include ${SPLINT_ROOT}/makefile.inc # rules specific to this example PARSER = expp LEXER = expl all: expression.pdf ptab.tex ltab.tex step1: expp.y expl.l step2: ptabout ltabout step3: ltab.tex ptab.tex ptabout: ${SPLINT_ROOT}/cweb/mkeparser.c ${PARSER}.c ${CC} -DPARSER_FILE=\"../examples/expression/$(lastword $^)\" -DYYPARSE_PARAMETERS= -o $@ $< ptab.tex: ptabout $< --optimize-actions $@ ltabout: ${SPLINT_ROOT}/cweb/mkscanner.c ${LEXER}.c ${CC} -DLEXER_FILE=\"../examples/expression/$(lastword $^)\" -o $@ $< ltab.tex: ltabout $< --optimize-actions $@ ${LEXER}.c: ${LEXER}.l ${FLEX} -o $@ $< test.tex ${PARSER}.yy ${LEXER}.ll: expression.x @${CTANGLE} $< ${UNLINE} test.txx test.tex expression.tex: expression.x @${CWEAVE} $< expression.pdf: expression.tex ${SPLINT_XPTABLES} ${SPLINT_XLTABLES} ${SPLINT_ROOT}/cweb/bo.tok etoks.sty @${PDFTEX} $< test: test.tex ptab.tex ltab.tex tex test.tex docs: expression.pdf mostlyclean: clean_temp -rm -f ptabout ltabout expression.c *.txx clean: clean_core -rm -f ptabout ltabout *.txx distclean: clean cd ${SPLINT_ROOT} && ${MAKE} clean