summaryrefslogtreecommitdiff
path: root/support/splint/examples/expression/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'support/splint/examples/expression/Makefile')
-rw-r--r--support/splint/examples/expression/Makefile59
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
+