# Copyright 2012-2022, Alexander Shibakov # This file is part of SPLinT # # SPLinT is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # SPLinT is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with SPLinT. If not, see . # this Makefile uses a flat directory structure for demonstration # purposes; the main directory (../..) contains a slightly more # modular organization. include ../../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} ${BISON_STATE} -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_XTABLES} 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