diff options
Diffstat (limited to 'support/splint/examples/expression/Makefile')
-rw-r--r-- | support/splint/examples/expression/Makefile | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/support/splint/examples/expression/Makefile b/support/splint/examples/expression/Makefile new file mode 100644 index 0000000000..0e2f33c2ba --- /dev/null +++ b/support/splint/examples/expression/Makefile @@ -0,0 +1,59 @@ +# 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 +include ${SPLINT_ROOT}/makefile.loc + +# 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 + |