maint: Update HACKING
[automake.git] / t / dist-auxfile.sh
blob70adcae3dd3e5aae6942553c07c96142a38526d8
1 #! /bin/sh
2 # Copyright (C) 2011-2017 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 # Files specified by AC_REQUIRE_AUX_FILE must exist, and they get
18 # automatically distributed by the top-level Makefile.am.
19 # Automake bug#9651 reported that this didn't happen when the build-aux
20 # directory was set to '.' by AC_CONFIG_AUX_DIR.
22 am_create_testdir=empty
23 . test-init.sh
25 i=0
26 for auxdir in build-aux ''; do
28 echo "*** Testing with auxdir '$auxdir' ***"
30 i=$(($i + 1))
31 mkdir T$i.d
32 cd T$i.d
34 unindent > configure.ac <<END
35 AC_INIT([$me], [1.0])
36 AC_CONFIG_AUX_DIR([${auxdir:-.}])
37 AM_INIT_AUTOMAKE
38 AC_REQUIRE_AUX_FILE([foo.txt])
39 AC_REQUIRE_AUX_FILE([bar.sh])
40 AC_REQUIRE_AUX_FILE([zardoz])
41 AC_CONFIG_FILES([Makefile subdir/Makefile])
42 AC_OUTPUT
43 END
45 echo auxdir = ${auxdir:+"$auxdir/"} > Makefile.am
46 unindent >> Makefile.am <<'END'
47 SUBDIRS = subdir
48 test: distdir
49 ls -l $(distdir) $(distdir)/* ;: For debugging.
50 @echo DIST_COMMON = $(DIST_COMMON) ;: Likewise.
51 echo ' ' $(DIST_COMMON) ' ' | grep '[ /]$(auxdir)foo.txt '
52 echo ' ' $(DIST_COMMON) ' ' | grep '[ /]$(auxdir)bar.sh '
53 echo ' ' $(DIST_COMMON) ' ' | grep '[ /]$(auxdir)zardoz '
54 test -f $(distdir)/$(auxdir)foo.txt
55 test -f $(distdir)/$(auxdir)bar.sh
56 test -f $(distdir)/$(auxdir)zardoz
57 .PHONY: test
58 check-local: test
59 END
61 mkdir subdir
62 : > subdir/Makefile.am
64 test -z "$auxdir" || mkdir "$auxdir" || exit 99
66 if test -z "$auxdir"; then
67 auxdir=.
68 auxdir_rx='\.'
69 else
70 auxdir_rx=$auxdir
73 $ACLOCAL
74 $AUTOCONF
76 AUTOMAKE_fails
77 grep "^configure\\.ac:4:.* required file.*$auxdir_rx/foo\\.txt" stderr
78 grep "^configure\\.ac:5:.* required file.*$auxdir_rx/bar\\.sh" stderr
79 grep "^configure\\.ac:6:.* required file.*$auxdir_rx/zardoz" stderr
81 touch $auxdir/foo.txt $auxdir/bar.sh $auxdir/zardoz
82 cp "$am_scriptdir"/missing "$am_scriptdir"/install-sh $auxdir \
83 || fatal_ "fetching auxiliary scripts 'missing' and 'install-sh'"
84 $AUTOMAKE
85 ./configure
86 $MAKE test
87 $EGREP '(foo\.txt|bar\.sh|zardoz)' subdir/Makefile.in && exit 1
89 $MAKE distcheck
91 cd ..
93 done