OSDN Git Service

2003-09-10 Michael Koch <konqueror@gmx.de>
[pf3gnuchains/gcc-fork.git] / libjava / configure.in
1 dnl Process this with autoconf to create configure
2 AC_INIT(java/lang/System.java)
3
4 # This works around the fact that libtool configuration may change LD
5 # for this particular configuration, but some shells, instead of
6 # keeping the changes in LD private, export them just because LD is
7 # exported.
8 ORIGINAL_LD_FOR_MULTILIBS=$LD
9
10 AC_PROG_LN_S
11
12 dnl We use these options to decide which functions to include.
13 AC_ARG_WITH(target-subdir,
14 [  --with-target-subdir=SUBDIR
15                            configuring in a subdirectory])
16 AC_ARG_WITH(cross-host,
17 [  --with-cross-host=HOST  configuring with a cross compiler])
18
19 AC_ARG_WITH(newlib,
20 [  --with-newlib           Configuring with newlib])
21
22 LIBGCJ_CONFIGURE(.)
23
24 AM_CONFIG_HEADER(include/config.h gcj/libgcj-config.h)
25
26 # Only use libltdl for non-newlib builds.
27 if test "x${with_newlib}" = "x" || test "x${with_newlib}" = "xno"; then
28    AC_LIBLTDL_CONVENIENCE
29    AC_LIBTOOL_DLOPEN
30    DIRLTDL=libltdl
31    AC_DEFINE(USE_LTDL)
32    # Sigh.  Libtool's macro doesn't do the right thing.
33    INCLTDL="-I\$(top_srcdir)/libltdl $INCLTDL"
34    # FIXME: this is a hack.
35    sub_auxdir="`cd $ac_aux_dir && ${PWDCMD-pwd}`"
36    ac_configure_args="$ac_configure_args --with-auxdir=$sub_auxdir"
37 fi
38 AC_SUBST(INCLTDL)
39 AC_SUBST(LIBLTDL)
40 AC_SUBST(DIRLTDL)
41 AM_PROG_LIBTOOL
42 AC_CONFIG_SUBDIRS($DIRLTDL)
43
44 if test -z "$with_target_subdir" || test "$with_target_subdir" = "."; then
45    COMPPATH=.
46 else
47    COMPPATH=..
48 fi
49 AC_SUBST(COMPPATH)
50
51 dnl The -no-testsuite modules omit the test subdir.
52 AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
53
54 dnl Should the runtime set system properties by examining the 
55 dnl environment variable GCJ_PROPERTIES?
56 AC_ARG_ENABLE(getenv-properties,
57 [  --disable-getenv-properties
58                           don't set system properties from GCJ_PROPERTIES])
59
60 dnl Whether GCJ_PROPERTIES is used depends on the target.
61 if test -z "$enable_getenv_properties"; then
62    enable_getenv_properties=${enable_getenv_properties_default-yes}
63 fi
64 if test "$enable_getenv_properties" = no; then
65    AC_DEFINE(DISABLE_GETENV_PROPERTIES)
66 fi
67
68 dnl Whether we should use arguments to main()
69 if test -z "$enable_main_args"; then
70    enable_main_args=${enable_main_args_default-yes}
71 fi
72 if test "$enable_main_args" = no; then
73    AC_DEFINE(DISABLE_MAIN_ARGS)
74 fi
75
76
77 dnl Should we use hashtable-based synchronization?
78 dnl Currently works only for Linux X86/ia64
79 dnl Typically faster and more space-efficient
80 AC_ARG_ENABLE(hash-synchronization,
81 [  --enable-hash-synchronization
82                           Use global hash table for monitor locks])
83
84 if test -z "$enable_hash_synchronization"; then
85    enable_hash_synchronization=$enable_hash_synchronization_default
86 fi
87
88 dnl configure.host sets slow_pthread_self if the synchronization code should 
89 dnl try to avoid pthread_self calls by caching thread IDs in a hashtable.
90 if test "${slow_pthread_self}" = "yes"; then
91   AC_DEFINE(SLOW_PTHREAD_SELF)
92 fi
93
94
95 dnl See if the user has requested runtime debugging.
96 LIBGCJDEBUG="false"
97 AC_SUBST(LIBGCJDEBUG)
98 AC_ARG_ENABLE(libgcj-debug,
99 [  --enable-libgcj-debug   enable runtime debugging code],
100   if test "$enable_libgcj_debug" = yes; then
101     AC_DEFINE(DEBUG)
102     LIBGCJDEBUG="true"
103   fi)
104
105 dnl See if the user has the interpreter included.
106 AC_ARG_ENABLE(interpreter,
107 [  --enable-interpreter    enable interpreter],
108   if test "$enable_interpreter" = yes; then
109     # This can also be set in configure.host.
110     libgcj_interpreter=yes
111   elif test "$enable_interpreter" = no; then
112     libgcj_interpreter=no
113   fi)
114
115 if test "$libgcj_interpreter" = yes; then
116    AC_DEFINE(INTERPRETER)
117 fi
118 INTERPRETER="$libgcj_interpreter"
119 AC_SUBST(INTERPRETER)
120
121 AC_MSG_CHECKING([for exception model to use])
122 AC_LANG_SAVE
123 AC_LANG_CPLUSPLUS
124 AC_ARG_ENABLE(sjlj-exceptions,
125 [  --enable-sjlj-exceptions  force use of builtin_setjmp for exceptions],
126 [:],
127 [dnl Botheration.  Now we've got to detect the exception model.
128 dnl Link tests against libgcc.a are problematic since -- at least
129 dnl as of this writing -- we've not been given proper -L bits for
130 dnl single-tree newlib and libgloss.
131 dnl
132 dnl This is what AC_TRY_COMPILE would do if it didn't delete the
133 dnl conftest files before we got a change to grep them first.
134 cat > conftest.$ac_ext << EOF
135 [#]line __oline__ "configure"
136 struct S { ~S(); };
137 void bar();
138 void foo()
139 {
140   S s;
141   bar();
142 }
143 EOF
144 old_CXXFLAGS="$CXXFLAGS"  
145 CXXFLAGS=-S
146 if AC_TRY_EVAL(ac_compile); then
147   if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
148     enable_sjlj_exceptions=yes
149   elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
150     enable_sjlj_exceptions=no
151   fi
152 fi
153 CXXFLAGS="$old_CXXFLAGS"
154 rm -f conftest*])
155 if test x$enable_sjlj_exceptions = xyes; then
156   AC_DEFINE(SJLJ_EXCEPTIONS, 1,
157         [Define if the compiler is configured for setjmp/longjmp exceptions.])
158   ac_exception_model_name=sjlj
159 elif test x$enable_sjlj_exceptions = xno; then
160   ac_exception_model_name="call frame"
161 else
162   AC_MSG_ERROR([unable to detect exception model])
163 fi
164 AC_LANG_RESTORE
165 AC_MSG_RESULT($ac_exception_model_name)
166
167 # If we are non using SJLJ exceptions, and this host does not have support 
168 # for unwinding from a signal handler, enable checked dereferences and divides.
169 if test $can_unwind_signal = no && test $enable_sjlj_exceptions = no; then
170   CHECKREFSPEC=-fcheck-references
171   DIVIDESPEC=-fuse-divide-subroutine
172   EXCEPTIONSPEC=
173 fi
174
175 dnl See if the user wants to disable java.net.  This is the mildly
176 dnl ugly way that we admit that target-side configuration sucks.
177 AC_ARG_ENABLE(java-net,
178 [  --disable-java-net      disable java.net])
179
180 dnl Whether java.net is built by default can depend on the target.
181 if test -z "$enable_java_net"; then
182    enable_java_net=${enable_java_net_default-yes}
183 fi
184 if test "$enable_java_net" = no; then
185    AC_DEFINE(DISABLE_JAVA_NET)
186 fi
187
188 dnl See if the user wants to configure without libffi.  Some
189 dnl architectures don't support it, and default values are set in 
190 dnl configure.host.
191 AC_ARG_WITH(libffi,
192 [  --without-libffi        don't use libffi],,with_libffi=${with_libffi_default-yes})
193
194 LIBFFI=
195 LIBFFIINCS=
196 if test "$with_libffi" != no; then
197    AC_DEFINE(USE_LIBFFI)
198    LIBFFI=../libffi/libffi_convenience.la
199    LIBFFIINCS='-I$(top_srcdir)/../libffi/include -I../libffi/include'
200 fi
201 AC_SUBST(LIBFFI)
202 AC_SUBST(LIBFFIINCS)
203
204 dnl See if the user wants to disable JVMPI support.
205 AC_ARG_ENABLE(jvmpi,
206 [  --disable-jvmpi         disable JVMPI support])
207
208 if test "$enable_jvmpi" != no; then
209     AC_DEFINE(ENABLE_JVMPI)
210 fi
211
212 dnl If the target is an eCos system, use the appropriate eCos
213 dnl I/O routines.
214 dnl FIXME: this should not be a local option but a global target
215 dnl system; at present there is no eCos target.
216 TARGET_ECOS=${PROCESS-"no"}
217 AC_ARG_WITH(ecos,
218 [  --with-ecos             enable runtime eCos target support],
219 TARGET_ECOS="$with_ecos"
220 )
221
222 PLATFORMOBJS=
223 case "$TARGET_ECOS" in
224    no) case "$host" in
225       *mingw*)
226             PLATFORM=Win32
227             PLATFORMNET=Win32
228             PLATFORMOBJS=win32.lo
229             PLATFORMH=win32.h
230         CHECK_FOR_BROKEN_MINGW_LD
231       ;;
232       *)
233             PLATFORM=Posix
234             PLATFORMNET=Posix
235             PLATFORMOBJS=posix.lo
236             PLATFORMH=posix.h
237       ;;
238       esac
239       ;;
240    *)
241       PLATFORM=Ecos
242       PLATFORMNET=NoNet
243       AC_DEFINE(ECOS)
244       PLATFORMOBJS=posix.lo
245       PLATFORMH=posix.h
246       ;;
247 esac
248 AC_SUBST(PLATFORMOBJS)
249 AC_LINK_FILES(include/$PLATFORMH, include/platform.h)
250
251 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED))
252 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED))
253 AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED))
254 AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED))
255
256
257 dnl These may not be defined in a non-ANS conformant embedded system.
258 dnl FIXME: Should these case a runtime exception in that case?
259 AC_EGREP_HEADER(mktime, time.h, AC_DEFINE(HAVE_MKTIME))
260 AC_EGREP_HEADER(localtime, time.h, AC_DEFINE(HAVE_LOCALTIME))
261
262 dnl Create the subdirectory for natFileDescriptor.cc, or the attempt
263 dnl to create the link will fail.
264 test -d java || mkdir java
265 test -d java/io || mkdir java/io
266 test -d gnu || mkdir gnu
267 AC_LINK_FILES(java/io/natFile${FILE-${PLATFORM}}.cc, java/io/natFile.cc)
268 AC_LINK_FILES(java/io/natFileDescriptor${FILE-${PLATFORM}}.cc, java/io/natFileDescriptor.cc)
269
270 dnl Likewise for ConcreteProcess.java and natConcreteProcess.cc.
271 test -d java/lang || mkdir java/lang
272 AC_LINK_FILES(java/lang/${PLATFORM}Process.java, java/lang/ConcreteProcess.java)
273 AC_LINK_FILES(java/lang/nat${PLATFORM}Process.cc, java/lang/natConcreteProcess.cc)
274
275 dnl Likewise for natInetAddress.cc and natNetworkInterface.cc.
276 test -d java/net || mkdir java/net
277 AC_LINK_FILES(java/net/natInetAddress${PLATFORMNET}.cc, java/net/natInetAddress.cc)
278 AC_LINK_FILES(java/net/natNetworkInterface${PLATFORMNET}.cc, java/net/natNetworkInterface.cc)
279
280 dnl Likewise for natPlainSocketImpl.cc and natPlainDatagramSocketImpl.ca.c
281 test -d gnu/java || mkdir gnu/java
282 test -d gnu/java/net || mkdir gnu/java/net
283 AC_LINK_FILES(gnu/java/net/natPlainSocketImpl${PLATFORMNET}.cc, gnu/java/net/natPlainSocketImpl.cc)
284 AC_LINK_FILES(gnu/java/net/natPlainDatagramSocketImpl${PLATFORMNET}.cc, gnu/java/net/natPlainDatagramSocketImpl.cc)
285
286 case "${host}" in
287     *mingw*)
288       SYSTEMSPEC="-lgdi32 -lwsock32 -lws2_32"
289     ;;
290     *)
291       SYSTEMSPEC=
292     ;;
293 esac
294 AC_SUBST(SYSTEMSPEC)
295
296 LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs"
297 AC_SUBST(LIBGCJTESTSPEC)
298
299 AC_ARG_WITH(system-zlib,
300 [  --with-system-zlib      use installed libz])
301 ZLIBSPEC=
302 AC_SUBST(ZLIBSPEC)
303 ZLIBTESTSPEC=
304 AC_SUBST(ZLIBTESTSPEC)
305
306 AC_PATH_XTRA
307
308 dnl Determine which AWT peer libraries to build
309 AC_ARG_ENABLE(java-awt,
310 [  --enable-java-awt       list of AWT peer implementations to be built])
311
312 peerlibs="`echo ${enable_java_awt} | tr ',' ' '`"
313 use_xlib_awt=""
314 use_gtk_awt=""
315 # The default toolkit to use is the first one specified.
316 TOOLKIT=
317 AC_SUBST(TOOLKIT)
318
319 for peer in $peerlibs ; do
320   case $peer in
321     xlib)
322       if test "$no_x" = yes; then
323         echo "*** xlib peers requested but no X library available" 1>&2
324         exit 1
325       else
326         use_xlib_awt="yes"
327         if test -z "$TOOLKIT"; then
328            TOOLKIT=gnu.awt.xlib.XToolkit
329         fi
330       fi
331       ;;
332     gtk)
333       if test "$no_x" = yes; then
334          echo "*** xlib peers requested but no X library available" 1>&2
335          exit 1
336       else
337          use_gtk_awt=yes
338          if test -z "$TOOLKIT"; then
339             TOOLKIT=gnu.java.awt.peer.gtk.GtkToolkit
340          fi
341          test -d jniinclude || mkdir jniinclude
342       fi
343       ;;
344     no)
345       use_xlib_awt=
346       use_gtk_awt=
347       break
348       ;;
349     *)
350       echo "*** unrecognised argument \"${peer}\" for --enable-java-awt" 1>&2
351       exit 1
352   esac
353 done
354
355 AM_CONDITIONAL(XLIB_AWT, test "$use_xlib_awt" = yes)
356 AM_CONDITIONAL(GTK_AWT, test "$use_gtk_awt" = yes)
357
358
359 dnl FIXME: this should be _libs on some hosts.
360 libsubdir=.libs
361
362 dnl Allow the GC to be disabled.  Can be useful when debugging.
363 AC_MSG_CHECKING([for garbage collector to use])
364 AC_ARG_ENABLE(java-gc,
365 changequote(<<,>>)dnl
366 <<  --enable-java-gc=TYPE   choose garbage collector [boehm]>>,
367 changequote([,])
368   GC=$enableval,
369   GC=boehm)
370 GCLIBS=
371 GCINCS=
372 GCDEPS=
373 GCOBJS=
374 GCSPEC=
375 JC1GCSPEC=
376 GCTESTSPEC=
377 case "$GC" in
378  boehm)
379     AC_MSG_RESULT(boehm)
380     GCLIBS=../boehm-gc/libgcjgc_convenience.la
381     JC1GCSPEC='-fuse-boehm-gc'
382     GCTESTSPEC="-L`${PWDCMD-pwd}`/../boehm-gc/.libs -rpath `${PWDCMD-pwd}`/../boehm-gc/.libs"
383
384     dnl We also want to pick up some cpp flags required when including
385     dnl boehm-config.h.  Yuck.
386     GCINCS="`cat ../boehm-gc/boehm-cflags`"
387     GCOBJS=boehm.lo
388     GCHDR=boehm-gc.h
389     dnl The POSIX thread support needs to know this.
390     AC_DEFINE(HAVE_BOEHM_GC)
391     ;;
392  no)
393     AC_MSG_RESULT(none)
394     GCOBJS=nogc.lo
395     GCHDR=no-gc.h
396     ;;
397  *)
398     AC_MSG_ERROR(unrecognized collector \"$GC\")
399     ;;
400 esac
401 AC_SUBST(GCLIBS)
402 AC_SUBST(GCINCS)
403 AC_SUBST(GCDEPS)
404 AC_SUBST(GCOBJS)
405 AC_SUBST(GCSPEC)
406 AC_SUBST(JC1GCSPEC)
407 AC_SUBST(GCTESTSPEC)
408 AC_LINK_FILES(include/$GCHDR, include/java-gc.h)
409
410
411 AC_MSG_CHECKING([for thread model used by GCC])
412 THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
413 AC_MSG_RESULT([$THREADS])
414
415 case "$THREADS" in
416  no | none | single)
417     THREADS=none
418     ;;
419  posix | pthreads)
420     THREADS=posix
421     case "$host" in
422      *-*-linux*)
423         AC_DEFINE(LINUX_THREADS)
424         ;;
425     esac
426     ;;
427  win32)
428     ;;
429  decosf1 | irix | mach | os2 | solaris | dce | vxworks)
430     AC_MSG_ERROR(thread package $THREADS not yet supported)
431     ;;
432  *)
433     AC_MSG_ERROR($THREADS is an unknown thread package)
434     ;;
435 esac
436
437 THREADCXXFLAGS=
438 THREADLDFLAGS=
439 THREADLIBS=
440 THREADINCS=
441 THREADDEPS=
442 THREADOBJS=
443 THREADH=
444 THREADSPEC=
445 case "$THREADS" in
446  posix)
447     case "$host" in
448      *-*-cygwin*)
449         # Don't set THREADLIBS here.  Cygwin doesn't have -lpthread.
450         ;;
451 changequote(<<,>>)   
452      *-*-freebsd[1234]*)
453 changequote([,])   
454         # Before FreeBSD 5, it didn't have -lpthread (or any library which
455         # merely adds pthread_* functions) but it does have a -pthread switch
456         # which is required at link-time to select -lc_r *instead* of -lc.
457         THREADLDFLAGS=-pthread
458         # Don't set THREADSPEC here as might be expected since -pthread is
459         # not processed when found within a spec file, it must come from
460         # the command line.  For now, the user must provide the -pthread
461         # switch to link code compiled with gcj.  In future, consider adding
462         # support for weak references to pthread_* functions ala gthr.h API.
463         THREADSPEC='%{!pthread: %eUnder this configuration, the user must provide -pthread when linking.}'
464         ;;
465      *-*-freebsd*)
466         # FreeBSD 5 implements a model much closer to other modern UNIX
467         # which support threads.  However, it still does not support
468         # -lpthread.
469         THREADLDFLAGS=-pthread
470         THREADSPEC=-lc_r
471         ;;
472      alpha*-dec-osf*)
473         THREADCXXFLAGS=-pthread
474         # boehm-gc needs some functions from librt, so link that too.
475         THREADLIBS='-lpthread -lrt'
476         THREADSPEC='-lpthread -lrt'
477         ;;
478      *)
479         THREADLIBS=-lpthread
480         THREADSPEC=-lpthread
481         ;;
482     esac
483     THREADOBJS=posix-threads.lo
484     THREADH=posix-threads.h
485     # MIT pthreads doesn't seem to have the mutexattr functions.
486     # But for now we don't check for it.  We just assume you aren't
487     # using MIT pthreads.
488     AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_INIT)
489
490     # If we're using the Boehm GC, then we happen to know that it
491     # defines _REENTRANT, so we don't bother.  Eww.
492     if test "$GC" != boehm; then
493        AC_DEFINE(_REENTRANT, 1, [Required define if using POSIX threads])
494     fi
495     AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Required define if using POSIX threads])
496     ;;
497
498  win32)
499     THREADOBJS=win32-threads.lo
500     THREADH=win32-threads.h
501     ;;
502
503  none)
504     THREADOBJS=no-threads.lo
505     THREADH=no-threads.h
506     ;;
507 esac
508 AC_LINK_FILES(include/$THREADH, include/java-threads.h)
509 AC_SUBST(THREADLIBS)
510 AC_SUBST(THREADINCS)
511 AC_SUBST(THREADDEPS)
512 AC_SUBST(THREADOBJS)
513 AC_SUBST(THREADSPEC)
514 AC_SUBST(THREADLDFLAGS)
515 AC_SUBST(THREADCXXFLAGS)
516
517 if test -d sysdep; then true; else mkdir sysdep; fi
518 AC_LINK_FILES(sysdep/$sysdeps_dir/locks.h, sysdep/locks.h)
519
520 HASH_SYNC_SPEC=
521 # Hash synchronization is only useful with posix threads right now.
522 if test "$enable_hash_synchronization" = yes && test "$THREADS" != "none"; then
523    HASH_SYNC_SPEC=-fhash-synchronization
524    AC_DEFINE(JV_HASH_SYNCHRONIZATION, 1, [Define if hash synchronization is in use])
525 fi
526 AC_SUBST(HASH_SYNC_SPEC)
527
528
529 AM_CONDITIONAL(USING_GCC, test "$GCC" = yes)
530
531 CANADIAN=no
532 NULL_TARGET=no
533 NATIVE=yes
534
535 # We're in the tree with gcc, and need to include some of its headers.
536 GCC_UNWIND_INCLUDE='-I$(libgcj_basedir)/../gcc'
537
538 # Figure out where generated headers like libgcj-config.h get installed.
539 changequote(,)dnl
540 gcc_version_trigger=${libgcj_basedir}/../gcc/version.c
541 gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([^\"]*\)\".*/\1/'`
542 gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'`
543 tool_include_dir='$(libdir)/gcc/$(target_alias)/'${gcc_version}/include
544 changequote([,])dnl
545 AC_SUBST(tool_include_dir)
546 AC_SUBST(gcc_version)
547
548 if test "x${with_newlib}" = "xyes"; then
549    # We are being configured with a cross compiler.  AC_REPLACE_FUNCS
550    # may not work correctly, because the compiler may not be able to
551    # link executables.
552
553    # We assume newlib.  This lets us hard-code the functions we know
554    # we'll have.
555    AC_DEFINE(HAVE_MEMMOVE)
556    AC_DEFINE(HAVE_MEMCPY)
557    AC_DEFINE(HAVE_STRERROR)
558    AC_DEFINE(HAVE_TIME)
559    AC_DEFINE(HAVE_GMTIME_R)
560    AC_DEFINE(HAVE_LOCALTIME_R)
561    dnl This is only for POSIX threads.
562    AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_INIT)
563    dnl We also assume we are using gcc, which provides alloca.
564    AC_DEFINE(HAVE_ALLOCA)
565
566    dnl Assume we do not have getuid and friends.
567    AC_DEFINE(NO_GETUID)
568    PLATFORMNET=NoNet
569 else
570    AC_CHECK_FUNCS(strerror ioctl select fstat open fsync sleep opendir)
571    AC_CHECK_FUNCS(gmtime_r localtime_r readdir_r getpwuid_r getcwd)
572    AC_CHECK_FUNCS(access stat mkdir rename rmdir unlink realpath utime chmod)
573    AC_CHECK_FUNCS(nl_langinfo setlocale)
574    AC_CHECK_FUNCS(inet_aton inet_addr, break)
575    AC_CHECK_FUNCS(inet_pton uname inet_ntoa)
576    AC_CHECK_FUNCS(fork execvp pipe sigaction ftruncate)
577    AC_CHECK_HEADERS(execinfo.h unistd.h dlfcn.h) 
578    AC_CHECK_FUNC(backtrace, [
579      case "$host" in
580        ia64-*-linux*)
581          # Has broken backtrace()
582          ;;
583        *)
584          AC_DEFINE(HAVE_BACKTRACE)
585          ;;
586      esac
587    ], [
588      case "$host" in
589        *mingw*)
590          # Has backtrace() defined in libgcj itself
591          AC_DEFINE(HAVE_BACKTRACE)
592          ;;
593      esac
594    ])
595
596    AC_CHECK_LIB(dl, dladdr, [
597      AC_DEFINE(HAVE_DLADDR)])
598    if test x"$build" = x"$host"; then
599      AC_CHECK_FILES(/proc/self/exe, [
600        AC_DEFINE(HAVE_PROC_SELF_EXE)])
601    else
602      case $host in
603      *-linux*)
604        AC_DEFINE(HAVE_PROC_SELF_EXE)
605        ;;
606      esac
607    fi
608
609    AM_ICONV
610    AM_LC_MESSAGES
611    AC_STRUCT_TIMEZONE
612
613    AC_CHECK_FUNCS(gethostbyname_r, [
614      AC_DEFINE(HAVE_GETHOSTBYNAME_R)
615      # There are two different kinds of gethostbyname_r.
616      # We look for the one that returns `int'.
617      # Hopefully this check is robust enough.
618      AC_EGREP_HEADER(int.*gethostbyname_r, netdb.h, [
619        AC_DEFINE(GETHOSTBYNAME_R_RETURNS_INT)])
620
621      case " $GCINCS " in
622      *" -D_REENTRANT "*) ;;
623      *)
624         dnl On DU4.0, gethostbyname_r is only declared with -D_REENTRANT
625         AC_CACHE_CHECK([whether gethostbyname_r declaration requires -D_REENTRANT],
626         [libjava_cv_gethostbyname_r_needs_reentrant],
627         [ AC_LANG_SAVE
628           AC_LANG_CPLUSPLUS
629           AC_TRY_COMPILE([#include <netdb.h>],
630             [gethostbyname_r("", 0, 0);],
631             [libjava_cv_gethostbyname_r_needs_reentrant=no], [dnl
632                 CPPFLAGS_SAVE="$CPPFLAGS"
633                 CPPFLAGS="$CPPFLAGS -D_REENTRANT"
634                 AC_TRY_COMPILE([#include <netdb.h>], [gethostbyname_r("", 0, 0);],
635                     [libjava_cv_gethostbyname_r_needs_reentrant=yes],
636                     [libjava_cv_gethostbyname_r_needs_reentrant=fail])
637                 CPPFLAGS="$CPPFLAGS_SAVE"
638           ])
639           AC_LANG_RESTORE
640         ])
641         if test "x$libjava_cv_gethostbyname_r_needs_reentrant" = xyes; then
642           AC_DEFINE(_REENTRANT, 1, [Required define if using POSIX threads])
643         fi
644      ;;
645      esac
646
647      AC_CACHE_CHECK([for struct hostent_data],
648         [libjava_cv_struct_hostent_data], [dnl
649         AC_TRY_COMPILE([
650 #if GETHOSTBYNAME_R_NEEDS_REENTRANT && !defined(_REENTRANT)
651 # define _REENTRANT 1
652 #endif
653 #include <netdb.h>], [struct hostent_data data;],
654           [libjava_cv_struct_hostent_data=yes],
655           [libjava_cv_struct_hostent_data=no])])
656      if test "x$libjava_cv_struct_hostent_data" = xyes; then
657        AC_DEFINE(HAVE_STRUCT_HOSTENT_DATA, 1,
658          [Define if struct hostent_data is defined in netdb.h])
659      fi
660    ])
661
662    # FIXME: libjava source code expects to find a prototype for
663    # gethostbyaddr_r in netdb.h.  The outer check ensures that
664    # HAVE_GETHOSTBYADDR_R will not be defined if the prototype fails
665    # to exist where expected.  (The root issue: AC_CHECK_FUNCS assumes C
666    # linkage check is enough, yet C++ code requires proper prototypes.)
667    AC_EGREP_HEADER(gethostbyaddr_r, netdb.h, [
668    AC_CHECK_FUNCS(gethostbyaddr_r, [
669      AC_DEFINE(HAVE_GETHOSTBYADDR_R)
670      # There are two different kinds of gethostbyaddr_r.
671      # We look for the one that returns `int'.
672      # Hopefully this check is robust enough.
673      AC_EGREP_HEADER(int.*gethostbyaddr_r, netdb.h, [
674        AC_DEFINE(GETHOSTBYADDR_R_RETURNS_INT)])])])
675
676    AC_CHECK_FUNCS(gethostname, [
677      AC_DEFINE(HAVE_GETHOSTNAME)
678      AC_EGREP_HEADER(gethostname, unistd.h, [
679        AC_DEFINE(HAVE_GETHOSTNAME_DECL)])])
680
681    AC_CHECK_FUNCS(usleep, [
682      AC_EGREP_HEADER(usleep, unistd.h, [
683        AC_DEFINE(HAVE_USLEEP_DECL)])])
684
685    # Look for these functions in the thread library, but only bother
686    # if using POSIX threads.
687    if test "$THREADS" = posix; then
688       save_LIBS="$LIBS"
689       LIBS="$LIBS $THREADLIBS"
690       # Some POSIX thread systems don't have pthread_mutexattr_settype.
691       # E.g., Solaris.
692       AC_CHECK_FUNCS(pthread_mutexattr_settype pthread_mutexattr_setkind_np)
693
694       # Look for sched_yield.  Up to Solaris 2.6, it is in libposix4, since
695       # Solaris 7 the name librt is preferred.
696       AC_CHECK_FUNCS(sched_yield, , [
697         AC_CHECK_LIB(rt, sched_yield, [
698           AC_DEFINE(HAVE_SCHED_YIELD)
699           THREADLIBS="$THREADLIBS -lrt"
700           THREADSPEC="$THREADSPEC -lrt"], [
701           AC_CHECK_LIB(posix4, sched_yield, [
702             AC_DEFINE(HAVE_SCHED_YIELD)
703             THREADLIBS="$THREADLIBS -lposix4"
704             THREADSPEC="$THREADSPEC -lposix4"])])])
705       LIBS="$save_LIBS"
706
707       # We can save a little space at runtime if the mutex has m_count
708       # or __m_count.  This is a nice hack for Linux.
709       AC_TRY_COMPILE([#include <pthread.h>], [
710           extern pthread_mutex_t *mutex; int q = mutex->m_count;
711         ], AC_DEFINE(PTHREAD_MUTEX_HAVE_M_COUNT), [
712         AC_TRY_COMPILE([#include <pthread.h>], [
713             extern pthread_mutex_t *mutex; int q = mutex->__m_count;
714           ], AC_DEFINE(PTHREAD_MUTEX_HAVE___M_COUNT))])
715    fi
716
717    # We require a way to get the time.
718    time_found=no
719    AC_CHECK_FUNCS(gettimeofday time ftime, time_found=yes)
720    if test "$time_found" = no; then
721       AC_MSG_ERROR([no function found to get the time])
722    fi
723
724    AC_CHECK_FUNCS(memmove)
725
726    # We require memcpy.
727    memcpy_found=no
728    AC_CHECK_FUNCS(memcpy, memcpy_found=yes)
729    if test "$memcpy_found" = no; then
730       AC_MSG_ERROR([memcpy is required])
731    fi
732
733    AC_CHECK_LIB(dl, dlopen, [
734        AC_DEFINE(HAVE_DLOPEN, 1, [Define if dlopen is available])])
735
736    # Some library-finding code we stole from Tcl.
737    #--------------------------------------------------------------------
738    #    Check for the existence of the -lsocket and -lnsl libraries.
739    #    The order here is important, so that they end up in the right
740    #    order in the command line generated by make.  Here are some
741    #    special considerations:
742    #    1. Use "connect" and "accept" to check for -lsocket, and
743    #       "gethostbyname" to check for -lnsl.
744    #    2. Use each function name only once:  can't redo a check because
745    #       autoconf caches the results of the last check and won't redo it.
746    #    3. Use -lnsl and -lsocket only if they supply procedures that
747    #       aren't already present in the normal libraries.  This is because
748    #       IRIX 5.2 has libraries, but they aren't needed and they're
749    #       bogus:  they goof up name resolution if used.
750    #    4. On some SVR4 systems, can't use -lsocket without -lnsl too.
751    #       To get around this problem, check for both libraries together
752    #       if -lsocket doesn't work by itself.
753    #--------------------------------------------------------------------
754
755    AC_CACHE_CHECK([for socket libraries], gcj_cv_lib_sockets,
756     [gcj_cv_lib_sockets=
757      gcj_checkBoth=0
758      unset ac_cv_func_connect
759      AC_CHECK_FUNC(connect, gcj_checkSocket=0, gcj_checkSocket=1)
760      if test "$gcj_checkSocket" = 1; then
761          unset ac_cv_func_connect
762          AC_CHECK_LIB(socket, main, gcj_cv_lib_sockets="-lsocket",
763                       gcj_checkBoth=1)
764      fi
765      if test "$gcj_checkBoth" = 1; then
766          gcj_oldLibs=$LIBS
767          LIBS="$LIBS -lsocket -lnsl"
768          unset ac_cv_func_accept
769          AC_CHECK_FUNC(accept,
770                        [gcj_checkNsl=0
771                         gcj_cv_lib_sockets="-lsocket -lnsl"])
772          unset ac_cv_func_accept
773          LIBS=$gcj_oldLibs
774      fi
775      unset ac_cv_func_gethostbyname
776      gcj_oldLibs=$LIBS
777      LIBS="$LIBS $gcj_cv_lib_sockets"
778      AC_CHECK_FUNC(gethostbyname, ,
779                    [AC_CHECK_LIB(nsl, main,
780                                  [gcj_cv_lib_sockets="$gcj_cv_lib_sockets -lnsl"])])
781      unset ac_cv_func_gethostbyname
782      LIBS=$gcj_oldLIBS
783    ])
784    SYSTEMSPEC="$SYSTEMSPEC $gcj_cv_lib_sockets"
785
786    if test "$with_system_zlib" = yes; then
787       AC_CHECK_LIB(z, deflate, ZLIBSPEC=-lz, ZLIBSPEC=)
788    fi
789
790    # Test for Gtk stuff, if asked for.
791    if test "$use_gtk_awt" = yes; then
792       AM_PATH_GTK_2_0(2.0.0,,exit 1)
793       AM_PATH_GLIB_2_0(2.0.0,,exit 1,gthread)
794       dnl XXX Fix me when libart.m4 has the compile test fixed!
795       enable_libarttest=no
796       AM_PATH_LIBART(2.1.0,,exit 1)
797    fi
798
799    # On Solaris, and maybe other architectures, the Boehm collector
800    # requires -ldl.
801    if test "$GC" = boehm; then
802       AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl")
803    fi
804 fi
805
806 if test -z "${with_multisubdir}"; then
807    builddotdot=.
808 else
809 changequote(<<,>>)
810    builddotdot=`echo ${with_multisubdir} | sed -e 's:[^/][^/]*:..:g'`
811 changequote([,])
812 fi
813
814 # Which gcj do we use?
815 which_gcj=default
816 built_gcc_dir="`cd ${builddotdot}/../../gcc && ${PWDCMD-pwd}`"
817 if test -n "${with_cross_host}"; then
818   # We are being configured with a cross compiler. We can't
819   # use ac_exeext, because that is for the target platform.
820   NATIVE=no
821   cross_host_exeext=
822   case "${with_cross_host}" in
823      *mingw* | *cygwin*)
824          cross_host_exeext=.exe
825      ;;
826   esac
827   if test -x "${built_gcc_dir}/gcj${cross_host_exeext}"; then
828      if test x"$build_alias" = x"$with_cross_host"; then
829         # Ordinary cross (host!=target and host=build)
830         which_gcj=built
831      else
832         # Canadian cross (host!=target and host!=build)
833         which_gcj=cross
834      fi
835   else
836      which_gcj=cross
837   fi
838 else
839   # We are being configured with a native or crossed-native compiler
840   if test -x "${built_gcc_dir}/gcj${ac_exeext}"; then
841      if test x"$build" = x"$host"; then
842         # True native build (host=target and host=build)
843         which_gcj=built
844      else
845         # Crossed-native build (host=target and host!=build)
846         which_gcj=cross
847      fi
848   else
849      which_gcj=path
850   fi
851 fi
852 case "${which_gcj}" in
853    built)
854       GCJ="$built_gcc_dir/gcj -B`${PWDCMD-pwd}`/ -B$built_gcc_dir/"
855    ;;
856    cross)
857       # See the comment in Makefile.am about CANADIAN being a misnomer
858       CANADIAN=yes
859       NULL_TARGET=no
860       if test "x${with_newlib}" = "xyes"; then
861          # FIXME (comment): Why is this needed?
862          GCC_UNWIND_INCLUDE=
863          GCJ="${target_alias}-gcj"
864       else
865          GCJ="${target_alias}-gcj -B`${PWDCMD-pwd}`/"
866       fi
867    ;;
868    path)
869       # See the comment in Makefile.am about CANADIAN being a misnomer
870       CANADIAN=yes
871       NULL_TARGET=yes
872       GCJ="gcj -B`${PWDCMD-pwd}`/"
873    ;;
874 esac
875
876 # Create it, so that compile/link tests don't fail
877 test -f libgcj.spec || touch libgcj.spec
878
879 # We must search the source tree for java.lang, since we still don't
880 # have libgcj.jar nor java/lang/*.class
881 GCJ_SAVE_CPPFLAGS=$CPPFLAGS
882 CPPFLAGS="$CPPFLAGS -I`${PWDCMD-pwd}` -I`cd $srcdir && ${PWDCMD-pwd}`"
883
884 # Since some classes depend on this one, we need its source available
885 # before we can do any GCJ compilation test :-(
886 if test ! -f gnu/classpath/Configuration.java; then
887   test -d gnu || mkdir gnu
888   test -d gnu/classpath || mkdir gnu/classpath
889   sed -e 's,@LIBGCJDEBUG@,$LIBGCJDEBUG,' \
890       -e 's,@TOOLKIT@,$TOOLKIT,' \
891         < $srcdir/gnu/classpath/Configuration.java.in \
892         > gnu/classpath/Configuration.java
893   # We do not want to redirect the output of the grep below to /dev/null,
894   # but we add /dev/null to the input list so that grep will print the
895   # filename of Configuration.java in case it finds any matches.
896   if grep @ gnu/classpath/Configuration.java /dev/null; then
897     AC_MSG_ERROR([configure.in is missing the substitutions above])
898   fi
899 fi
900
901 LT_AC_PROG_GCJ
902
903 CPPFLAGS=$GCJ_SAVE_CPPFLAGS
904
905 AC_COMPILE_CHECK_SIZEOF(void *)
906
907 ZLIBS=
908 SYS_ZLIBS=
909 ZINCS=
910
911 if test -z "$ZLIBSPEC"; then
912    # Use zlib from the GCC tree.
913    ZINCS='-I$(top_srcdir)/../zlib'
914    ZLIBS=../zlib/libzgcj_convenience.la
915 else
916    # System's zlib.
917    SYS_ZLIBS="$ZLIBSPEC"
918 fi
919 AC_SUBST(ZLIBS)
920 AC_SUBST(SYS_ZLIBS)
921 AC_SUBST(ZINCS)
922 AC_SUBST(DIVIDESPEC)
923 AC_SUBST(CHECKREFSPEC)
924 AC_SUBST(EXCEPTIONSPEC)
925 AC_SUBST(IEEESPEC)
926
927 AM_CONDITIONAL(CANADIAN, test "$CANADIAN" = yes)
928 AM_CONDITIONAL(NULL_TARGET, test "$NULL_TARGET" = yes)
929 AM_CONDITIONAL(NATIVE, test "$NATIVE" = yes || test "$NULL_TARGET" = yes)
930 AM_CONDITIONAL(NEEDS_DATA_START, test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes)
931 AC_SUBST(GCC_UNWIND_INCLUDE)
932
933 if test -n "$with_cross_host" &&
934    test x"$with_cross_host" != x"no"; then
935   toolexecdir='$(exec_prefix)/$(target_alias)'
936   toolexecmainlibdir='$(toolexecdir)/lib'
937 else
938   toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
939   toolexecmainlibdir='$(libdir)'
940 fi
941 multi_os_directory=`$CC -print-multi-os-directory`
942 case $multi_os_directory in
943   .) toolexeclibdir=$toolexecmainlibdir ;; # Avoid trailing /.
944   *) toolexeclibdir=$toolexecmainlibdir/$multi_os_directory ;;
945 esac
946 AC_SUBST(toolexecdir)
947 AC_SUBST(toolexecmainlibdir)
948 AC_SUBST(toolexeclibdir)
949
950 # Determine gcj version number.
951 changequote(<<,>>)
952 gcjversion=`$GCJ -v 2>&1 | sed -n 's/^.*version \([^ ]*\).*$/\1/p'`
953 changequote([,])
954 GCJVERSION=$gcjversion
955 AC_SUBST(GCJVERSION)
956 AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID])
957
958 dnl We check for sys/filio.h because Solaris 2.5 defines FIONREAD there.
959 dnl On that system, sys/ioctl.h will not include sys/filio.h unless
960 dnl BSD_COMP is defined; just including sys/filio.h is simpler.
961 AC_CHECK_HEADERS(unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/filio.h sys/stat.h sys/select.h sys/socket.h netinet/in.h arpa/inet.h netdb.h net/if.h pwd.h sys/config.h stdint.h langinfo.h locale.h)
962 dnl We avoid AC_HEADER_DIRENT since we really only care about dirent.h
963 dnl for now.  If you change this, you also must update natFile.cc.
964 AC_CHECK_HEADERS(dirent.h)
965 AC_CHECK_HEADERS(inttypes.h, [
966     AC_DEFINE(HAVE_INTTYPES_H, 1, [Define if <inttypes.h> is available])
967     AC_DEFINE(JV_HAVE_INTTYPES_H, 1, [Define if <inttypes.h> is available])
968 ])
969 AC_HEADER_SYS_WAIT
970
971 AC_CHECK_TYPE([ssize_t], [int])
972
973 AC_MSG_CHECKING([for in_addr_t])
974 AC_TRY_COMPILE([#include <sys/types.h>
975 #if STDC_HEADERS
976 #include <stdlib.h>
977 #include <stddef.h>
978 #endif
979 #if HAVE_NETINET_IN_H
980 #include <netinet/in.h>
981 #endif], [in_addr_t foo;],
982   [AC_DEFINE([HAVE_IN_ADDR_T])
983    AC_MSG_RESULT(yes)],
984   [AC_MSG_RESULT(no)])
985
986 AC_MSG_CHECKING([whether struct ip_mreq is in netinet/in.h])
987 AC_TRY_COMPILE([#include <netinet/in.h>], [struct ip_mreq mreq;],
988   [AC_DEFINE(HAVE_STRUCT_IP_MREQ)
989    AC_MSG_RESULT(yes)],
990   [AC_MSG_RESULT(no)])
991
992 AC_MSG_CHECKING([whether struct ipv6_mreq is in netinet/in.h])
993 AC_TRY_COMPILE([#include <netinet/in.h>], [struct ipv6_mreq mreq6;],
994   [AC_DEFINE(HAVE_STRUCT_IPV6_MREQ)
995    AC_MSG_RESULT(yes)],
996   [AC_MSG_RESULT(no)])
997
998 AC_MSG_CHECKING([whether struct sockaddr_in6 is in netinet/in.h])
999 AC_TRY_COMPILE([#include <netinet/in.h>], [struct sockaddr_in6 addr6;],
1000   [AC_DEFINE(HAVE_INET6)
1001    AC_MSG_RESULT(yes)],
1002   [AC_MSG_RESULT(no)])
1003
1004 AC_MSG_CHECKING([for socklen_t in sys/socket.h])
1005 AC_TRY_COMPILE([#define _POSIX_PII_SOCKET
1006 #include <sys/types.h>
1007 #include <sys/socket.h>], [socklen_t x = 5;],
1008   [AC_DEFINE(HAVE_SOCKLEN_T)
1009    AC_MSG_RESULT(yes)],
1010   [AC_MSG_RESULT(no)])
1011
1012 AC_MSG_CHECKING([for tm_gmtoff in struct tm])
1013 AC_TRY_COMPILE([#include <time.h>], [struct tm tim; tim.tm_gmtoff = 0;],
1014   [AC_DEFINE(STRUCT_TM_HAS_GMTOFF)
1015    AC_MSG_RESULT(yes)],
1016   [AC_MSG_RESULT(no)
1017    AC_MSG_CHECKING([for global timezone variable])
1018    dnl FIXME: we don't want a link check here because that won't work
1019    dnl when cross-compiling.  So instead we make an assumption that
1020    dnl the header file will mention timezone if it exists.
1021    dnl Don't find the win32 function timezone
1022    AC_TRY_COMPILE([#include <time.h>], [void i(){long z2 = 2*timezone;}],
1023      [AC_DEFINE(HAVE_TIMEZONE)
1024       AC_MSG_RESULT(yes)],
1025      [AC_MSG_RESULT(no)
1026        AC_MSG_CHECKING([for global _timezone variable])
1027        dnl FIXME: As above, don't want link check
1028        AC_TRY_COMPILE([#include <time.h>], [long z2 = _timezone;],
1029          [AC_DEFINE(HAVE_UNDERSCORE_TIMEZONE)
1030           AC_MSG_RESULT(yes)],
1031           [AC_MSG_RESULT(no)])])])
1032
1033 AC_FUNC_ALLOCA
1034 AC_FUNC_MMAP
1035
1036 AC_CHECK_PROGS(PERL, perl, false)
1037
1038 SYSDEP_SOURCES=
1039
1040 case "${host}" in
1041  i?86-*-linux*)
1042     SIGNAL_HANDLER=include/i386-signal.h
1043     ;;
1044  sparc*-sun-solaris*)
1045     SIGNAL_HANDLER=include/sparc-signal.h
1046     ;;
1047 # ia64-*)
1048 #    SYSDEP_SOURCES=sysdep/ia64.c
1049 #    test -d sysdep || mkdir sysdep
1050 #    ;;
1051  ia64-*-linux*)
1052     SIGNAL_HANDLER=include/dwarf2-signal.h
1053     ;;
1054  powerpc-*-linux*)
1055     SIGNAL_HANDLER=include/powerpc-signal.h
1056     ;;
1057  alpha*-*-linux*)
1058     SIGNAL_HANDLER=include/dwarf2-signal.h
1059     ;;
1060  s390*-*-linux*)
1061     SIGNAL_HANDLER=include/s390-signal.h
1062     ;;
1063  x86_64*-*-linux*)
1064     SIGNAL_HANDLER=include/x86_64-signal.h
1065     ;;
1066  sparc*-*-linux*)
1067     SIGNAL_HANDLER=include/dwarf2-signal.h
1068     ;;
1069  sh-*-linux* | sh[[34]]*-*-linux*)
1070     SIGNAL_HANDLER=include/dwarf2-signal.h
1071     ;;
1072  *mingw*)
1073     SIGNAL_HANDLER=include/win32-signal.h
1074     ;;
1075  *)
1076     SIGNAL_HANDLER=include/default-signal.h
1077     ;;
1078 esac
1079
1080 # If we're using sjlj exceptions, forget what we just learned.
1081 if test "$enable_sjlj_exceptions" = yes; then
1082    SIGNAL_HANDLER=include/default-signal.h
1083 fi
1084
1085 # Define here any compiler flags that you need in order to make backtrace() work.
1086 BACKTRACESPEC=
1087 case "${host}" in
1088  x86_64*-*-linux*)
1089     BACKTRACESPEC=-fno-omit-frame-pointer
1090     ;;
1091 esac
1092 AC_SUBST(BACKTRACESPEC)
1093
1094 AC_SUBST(SYSDEP_SOURCES)
1095
1096 AC_LINK_FILES($SIGNAL_HANDLER, include/java-signal.h)
1097
1098 if test "${multilib}" = "yes"; then
1099   multilib_arg="--enable-multilib"
1100 else
1101   multilib_arg=
1102 fi
1103
1104
1105
1106 here=`${PWDCMD-pwd}`
1107 AC_SUBST(here)
1108
1109 # We get this from the environment.
1110 AC_SUBST(GCJFLAGS)
1111
1112 AC_OUTPUT(Makefile libgcj.pc libgcj.spec libgcj-test.spec gnu/classpath/Configuration.java gcj/Makefile include/Makefile testsuite/Makefile,
1113 [# Only add multilib support code if we just rebuilt top-level Makefile.
1114 case " $CONFIG_FILES " in
1115  *" Makefile "*)
1116    LD="${ORIGINAL_LD_FOR_MULTILIBS}"
1117    ac_file=Makefile . ${libgcj_basedir}/../config-ml.in
1118    ;;
1119 esac
1120
1121 # Make subdirectories and `.d' files.  Look in both srcdir and
1122 # builddir for the .java files.
1123 h=`${PWDCMD-pwd}`
1124 : > deps.mk
1125 ( (cd $srcdir && find . \( -name '*.java' -o -name '*.cc' -o -name '*.c' \) -print) ;
1126   find . \( -name '*.java' -o -name '*.cc' -o -name '*.c' \) -print) | \
1127    fgrep -v testsuite | \
1128    sed -e 's/\.java/.d/'\;'s/\.cc/.d/'\;'s/\.c/.d/' | \
1129    while read f; do
1130       echo "include $f" >> deps.mk
1131       test -f $f || {
1132 changequote(<<,>>)
1133          d=`echo $f | sed -e 's,/[^/]*$,,'`
1134 changequote([,])
1135          if test ! -d $d; then
1136            $libgcj_basedir/../mkinstalldirs $d
1137          fi;
1138          echo > $f
1139       }
1140    done
1141 ],
1142 srcdir=${srcdir}
1143 host=${host}
1144 target=${target}
1145 with_multisubdir=${with_multisubdir}
1146 ac_configure_args="${multilib_arg} ${ac_configure_args}"
1147 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
1148 libgcj_basedir=${libgcj_basedir}
1149 CC="${CC}"
1150 CXX="${CXX}"
1151 ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
1152 )