]> git.ipfire.org Git - thirdparty/gcc.git/blame - libgo/configure.ac
re PR rtl-optimization/65618 (gnat bootstrap comparison failure on mips{,el}-linux...
[thirdparty/gcc.git] / libgo / configure.ac
CommitLineData
7a938933
ILT
1# configure.ac -- Go library configure script.
2
3# Copyright 2009 The Go Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style
5# license that can be found in the LICENSE file.
6
7# Process this file with autoreconf to produce configure.
8
9AC_PREREQ(2.64)
10AC_INIT(package-unused, version-unused,, libgo)
11AC_CONFIG_SRCDIR(Makefile.am)
12AC_CONFIG_HEADER(config.h)
13
c5fe5e80 14libtool_VERSION=10:0:0
7a938933
ILT
15AC_SUBST(libtool_VERSION)
16
17AM_ENABLE_MULTILIB(, ..)
18
19AC_CANONICAL_SYSTEM
20target_alias=${target_alias-$host_alias}
21
ee6440f8 22AM_INIT_AUTOMAKE([1.9.3 no-define foreign no-dist -Wall -Wno-portability])
7a938933
ILT
23AH_TEMPLATE(PACKAGE, [Name of package])
24AH_TEMPLATE(VERSION, [Version number of package])
25
26m4_rename([_AC_ARG_VAR_PRECIOUS],[glibgo_PRECIOUS])
27m4_define([_AC_ARG_VAR_PRECIOUS],[])
28AC_PROG_CC
29AC_PROG_GO
30m4_rename_force([glibgo_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
31
32AC_SUBST(CFLAGS)
33
34AM_MAINTAINER_MODE
35
36AC_PROG_LD
37AC_PROG_RANLIB
38AC_CHECK_TOOL(OBJCOPY, objcopy, missing-objcopy)
39
40AC_LIBTOOL_DLOPEN
41AM_PROG_LIBTOOL
42AC_SUBST(enable_shared)
43AC_SUBST(enable_static)
44
d983a802
ILT
45CC_FOR_BUILD=${CC_FOR_BUILD:-gcc}
46AC_SUBST(CC_FOR_BUILD)
47
de27caac
ILT
48AC_PROG_AWK
49
7a938933
ILT
50WARN_FLAGS='-Wall -Wextra -Wwrite-strings -Wcast-qual'
51AC_SUBST(WARN_FLAGS)
52
0d4668c1
ILT
53AC_ARG_ENABLE(werror, [AS_HELP_STRING([--enable-werror],
54 [turns on -Werror @<:@default=yes@:>@])])
55if test "x$enable_werror" != "xno"; then
56 WERROR="-Werror"
57fi
7a938933
ILT
58AC_SUBST(WERROR)
59
60glibgo_toolexecdir=no
61glibgo_toolexeclibdir=no
7a938933
ILT
62
63AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
64AC_ARG_ENABLE([version-specific-runtime-libs],
65 AC_HELP_STRING([--enable-version-specific-runtime-libs],
66 [Specify that runtime libraries should be installed in a compiler-specific directory]),
67 [case "$enableval" in
68 yes) version_specific_libs=yes ;;
69 no) version_specific_libs=no ;;
70 *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
71 esac],
72 [version_specific_libs=no])
73AC_MSG_RESULT($version_specific_libs)
74
75# Version-specific runtime libs processing.
76if test $version_specific_libs = yes; then
77 glibgo_toolexecdir='${libdir}/gcc/${host_alias}'
78 glibgo_toolexeclibdir='${toolexecdir}/${gcc_version}$(MULTISUBDIR)'
79fi
80
81# Calculate glibgo_toolexecdir, glibgo_toolexeclibdir
82# Install a library built with a cross compiler in tooldir, not libdir.
317ea7c0
ILT
83if test -n "$with_cross_host" &&
84 test x"$with_cross_host" != x"no"; then
85 nover_glibgo_toolexecdir='${exec_prefix}/${host_alias}'
86 nover_glibgo_toolexeclibdir='${toolexecdir}/lib'
87else
88 nover_glibgo_toolexecdir='${libdir}/gcc/${host_alias}'
89 nover_glibgo_toolexeclibdir='${libdir}'
90fi
6c76a95d 91multi_os_directory=`$GOC -print-multi-os-directory`
317ea7c0
ILT
92case $multi_os_directory in
93 .) ;; # Avoid trailing /.
94 *) nover_glibgo_toolexeclibdir=${nover_glibgo_toolexeclibdir}/${multi_os_directory} ;;
95esac
96
7a938933 97if test x"$glibgo_toolexecdir" = x"no"; then
317ea7c0
ILT
98 glibgo_toolexecdir="${nover_glibgo_toolexecdir}"
99 glibgo_toolexeclibdir="${nover_glibgo_toolexeclibdir}"
7a938933
ILT
100fi
101
7a938933
ILT
102AC_SUBST(glibgo_toolexecdir)
103AC_SUBST(glibgo_toolexeclibdir)
317ea7c0 104AC_SUBST(nover_glibgo_toolexeclibdir)
7a938933
ILT
105
106# See if the user wants to configure without libffi. Some
107# architectures don't support it. FIXME: We should set a default
108# based on the host.
109AC_ARG_WITH(libffi,
110 AS_HELP_STRING([--without-libffi],
111 [don't use libffi]),
112 [:],
113 [with_libffi=${with_libffi_default-yes}])
114
115LIBFFI=
116LIBFFIINCS=
117if test "$with_libffi" != no; then
118 AC_DEFINE(USE_LIBFFI, 1, [Define if we're to use libffi.])
119 LIBFFI=../libffi/libffi_convenience.la
120 LIBFFIINCS='-I$(top_srcdir)/../libffi/include -I../libffi/include'
121fi
122AC_SUBST(LIBFFI)
123AC_SUBST(LIBFFIINCS)
5302cd02 124AM_CONDITIONAL(USE_LIBFFI, test "$with_liffi" != "no")
7a938933 125
9a85ed03
ILT
126# See if the user wants to configure without libatomic. This is useful if we are
127# on an architecture for which libgo does not need an atomic support library and
128# libatomic does not support our C compiler.
129AC_ARG_WITH(libatomic,
130 AS_HELP_STRING([--without-libatomic],
131 [don't use libatomic]),
132 [:],
133 [with_libatomic=${with_libatomic_default-yes}])
134
135LIBATOMIC=
136if test "$with_libatomic" != no; then
137 LIBATOMIC=../libatomic/libatomic_convenience.la
138fi
139AC_SUBST(LIBATOMIC)
140
18c70075
ILT
141# Used to tell GNU make to include a file without telling automake to
142# include it.
143go_include="-include"
144AC_SUBST(go_include)
145
a8464243
ILT
146# All known GOOS values. This is the union of all operating systems
147# supported by the gofrontend and all operating systems supported by
148# the gc toolchain.
149ALLGOOS="android darwin dragonfly freebsd irix linux netbsd openbsd plan9 rtems solaris windows"
150
7a938933
ILT
151is_darwin=no
152is_freebsd=no
654d2ec0 153is_irix=no
7a938933 154is_linux=no
1efa38d1 155is_netbsd=no
4ccad563 156is_openbsd=no
f038dae6 157is_dragonfly=no
7a938933 158is_rtems=no
f2ee78b8 159is_solaris=no
c3b5b97b 160GOOS=unknown
7a938933 161case ${host} in
f2ee78b8
ILT
162 *-*-darwin*) is_darwin=yes; GOOS=darwin ;;
163 *-*-freebsd*) is_freebsd=yes; GOOS=freebsd ;;
654d2ec0 164 *-*-irix6*) is_irix=yes; GOOS=irix ;;
f2ee78b8 165 *-*-linux*) is_linux=yes; GOOS=linux ;;
df4aa89a 166 *-*-netbsd*) is_netbsd=yes; GOOS=netbsd ;;
4ccad563 167 *-*-openbsd*) is_openbsd=yes; GOOS=openbsd ;;
f038dae6 168 *-*-dragonfly*) is_dragonfly=yes; GOOS=dragonfly ;;
f2ee78b8
ILT
169 *-*-rtems*) is_rtems=yes; GOOS=rtems ;;
170 *-*-solaris2*) is_solaris=yes; GOOS=solaris ;;
7a938933
ILT
171esac
172AM_CONDITIONAL(LIBGO_IS_DARWIN, test $is_darwin = yes)
173AM_CONDITIONAL(LIBGO_IS_FREEBSD, test $is_freebsd = yes)
654d2ec0 174AM_CONDITIONAL(LIBGO_IS_IRIX, test $is_irix = yes)
7a938933 175AM_CONDITIONAL(LIBGO_IS_LINUX, test $is_linux = yes)
df4aa89a 176AM_CONDITIONAL(LIBGO_IS_NETBSD, test $is_netbsd = yes)
4ccad563 177AM_CONDITIONAL(LIBGO_IS_OPENBSD, test $is_openbsd = yes)
824393bd 178AM_CONDITIONAL(LIBGO_IS_DRAGONFLY, test $is_dragonfly = yes)
7a938933 179AM_CONDITIONAL(LIBGO_IS_RTEMS, test $is_rtems = yes)
f2ee78b8 180AM_CONDITIONAL(LIBGO_IS_SOLARIS, test $is_solaris = yes)
22b955cc 181AM_CONDITIONAL(LIBGO_IS_BSD, test $is_darwin = yes -o $is_dragonfly = yes -o $is_freebsd = yes -o $is_netbsd = yes -o $is_openbsd = yes)
c3b5b97b 182AC_SUBST(GOOS)
a8464243 183AC_SUBST(ALLGOOS)
7a938933 184
7134cf28
ILT
185dnl Test whether we need to use DejaGNU or whether we can use the
186dnl simpler gotest approach. We can only use gotest for a native
187dnl build.
188USE_DEJAGNU=no
189case ${host} in
190 *-*-rtems*) USE_DEJAGNU=yes ;;
553752e1 191 ${build}) ;;
7134cf28
ILT
192 *) USE_DEJAGNU=yes ;;
193esac
194AC_SUBST(USE_DEJAGNU)
195
a8464243
ILT
196# All known GOARCH values. This is the union of all architectures
197# supported by the gofrontend and all architectures supported by the
198# gc toolchain.
199# N.B. Keep in sync with gcc/testsuite/go.test/go-test.exp (go-set-goarch).
453060a9 200ALLGOARCH="386 alpha amd64 amd64p32 arm armbe arm64 arm64be ia64 m68k mipso32 mipsn32 mipso64 mipsn64 mips mipsle mips64 mips64le mips64p32 mips64p32le ppc ppc64 ppc64le s390 s390x sparc sparc64"
a8464243
ILT
201
202# All known GOARCH_FAMILY values.
203ALLGOARCHFAMILY="I386 ALPHA AMD64 ARM ARM64 IA64 M68K MIPS MIPS64 PPC PPC64 S390 S390X SPARC SPARC64"
204
c3b5b97b 205GOARCH=unknown
a8464243
ILT
206GOARCH_FAMILY=unknown
207GOARCH_BIGENDIAN=0
208GOARCH_CACHELINESIZE=64
209GOARCH_PHYSPAGESIZE=4096
210GOARCH_PCQUANTUM=1
211GOARCH_INT64ALIGN=8
212GOARCH_HUGEPAGESIZE=0
213GOARCH_MINFRAMESIZE=0
7a938933 214case ${host} in
e59b9171 215 alpha*-*-*)
e59b9171 216 GOARCH=alpha
a8464243
ILT
217 GOARCH_FAMILY=ALPHA
218 GOARCH_PHYSPAGESIZE=8192
219 GOARCH_PCQUANTUM=4
e59b9171 220 ;;
71d0d50a 221 aarch64-*-*)
71d0d50a 222 GOARCH=arm64
a8464243
ILT
223 GOARCH_FAMILY=ARM64
224 GOARCH_CACHELINESIZE=32
225 GOARCH_PHYSPAGESIZE=65536
f6c7d678 226 GOARCH_PCQUANTUM=4
a8464243 227 GOARCH_MINFRAMESIZE=8
71d0d50a 228 ;;
ca11cc98 229 arm*-*-* | strongarm*-*-* | ep9312*-*-* | xscale-*-*)
ca11cc98 230 GOARCH=arm
a8464243
ILT
231 GOARCH_FAMILY=ARM
232 GOARCH_CACHELINESIZE=32
233 GOARCH_PCQUANTUM=4
a8464243 234 GOARCH_MINFRAMESIZE=4
ca11cc98 235 ;;
7a938933 236changequote(,)dnl
c3b5b97b 237 i[34567]86-*-* | x86_64-*-*)
7a938933 238changequote([,])dnl
4a299bf4 239 AC_COMPILE_IFELSE([
c3b5b97b
ILT
240#ifdef __x86_64__
241#error 64-bit
242#endif],
a8464243
ILT
243[GOARCH=386
244GOARCH_FAMILY=I386
245GOARCH_INT64ALIGN=4
246GOARCH_HUGEPAGESIZE="1 << 21"
247],
248[GOARCH=amd64
249GOARCH_FAMILY=AMD64
250GOARCH_HUGEPAGESIZE="1 << 21"
251])
7a938933 252 ;;
4f8e688a 253 ia64-*-*)
4f8e688a 254 GOARCH=ia64
a8464243
ILT
255 GOARCH_FAMILY=IA64
256 GOARCH_CACHELINESIZE=16384
307dde6f 257 GOARCH_PHYSPAGESIZE=65536
4f8e688a 258 ;;
ca11cc98 259 m68k*-*-*)
ca11cc98 260 GOARCH=m68k
a8464243
ILT
261 GOARCH_FAMILY=M68K
262 GOARCH_BIGENDIAN=1
263 GOARCH_CACHELINESIZE=16
264 GOARCH_PCQUANTUM=4
0f366729 265 GOARCH_INT64ALIGN=2
ca11cc98
ILT
266 ;;
267 mips*-*-*)
4a299bf4 268 AC_COMPILE_IFELSE([
85a09210
ILT
269#if _MIPS_SIM != _ABIO32
270#error not o32
ca11cc98 271#endif],
85a09210
ILT
272[mips_abi="o32"],
273 [AC_COMPILE_IFELSE([
274#if _MIPS_SIM != _ABIN32
275#error not n32
276#endif],
277[mips_abi="n32"],
278 [AC_COMPILE_IFELSE([
279#if _MIPS_SIM != _ABI64
280#error not n64
281#endif],
282[mips_abi="n64"],
283 [AC_COMPILE_IFELSE([
284#if _MIPS_SIM != _ABIO64
285#error not o64
286#endif],
287[mips_abi="o64"],
288 [AC_MSG_ERROR([unknown MIPS ABI])
289[mips_abi="n32"]])])])])
290 case "$mips_abi" in
291 "o32") GOARCH=mipso32 ;;
292 "n32") GOARCH=mipsn32 ;;
293 "n64") GOARCH=mipsn64 ;;
294 "o64") GOARCH=mipso64 ;;
295 esac
a8464243
ILT
296 case "$mips_abi" in
297 "o32" | "n32")
298 GOARCH_FAMILY=MIPS
a8464243
ILT
299 GOARCH_MINFRAMESIZE=4
300 ;;
301 "n64" | "o64")
302 GOARCH_FAMILY=MIPS64
303 GOARCH_MINFRAMESIZE=8
304 ;;
305 esac
306 case "${host}" in
307 mips*el)
308 ;;
309 *)
310 GOARCH_BIGENDIAN=1
311 ;;
312 esac
313 GOARCH_CACHELINESIZE=32
314 GOARCH_PHYSPAGESIZE=16384
315 GOARCH_PCQUANTUM=4
ca11cc98
ILT
316 ;;
317 rs6000*-*-* | powerpc*-*-*)
4a299bf4 318 AC_COMPILE_IFELSE([
ca11cc98
ILT
319#ifdef _ARCH_PPC64
320#error 64-bit
321#endif],
a8464243
ILT
322[GOARCH=ppc
323GOARCH_FAMILY=PPC
324GOARCH_BIGENDIAN=1
a8464243
ILT
325],
326 [
327GOARCH_FAMILY=PPC64
328AC_COMPILE_IFELSE([
6f7ccafa
ILT
329#if defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__)
330#error 64be
331#endif],
a8464243
ILT
332[GOARCH=ppc64le
333],
334[GOARCH=ppc64
335GOARCH_BIGENDIAN=1
336])])
337 GOARCH_PHYSPAGESIZE=65536
338 GOARCH_PCQUANTUM=4
339 GOARCH_MINFRAMESIZE=32
7a938933 340 ;;
1fec5f52
ILT
341 s390*-*-*)
342 AC_COMPILE_IFELSE([
343#if defined(__s390x__)
344#error 64-bit
345#endif],
a8464243
ILT
346[GOARCH=s390
347GOARCH_FAMILY=S390
a8464243
ILT
348GOARCH_MINFRAMESIZE=4
349], [GOARCH=s390x
350GOARCH_FAMILY=S390X
351GOARCH_MINFRAMESIZE=8
352])
353 GOARCH_BIGENDIAN=1
354 GOARCH_CACHELINESIZE=256
355 GOARCH_PCQUANTUM=2
1fec5f52 356 ;;
f2ee78b8 357 sparc*-*-*)
4a299bf4 358 AC_COMPILE_IFELSE([
f2ee78b8
ILT
359#if defined(__sparcv9) || defined(__arch64__)
360#error 64-bit
361#endif],
a8464243
ILT
362[GOARCH=sparc
363GOARCH_FAMILY=SPARC
a8464243
ILT
364],
365[GOARCH=sparc64
366GOARCH_FAMILY=SPARC64
367])
368 GOARCH_BIGENDIAN=1
369 GOARCH_PHYSPAGESIZE=8192
370 GOARCH_PCQUANTUM=4
f2ee78b8 371 ;;
7a938933 372esac
c3b5b97b 373AC_SUBST(GOARCH)
a8464243
ILT
374AC_SUBST(GOARCH_FAMILY)
375AC_SUBST(GOARCH_BIGENDIAN)
376AC_SUBST(GOARCH_CACHELINESIZE)
377AC_SUBST(GOARCH_PHYSPAGESIZE)
378AC_SUBST(GOARCH_PCQUANTUM)
379AC_SUBST(GOARCH_INT64ALIGN)
380AC_SUBST(GOARCH_HUGEPAGESIZE)
381AC_SUBST(GOARCH_MINFRAMESIZE)
382AC_SUBST(ALLGOARCH)
383AC_SUBST(ALLGOARCHFAMILY)
7a938933 384
ca11cc98 385dnl Some files are only present when needed for specific architectures.
de27caac
ILT
386GO_LIBCALL_OS_FILE=
387GO_LIBCALL_OS_ARCH_FILE=
388GO_SYSCALL_OS_FILE=
389GO_SYSCALL_OS_ARCH_FILE=
204b9fc2
ILT
390if test -f "${srcdir}/go/syscall/libcall_${GOOS}.go"; then
391 GO_LIBCALL_OS_FILE="go/syscall/libcall_${GOOS}.go"
de27caac 392fi
204b9fc2
ILT
393if test -f "${srcdir}/go/syscall/libcall_${GOOS}_${GOARCH}.go"; then
394 GO_LIBCALL_OS_ARCH_FILE="go/syscall/libcall_${GOOS}_${GOARCH}.go"
de27caac 395fi
204b9fc2
ILT
396if test -f "${srcdir}/go/syscall/syscall_${GOOS}.go"; then
397 GO_SYSCALL_OS_FILE="go/syscall/syscall_${GOOS}.go"
de27caac 398fi
204b9fc2
ILT
399if test -f "${srcdir}/go/syscall/syscall_${GOOS}_${GOARCH}.go"; then
400 GO_SYSCALL_OS_ARCH_FILE="go/syscall/syscall_${GOOS}_${GOARCH}.go"
ca11cc98 401fi
de27caac
ILT
402AC_SUBST(GO_LIBCALL_OS_FILE)
403AC_SUBST(GO_LIBCALL_OS_ARCH_FILE)
404AC_SUBST(GO_SYSCALL_OS_FILE)
405AC_SUBST(GO_SYSCALL_OS_ARCH_FILE)
ca11cc98 406
d48be5df
ILT
407dnl Special flags used to generate sysinfo.go.
408OSCFLAGS="-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
90630d19 409case "$target" in
9f3b1e6c
ILT
410 mips-sgi-irix6.5*)
411 # IRIX 6 needs _XOPEN_SOURCE=500 for the XPG5 version of struct
412 # msghdr in <sys/socket.h>.
d48be5df 413 OSCFLAGS="$OSCFLAGS -D_XOPEN_SOURCE=500"
9f3b1e6c 414 ;;
90630d19
ILT
415 *-*-solaris2.1[[01]])
416 # Solaris 10+ needs this so struct msghdr gets the msg_control
bbe847a1 417 # etc. fields in <sys/socket.h> (_XPG4_2). _XOPEN_SOURCE=600 as
90630d19 418 # above doesn't work with C99.
bbe847a1 419 OSCFLAGS="$OSCFLAGS -std=gnu99 -D_XOPEN_SOURCE=600 -D__EXTENSIONS__"
90630d19
ILT
420 ;;
421esac
422AC_SUBST(OSCFLAGS)
423
c3c54e0f
ILT
424dnl Check linker hardware capability support.
425GCC_CHECK_LINKER_HWCAP
426
7a938933
ILT
427dnl Use -fsplit-stack when compiling C code if available.
428AC_CACHE_CHECK([whether -fsplit-stack is supported],
f2ee78b8 429[libgo_cv_c_split_stack_supported],
7a938933
ILT
430[CFLAGS_hold=$CFLAGS
431CFLAGS="$CFLAGS -fsplit-stack"
432AC_COMPILE_IFELSE([[int i;]],
f2ee78b8
ILT
433[libgo_cv_c_split_stack_supported=yes],
434[libgo_cv_c_split_stack_supported=no])
7a938933 435CFLAGS=$CFLAGS_hold])
c33c18cd
ILT
436
437dnl Make sure the linker permits -fsplit-stack. Old versions of gold will
438dnl reject split-stack code calling non-split-stack code on targets
439dnl they don't support.
440AC_CACHE_CHECK([whether linker supports split/non-split linked together],
441[libgo_cv_c_linker_split_non_split],
442[cat > conftest1.c << EOF
443extern void f();
444int main() { f(); return 0; }
445EOF
446cat > conftest2.c << EOF
447void f() {}
448EOF
207f844e
ILT
449$CC -c -fsplit-stack $CFLAGS $CPPFLAGS conftest1.c >/dev/null 2>&1
450$CC -c $CFLAGS $CPPFLAGS conftest2.c > /dev/null 2>&1
451if $CC -o conftest conftest1.$ac_objext conftest2.$ac_objext > /dev/null 2>&1; then
c33c18cd
ILT
452 libgo_cv_c_linker_split_non_split=yes
453else
454 libgo_cv_c_linker_split_non_split=no
455fi
456rm -f conftest1.* conftest2.* conftest])
457
458if test "$libgo_cv_c_split_stack_supported" = yes -a "$libgo_cv_c_linker_split_non_split" = yes; then
7a938933
ILT
459 SPLIT_STACK=-fsplit-stack
460 AC_DEFINE(USING_SPLIT_STACK, 1,
461 [Define if the compiler supports -fsplit-stack])
462else
463 SPLIT_STACK=
464fi
465AC_SUBST(SPLIT_STACK)
466AM_CONDITIONAL(USING_SPLIT_STACK,
c33c18cd 467 test "$libgo_cv_c_split_stack_supported" = yes -a "$libgo_cv_c_linker_split_non_split" = yes)
7a938933 468
a2bf11d1
ILT
469dnl If the compiler supports split-stack but the linker does not, then
470dnl we need to explicitly disable split-stack for Go.
471if test "$libgo_cv_c_split_stack_supported" = yes -a "$libgo_cv_c_linker_split_non_split" = no; then
472 GO_SPLIT_STACK=-fno-split-stack
473else
474 GO_SPLIT_STACK=
475fi
476AC_SUBST(GO_SPLIT_STACK)
477
7a938933
ILT
478dnl Check whether the linker does stack munging when calling from
479dnl split-stack into non-split-stack code. We check this by looking
480dnl at the --help output. FIXME: This is only half right: it's
481dnl possible for the linker to support this for some targets but not
482dnl others.
c33c18cd
ILT
483dnl This is slightly different from the above check, which is whether
484dnl the linker permits the call at all.
7a938933 485AC_CACHE_CHECK([whether linker supports split stack],
f2ee78b8 486[libgo_cv_c_linker_supports_split_stack],
f56c5dd1
ILT
487[libgo_cv_c_linker_supports_split_stack=no
488if $GOC -Wl,--help 2>/dev/null | grep split-stack-adjust-size >/dev/null 2>&1; then
f2ee78b8 489 libgo_cv_c_linker_supports_split_stack=yes
f56c5dd1 490fi])
f2ee78b8 491if test "$libgo_cv_c_linker_supports_split_stack" = yes; then
7a938933
ILT
492 AC_DEFINE(LINKER_SUPPORTS_SPLIT_STACK, 1,
493 [Define if the linker support split stack adjustments])
494fi
495
4c46b5f0
ILT
496AC_CACHE_CHECK([whether compiler is llgo],
497[libgo_cv_c_goc_is_llgo],
498[libgo_cv_c_goc_is_llgo=no
499if $GOC -dumpversion 2>/dev/null | grep llgo >/dev/null 2>&1; then
500 libgo_cv_c_goc_is_llgo=yes
501fi])
502AM_CONDITIONAL(GOC_IS_LLGO, test "$libgo_cv_c_goc_is_llgo" = yes)
503
505b439a
ILT
504dnl Test for the -lm library.
505MATH_LIBS=
506AC_CHECK_LIB([m], [sqrt], MATH_LIBS=-lm)
507AC_SUBST(MATH_LIBS)
508
f2ee78b8
ILT
509dnl Test for -lsocket and -lnsl. Copied from libjava/configure.ac.
510AC_CACHE_CHECK([for socket libraries], libgo_cv_lib_sockets,
511 [libgo_cv_lib_sockets=
512 libgo_check_both=no
513 AC_CHECK_FUNC(connect, libgo_check_socket=no, libgo_check_socket=yes)
514 if test "$libgo_check_socket" = "yes"; then
515 unset ac_cv_func_connect
516 AC_CHECK_LIB(socket, main, libgo_cv_lib_sockets="-lsocket",
517 libgo_check_both=yes)
518 fi
519 if test "$libgo_check_both" = "yes"; then
520 libgo_old_libs=$LIBS
521 LIBS="$LIBS -lsocket -lnsl"
522 unset ac_cv_func_accept
523 AC_CHECK_FUNC(accept,
524 [libgo_check_nsl=no
525 libgo_cv_lib_sockets="-lsocket -lnsl"])
526 unset ac_cv_func_accept
527 LIBS=$libgo_old_libs
528 fi
529 unset ac_cv_func_gethostbyname
530 libgo_old_libs="$LIBS"
531 AC_CHECK_FUNC(gethostbyname, ,
532 [AC_CHECK_LIB(nsl, main,
533 [libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lnsl"])])
534 unset ac_cv_func_gethostbyname
88cf4de8
ILT
535 AC_CHECK_FUNC(sendfile, ,
536 [AC_CHECK_LIB(sendfile, main,
537 [libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lsendfile"])])
f2ee78b8
ILT
538 LIBS=$libgo_old_libs
539])
540NET_LIBS="$libgo_cv_lib_sockets"
541AC_SUBST(NET_LIBS)
542
6c94a9fa
ILT
543dnl Test whether the compiler supports the -pthread option.
544AC_CACHE_CHECK([whether -pthread is supported],
f2ee78b8 545[libgo_cv_lib_pthread],
6c94a9fa
ILT
546[CFLAGS_hold=$CFLAGS
547CFLAGS="$CFLAGS -pthread"
548AC_COMPILE_IFELSE([[int i;]],
f2ee78b8
ILT
549[libgo_cv_lib_pthread=yes],
550[libgo_cv_lib_pthread=no])
6c94a9fa
ILT
551CFLAGS=$CFLAGS_hold])
552PTHREAD_CFLAGS=
f2ee78b8 553if test "$libgo_cv_lib_pthread" = yes; then
6c94a9fa
ILT
554 PTHREAD_CFLAGS=-pthread
555fi
556AC_SUBST(PTHREAD_CFLAGS)
557
558dnl Test for the -lpthread library.
559PTHREAD_LIBS=
560AC_CHECK_LIB([pthread], [pthread_create], PTHREAD_LIBS=-lpthread)
561AC_SUBST(PTHREAD_LIBS)
562
bbbe8b33 563dnl Test if -lrt is required for sched_yield or nanosleep or clock_gettime.
ed4ebabc 564AC_SEARCH_LIBS([sched_yield], [rt])
ae135907 565AC_SEARCH_LIBS([nanosleep], [rt])
bbbe8b33 566AC_SEARCH_LIBS([clock_gettime], [rt])
ed4ebabc 567
7a938933
ILT
568AC_C_BIGENDIAN
569
570GCC_CHECK_UNWIND_GETIPINFO
571
812ba636 572AC_CHECK_HEADERS(port.h sched.h semaphore.h sys/file.h sys/mman.h syscall.h sys/epoll.h sys/event.h sys/inotify.h sys/ptrace.h sys/syscall.h sys/user.h sys/utsname.h sys/select.h sys/socket.h net/if.h net/if_arp.h net/route.h netpacket/packet.h sys/prctl.h sys/mount.h sys/vfs.h sys/statfs.h sys/timex.h sys/sysinfo.h utime.h linux/ether.h linux/fs.h linux/reboot.h netinet/icmp6.h netinet/in_syst.h netinet/ip.h netinet/ip_mroute.h netinet/if_ether.h)
adb0401d 573
1410c222 574AC_CHECK_HEADERS([linux/filter.h linux/if_addr.h linux/if_ether.h linux/if_tun.h linux/netlink.h linux/rtnetlink.h], [], [],
adb0401d
ILT
575[#ifdef HAVE_SYS_SOCKET_H
576#include <sys/socket.h>
577#endif
578])
579
2aeaf0fb
ILT
580AC_CACHE_CHECK([whether <ustat.h> can be used],
581[libgo_cv_c_ustat_h],
dbe1e4a5
ILT
582[CFLAGS_hold=$CFLAGS
583CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE $OSCFLAGS"
2aeaf0fb
ILT
584AC_COMPILE_IFELSE(
585[AC_LANG_SOURCE([
586#include <sys/types.h>
587#ifdef HAVE_LINUX_FILTER_H
588#include <linux/filter.h>
589#endif
590#include <ustat.h>
dbe1e4a5
ILT
591])], [libgo_cv_c_ustat_h=yes], [libgo_cv_c_ustat_h=no])
592CFLAGS=$CFLAGS_hold])
2aeaf0fb
ILT
593if test $libgo_cv_c_ustat_h = yes; then
594 AC_DEFINE(HAVE_USTAT_H, 1,
595 [Define to 1 if you have the <ustat.h> header file and it works.])
596fi
597
7a938933 598AM_CONDITIONAL(HAVE_SYS_MMAN_H, test "$ac_cv_header_sys_mman_h" = yes)
8955c80a 599
f8d9fa9e 600AC_CHECK_FUNCS(strerror_r strsignal wait4 mincore setenv unsetenv dl_iterate_phdr)
8955c80a 601AM_CONDITIONAL(HAVE_STRERROR_R, test "$ac_cv_func_strerror_r" = yes)
0b3189e7 602AM_CONDITIONAL(HAVE_WAIT4, test "$ac_cv_func_wait4" = yes)
7a938933 603
6b05fadd 604AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat open64 openat pipe2 removexattr renameat setxattr sync_file_range splice tee unlinkat unshare utimensat)
5d46bf05 605AC_TYPE_OFF_T
e02ed81e
ILT
606AC_CHECK_TYPES([loff_t])
607
324612b3
ILT
608LIBS_hold="$LIBS"
609LIBS="$LIBS -lm"
610AC_CHECK_FUNCS(cosl expl logl sinl tanl acosl asinl atanl atan2l expm1l ldexpl log10l log1pl)
611LIBS="$LIBS_hold"
612
08ee945e
ILT
613CFLAGS_hold="$CFLAGS"
614CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
615LIBS_hold="$LIBS"
616LIBS="$LIBS $PTHREAD_LIBS"
617AC_CHECK_FUNCS(sem_timedwait)
618CFLAGS="$CFLAGS_hold"
619LIBS="$LIBS_hold"
620
d2b480bc
ILT
621LIBS_hold="$LIBS"
622LIBS="$LIBS $MATH_LIBS"
623AC_CHECK_FUNCS(matherr)
624LIBS="$LIBS_hold"
625
a7c48c8e
ILT
626AC_CACHE_CHECK([for __sync_bool_compare_and_swap_4],
627[libgo_cv_func___sync_bool_compare_and_swap_4],
628[AC_LINK_IFELSE([
629typedef unsigned int uint32 __attribute__ ((mode (SI)));
630uint32 i;
631int main() { return __sync_bool_compare_and_swap (&i, 0, 1); }
632],
633[libgo_cv_func___sync_bool_compare_and_swap_4=yes],
634[libgo_cv_func___sync_bool_compare_and_swap_4=no])])
635if test "$libgo_cv_func___sync_bool_compare_and_swap_4" = "yes"; then
636 AC_DEFINE(HAVE_SYNC_BOOL_COMPARE_AND_SWAP_4, 1,
637 [Define to 1 if the compiler provides the __sync_bool_compare_and_swap function for uint32])
638fi
639
12e3c396
ILT
640AC_CACHE_CHECK([for __sync_bool_compare_and_swap_8],
641[libgo_cv_func___sync_bool_compare_and_swap_8],
642[AC_LINK_IFELSE([
643typedef unsigned int uint64 __attribute__ ((mode (DI)));
644uint64 i;
645int main() { return __sync_bool_compare_and_swap (&i, 0, 1); }
646],
647[libgo_cv_func___sync_bool_compare_and_swap_8=yes],
648[libgo_cv_func___sync_bool_compare_and_swap_8=no])])
649if test "$libgo_cv_func___sync_bool_compare_and_swap_8" = "yes"; then
650 AC_DEFINE(HAVE_SYNC_BOOL_COMPARE_AND_SWAP_8, 1,
651 [Define to 1 if the compiler provides the __sync_bool_compare_and_swap function for uint64])
652fi
653
084996f1
ILT
654AC_CACHE_CHECK([for __sync_fetch_and_add_4],
655[libgo_cv_func___sync_fetch_and_add_4],
656[AC_LINK_IFELSE([
657typedef unsigned int uint32 __attribute__ ((mode (SI)));
658uint32 i;
659int main() { return __sync_fetch_and_add (&i, 1); }
660],
661[libgo_cv_func___sync_fetch_and_add_4=yes],
662[libgo_cv_func___sync_fetch_and_add_4=no])])
663if test "$libgo_cv_func___sync_fetch_and_add_4" = "yes"; then
664 AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD_4, 1,
665 [Define to 1 if the compiler provides the __sync_fetch_and_add function for uint32])
666fi
667
12e3c396
ILT
668AC_CACHE_CHECK([for __sync_add_and_fetch_8],
669[libgo_cv_func___sync_add_and_fetch_8],
670[AC_LINK_IFELSE([
671typedef unsigned int uint64 __attribute__ ((mode (DI)));
672uint64 i;
673int main() { return __sync_add_and_fetch (&i, 1); }
674],
675[libgo_cv_func___sync_add_and_fetch_8=yes],
676[libgo_cv_func___sync_add_and_fetch_8=no])])
677if test "$libgo_cv_func___sync_add_and_fetch_8" = "yes"; then
678 AC_DEFINE(HAVE_SYNC_ADD_AND_FETCH_8, 1,
679 [Define to 1 if the compiler provides the __sync_add_and_fetch function for uint64])
680fi
681
7a938933
ILT
682dnl For x86 we want to use the -minline-all-stringops option to avoid
683dnl forcing a stack split when calling memcpy and friends.
684AC_CACHE_CHECK([whether compiler supports -minline-all-stringops],
f2ee78b8 685[libgo_cv_c_stringops],
7a938933
ILT
686[CFLAGS_hold=$CFLAGS
687CFLAGS="$CFLAGS -minline-all-stringops"
688AC_COMPILE_IFELSE([int i;],
f2ee78b8
ILT
689[libgo_cv_c_stringops=yes],
690[libgo_cv_c_stringops=no])
7a938933
ILT
691CFLAGS=$CFLAGS_hold])
692STRINGOPS_FLAG=
f2ee78b8 693if test "$libgo_cv_c_stringops" = yes; then
7a938933
ILT
694 STRINGOPS_FLAG=-minline-all-stringops
695fi
696AC_SUBST(STRINGOPS_FLAG)
697
9d465faf
ILT
698dnl For x86 we want to compile the math library with -mfancy-math-387
699dnl -funsafe-math-optimizations so that we can use the builtin
700dnl instructions directly.
701AC_CACHE_CHECK([whether compiler supports -mfancy-math-387],
702[libgo_cv_c_fancymath],
703[CFLAGS_hold=$CFLAGS
704CFLAGS="$CFLAGS -mfancy-math-387"
705AC_COMPILE_IFELSE([int i;],
706[libgo_cv_c_fancymath=yes],
707[libgo_cv_c_fancymath=no])
708CFLAGS=$CFLAGS_hold])
709MATH_FLAG=
710if test "$libgo_cv_c_fancymath" = yes; then
711 MATH_FLAG="-mfancy-math-387 -funsafe-math-optimizations"
33a9145b
ILT
712else
713 MATH_FLAG="-ffp-contract=off"
9d465faf
ILT
714fi
715AC_SUBST(MATH_FLAG)
716
7a938933
ILT
717CFLAGS_hold=$CFLAGS
718CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
e02ed81e 719AC_CHECK_TYPES([off64_t])
7a938933
ILT
720CFLAGS=$CFLAGS_hold
721
207c35fa
ILT
722dnl Work out the size of the epoll_events struct on GNU/Linux.
723AC_CACHE_CHECK([epoll_event size],
724[libgo_cv_c_epoll_event_size],
725[AC_COMPUTE_INT(libgo_cv_c_epoll_event_size,
726[sizeof (struct epoll_event)],
727[#include <sys/epoll.h>],
728[libgo_cv_c_epoll_event_size=0])])
729SIZEOF_STRUCT_EPOLL_EVENT=${libgo_cv_c_epoll_event_size}
730AC_SUBST(SIZEOF_STRUCT_EPOLL_EVENT)
731
732dnl Work out the offset of the fd field in the epoll_events struct on
733dnl GNU/Linux.
734AC_CACHE_CHECK([epoll_event data.fd offset],
735[libgo_cv_c_epoll_event_fd_offset],
736[AC_COMPUTE_INT(libgo_cv_c_epoll_event_fd_offset,
737[offsetof (struct epoll_event, data.fd)],
738[#include <stddef.h>
739#include <sys/epoll.h>],
740[libgo_cv_c_epoll_event_fd_offset=0])])
741STRUCT_EPOLL_EVENT_FD_OFFSET=${libgo_cv_c_epoll_event_fd_offset}
742AC_SUBST(STRUCT_EPOLL_EVENT_FD_OFFSET)
743
476013d6
ILT
744dnl Check if <sys/stat.h> uses timespec_t for st_?tim members. Introduced
745dnl in Solaris 12 for XPG7 compatibility.
746AC_EGREP_HEADER([timespec_t.*st_atim], [sys/stat.h],
747 [have_stat_timespec=yes], [have_stat_timespec=no])
748AM_CONDITIONAL(HAVE_STAT_TIMESPEC, test $have_stat_timespec = yes)
749
d2b480bc
ILT
750dnl See if struct exception is defined in <math.h>.
751AC_CHECK_TYPE([struct exception],
752[libgo_has_struct_exception=yes],
753[libgo_has_struct_exception=no],
754[#include <math.h>])
755if test "$libgo_has_struct_exception" = "yes"; then
756 AC_DEFINE(HAVE_STRUCT_EXCEPTION, 1,
757 [Define to 1 if <math.h> defines struct exception])
758fi
759
7f57843f
ILT
760dnl See whether setcontext changes the value of TLS variables.
761AC_CACHE_CHECK([whether setcontext clobbers TLS variables],
762[libgo_cv_lib_setcontext_clobbers_tls],
e6c5817d
ILT
763[CFLAGS_hold="$CFLAGS"
764CFLAGS="$PTHREAD_CFLAGS"
765LIBS_hold="$LIBS"
7f57843f 766LIBS="$LIBS $PTHREAD_LIBS"
e6c5817d
ILT
767AC_CHECK_SIZEOF([void *])
768AS_VAR_ARITH([ptr_type_size], [$ac_cv_sizeof_void_p \* 8])
7f57843f
ILT
769AC_RUN_IFELSE(
770 [AC_LANG_SOURCE([
771#include <pthread.h>
772#include <stdlib.h>
773#include <ucontext.h>
774#include <unistd.h>
775
776__thread int tls;
777
778static char stack[[10 * 1024 * 1024]];
779static ucontext_t c;
780
781/* Called via makecontext/setcontext. */
782
783static void
784cfn (void)
785{
786 exit (tls);
787}
788
789/* Called via pthread_create. */
790
791static void *
792tfn (void *dummy)
793{
794 /* The thread should still see this value after calling
795 setcontext. */
796 tls = 0;
797
798 setcontext (&c);
799
800 /* The call to setcontext should not return. */
801 abort ();
802}
803
804int
805main ()
806{
807 pthread_t tid;
808
809 /* The thread should not see this value. */
810 tls = 1;
811
812 if (getcontext (&c) < 0)
813 abort ();
814
815 c.uc_stack.ss_sp = stack;
ca59d219
ILT
816#ifdef MAKECONTEXT_STACK_TOP
817 c.uc_stack.ss_sp += sizeof stack;
818#endif
7f57843f
ILT
819 c.uc_stack.ss_flags = 0;
820 c.uc_stack.ss_size = sizeof stack;
821 c.uc_link = NULL;
822 makecontext (&c, cfn, 0);
823
824 if (pthread_create (&tid, NULL, tfn, NULL) != 0)
825 abort ();
826
827 if (pthread_join (tid, NULL) != 0)
828 abort ();
829
830 /* The thread should have called exit. */
831 abort ();
832}
833])],
834[libgo_cv_lib_setcontext_clobbers_tls=no],
835[libgo_cv_lib_setcontext_clobbers_tls=yes],
e6c5817d
ILT
836[case "$target:$ptr_type_size" in
837 i?86-*-solaris2.1[[01]]:64 | x86_64*-*-solaris2.1[[01]]:64)
838 libgo_cv_lib_setcontext_clobbers_tls=yes ;;
839 *)
840 libgo_cv_lib_setcontext_clobbers_tls=no ;;
7f57843f
ILT
841 esac
842])
e6c5817d 843CFLAGS="$CFLAGS_hold"
7f57843f
ILT
844LIBS="$LIBS_hold"
845])
846if test "$libgo_cv_lib_setcontext_clobbers_tls" = "yes"; then
847 AC_DEFINE(SETCONTEXT_CLOBBERS_TLS, 1,
848 [Define if setcontext clobbers TLS variables])
849fi
850
cc1a9ac8
ILT
851AC_CACHE_CHECK([whether .eh_frame section should be read-only],
852libgo_cv_ro_eh_frame, [
853libgo_cv_ro_eh_frame=no
854echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c
855if $CC $CFLAGS -S -fpic -fexceptions -o conftest.s conftest.c > /dev/null 2>&1; then
856 if grep '.section.*eh_frame.*"a"' conftest.s > /dev/null; then
857 libgo_cv_ro_eh_frame=yes
858 elif grep '.section.*eh_frame.*#alloc' conftest.c \
859 | grep -v '#write' > /dev/null; then
860 libgo_cv_ro_eh_frame=yes
861 fi
862fi
863rm -f conftest.*
864])
865if test "x$libgo_cv_ro_eh_frame" = xyes; then
866 AC_DEFINE(EH_FRAME_FLAGS, "a",
867 [Define to the flags needed for the .section .eh_frame directive.])
868else
869 AC_DEFINE(EH_FRAME_FLAGS, "aw",
870 [Define to the flags needed for the .section .eh_frame directive.])
871fi
872
a819231d
ILT
873AC_CACHE_CHECK([if compiler supports -Qunused-arguments],
874[libgo_cv_c_unused_arguments],
875[CFLAGS_hold=$CFLAGS
876CFLAGS="$CFLAGS -Qunused-arguments"
877AC_COMPILE_IFELSE([[int i;]],
878[libgo_cv_c_unused_arguments=yes],
879[libgo_cv_c_unused_arguments=no])
880CFLAGS=$CFLAGS_hold])
881
cc1a9ac8
ILT
882AC_CACHE_CHECK([if assembler supports GNU comdat group syntax],
883libgo_cv_as_comdat_gnu, [
884echo '.section .text,"axG",@progbits,.foo,comdat' > conftest.s
a819231d
ILT
885CFLAGS_hold=$CFLAGS
886if test "$libgo_cv_c_unused_arguments" = yes; then
887 CFLAGS="$CFLAGS -Qunused-arguments"
888fi
cc1a9ac8
ILT
889if $CC $CFLAGS -c conftest.s > /dev/null 2>&1; then
890 libgo_cv_as_comdat_gnu=yes
891else
892 libgo_cv_as_comdat_gnu=no
893fi
a819231d 894CFLAGS=$CFLAGS_hold
cc1a9ac8
ILT
895])
896if test "x$libgo_cv_as_comdat_gnu" = xyes; then
897 AC_DEFINE(HAVE_AS_COMDAT_GAS, 1,
898 [Define if your assembler supports GNU comdat group syntax.])
899fi
900
901AC_CACHE_CHECK([assembler supports pc related relocs],
902libgo_cv_as_x86_pcrel, [
903libgo_cv_as_x86_pcrel=yes
904echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s
a819231d
ILT
905CFLAGS_hold=$CFLAGS
906if test "$libgo_cv_c_unused_arguments" = yes; then
907 CFLAGS="$CFLAGS -Qunused-arguments"
908fi
cc1a9ac8
ILT
909if $CC $CFLAGS -c conftest.s 2>&1 | $EGREP -i 'illegal|warning' > /dev/null; then
910 libgo_cv_as_x86_pcrel=no
911fi
a819231d 912CFLAGS=$CFLAGS_hold
cc1a9ac8
ILT
913])
914if test "x$libgo_cv_as_x86_pcrel" = xyes; then
915 AC_DEFINE(HAVE_AS_X86_PCREL, 1,
916 [Define if your assembler supports PC relative relocs.])
917fi
918
919AC_CACHE_CHECK([assembler supports unwind section type],
920libgo_cv_as_x86_64_unwind_section_type, [
921libgo_cv_as_x86_64_unwind_section_type=yes
922echo '.section .eh_frame,"a",@unwind' > conftest.s
a819231d
ILT
923CFLAGS_hold=$CFLAGS
924if test "$libgo_cv_c_unused_arguments" = yes; then
925 CFLAGS="$CFLAGS -Qunused-arguments"
926fi
cc1a9ac8
ILT
927if $CC $CFLAGS -c conftest.s 2>&1 | grep -i warning > /dev/null; then
928 libgo_cv_as_x86_64_unwind_section_type=no
929fi
a819231d 930CFLAGS=$CFLAGS_hold
cc1a9ac8
ILT
931])
932if test "x$libgo_cv_as_x86_64_unwind_section_type" = xyes; then
933 AC_DEFINE(HAVE_AS_X86_64_UNWIND_SECTION_TYPE, 1,
934 [Define if your assembler supports unwind section type.])
935fi
936
7a938933
ILT
937AC_CACHE_SAVE
938
939if test ${multilib} = yes; then
940 multilib_arg="--enable-multilib"
941else
942 multilib_arg=
943fi
944
945AC_CONFIG_FILES(Makefile testsuite/Makefile)
946
947AC_CONFIG_COMMANDS([default],
948[if test -n "$CONFIG_FILES"; then
949 # Multilibs need MULTISUBDIR defined correctly in certain makefiles so
950 # that multilib installs will end up installed in the correct place.
951 # The testsuite needs it for multilib-aware ABI baseline files.
952 # To work around this not being passed down from config-ml.in ->
953 # srcdir/Makefile.am -> srcdir/{src,libsupc++,...}/Makefile.am, manually
954 # append it here. Only modify Makefiles that have just been created.
955 #
956 # Also, get rid of this simulated-VPATH thing that automake does.
957 cat > vpsed << \_EOF
958s!`test -f '$<' || echo '$(srcdir)/'`!!
959_EOF
960 for i in $SUBDIRS; do
961 case $CONFIG_FILES in
962 *${i}/Makefile*)
963 #echo "Adding MULTISUBDIR to $i/Makefile"
964 sed -f vpsed $i/Makefile > tmp
965 grep '^MULTISUBDIR =' Makefile >> tmp
966 mv tmp $i/Makefile
967 ;;
968 esac
969 done
970 rm vpsed
971 fi
972],
973[
974# Variables needed in config.status (file generation) which aren't already
975# passed by autoconf.
976SUBDIRS="$SUBDIRS"
977])
978
979AC_OUTPUT