diff options
-rw-r--r-- | examples/calc++/.gitignore | 19 | ||||
-rw-r--r-- | examples/calc++/calc++-parser.hh | 4 | ||||
-rw-r--r-- | examples/calc++/local.mk | 58 | ||||
-rw-r--r-- | examples/calc++/y.tab.h | 6 |
4 files changed, 41 insertions, 46 deletions
diff --git a/examples/calc++/.gitignore b/examples/calc++/.gitignore index 6dc7e2f3..2306d175 100644 --- a/examples/calc++/.gitignore +++ b/examples/calc++/.gitignore @@ -1,11 +1,18 @@ -/*.cc -/*.hh -/*.ll /*.o -/*.output -/*.stamp /*.tmp -/*.yy /.deps /calc++ +/calc++-driver.cc +/calc++-driver.hh +/calc++-parser.output +/calc++-parser.yy +/calc++-parser.cc +/calc++-parser.h +/calc++-scanner.cc +/calc++-scanner.ll +/calc++.cc /calc++.exe +/calc.stamp +/location.hh +/position.hh +/stack.hh diff --git a/examples/calc++/calc++-parser.hh b/examples/calc++/calc++-parser.hh new file mode 100644 index 00000000..6f1e8852 --- /dev/null +++ b/examples/calc++/calc++-parser.hh @@ -0,0 +1,4 @@ +// Work around an Automake 1.11.2 bug: it asks for the creation of +// y.tab.h and then renames it as calc++-parser.h instead of +// calc++-parser.hh. We don't want this to show in the documentation. +#include "calc++-parser.h" diff --git a/examples/calc++/local.mk b/examples/calc++/local.mk index affb9c30..967925fd 100644 --- a/examples/calc++/local.mk +++ b/examples/calc++/local.mk @@ -32,62 +32,40 @@ $(top_srcdir)/examples/calc++/calc.stamp: $(doc) $(extexi) $(AM_V_at)mv $@.tmp $@ $(calc_extracted): $(top_srcdir)/examples/calc++/calc.stamp - -## ------------------- ## -## Parser generation. ## -## ------------------- ## - -BUILT_SOURCES += $(calc_extracted) $(calc_sources_generated) -CLEANFILES += $(top_srcdir)/examples/calc++/*.output *.tmp -MAINTAINERCLEANFILES += $(top_srcdir)/examples/calc++/*.stamp $(calc___SOURCES) - -# Compile the parser and save cycles. -# This code comes from "Handling Tools that Produce Many Outputs", -# from the Automake documentation. -EXTRA_DIST += \ - examples/calc++/calc++-parser.stamp \ - examples/calc++/calc++-parser.yy \ - examples/calc++/calc.stamp -# Don't depend on $(BISON) otherwise we would rebuild these files -# in srcdir, including during distcheck, which is forbidden. -$(top_srcdir)/examples/calc++/calc++-parser.stamp: $(top_srcdir)/examples/calc++/calc++-parser.yy $(BISON_IN) - $(AM_V_GEN)rm -f calc++-parser.tmp - $(AM_V_at)touch calc++-parser.tmp - $(AM_V_at)$(BISON) -d -ra -o $(top_srcdir)/examples/calc++/calc++-parser.cc \ - $(top_srcdir)/examples/calc++/calc++-parser.yy - $(AM_V_at)mv -f calc++-parser.tmp $@ - -$(calc_sources_generated): $(top_srcdir)/examples/calc++/calc++-parser.stamp $(AM_V_GEN)if test -f $@; then :; else \ - rm -f $(top_srcdir)/examples/calc++/calc++-parser.stamp && \ - $(MAKE) $(AM_MAKEFLAGS) $(top_srcdir)/examples/calc++/calc++-parser.stamp; \ + rm -f $< && \ + $(MAKE) $(AM_MAKEFLAGS) $<; \ fi - ## --------------------------- ## ## Building & testing calc++. ## ## --------------------------- ## -calc_sources_extracted = \ +BUILT_SOURCES += $(calc_sources) examples/calc++/calc++-parser.h +CLEANFILES += *.tmp +MAINTAINERCLEANFILES += $(top_srcdir)/examples/calc++/calc.stamp $(calc_sources) +EXTRA_DIST += examples/calc++/calc.stamp + +calc_extracted = \ examples/calc++/calc++-scanner.ll \ examples/calc++/calc++.cc \ examples/calc++/calc++-driver.hh \ - examples/calc++/calc++-driver.cc -calc_extracted = \ - $(calc_sources_extracted) \ + examples/calc++/calc++-driver.cc \ examples/calc++/calc++-parser.yy -calc_sources_generated = \ +calc_generated = \ + examples/calc++/calc++-parser.h \ examples/calc++/stack.hh \ examples/calc++/position.hh \ - examples/calc++/location.hh \ - examples/calc++/calc++-parser.hh \ - examples/calc++/calc++-parser.cc - + examples/calc++/location.hh +calc_sources = \ + $(calc_extracted) $(calc_generated) if BISON_CXX_WORKS check_PROGRAMS = examples/calc++/calc++ examples_calc___calc___SOURCES = \ - $(calc_sources_extracted) \ - $(calc_sources_generated) + $(calc_sources) \ + examples/calc++/y.tab.h \ + examples/calc++/calc++-parser.hh + examples_calc___calc___CPPFLAGS = -I$(top_srcdir)/examples/calc++ TESTS = examples/calc++/test endif diff --git a/examples/calc++/y.tab.h b/examples/calc++/y.tab.h new file mode 100644 index 00000000..798b670e --- /dev/null +++ b/examples/calc++/y.tab.h @@ -0,0 +1,6 @@ +// Work around an Automake 1.11.2 bug: it asks for the creation of +// y.tab.c and y.tab.h and then renames them as calc++-parser.cc and +// calc++-parser.h, but in the former it does not convert the +// #include "y.tab.h". We don't want this to show in the +// documentation. +#include "calc++-parser.hh" |