123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #! /bin/sh
- # Copyright (C) 2011-2017 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 <http://www.gnu.org/licenses/>.
- # Check that automake really automatically distributes all the files
- # it advertises to do.
- # Related to automake bug#7819.
- # Keep this test in sync with sister test 'autodist-subdir.sh'.
- am_create_testdir=empty
- . test-init.sh
- cat > configure.ac <<END
- AC_INIT([$me], [1.0])
- AC_CONFIG_AUX_DIR([.])
- AM_INIT_AUTOMAKE
- AC_CONFIG_FILES([Makefile])
- AC_OUTPUT
- END
- $ACLOCAL
- $AUTOCONF
- # The automake manual states that the list of automatically-distributed
- # files should be given by 'automake --help'.
- list=$($AUTOMAKE --help \
- | sed -n '/^Files.*automatically distributed.*if found.*always/,/^ *$/p' \
- | sed 1d)
- # Normalize whitespace, just in case.
- list=$(echo $list)
- test -n "$list"
- cat > Makefile.am <<'END'
- include distfiles.am
- check-local:
- ## For debugging.
- @echo DIST_COMMON:
- @for f in $(DIST_COMMON); do echo " $$f"; done
- @echo DISTDIR:
- @ls -l $(distdir) | sed 's/^/ /'
- ## Now the checks.
- @for f in $(autodist_list); do \
- echo "file: $$f"; \
- test -f $(distdir)/$$f \
- || { echo $$f: distdir fail >&2; exit 1; }; \
- ## Some filenames might contain dots, but this won't cause spurious
- ## failures, and "spurious successes" are so unlikely that they're
- ## not worth worrying about.
- echo ' ' $(DIST_COMMON) ' ' | grep "[ /]$$f " >/dev/null \
- || { echo $$f: distcom fail >&2; exit 1; }; \
- done
- END
- : First try listing the automatically-distributed files in proper
- : targets in Makefile.am
- echo "MAINTAINERCLEANFILES = $list" > distfiles.am
- for f in $list; do echo "$f :; touch $f"; done >> distfiles.am
- cat distfiles.am # For debugging.
- $AUTOMAKE -a
- ./configure
- $MAKE distdir
- autodist_list="$list" $MAKE check
- $MAKE maintainer-clean
- test ! -e README # Sanity check.
- rm -rf $me-1.0 # Remove $(distdir).
- : Now try creating the automatically-distributed files before
- : running automake.
- : > distfiles.am
- for f in $list; do
- echo dummy > $f
- done
- ls -l # For debugging.
- $AUTOMAKE
- ./configure
- $MAKE distdir
- autodist_list="$list" $MAKE check
- :
|