#! /bin/sh
-# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 2004 Free Software Foundation, Inc.
#
# This file is part of GNU Automake.
#
# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
-# Check that installation to directory with shell metacharacters succeed.
-# Original report from James Amundson about file names with spaces.
-# Other characters added by Paul Eggert.
+# Check that installation to directory with spaces succeed.
+# Report from James Amundson.
# This is mostly the same input as nobase.test, but we do not use
# libtool libraries, because Libtool does not preserve space in
-# file names (Issue observed with ltmain.sh (GNU libtool) 1.5a (1.1323
+# filenames (Issue observed with ltmain.sh (GNU libtool) 1.5a (1.1323
# 2003/11/10 21:06:47))
set -e
-# Set up files that won't change each time through the loop.
+# Make sure this system supports spaces in filenames.
+mkdir 'a b' || exit 77
cat >> configure.in <<'EOF'
AC_PROG_CC
AC_OUTPUT
EOF
-mkdir sub
-
-: > sub/base.h
-: > sub/nobase.h
-: > sub/base.dat
-: > sub/nobase.dat
-: > sub/base.sh
-: > sub/nobase.sh
-
-cat >source.c <<'EOF'
-int
-main (int argc, char **argv)
-{
- return 0;
-}
-EOF
-cp source.c source2.c
-
cat > Makefile.am << 'EOF'
foodir = $(prefix)/foo
fooexecdir = $(prefix)/foo
sub_libbase_a_SOURCES = source.c
sub_libnobase_a_SOURCES = source.c
-test-install-sep: install
- test -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase.h'
- test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase.h'
- test -f '$(DESTDIR)/$(file)-prefix/foo/base.h'
- test -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase.dat'
- test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase.dat'
- test -f '$(DESTDIR)/$(file)-prefix/foo/base.dat'
- test -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase.sh'
- test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase.sh'
- test -f '$(DESTDIR)/$(file)-prefix/foo/base.sh'
- test -f '$(DESTDIR)/$(file)-prefix/foo/sub/nobase$(EXEEXT)'
- test ! -f '$(DESTDIR)/$(file)-prefix/foo/nobase$(EXEEXT)'
- test -f '$(DESTDIR)/$(file)-prefix/foo/base$(EXEEXT)'
- test -f '$(DESTDIR)/$(file)-prefix/foo/sub/libnobase.a'
- test ! -f '$(DESTDIR)/$(file)-prefix/foo/libnobase.a'
- test -f '$(DESTDIR)/$(file)-prefix/foo/libbase.a'
+test-install-space: install
+ test -f "$(DESTDIR)/more space/foo/sub/nobase.h"
+ test ! -f "$(DESTDIR)/more space/foo/nobase.h"
+ test -f "$(DESTDIR)/more space/foo/base.h"
+ test -f "$(DESTDIR)/more space/foo/sub/nobase.dat"
+ test ! -f "$(DESTDIR)/more space/foo/nobase.dat"
+ test -f "$(DESTDIR)/more space/foo/base.dat"
+ test -f "$(DESTDIR)/more space/foo/sub/nobase.sh"
+ test ! -f "$(DESTDIR)/more space/foo/nobase.sh"
+ test -f "$(DESTDIR)/more space/foo/base.sh"
+ test -f "$(DESTDIR)/more space/foo/sub/nobase$(EXEEXT)"
+ test ! -f "$(DESTDIR)/more space/foo/nobase$(EXEEXT)"
+ test -f "$(DESTDIR)/more space/foo/base$(EXEEXT)"
+ test -f "$(DESTDIR)/more space/foo/sub/libnobase.a"
+ test ! -f "$(DESTDIR)/more space/foo/libnobase.a"
+ test -f "$(DESTDIR)/more space/foo/libbase.a"
EOF
+mkdir sub
+
+: > sub/base.h
+: > sub/nobase.h
+: > sub/base.dat
+: > sub/nobase.dat
+: > sub/base.sh
+: > sub/nobase.sh
+
+cat >source.c <<'EOF'
+int
+main (int argc, char *argv[])
+{
+ return 0;
+}
+EOF
+cp source.c source2.c
+
$ACLOCAL
$AUTOCONF
$AUTOMAKE -a
-# Some control characters that are white space:
-# back space, carriage return, form feed, horizontal tab, line feed, space
-bs='\b'
-cr='\r'
-ff='\f'
-ht=' '
-lf='
-'
-sp=' '
-
-build_failures=
-install_failures=
-
-for file in \
- '!' '"' '#' '$' '%' '&' \' '(' ')' '*' '+' ',' '-' ':' ';' \
- '<' '=' '>' '?' '@' '[' '\' ']' '^' '`' '{' '|' '}' '~' \
- "$bs" "$cr" "$ff" "$ht" "$lf" "$sp" \
- '@<:@' '@:>@' '@S|@' '@%:@' '@&t@' \
- "a${sp}b" "a${sp}${sp}b" "a${lf}b" ... a:
-do
- for test in build install; do
- case $test in
- build)
- build=$file
- dest=`pwd`/sub1;;
- install)
- build=sub1
- dest=`pwd`/$file;;
- esac
-
- # Make sure this system supports this character in file names.
- mkdir sub1 "./$file" || exit 77
-
- cd "$build"
-
- ../configure --prefix "/$file-prefix" &&
- $MAKE &&
- DESTDIR=$dest file=$file $MAKE -e test-install-sep ||
- eval "${test}_failures=\"\$${test}_failures$lf\$file\""
-
- cd ..
-
- rm -fr sub1 "./$file"
- done
-done
-
-# The list of the above file names that cannot be used as a build directory
-# on a POSIX host. This list should be empty, but is not due to limitations
-# in Autoconf, Automake, Make, or M4.
-expected_build_failures='
-"
-#
-$
-&
-'\''
-\
-`
-'"$lf"'
-@&t@
-a'"${lf}"'b'
-
-# Similarly, the list of file names that cannot be used as an install directory
-# on a POSIX host. This list should also be empty.
-expected_install_failures='
-"
-#
-$
-'\''
-*
-`
-'"$lf"'
-a'"${lf}"'b'
-
-fail=0
-for test in build install; do
- eval failures=\$${test}_failures
- case $failures in
- ?*)
- cat >&2 <<EOF
-$0: $test test failed for the following file names:$failures
-EOF
- eval test \"\$failures\" = \"\$expected_${test}_failures\" || fail=1
- esac
-done
+mkdir build
+cd build
-exit $fail
+../configure --prefix '/more space'
+$MAKE
+dest=`pwd`/'with space';
+DESTDIR=$dest $MAKE -e test-install-space