diff options
Diffstat (limited to 't/am-prog-mkdir-p.sh')
-rw-r--r-- | t/am-prog-mkdir-p.sh | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/t/am-prog-mkdir-p.sh b/t/am-prog-mkdir-p.sh new file mode 100644 index 000000000..b561bfe04 --- /dev/null +++ b/t/am-prog-mkdir-p.sh @@ -0,0 +1,90 @@ +#! /bin/sh +# Copyright (C) 2012-2013 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 the AM_PROG_MKDIR_P macro is deprecated, but still works. +# We should should also still define $(mkdir_p), for backward +# compatibility. + +. test-init.sh + +cat >> configure.ac <<'END' +AC_CONFIG_FILES([sub/Makefile]) +AM_PROG_MKDIR_P +AC_OUTPUT +END + +cat > Makefile.am << 'END' +SUBDIRS = sub +all-local: + $(MKDIR_P) . dir1/a + $(mkdir_p) . dir2/b + @MKDIR_P@ . dir3/c + @mkdir_p@ . dir4/d +check-local: all + test -d dir1/a + test -d dir2/b + test -d dir3/c + test -d dir4/d + test -d dir5/e + test -d dir5/f + test -d dir5/g +END + +mkdir sub +cat > sub/Makefile.am << 'END' +# Even '$(mkdir_p)' should continue to work also in subdir makefiles. +all-local: + $(MKDIR_P) .. ../dir5/d + $(mkdir_p) .. ../dir5/e + @MKDIR_P@ .. ../dir5/f + @mkdir_p@ .. ../dir5/g +END + +$ACLOCAL +$AUTOCONF -Wnone -Wobsolete -Werror 2>stderr && { cat stderr >&2; exit 1; } +cat stderr >&2 +grep "^configure\\.ac:5:.*'AM_PROG_MKDIR_P'.*deprecated" stderr +grep "[Aa]utoconf-provided 'AC_PROG_MKDIR_P'.* instead" stderr +grep "'\$(MKDIR_P)' instead of '\$(mkdir_p)'" stderr + +$AUTOCONF -Wno-obsolete +$AUTOMAKE + +./configure +$MAKE check-local +$MAKE distcheck + +# Now try using AC_PROG_MKDIR_P, but keeping the occurrences of +# $(mkdir_p) and @mkdir_p@. This is to check against a regression +# that hit us with Gettext 0.18.2. +$MAKE maintainer-clean +rm -rf autom4te*.cache + +sed 's/AM_PROG_MKDIR/AC_PROG_MKDIR/' configure.ac > t +diff configure.ac t && fatal_ "failed to edit configure.ac" +mv -f t configure.ac + +$ACLOCAL 2>stderr \ + && $AUTOCONF -Wall -Werror 2>>stderr \ + && test ! -s stderr \ + || { cat stderr >&2; exit 1; } + +$AUTOMAKE +./configure +$MAKE check-local +$MAKE distcheck + +: |