]> git.saurik.com Git - bison.git/blob - examples/calc++/Makefile.am
fea49b173451a474f3d7372728d57f46ba7d4757
[bison.git] / examples / calc++ / Makefile.am
1 ## Process this file with automake to produce Makefile.in -*-Makefile-*-
2 ## Copyright (C) 2005, 2006 Free Software Foundation, Inc.
3
4 ## This program is free software; you can redistribute it and/or modify
5 ## it under the terms of the GNU General Public License as published by
6 ## the Free Software Foundation; either version 2 of the License, or
7 ## (at your option) any later version.
8
9 ## This program is distributed in the hope that it will be useful,
10 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 ## GNU General Public License for more details.
13
14 ## You should have received a copy of the GNU General Public License
15 ## along with this program; if not, write to the Free Software
16 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 ## 02110-1301 USA
18
19 ## ------------------------------------- ##
20 ## Running the bison from this tarball. ##
21 ## ------------------------------------- ##
22
23 BISON = $(top_builddir)/tests/bison
24 BISON_IN = $(top_srcdir)/tests/bison.in
25
26 $(BISON): $(BISON_IN)
27 cd $(top_builddir)/tests && $(MAKE) $(AM_MAKEFLAGS) bison
28
29 ## ------------ ##
30 ## Extracting. ##
31 ## ------------ ##
32
33 doc = $(top_srcdir)/doc/bison.texinfo
34 extexi = $(top_srcdir)/examples/extexi
35 # Extract in src.
36 $(calc_extracted): $(doc) $(extexi)
37 cd $(srcdir) && \
38 $(AWK) -f ../extexi ../../doc/bison.texinfo -- \
39 calc++-parser.yy \
40 calc++-scanner.ll calc++.cc calc++-driver.hh calc++-driver.cc
41
42
43 ## ------------------- ##
44 ## Parser generation. ##
45 ## ------------------- ##
46
47 BUILT_SOURCES = $(calc_extracted) $(calc_sources_generated)
48 CLEANFILES = $(srcdir)/*.output *.tmp
49 MAINTAINERCLEANFILES = $(srcdir)/*.stamp $(BUILT_SOURCES)
50
51 # Compile the parser and save cycles.
52 # This code comes from "Handling Tools that Produce Many Outputs",
53 # from the Automake documentation.
54 EXTRA_DIST = $(srcdir)/calc++-parser.stamp $(srcdir)/calc++-parser.yy
55 # Don't depend on $(BISON) otherwise we would rebuild these files
56 # in srcdir, including during distcheck, which is forbidden.
57 $(srcdir)/calc++-parser.stamp: $(srcdir)/calc++-parser.yy $(BISON_IN)
58 @rm -f calc++-parser.tmp
59 @touch calc++-parser.tmp
60 $(BISON) -d -ra -S lalr1.cc -o $(srcdir)/calc++-parser.cc \
61 $(srcdir)/calc++-parser.yy
62 @mv -f calc++-parser.tmp $@
63
64 $(calc_sources_generated): $(srcdir)/calc++-parser.stamp
65 @if test -f $@; then :; else \
66 rm -f $(srcdir)/calc++-parser.stamp && \
67 $(MAKE) $(AM_MAKEFLAGS) $(srcdir)/calc++-parser.stamp; \
68 fi
69
70
71 ## --------------------------- ##
72 ## Building & testing calc++. ##
73 ## --------------------------- ##
74
75 check_PROGRAMS = calc++
76
77 calc_sources_extracted = $(srcdir)/calc++-scanner.ll $(srcdir)/calc++.cc \
78 $(srcdir)/calc++-driver.hh $(srcdir)/calc++-driver.cc
79 calc_extracted = $(calc_sources_extracted) $(srcdir)/calc++-parser.yy
80 calc_sources_generated = \
81 $(srcdir)/stack.hh $(srcdir)/position.hh $(srcdir)/location.hh \
82 $(srcdir)/calc++-parser.hh $(srcdir)/calc++-parser.cc
83
84 calc___SOURCES = $(calc_sources_extracted) $(calc_sources_generated)
85
86 TESTS = test
87 EXTRA_DIST += $(TESTS)