blob: 6f306939b65c309bdb53346eaac44b180aa5f593 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
# Copyright 2012-2020, 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 <http://www.gnu.org/licenses/>.
# 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_XPTABLES} ${SPLINT_XLTABLES} ${SPLINT_ROOT}cweb/bo.tok ${SPLINT_ROOT}cweb/fo.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
|