tests: Let 'ltorder.sh' run successfully with Guix dynamic loader
[automake.git] / t / txinfo-no-clutter.sh
blobd0b03624b814c077ae45dde5b4a537bc54d4c302
1 #! /bin/sh
2 # Copyright (C) 2012-2018 Free Software Foundation, Inc.
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, or (at your option)
7 # any later version.
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.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <https://www.gnu.org/licenses/>.
17 # The info, html, pdf, ps and dvi targets shouldn't let clutter in the
18 # build directory. Related to automake bug#11146.
20 required='makeinfo tex texi2dvi dvips'
21 . test-init.sh
23 cat >> configure.ac <<'END'
24 AC_CONFIG_FILES([sub/Makefile])
25 AC_OUTPUT
26 END
28 cat > Makefile.am << 'END'
29 all-local: ps pdf dvi html # For "make distcheck".
30 info_TEXINFOS = foo.texi doc/bar.texi baz.texi
31 SUBDIRS = sub
32 END
34 mkdir sub doc
36 cat > sub/Makefile.am << 'END'
37 all-local: ps pdf dvi html # For "make distcheck".
38 info_TEXINFOS = baz.texi
39 END
41 cat > foo.texi << 'END'
42 \input texinfo
43 @setfilename foo.info
44 @settitle foo
45 @node Top
46 Hello walls.
47 @include version.texi
48 @bye
49 END
51 cat > doc/bar.texi << 'END'
52 \input texinfo
53 @setfilename bar.info
54 @settitle bar
55 @node Top
56 Hello walls.
57 @include version2.texi
58 @bye
59 END
61 cat > baz.texi << 'END'
62 \input texinfo
63 @setfilename baz.info
64 @settitle baz
65 @defindex au
66 @defindex sa
67 @defindex sb
68 @node Top
69 Hello walls.
70 @cindex foo
71 foo
72 @pindex bar
73 bar
74 @auindex baz
75 baz
76 @saindex sa
78 @sbindex sb
80 @bye
81 END
83 cp baz.texi sub
85 $ACLOCAL
86 $AUTOMAKE --add-missing
87 $AUTOCONF
89 ./configure
91 # Try one by one, to ensure later targets don't involuntarily
92 # clean up potential cruft left by earlier ones.
93 for fmt in info pdf ps dvi html all; do
94 $MAKE $fmt
95 # For debugging.
96 ls -l . doc sub
97 # Sanity check.
98 case $fmt in
99 html)
100 test -e foo.html
101 test -e doc/bar.html
102 test -e baz.html
103 test -e sub/baz.html
105 all)
106 for x in info pdf ps dvi; do
107 test -f foo.$x
108 test -f doc/bar.$x
109 test -f baz.$x
110 test -f sub/baz.$x
111 done
112 test -e foo.html
113 test -e doc/bar.html
114 test -e baz.html
115 test -e sub/baz.html
118 test -f foo.$fmt
119 test -f doc/bar.$fmt
120 test -f baz.$fmt
121 test -f sub/baz.$fmt
123 esac
124 # Real test.
125 ls -d foo* baz* sub/baz* doc/bar* > lst
126 basename_rx='(foo|doc/bar|baz|sub/baz)'
127 case $fmt in
128 pdf) extension_rx="(texi|pdf|t2p)";;
129 dvi) extension_rx="(texi|dvi|t2d)";;
130 ps) extension_rx="(texi|ps|dvi|t2d)";;
131 info) extension_rx="(texi|info)";;
132 html) extension_rx="(texi|html)";;
133 all) extension_rx="(texi|html|info|pdf|ps|dvi|t2[pd])";;
134 *) fatal_ "unreachable code reached";;
135 esac
136 $EGREP -v "^$basename_rx\.$extension_rx$" lst && exit 1
137 # Cleanup for checks on the next format.
138 case $fmt in
139 info) rm -f *.info doc/*.info sub/*.info;;
140 *) $MAKE clean;;
141 esac
142 done
144 $MAKE distcheck