178 lines
4.5 KiB
Bash
178 lines
4.5 KiB
Bash
#!/bin/sh
|
|
# Copyright (C) 1996-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/>.
|
|
|
|
# Test for various older bugs related to quoting, escaping and
|
|
# line breaking in the use of AC_OUTPUT. Synthesised by a bunch
|
|
# of older tests (referenced below).
|
|
|
|
. test-init.sh
|
|
|
|
plan_ 22
|
|
|
|
rm -f configure.ac depcomp # Not required.
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
# Test for bug reported by François Pinard.
|
|
# If \ is in AC_OUTPUT, automake barfs.
|
|
# This was the old test 'acoutbs.test'.
|
|
|
|
# Also test for bug reported by David A. Swierczek.
|
|
# Another bug with \ in AC_OUTPUT (this time with whitespace).
|
|
# This was the old test 'acoutbs2.test'.
|
|
|
|
acoutbs_check ()
|
|
{
|
|
dir=acoutbs$1
|
|
mkdir $dir
|
|
cd $dir
|
|
cat > configure.ac
|
|
touch Makefile.am zot.in
|
|
command_ok_ "aclocal groks '\\' in AC_OUTPUT ($dir)" $ACLOCAL
|
|
command_ok_ "automake groks '\\' in AC_OUTPUT ($dir)" $AUTOMAKE
|
|
command_ok_ "autoconf groks '\\' in AC_OUTPUT ($dir)" $AUTOCONF
|
|
command_ok_ "can ./configure in $dir" ./configure
|
|
command_ok_ "zot created in $dir" test -f zot
|
|
ls -a > lst || bailout_ "cannot get file listing in $dir"
|
|
command_ok_ "'\\' not leaked in filenames in $dir" not grep '\\' lst
|
|
cd ..
|
|
}
|
|
|
|
acoutbs_check 1 << 'END'
|
|
AC_INIT([acoutbs1], [1.0])
|
|
AM_INIT_AUTOMAKE
|
|
AC_OUTPUT(Makefile \
|
|
zot)
|
|
END
|
|
|
|
acoutbs_check 2 << 'END'
|
|
AC_INIT([acoutbs2], [1.0])
|
|
AM_INIT_AUTOMAKE
|
|
AC_OUTPUT(\
|
|
Makefile \
|
|
zot
|
|
)
|
|
END
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
# Test for bug reported by Jerome Santini.
|
|
# If I put this line in my configure.ac:
|
|
# AC_OUTPUT(Makefile src/Makefile tests/Makefile, echo timestamp > stamp-h)dnl
|
|
# automake is not happy:
|
|
# [ ... ]
|
|
# This was the old test 'acoutnoq.test'.
|
|
|
|
mkdir acoutnoq
|
|
cd acoutnoq
|
|
|
|
cat > configure.ac << 'END'
|
|
AC_INIT([acoutnoq], [1.0])
|
|
AM_INIT_AUTOMAKE
|
|
AC_OUTPUT(Makefile, [true])
|
|
END
|
|
|
|
: > Makefile.am
|
|
|
|
command_ok_ "aclocal and quoted AC_OUTPUT second argument" $ACLOCAL
|
|
command_ok_ "automake and quoted AC_OUTPUT second argument" $AUTOMAKE
|
|
|
|
cd ..
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
# Test for bug when AC_OUTPUT has 2 args on the same line, eg:
|
|
# AC_OUTPUT([Makefile automake tests/Makefile],[chmod +x automake])
|
|
# This was the old test 'acoutpt.test'.
|
|
|
|
mkdir acoutpt
|
|
cd acoutpt
|
|
|
|
cat > configure.ac << 'END'
|
|
AC_INIT([acoutpt], [1.0])
|
|
AM_INIT_AUTOMAKE
|
|
AC_OUTPUT([Makefile], [true])
|
|
END
|
|
|
|
: > Makefile.am
|
|
|
|
command_ok_ "aclocal and two AC_OUTPUT arguments on same line" $ACLOCAL
|
|
command_ok_ "automake and two AC_OUTPUT arguments on same line" $AUTOMAKE
|
|
|
|
cd ..
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
# Test for bug reported by Eric Magnien.
|
|
# This was the old test 'acoutpt2.test'.
|
|
|
|
mkdir acoutpt2
|
|
cd acoutpt2
|
|
|
|
# Name of the current "subtest".
|
|
cur=acoutput2
|
|
|
|
cat > configure.ac <<END
|
|
AC_INIT([$cur], [1.0])
|
|
AM_INIT_AUTOMAKE
|
|
AC_OUTPUT([subdir/Makefile subdir/foo Makefile foo], [true])
|
|
END
|
|
|
|
mkdir subdir
|
|
|
|
: > Makefile.am
|
|
: > subdir/Makefile.am
|
|
: > foo.in
|
|
: > subdir/foo.in
|
|
|
|
command_ok_ "aclocal and AC_OUTPUT ($cur)" $ACLOCAL
|
|
command_ok_ "automake and AC_OUTPUT ($cur)" $AUTOMAKE
|
|
command_ok_ "foo.in mentioned two times in Makefile.in ($cur)" \
|
|
test $($FGREP -c 'foo.in' Makefile.in) -eq 2
|
|
|
|
# This ought to work as well.
|
|
command_ok_ "'automake -a -f' and AC_OUTPUT ($cur)" \
|
|
$AUTOMAKE --add-missing --force-missing
|
|
|
|
cd ..
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
# Test for bug reported by François Pinard.
|
|
# This was the old test 'acoutqnl.test'.
|
|
|
|
mkdir acoutqnl
|
|
cd acoutqnl
|
|
|
|
cat > configure.ac << 'END'
|
|
AC_INIT([acoutqnl], [1.0])
|
|
AM_INIT_AUTOMAKE
|
|
AC_OUTPUT([Makefile],
|
|
[echo zardoz has spoken])
|
|
END
|
|
|
|
: > Makefile.am
|
|
|
|
command_ok_ "aclocal and two AC_OUTPUT arguments on two lines" $ACLOCAL
|
|
command_ok_ "automake and two AC_OUTPUT arguments on two lines" $AUTOMAKE
|
|
|
|
cd ..
|
|
|
|
# -----------------------------------------------------------------------
|
|
|
|
# And we're done.
|
|
exit 0
|