1#! /bin/sh
2# Copyright (C) 2003-2021 Free Software Foundation, Inc.
3#
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.
8#
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.
13#
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/>.
16
17# Check that info files are built in builddir and in srcdir can safely
18# co-exist.  This setup is obtained by having two info files, only one
19# of which being cleaned.
20# (Similar to txinfo16.sh, plus CLEANFILES).
21# (See also txinfo23.sh and txinfo24.sh).
22
23required='makeinfo tex texi2dvi'
24. test-init.sh
25
26cat >> configure.ac << 'END'
27AC_OUTPUT
28END
29
30cat > Makefile.am << 'END'
31CLEANFILES = [a-m]*.info
32info_TEXINFOS = main.texi other.texi
33END
34
35cat > main.texi << 'END'
36\input texinfo
37@setfilename main.info
38@settitle main
39@node Top
40Hello walls.
41@include version.texi
42@bye
43END
44
45cat > other.texi << 'END'
46\input texinfo
47@setfilename other.info
48@settitle other
49@node Top
50Hello walls.
51@include version2.texi
52@bye
53END
54
55$ACLOCAL
56$AUTOCONF
57
58AUTOMAKE_fails --add-missing
59grep "Makefile\.am:.*undocumented.* automake hack" stderr
60grep "Makefile\.am:.*'info-in-builddir' automake option" stderr
61
62$AUTOMAKE --add-missing -Wno-obsolete
63
64mkdir build
65cd build
66../configure
67$MAKE
68test -f main.info
69test ! -e ../main.info
70test ! -e other.info
71test -f ../other.info
72
73cd ..
74rm -rf build
75./configure
76$MAKE
77test -f main.info
78test -f other.info
79
80# Make sure stamp-vti is older that version.texi.
81# (A common situation in a real tree).
82# This is needed to test the "subtle" issue described below.
83test -f stamp-vti
84test -f version.texi
85test -f stamp-1
86test -f version2.texi
87$sleep
88touch stamp-vti
89touch stamp-1
90
91$MAKE distclean
92test -f stamp-vti
93test -f stamp-1
94test -f version.texi
95test -f version2.texi
96
97mkdir build
98cd build
99../configure
100$MAKE
101# other.info should not be rebuilt in the current directory, since
102# it's up-to-date in $(srcdir).
103# This can be caused by a subtle issue related to VPATH handling
104# of version.texi (see also the comment in texi-vers.am): because
105# stamp-vti is newer than version.texi, the 'version.texi: stamp-vti'
106# rule is always triggered.  Still that's not a reason for 'make'
107# to think 'version.texi' has been created...
108test -f main.info
109test ! -e other.info
110$MAKE dvi
111test -f main.dvi
112test -f other.dvi
113
114$MAKE distcheck
115
116:
117