From a029e56f5cf707378aa48cd783001d814dda6c9d Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Fri, 19 Oct 2012 11:28:01 +0200 Subject: [PATCH] maint: check for dot before using it * configure.ac: here. * doc/Makefile.am: Use $(DOT). Ship the generated files, to spare the user the need for Graphviz. --- README-hacking | 25 +++++++++++++------------ configure.ac | 1 + doc/Makefile.am | 17 ++++++++++------- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/README-hacking b/README-hacking index 26391e98..11b9f82a 100644 --- a/README-hacking +++ b/README-hacking @@ -43,16 +43,17 @@ These requirements do not apply when building from a distribution tarball. ** Requirements -We've opted to keep only the highest-level sources in the repository. -This eases our maintenance burden, (fewer merges etc.), but imposes more +We've opted to keep only the highest-level sources in the repository. This +eases our maintenance burden, (fewer merges etc.), but imposes more requirements on anyone wishing to build from the just-checked-out sources. For example, you have to use the latest stable versions of the maintainer tools we depend upon, including: -- Automake - Autoconf +- Automake - Flex - Gettext +- Graphviz - Gzip - Perl - Rsync @@ -61,16 +62,16 @@ tools we depend upon, including: Valgrind is also highly recommended, if it supports your architecture. -Bison is written using Bison grammars, so there are bootstrapping -issues. The bootstrap script attempts to discover when the C code -generated from the grammars is out of date, and to bootstrap with an -out-of-date version of the C code, but the process is not foolproof. -Also, you may run into similar problems yourself if you modify Bison. +Bison is written using Bison grammars, so there are bootstrapping issues. +The bootstrap script attempts to discover when the C code generated from the +grammars is out of date, and to bootstrap with an out-of-date version of the +C code, but the process is not foolproof. Also, you may run into similar +problems yourself if you modify Bison. -Only building the initial full source tree will be a bit painful. -Later, after synchronizing from the repository a plain 'make' should -be sufficient. Note, however, that when gnulib is updated, running -'./bootstrap' again might be needed. +Only building the initial full source tree will be a bit painful. Later, +after synchronizing from the repository a plain 'make' should be sufficient. +Note, however, that when gnulib is updated, running './bootstrap' again +might be needed. ** First checkout diff --git a/configure.ac b/configure.ac index 4cc9ef91..6a0e9c45 100644 --- a/configure.ac +++ b/configure.ac @@ -115,6 +115,7 @@ AC_SUBST([YACC_SCRIPT]) AC_SUBST([YACC_LIBRARY]) # Checks for programs. +AM_MISSING_PROG([DOT], [dot]) AC_PROG_LEX $LEX_IS_FLEX || AC_MSG_ERROR([Flex is required]) AC_PROG_YACC diff --git a/doc/Makefile.am b/doc/Makefile.am index 9c650bf3..9c9c24ca 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -101,26 +101,29 @@ nodist_man_MANS = yacc.1 ## ----------------------------- ## CLEANDIRS += figs -EXTRA_DIST += figs/example-reduce.dot figs/example-shift.dot +FIGS_DOT = figs/example-reduce.dot figs/example-shift.dot +EXTRA_DIST += \ + $(FIGS_DOT) \ + $(FIGS_DOT:.dot=.eps) $(FIGS_DOT:.dot=.pdf) $(FIGS_DOT:.dot=.png) SUFFIXES += .dot .eps .pdf .png -bison.dvi: figs/example-reduce.eps figs/example-shift.eps -bison.html: figs/example-reduce.png figs/example-shift.png -bison.pdf: figs/example-reduce.pdf figs/example-shift.pdf +bison.dvi: $(FIGS_DOT:.dot=.eps) +bison.html: $(FIGS_DOT:.dot=.png) +bison.pdf: $(FIGS_DOT:.dot=.pdf) .dot.eps: $(AM_V_GEN) $(MKDIR_P) `echo "./$@" | sed -e 's,/[^/]*$$,,'` - $(AM_V_at) dot -Teps $< >$@.tmp + $(AM_V_at) $(DOT) -Gmargin=0 -Teps $< >$@.tmp $(AM_V_at) mv $@.tmp $@ .dot.pdf: $(AM_V_GEN) $(MKDIR_P) `echo "./$@" | sed -e 's,/[^/]*$$,,'` - $(AM_V_at) dot -Tpdf -Gmargin=0 $< >$@.tmp + $(AM_V_at) $(DOT) -Gmargin=0 -Tpdf $< >$@.tmp $(AM_V_at) mv $@.tmp $@ .dot.png: $(AM_V_GEN) $(MKDIR_P) `echo "./$@" | sed -e 's,/[^/]*$$,,'` - $(AM_V_at) dot -Tpng $< >$@.tmp + $(AM_V_at) $(DOT) -Gmargin=0 -Tpng $< >$@.tmp $(AM_V_at) mv $@.tmp $@ ## -------------- ## -- 2.45.2