From: Stefano Lattarini Date: Sun, 12 Aug 2012 12:09:34 +0000 (+0200) Subject: [ng] texi: verbatim include of rules for texinfo installation X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b80d8d27d48007f8ebca8af72166a80d67ff6b88;p=thirdparty%2Fautomake.git [ng] texi: verbatim include of rules for texinfo installation It tells whether the '.info' files must be installed by default (usually yes, unless the "no-installinfo" automake option is used). This is just a preparatory change, in view of future ones. * lib/am/texinfos.am: Move ... * lib/am/texinfos.mk: ... here, with related adjustments. Also ... (info_TEXINFOS): ... initialize this to empty by default. * lib/am/automake.in (handle_texinfo): Adjust and simplify accordingly. * Makefile.am (dist_am_DATA): Adjust. * t/txinfo10.sh: Remove, basically an obsolete grepping check. We can instead ... * t/txinfo21.sh: ... enhance this semantic test to subsume and supersede the removed one. * t/override-conditional-1.sh: Adjust to avoid spurious failures. Signed-off-by: Stefano Lattarini --- diff --git a/Makefile.am b/Makefile.am index 5b3d6ab4c..db3dea7d1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -185,7 +185,6 @@ EXTRA_DIST += lib/Automake/Config.in dist_am_DATA = \ lib/am/am-dir.mk \ - lib/am/texibuild.mk \ lib/am/common-targets.mk \ lib/am/color-tests.mk \ lib/am/serial-tests.mk \ @@ -198,6 +197,8 @@ dist_am_DATA = \ lib/am/distcheck.mk \ lib/am/distdir.mk \ lib/am/subdirs.mk \ + lib/am/texibuild.mk \ + lib/am/texinfos.mk \ lib/am/compile.am \ lib/am/configure.am \ lib/am/data.am \ @@ -221,7 +222,6 @@ dist_am_DATA = \ lib/am/scripts.am \ lib/am/texi-vers.am \ lib/am/texi-spec.am \ - lib/am/texinfos.am \ lib/am/vala.am \ lib/am/yacc.am diff --git a/automake.in b/automake.in index 1b56581e8..a81f8e3ca 100644 --- a/automake.in +++ b/automake.in @@ -2973,16 +2973,13 @@ sub handle_texinfo () # FIXME: I think this is an obsolete future feature name. reject_var 'html_TEXINFOS', "HTML generation not yet supported"; - my $info_texinfos = var ('info_TEXINFOS'); - if ($info_texinfos) + if (my $info_texinfos = var ('info_TEXINFOS')) { define_verbose_texinfo; verbatim ('texibuild'); handle_texinfo_helper ($info_texinfos); } - $output_rules .= file_contents ('texinfos', - new Automake::Location, - 'LOCAL-TEXIS' => !!$info_texinfos); + verbatim ('texinfos'); } diff --git a/lib/am/texinfos.am b/lib/am/texinfos.mk similarity index 94% rename from lib/am/texinfos.am rename to lib/am/texinfos.mk index b35389fa6..64d10eba1 100644 --- a/lib/am/texinfos.am +++ b/lib/am/texinfos.mk @@ -18,13 +18,17 @@ # FIXME: this should probably be generalized and moved to header-vars.mk am.texi.create-installdir = $(if $(and $1,$^),$(MKDIR_P) '$(DESTDIR)$1',@:) +# Avoid interferences from the environment. +ifeq ($(call am.vars.is-undef,info_TEXINFOS),yes) + info_TEXINFOS := +endif ## ---------- ## ## Building. ## ## ---------- ## .PHONY: dvi dvi-am html html-am info info-am pdf pdf-am ps ps-am -if %?SUBDIRS% +ifdef SUBDIRS RECURSIVE_TARGETS += dvi-recursive html-recursive info-recursive RECURSIVE_TARGETS += pdf-recursive ps-recursive dvi: dvi-recursive @@ -32,27 +36,27 @@ html: html-recursive info: info-recursive pdf: pdf-recursive ps: ps-recursive -else !%?SUBDIRS% +else dvi: dvi-am html: html-am info: info-am pdf: pdf-am ps: ps-am -endif !%?SUBDIRS% +endif -if %?LOCAL-TEXIS% +ifdef info_TEXINFOS dvi-am: $(DVIS) html-am: $(HTMLS) info-am: $(INFO_DEPS) pdf-am: $(PDFS) ps-am: $(PSS) -else ! %?LOCAL-TEXIS% +else dvi-am: html-am: info-am: pdf-am: ps-am: -endif ! %?LOCAL-TEXIS% +endif ## ------------ ## @@ -78,12 +82,12 @@ am.texi.can-run-installinfo = \ ## ## TEXINFOS primary are always installed in infodir, hence install-data ## is hard coded. -if %?INSTALL-INFO% -if %?LOCAL-TEXIS% +ifndef am.conf.install-info +ifdef info_TEXINFOS am__installdirs += "$(DESTDIR)$(infodir)" install-data-am: install-info-am -endif %?LOCAL-TEXIS% -endif %?INSTALL-INFO% +endif +endif .PHONY: \ install-dvi install-dvi-am \ install-html install-html-am \ @@ -91,7 +95,7 @@ endif %?INSTALL-INFO% install-pdf install-pdf-am \ install-ps install-ps-am -if %?SUBDIRS% +ifdef SUBDIRS RECURSIVE_TARGETS += \ install-dvi-recursive \ install-html-recursive \ @@ -103,15 +107,15 @@ install-html: install-html-recursive install-info: install-info-recursive install-pdf: install-pdf-recursive install-ps: install-ps-recursive -else !%?SUBDIRS% +else install-dvi: install-dvi-am install-html: install-html-am install-info: install-info-am install-pdf: install-pdf-am install-ps: install-ps-am -endif !%?SUBDIRS% +endif -if %?LOCAL-TEXIS% +ifdef info_TEXINFOS # In GNU make, '$^' used in a recipe contains every dependency for the # target, even those not declared when the recipe is read; for example, @@ -208,20 +212,21 @@ install-html-am: .am/install-html $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; \ done -else ! %?LOCAL-TEXIS% +else # !info_TEXINFOS install-dvi-am: install-html-am: install-info-am: install-pdf-am: install-ps-am: -endif ! %?LOCAL-TEXIS% +endif # !info_TEXINFOS -## -------------- ## -## Uninstalling. ## -## -------------- ## +## --------------------------- ## +## Uninstalling and cleaning. ## +## --------------------------- ## + +ifdef info_TEXINFOS -if %?LOCAL-TEXIS% .PHONY uninstall-am: \ uninstall-dvi-am \ uninstall-html-am \ @@ -265,20 +270,12 @@ uninstall-info-am: $(call am.uninst.cmd,$(infodir),\ $(foreach i,$(notdir $(INFO_DEPS)),$i $i-[0-9] $i-[0-9][0-9])) -endif %?LOCAL-TEXIS% -if %?LOCAL-TEXIS% .PHONY: dist-info dist-info: $(INFO_DEPS) @$(foreach f,$(foreach x,$^,$(wildcard $x $x-[0-9] $x-[0-9][0-9])), \ cp -p $f $(distdir)/$(patsubst $(srcdir)/%,%,$f);) -endif %?LOCAL-TEXIS% - - -## ---------- ## -## Cleaning. ## -## ---------- ## -if %?LOCAL-TEXIS% am.clean.maint.f += $(foreach f,$(INFO_DEPS),$f $f-[0-9] $f-[0-9][0-9]) -endif %?LOCAL-TEXIS% + +endif # !info_TEXINFOS diff --git a/t/override-conditional-1.sh b/t/override-conditional-1.sh index 275234698..26f0a2823 100755 --- a/t/override-conditional-1.sh +++ b/t/override-conditional-1.sh @@ -24,10 +24,11 @@ AC_OUTPUT END cat > Makefile.am << 'END' +man1_MANS = foo.1 foobar: : > $@ if COND -ps: foobar +install-man: foobar : endif END @@ -35,20 +36,25 @@ END $ACLOCAL $AUTOMAKE -Wno-override -# "ps:" should be output in two conditions -grep 'ps:' Makefile.in # For debugging. -test $(grep -c '@ps:' Makefile.in) -eq 2 -grep '@COND_TRUE@ps: *foobar' Makefile.in -grep '@COND_FALSE@ps: *ps-am' Makefile.in +# "install-man:" should be output in two conditions +grep 'install-man' Makefile.in # For debugging. +test $(grep -c '@install-man:' Makefile.in) -eq 2 +grep '@COND_TRUE@install-man: *foobar' Makefile.in +grep '@COND_FALSE@install-man:' Makefile.in $AUTOCONF +: > foo.1 -./configure cond=no -$MAKE ps +./configure cond=no --prefix="$(pwd)/inst" +$MAKE install-man +test -d inst test ! -e foobar -./configure cond=yes -$MAKE ps +rm -rf inst + +./configure cond=yes --prefix="$(pwd)/inst" +$MAKE install-man +test ! -e inst test -f foobar : diff --git a/t/txinfo10.sh b/t/txinfo10.sh deleted file mode 100755 index 903d6f5b9..000000000 --- a/t/txinfo10.sh +++ /dev/null @@ -1,39 +0,0 @@ -#! /bin/sh -# Copyright (C) 2001-2012 Free Software Foundation, Inc. -# -# This program 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 2, or (at your option) -# any later version. -# -# This program 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 this program. If not, see . - -# Make sure dvi target recurses into subdir. -# Reported by Pavel Roskin. - -. ./defs || exit 1 - -cat > Makefile.am << 'END' -SUBDIRS = sub -END - -mkdir sub -cat > sub/Makefile.am << 'END' -info_TEXINFOS = maude.texi -END - -echo '@setfilename maude.info' > sub/maude.texi -: > sub/texinfo.tex - -$ACLOCAL -$AUTOMAKE - -grep dvi-recursive Makefile.in -grep '[^-]info-recursive' Makefile.in -grep '[^n]install-info-recursive' Makefile.in diff --git a/t/txinfo21.sh b/t/txinfo21.sh index 001d134a7..b892f68bb 100755 --- a/t/txinfo21.sh +++ b/t/txinfo21.sh @@ -146,6 +146,16 @@ test ! -e share/$me/html/main.html test ! -e share/$me/html/main2.html test ! -e share/$me/html/main3.html +$MAKE dvi +test -f main.dvi +test -f sub/main2.dvi +test -f rec/main3.dvi + +$MAKE clean +test ! -e main.dvi +test ! -e sub/main2.dvi +test ! -e rec/main3.dvi + $MAKE install-dvi test -f share/$me/dvi/main.dvi test -f share/$me/dvi/main2.dvi