584f747f44a02382d64744572d7720b368aaee23
[platform/upstream/automake.git] / tests / fn99subdir.test
1 #! /bin/sh
2 # Copyright (C) 2006  Free Software Foundation, Inc.
3 #
4 # This file is part of GNU Automake.
5 #
6 # GNU Automake is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2, or (at your option)
9 # any later version.
10 #
11 # GNU Automake is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with Automake; see the file COPYING.  If not, write to
18 # the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 # Boston, MA 02110-1301, USA.
20
21 # PR 507: Check the filename-length-max=99 option
22 # in conjunction with AC_CONFIG_SUBDIRS.
23
24 . ./defs || exit 1
25
26 set -e
27
28 # The name is so that 99 is exactly hit (including final \0).
29 subdirname='cnfsubdir'
30
31 cat >>configure.in <<END
32 AC_CONFIG_SUBDIRS([${subdirname}])
33 AC_OUTPUT
34 END
35
36 cat >Makefile.am <<END
37 AUTOMAKE_OPTIONS = filename-length-max=99
38 SUBDIRS = ${subdirname}
39 END
40
41 mkdir ${subdirname} || exit 1
42
43 cat >> ${subdirname}/configure.in <<EOF
44 AC_INIT([${subdirname}], [1.0])
45 AM_INIT_AUTOMAKE
46 AC_CONFIG_FILES([Makefile])
47 AC_OUTPUT
48 EOF
49
50 cat >${subdirname}/Makefile.am <<'END'
51 AUTOMAKE_OPTIONS = filename-length-max=99
52 EXTRA_DIST = 12345678
53 END
54
55 (cd ${subdirname}; for i in 1 2 3 4 5 6 7 8
56 do
57   mkdir -p 12345678 || exit 77
58   cd 12345678
59   touch x
60 done)
61
62 for init_dir in ${subdirname} .; do
63         (
64                 cd ${init_dir} || exit 1
65                 $ACLOCAL
66                 $AUTOCONF
67                 $AUTOMAKE
68         ) || exit 1
69 done
70 ./configure
71 $MAKE distcheck
72
73 (cd ${subdirname}; for i in 1 2 3 4 5 6 7 8 9
74 do
75   mkdir -p 12345678 || exit 77
76   cd 12345678
77   touch x
78 done)
79
80 $MAKE dist 2>stderr && exit 1
81 cat stderr
82 grep 'filenames are too long' stderr
83 test 1 = `grep 12345678 stderr | wc -l`
84 :