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