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