doc: update Vala documentation
[automake.git] / t / txinfo-builddir.sh
blob3164f9035b1931955008e732f44b8d1a2d42ed25
1 #! /bin/sh
2 # Copyright (C) 2012-2024 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 # Check that info files are built in builddir when needed.
18 # This test that this can be done through the so far undocumented
19 # option 'info-in-builddir', as requested by at least GCC, GDB,
20 # GNU binutils and the GNU bfd library. See automake bug#11034.
22 required='makeinfo tex texi2dvi'
23 . test-init.sh
25 if useless_vpath_rebuild; then
26 skip_ "$MAKE has brittle VPATH support"
29 echo AC_OUTPUT >> configure.ac
31 cat > Makefile.am << 'END'
32 AUTOMAKE_OPTIONS = info-in-builddir
33 info_TEXINFOS = foo.texi subdir/bar.texi mu.texi
34 subdir_bar_TEXINFOS = subdir/inc.texi
35 CLEANFILES = mu.info
37 # mu.info should not be rebuilt in the current directory, since
38 # it's up-to-date in $(srcdir).
39 # This can be caused by a subtle issue related to VPATH handling
40 # of version.texi (see also the comment in texi-vers.am): because
41 # stamp-vti is newer than version.texi, the 'version.texi: stamp-vti'
42 # rule is always triggered. Still that's not a reason for 'make'
43 # to think 'version.texi' has been created...
44 check-local:
45 test ! -e mu.info
46 test -f $(srcdir)/mu.info
47 END
49 mkdir subdir
51 cat > foo.texi << 'END'
52 \input texinfo
53 @setfilename foo.info
54 @settitle foo
55 @node Top
56 Hello walls.
57 @include version.texi
58 @bye
59 END
61 cat > mu.texi << 'END'
62 \input texinfo
63 @setfilename mu.info
64 @settitle mu
65 @node Top
66 Mu mu mu.
67 @bye
68 END
70 cat > subdir/bar.texi << 'END'
71 \input texinfo
72 @setfilename bar.info
73 @settitle bar
74 @node Top
75 Hello walls.
76 @include inc.texi
77 @bye
78 END
80 echo "I'm included." > subdir/inc.texi
82 $ACLOCAL
83 $AUTOMAKE --add-missing
84 $AUTOCONF
86 mkdir build
87 cd build
88 ../configure
89 $MAKE info
90 test -f foo.info
91 test -f subdir/bar.info
92 test -f mu.info
93 test -f ../stamp-vti
94 test -f ../version.texi
95 test ! -e ../foo.info
96 test ! -e ../subdir/bar.info
97 test ! -e ../mu.info
98 $MAKE clean
99 test -f foo.info
100 test -f subdir/bar.info
101 test ! -e mu.info
102 test -f ../stamp-vti
103 test -f ../version.texi
105 # Make sure stamp-vti is older that version.texi.
106 # (A common situation in a real tree).
107 $sleep
108 touch ../stamp-vti
110 $MAKE distcheck
111 # Being distributed, this file should have been rebuilt.
112 test -f mu.info
114 $MAKE distclean
115 test -f ../stamp-vti
116 test -f ../version.texi
117 test -f foo.info
118 test -f subdir/bar.info
119 test ! -e mu.info
121 ../configure
122 $MAKE maintainer-clean
123 test ! -e ../stamp-vti
124 test ! -e ../version.texi
125 test ! -e stamp-vti
126 test ! -e version.texi
127 test ! -e foo.info
128 test ! -e subdir/bar.info
129 test ! -e mu.info