OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libjava/] [configure.ac] - Blame information for rev 20

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 jlechner
dnl # Process this with autoconf to create configure
2
AC_PREREQ(2.59)
3
# Still use "libjava" here to placate dejagnu.
4
AC_INIT([libjava], [version-unused],, [libjava])
5
 
6
AC_CONFIG_SRCDIR(java/lang/System.java)
7
 
8
GCC_TOPLEV_SUBDIRS
9
 
10
# We use these options to decide which functions to include.
11
AC_ARG_WITH(target-subdir,
12
  AS_HELP_STRING([--with-target-subdir=SUBDIR],
13
                 [configure in a subdirectory]))
14
 
15
# We may get other options which we don't document:
16
# --with-target-subdir, --with-multisrctop, --with-multisubdir
17
 
18
# When building with srcdir == objdir, links to the source files will
19
# be created in directories within the target_subdir.  We have to
20
# adjust toplevel_srcdir accordingly, so that configure finds
21
# install-sh and other auxiliary files that live in the top-level
22
# source directory.
23
if test "${srcdir}" = "."; then
24
  if test -z "${with_target_subdir}"; then
25
    toprel=".."
26
  else
27
    if test "${with_target_subdir}" != "."; then
28
      toprel="${with_multisrctop}../.."
29
    else
30
      toprel="${with_multisrctop}.."
31
    fi
32
  fi
33
else
34
  toprel=".."
35
fi
36
 
37
libgcj_basedir=$srcdir/$toprel/./libjava
38
AC_SUBST(libgcj_basedir)
39
 
40
AC_CANONICAL_SYSTEM
41
_GCC_TOPLEV_NONCANONICAL_BUILD
42
_GCC_TOPLEV_NONCANONICAL_TARGET
43
 
44
AC_SUBST(target_noncanonical)
45
 
46
# This works around the fact that libtool configuration may change LD
47
# for this particular configuration, but some shells, instead of
48
# keeping the changes in LD private, export them just because LD is
49
# exported.
50
ORIGINAL_LD_FOR_MULTILIBS=$LD
51
 
52
AC_PROG_LN_S
53
 
54
# This works around an automake problem.
55
mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"
56
AC_SUBST(mkinstalldirs)
57
 
58
AC_ARG_WITH(cross-host,
59
  AS_HELP_STRING([--with-cross-host=HOST],
60
                 [configure with a cross compiler from HOST]))
61
 
62
AC_ARG_WITH(newlib,
63
  AS_HELP_STRING([--with-newlib],
64
                 [configure with newlib]))
65
 
66
AC_ARG_ENABLE(version-specific-runtime-libs,
67
  AS_HELP_STRING([--enable-version-specific-runtime-libs],
68
                 [specify that runtime libraries should be installed in a compiler-specific directory]),
69
    [case "$enableval" in
70
      yes) version_specific_libs=yes ;;
71
      no)  version_specific_libs=no ;;
72
      *)   AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
73
     esac],
74
    [version_specific_libs=no]
75
)
76
 
77
# Default to --enable-multilib
78
AC_ARG_ENABLE(multilib,
79
  AS_HELP_STRING([--enable-multilib],
80
                 [build many library versions (default)]),
81
[case "${enableval}" in
82
  yes) multilib=yes ;;
83
  no)  multilib=no ;;
84
  *)   AC_MSG_ERROR(bad value ${enableval} for multilib option) ;;
85
 esac], [multilib=yes])dnl
86
 
87
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
88
GCC_NO_EXECUTABLES
89
 
90
# (1) We use an abnormal CXX (without library references), so we
91
# must cache it under a different name.
92
# (2) CC, CFLAGS, CXX, CXXFLAGS, LDFLAGS must not be 'precious', or
93
# the non-multilib-adjusted value will be used in multilibs.
94
# (3) As a side effect, we must SUBST CXXFLAGS, CFLAGS, and LDFLAGS ourselves.
95
# (4) As another side effect, automake doesn't automatically include them
96
# in Makefile.in.
97
# (5) For libstdc++-v3, -fno-builtin must be present here so that a
98
# non-conflicting form of std::exit can be guessed by AC_PROG_CXX, and
99
# used in later tests.  This may not be necessary in libjava; I don't know.
100
m4_define([ac_cv_prog_CXX],[glibcxx_cv_prog_CXX])
101
m4_rename([_AC_ARG_VAR_PRECIOUS],[glibcxx_PRECIOUS])
102
m4_define([_AC_ARG_VAR_PRECIOUS],[])
103
save_CXXFLAGS="$CXXFLAGS"
104
CXXFLAGS="$CXXFLAGS -fno-builtin"
105
AC_PROG_CC
106
AC_PROG_CXX
107
CXXFLAGS="$save_CXXFLAGS"
108
m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
109
AC_SUBST(CFLAGS)
110
AC_SUBST(CXXFLAGS)
111
AC_SUBST(LDFLAGS)
112
 
113
AM_INIT_AUTOMAKE([1.9.0])
114
 
115
AC_CHECK_TOOL(AS, as)
116
AC_CHECK_TOOL(AR, ar)
117
AC_CHECK_TOOL(RANLIB, ranlib, :)
118
 
119
AC_PROG_INSTALL
120
 
121
AM_MAINTAINER_MODE
122
 
123
AC_EXEEXT
124
 
125
# configure.host sets the following important variables
126
#       libgcj_cflags    - host specific C compiler flags
127
#       libgcj_cxxflags  - host specific C++ compiler flags
128
#       libgcj_javaflags - host specific Java compiler flags
129
 
130
libgcj_cflags=
131
libgcj_cxxflags=
132
libgcj_javaflags=
133
 
134
. ${srcdir}/configure.host
135
 
136
LIBGCJ_CFLAGS="${libgcj_cflags}"
137
LIBGCJ_CXXFLAGS="${libgcj_cxxflags}"
138
LIBGCJ_JAVAFLAGS="${libgcj_javaflags}"
139
LIBGCJ_LD_SYMBOLIC="${libgcj_ld_symbolic}"
140
AC_SUBST(LIBGCJ_CFLAGS)
141
AC_SUBST(LIBGCJ_CXXFLAGS)
142
AC_SUBST(LIBGCJ_JAVAFLAGS)
143
AC_SUBST(LIBGCJ_LD_SYMBOLIC)
144
 
145
# Only use libltdl for non-newlib builds.
146
if test "x${with_newlib}" = "x" || test "x${with_newlib}" = "xno"; then
147
   AC_LTDL_SHLIBPATH
148
fi
149
 
150
AC_CONFIG_HEADERS([include/config.h gcj/libgcj-config.h])
151
 
152
# See if the user has requested runtime debugging.
153
LIBGCJDEBUG="disable"
154
AC_SUBST(LIBGCJDEBUG)
155
AC_ARG_ENABLE(libgcj-debug,
156
  AS_HELP_STRING([--enable-libgcj-debug],
157
                 [enable runtime debugging code]),
158
  [if test "$enable_libgcj_debug" = yes; then
159
    AC_DEFINE(DEBUG, 1, [Define this if you want runtime debugging enabled.])
160
    LIBGCJDEBUG="enable"
161
  fi])
162
 
163
# Determine which AWT peer libraries to build
164
AC_ARG_ENABLE(java-awt,
165
  AS_HELP_STRING([--enable-java-awt],
166
                 [list of AWT peer implementations to be built]))
167
 
168
peerlibs="`echo ${enable_java_awt} | tr ',' ' '`"
169
use_xlib_awt=""
170
use_gtk_awt=""
171
use_qt_awt=""
172
# The default toolkit to use is the first one specified.
173
TOOLKIT=
174
AC_SUBST(TOOLKIT)
175
 
176
for peer in $peerlibs ; do
177
  case $peer in
178
    xlib)
179
      if test "$no_x" = yes; then
180
        echo "*** xlib peers requested but no X library available" 1>&2
181
        exit 1
182
      else
183
        use_xlib_awt="yes"
184
        if test -z "$TOOLKIT"; then
185
           TOOLKIT=gnu.awt.xlib.XToolkit
186
        fi
187
      fi
188
      ;;
189
    gtk)
190
      if test "$no_x" = yes; then
191
         echo "*** gtk peers requested but no X library available" 1>&2
192
         exit 1
193
      else
194
         use_gtk_awt=yes
195
         if test -z "$TOOLKIT"; then
196
            TOOLKIT=gnu.java.awt.peer.gtk.GtkToolkit
197
         fi
198
      fi
199
      ;;
200
    qt)
201
      if test "$no_x" = yes; then
202
         # Perhaps we should admit the possibility of embedded Qt.
203
         echo "*** Qt peers requested but no X library available" 1>&2
204
         exit 1
205
      else
206
         use_qt_awt=yes
207
         if test -z "$TOOLKIT"; then
208
            TOOLKIT=gnu.java.awt.peer.qt.QtToolkit
209
         fi
210
      fi
211
      ;;
212
    no)
213
      use_xlib_awt=
214
      use_gtk_awt=
215
      use_qt_awt=
216
      break
217
      ;;
218
    *)
219
      echo "*** unrecognised argument \"${peer}\" for --enable-java-awt" 1>&2
220
      exit 1
221
  esac
222
done
223
 
224
AM_CONDITIONAL(XLIB_AWT, test "$use_xlib_awt" = yes)
225
AM_CONDITIONAL(GTK_AWT, test "$use_gtk_awt" = yes)
226
AM_CONDITIONAL(QT_AWT, test "$use_qt_awt" = yes)
227
 
228
# Create standard.omit based on decisions we just made.
229
cp $srcdir/standard.omit.in standard.omit
230
if test "$use_xlib_awt" != yes; then
231
   echo gnu/awt/xlib >> standard.omit
232
   echo gnu/gcj/xlib >> standard.omit
233
fi
234
if test "$use_gtk_awt" != yes; then
235
   echo gnu/java/awt/peer/gtk >> standard.omit
236
fi
237
if test "$use_qt_awt" != yes; then
238
   echo gnu/java/awt/peer/qt >> standard.omit
239
fi
240
 
241
if test -z "${with_multisubdir}"; then
242
   builddotdot=.
243
else
244
   builddotdot=`echo ${with_multisubdir} | sed -e 's:[[^/]][[^/]]*:..:g'`
245
fi
246
 
247
NATIVE=yes
248
 
249
# Which gcj do we use?
250
which_gcj=default
251
built_gcc_dir="`cd ${builddotdot}/../../${host_subdir}/gcc && ${PWDCMD-pwd}`"
252
if test -n "${with_cross_host}"; then
253
  # We are being configured with a cross compiler. We can't
254
  # use ac_exeext, because that is for the target platform.
255
  NATIVE=no
256
  cross_host_exeext=
257
  case "${with_cross_host}" in
258
     *mingw* | *cygwin*)
259
         cross_host_exeext=.exe
260
     ;;
261
  esac
262
  if test -x "${built_gcc_dir}/gcj${cross_host_exeext}"; then
263
     if test x"$build_noncanonical" = x"$with_cross_host"; then
264
        # Ordinary cross (host!=target and host=build)
265
        which_gcj=built
266
     else
267
        # Canadian cross (host!=target and host!=build)
268
        which_gcj=cross
269
     fi
270
  else
271
     which_gcj=cross
272
  fi
273
else
274
  # We are being configured with a native or crossed-native compiler
275
  if test -x "${built_gcc_dir}/gcj${ac_exeext}"; then
276
     if test x"$build" = x"$host"; then
277
        # True native build (host=target and host=build)
278
        which_gcj=built
279
     else
280
        # Crossed-native build (host=target and host!=build)
281
        which_gcj=cross
282
     fi
283
  else
284
     which_gcj=path
285
  fi
286
fi
287
case "${which_gcj}" in
288
   built)
289
      GCJ="$built_gcc_dir/gcj -B`${PWDCMD-pwd}`/ -B$built_gcc_dir/"
290
      GCJH='$(top_builddir)/$(MULTIBUILDTOP)../../$(host_subdir)/gcc/gcjh'
291
      ZIP='$(top_builddir)/$(MULTIBUILDTOP)../../$(host_subdir)/fastjar/fastjar'
292
   ;;
293
   cross)
294
      if test "x${with_newlib}" = "xyes"; then
295
         # FIXME (comment): Why is this needed?
296
         GCC_UNWIND_INCLUDE=
297
         GCJ="${target_noncanonical}-gcj"
298
      else
299
         GCJ="${target_noncanonical}-gcj -B`${PWDCMD-pwd}`/"
300
      fi
301
      ZIP='$(target_noncanonical)-fastjar'
302
      GCJH='$(target_noncanonical)-gcjh'
303
   ;;
304
   path)
305
      GCJ="gcj -B`${PWDCMD-pwd}`/"
306
      ## In this case, gcj is found outside the build tree.  However, zip is
307
      ## found in the build tree.
308
      ZIP='$(top_builddir)/$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/fastjar'
309
      GCJH=gcjh
310
   ;;
311
esac
312
 
313
AC_SUBST(GCJH)
314
AC_SUBST(ZIP)
315
 
316
# Create it, so that compile/link tests don't fail
317
test -f libgcj.spec || touch libgcj.spec
318
 
319
 
320
 
321
# Set up to configure Classpath.
322
# FIXME: no supported way to pass args in autoconf.
323
ac_configure_args="$ac_configure_args --disable-load-library"
324
ac_configure_args="$ac_configure_args --${LIBGCJDEBUG}-debug"
325
ac_configure_args="$ac_configure_args --enable-default-toolkit=$TOOLKIT"
326
dir1=`cd $srcdir && pwd`
327
dir2=`pwd`
328
ac_configure_args="$ac_configure_args --with-vm-classes=$dir1:$dir2"
329
ac_configure_args="$ac_configure_args --disable-core-jni"
330
dnl FIXME?
331
ac_configure_args="$ac_configure_args --disable-examples"
332
ac_configure_args="$ac_configure_args --with-glibj=build"
333
if test "$use_gtk_awt" != yes; then
334
  ac_configure_args="$ac_configure_args --disable-gtk-peer"
335
fi
336
if test "$use_qt_awt" != yes; then
337
  ac_configure_args="$ac_configure_args --disable-qt-peer"
338
else
339
  # We need this as qt is disabled by default in classpath.
340
  ac_configure_args="$ac_configure_args --enable-qt-peer"
341
fi
342
dnl --with-gcj=$GCJ
343
dnl --with-javah=$GCJH
344
dnl gjdoc?
345
dnl gtk-cairo -- just export here...
346
dnl --enable-regen-headers?
347
 
348
# Only use libltdl for non-newlib builds.
349
if test "x${with_newlib}" = "x" || test "x${with_newlib}" = "xno"; then
350
   AC_LIBLTDL_CONVENIENCE
351
   AC_LIBTOOL_DLOPEN
352
   DIRLTDL=libltdl
353
   AC_DEFINE(USE_LTDL, 1, [Define if libltdl is in use.])
354
   # Sigh.  Libtool's macro doesn't do the right thing.
355
   INCLTDL="-I\$(top_srcdir)/libltdl $INCLTDL"
356
   # FIXME: this is a hack.
357
   sub_auxdir="`cd $ac_aux_dir && ${PWDCMD-pwd}`"
358
   ac_configure_args="$ac_configure_args --with-auxdir=$sub_auxdir"
359
fi
360
AC_SUBST(INCLTDL)
361
AC_SUBST(LIBLTDL)
362
AC_SUBST(DIRLTDL)
363
AC_PROG_LIBTOOL
364
AM_PROG_GCJ
365
AM_PROG_CC_C_O
366
 
367
AC_CONFIG_SUBDIRS(classpath libltdl)
368
 
369
# The -no-testsuite modules omit the test subdir.
370
AM_CONDITIONAL(TESTSUBDIR, test -d $srcdir/testsuite)
371
 
372
# Should the runtime set system properties by examining the
373
# environment variable GCJ_PROPERTIES?
374
AC_ARG_ENABLE(getenv-properties,
375
  AS_HELP_STRING([--disable-getenv-properties],
376
                 [don't set system properties from GCJ_PROPERTIES]))
377
 
378
# Whether GCJ_PROPERTIES is used depends on the target.
379
if test -z "$enable_getenv_properties"; then
380
   enable_getenv_properties=${enable_getenv_properties_default-yes}
381
fi
382
if test "$enable_getenv_properties" = no; then
383
   AC_DEFINE(DISABLE_GETENV_PROPERTIES, 1,
384
     [Define if system properties shouldn't be read from getenv("GCJ_PROPERTIES").])
385
fi
386
 
387
# Whether we should use arguments to main()
388
if test -z "$enable_main_args"; then
389
   enable_main_args=${enable_main_args_default-yes}
390
fi
391
if test "$enable_main_args" = no; then
392
   AC_DEFINE(DISABLE_MAIN_ARGS, 1, [Define if we should ignore arguments to main().])
393
fi
394
 
395
 
396
# Should we use hashtable-based synchronization?
397
# Currently works only for Linux X86/ia64
398
# Typically faster and more space-efficient
399
AC_ARG_ENABLE(hash-synchronization,
400
  AS_HELP_STRING([--enable-hash-synchronization],
401
                 [use global hash table for monitor locks]))
402
 
403
if test -z "$enable_hash_synchronization"; then
404
   enable_hash_synchronization=$enable_hash_synchronization_default
405
fi
406
 
407
AC_ARG_WITH(java-home,
408
  AS_HELP_STRING([--with-java-home=DIRECTORY],
409
                 [value of java.home system property]),
410
                 [JAVA_HOME="${withval}"], [JAVA_HOME=""])
411
AM_CONDITIONAL(JAVA_HOME_SET, test ! -z "$JAVA_HOME")
412
AC_SUBST(JAVA_HOME)
413
 
414
# What is the native OS API for MinGW?
415
AC_ARG_WITH(win32-nlsapi,
416
  AS_HELP_STRING([--with-win32-nlsapi=ansi or unicows or unicode],
417
                 [native MinGW libgcj Win32 OS API (default is ansi)]),
418
[case "${withval}" in
419
  ansi) with_win32_nlsapi=ansi ;;
420
  unicows) with_win32_nlsapi=unicows ;;
421
  unicode) with_win32_nlsapi=unicode ;;
422
  *) AC_MSG_ERROR(Bad value ${withval} for --with-win32-nlsapi.) ;;
423
esac],[with_win32_nlsapi=ansi])
424
 
425
case "${with_win32_nlsapi}" in
426
  unicows | unicode)
427
    AC_DEFINE(MINGW_LIBGCJ_UNICODE, 1,
428
      [Define if MinGW libgcj uses the Windows UNICODE OS API.])
429
    ;;
430
esac
431
 
432
# configure.host sets slow_pthread_self if the synchronization code should
433
# try to avoid pthread_self calls by caching thread IDs in a hashtable.
434
if test "${slow_pthread_self}" = "yes"; then
435
  AC_DEFINE(SLOW_PTHREAD_SELF, 1,
436
    [Define if if the synchronization code should try to avoid pthread_self calls by caching thread IDs in a hashtable.])
437
fi
438
 
439
# Check for gc debugging.  This option is handled both here and in the GC.
440
AC_ARG_ENABLE(gc-debug,
441
   AS_HELP_STRING([--enable-gc-debug],
442
                  [include full support for pointer backtracing etc.]),
443
[ if test "$enable_gc_debug" = "yes"; then
444
    AC_DEFINE(LIBGCJ_GC_DEBUG, 1,
445
              [Define if we want to use debug calls into the garbage collector.])
446
  fi])
447
 
448
# See if the user has the interpreter included.
449
AC_ARG_ENABLE(interpreter,
450
  AS_HELP_STRING([--enable-interpreter],
451
                 [enable interpreter]),
452
  [if test "$enable_interpreter" = yes; then
453
    # This can also be set in configure.host.
454
    libgcj_interpreter=yes
455
  elif test "$enable_interpreter" = no; then
456
    libgcj_interpreter=no
457
  fi])
458
 
459
if test "$libgcj_interpreter" = yes; then
460
   AC_DEFINE(INTERPRETER, 1, [Define if you want a bytecode interpreter.])
461
fi
462
INTERPRETER="$libgcj_interpreter"
463
AC_SUBST(INTERPRETER)
464
 
465
AC_MSG_CHECKING([for exception model to use])
466
AC_LANG_PUSH(C++)
467
AC_ARG_ENABLE(sjlj-exceptions,
468
  AS_HELP_STRING([--enable-sjlj-exceptions],
469
                 [force use of builtin_setjmp for exceptions]),
470
[:],
471
[dnl Botheration.  Now we've got to detect the exception model.
472
dnl Link tests against libgcc.a are problematic since -- at least
473
dnl as of this writing -- we've not been given proper -L bits for
474
dnl single-tree newlib and libgloss.
475
dnl
476
dnl This is what AC_TRY_COMPILE would do if it didn't delete the
477
dnl conftest files before we got a change to grep them first.
478
cat > conftest.$ac_ext << EOF
479
[#]line __oline__ "configure"
480
struct S { ~S(); };
481
void bar();
482
void foo()
483
{
484
  S s;
485
  bar();
486
}
487
EOF
488
old_CXXFLAGS="$CXXFLAGS"
489
CXXFLAGS=-S
490
if AC_TRY_EVAL(ac_compile); then
491
  if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then
492
    enable_sjlj_exceptions=yes
493
  elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then
494
    enable_sjlj_exceptions=no
495
  fi
496
fi
497
CXXFLAGS="$old_CXXFLAGS"
498
rm -f conftest*])
499
if test x$enable_sjlj_exceptions = xyes; then
500
  AC_DEFINE(SJLJ_EXCEPTIONS, 1,
501
        [Define if the compiler is configured for setjmp/longjmp exceptions.])
502
  ac_exception_model_name=sjlj
503
elif test x$enable_sjlj_exceptions = xno; then
504
  ac_exception_model_name="call frame"
505
else
506
  AC_MSG_ERROR([unable to detect exception model])
507
fi
508
AC_LANG_POP(C++)
509
AC_MSG_RESULT($ac_exception_model_name)
510
 
511
# If we are non using SJLJ exceptions, and this host does not have support
512
# for unwinding from a signal handler, enable checked dereferences and divides.
513
if test $can_unwind_signal = no && test $enable_sjlj_exceptions = no; then
514
  CHECKREFSPEC=-fcheck-references
515
  DIVIDESPEC=-fuse-divide-subroutine
516
  EXCEPTIONSPEC=
517
fi
518
 
519
# See if the user wants to disable java.net.  This is the mildly
520
# ugly way that we admit that target-side configuration sucks.
521
AC_ARG_ENABLE(java-net,
522
  AS_HELP_STRING([--disable-java-net],
523
                 [disable java.net]))
524
 
525
# Whether java.net is built by default can depend on the target.
526
if test -z "$enable_java_net"; then
527
   enable_java_net=${enable_java_net_default-yes}
528
fi
529
if test "$enable_java_net" = no; then
530
   AC_DEFINE(DISABLE_JAVA_NET, 1, [Define if java.net native functions should be stubbed out.])
531
fi
532
 
533
# See if the user wants to configure without libffi.  Some
534
# architectures don't support it, and default values are set in
535
# configure.host.
536
AC_ARG_WITH(libffi,
537
  AS_HELP_STRING([--without-libffi],
538
                 [don't use libffi]),
539
  [:],
540
  [with_libffi=${with_libffi_default-yes}])
541
 
542
LIBFFI=
543
LIBFFIINCS=
544
if test "$with_libffi" != no; then
545
   AC_DEFINE(USE_LIBFFI, 1, [Define if we're to use libffi.])
546
   LIBFFI=../libffi/libffi_convenience.la
547
   LIBFFIINCS='-I$(top_srcdir)/../libffi/include -I../libffi/include'
548
fi
549
AC_SUBST(LIBFFI)
550
AC_SUBST(LIBFFIINCS)
551
 
552
# See if the user wants to disable JVMPI support.
553
AC_ARG_ENABLE(jvmpi,
554
  AS_HELP_STRING([--disable-jvmpi],
555
                 [disable JVMPI support]))
556
 
557
if test "$enable_jvmpi" != no; then
558
    AC_DEFINE(ENABLE_JVMPI, 1, [Define if you are using JVMPI.])
559
fi
560
 
561
# If the target is an eCos system, use the appropriate eCos
562
# I/O routines.
563
# FIXME: this should not be a local option but a global target
564
# system; at present there is no eCos target.
565
TARGET_ECOS=${PROCESS-"no"}
566
AC_ARG_WITH(ecos,
567
[  --with-ecos             enable runtime eCos target support],
568
TARGET_ECOS="$with_ecos"
569
)
570
 
571
supply_backtrace=no
572
 
573
PLATFORM_INNER_NAT_HDRS=
574
case "$TARGET_ECOS" in
575
   no) case "$host" in
576
      *mingw*)
577
            PLATFORM=Win32
578
            PLATFORMNET=Win32
579
            PLATFORMH=win32.h
580
        CHECK_FOR_BROKEN_MINGW_LD
581
      ;;
582
      *)
583
            PLATFORM=Posix
584
            PLATFORMNET=Posix
585
            PLATFORMH=posix.h
586
            PLATFORM_INNER_NAT_HDRS='java/lang/ConcreteProcess$$ProcessManager.h'
587
      ;;
588
      esac
589
      ;;
590
   *)
591
      PLATFORM=Ecos
592
      PLATFORMNET=NoNet
593
      AC_DEFINE(ECOS, 1, [Define if you're running eCos.])
594
      PLATFORMH=posix.h
595
      ;;
596
esac
597
AC_SUBST(PLATFORM_INNER_NAT_HDRS)
598
AC_CONFIG_LINKS(include/platform.h:include/$PLATFORMH)
599
 
600
AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1,
601
                                      [Define if you have int32_t and uint32_t.]))
602
AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1,
603
                                        [Define if you have int32_t and uint32_t.]))
604
AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1,
605
                                          [Define if you have u_int32_t]))
606
AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1,
607
                                           [Define if you have u_int32_t]))
608
 
609
AM_CONDITIONAL(USING_WIN32_PLATFORM, test "$PLATFORM" = Win32)
610
AM_CONDITIONAL(USING_POSIX_PLATFORM, test "$PLATFORM" = Posix || test "$PLATFORM" = Ecos)
611
 
612
case "$host" in
613
  *-darwin*) DARWIN_CRT=true ;;
614
  *) DARWIN_CRT=false ;;
615
esac
616
AM_CONDITIONAL(USING_DARWIN_CRT, $DARWIN_CRT)
617
 
618
# These may not be defined in a non-ANS conformant embedded system.
619
# FIXME: Should these case a runtime exception in that case?
620
AC_EGREP_HEADER(mktime, time.h, AC_DEFINE(HAVE_MKTIME, 1,
621
                                  [Define is you have 'mktime' in ]))
622
AC_EGREP_HEADER(localtime, time.h, AC_DEFINE(HAVE_LOCALTIME, 1,
623
                                  [Define is you have 'localtime' in ]))
624
 
625
# Create the subdirectory for natFile.cc, or the attempt
626
# to create the link will fail.
627
test -d java || mkdir java
628
test -d java/io || mkdir java/io
629
test -d gnu || mkdir gnu
630
AC_CONFIG_LINKS(java/io/natFile.cc:java/io/natFile${FILE-${PLATFORM}}.cc)
631
 
632
# Likewise for ConcreteProcess.java and natConcreteProcess.cc.
633
test -d java/lang || mkdir java/lang
634
AC_CONFIG_LINKS(java/lang/ConcreteProcess.java:java/lang/${PLATFORM}Process.java)
635
AC_CONFIG_LINKS(java/lang/natConcreteProcess.cc:java/lang/nat${PLATFORM}Process.cc)
636
 
637
# Likewise for natInetAddress.cc and natVMNetworkInterface.cc.
638
test -d java/net || mkdir java/net
639
AC_CONFIG_LINKS(java/net/natInetAddress.cc:java/net/natInetAddress${PLATFORMNET}.cc)
640
AC_CONFIG_LINKS(java/net/natVMNetworkInterface.cc:java/net/natVMNetworkInterface${PLATFORMNET}.cc)
641
 
642
# Likewise for natPlainSocketImpl.cc and natPlainDatagramSocketImpl.cc.
643
test -d gnu/java || mkdir gnu/java
644
test -d gnu/java/net || mkdir gnu/java/net
645
AC_CONFIG_LINKS(gnu/java/net/natPlainSocketImpl.cc:gnu/java/net/natPlainSocketImpl${PLATFORMNET}.cc)
646
AC_CONFIG_LINKS(gnu/java/net/natPlainDatagramSocketImpl.cc:gnu/java/net/natPlainDatagramSocketImpl${PLATFORMNET}.cc)
647
 
648
# Likewise for natPipeImpl.cc and natSelectorImpl.cc.
649
test -d gnu/java/nio || mkdir gnu/java/nio
650
AC_CONFIG_LINKS(gnu/java/nio/natPipeImpl.cc:gnu/java/nio/natPipeImpl${PLATFORM}.cc)
651
AC_CONFIG_LINKS(gnu/java/nio/natSelectorImpl.cc:gnu/java/nio/natSelectorImpl${PLATFORM}.cc)
652
test -d gnu/java/nio/channels || mkdir gnu/java/nio/channels
653
AC_CONFIG_LINKS(gnu/java/nio/channels/natFileChannelImpl.cc:gnu/java/nio/channels/natFileChannel${FILE-${PLATFORM}}.cc)
654
 
655
case "${host}" in
656
    *mingw*)
657
      SYSTEMSPEC="-lgdi32 -lws2_32"
658
      if test "${with_win32_nlsapi}" = "unicows"; then
659
        SYSTEMSPEC="-lunicows $SYSTEMSPEC"
660
      fi
661
    ;;
662
    *)
663
      SYSTEMSPEC=
664
    ;;
665
esac
666
AC_SUBST(SYSTEMSPEC)
667
 
668
LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs"
669
AC_SUBST(LIBGCJTESTSPEC)
670
 
671
AC_ARG_WITH(system-zlib,
672
  AS_HELP_STRING([--with-system-zlib],
673
                 [use installed libz]))
674
ZLIBSPEC=
675
AC_SUBST(ZLIBSPEC)
676
ZLIBTESTSPEC=
677
AC_SUBST(ZLIBTESTSPEC)
678
 
679
AC_PATH_XTRA
680
 
681
# determine whether to enable the cairo GTK Graphics2D backend
682
AC_ARG_ENABLE(gtk-cairo,
683
  AS_HELP_STRING([--enable-gtk-cairo],
684
                 [build the cairo Graphics2D implementation on GTK]))
685
AM_CONDITIONAL(GTK_CAIRO, test "x${enable_gtk_cairo}" = xyes)
686
if test "x${enable_gtk_cairo}" = xyes
687
then
688
        PKG_CHECK_MODULES(CAIRO, cairo)
689
        PKG_CHECK_MODULES(PANGOFT2, pangoft2)
690
fi
691
AC_SUBST(CAIRO_LIBS)
692
AC_SUBST(CAIRO_CFLAGS)
693
AC_SUBST(PANGOFT2_LIBS)
694
AC_SUBST(PANGOFT2_CFLAGS)
695
 
696
# FIXME: this should be _libs on some hosts.
697
libsubdir=.libs
698
 
699
# extra LD Flags which are required for targets
700
case "${host}" in
701
*-*-darwin[[0-7]].*)
702
    # For now we have to disable it on darwin[8-9] because it slows down
703
    # the linking phase. A possible bug in ld?
704
    # on Darwin -single_module speeds up loading of the dynamic libraries.
705
    extra_ldflags_libjava=-Wl,-single_module
706
    ;;
707
esac
708
AC_SUBST(extra_ldflags_libjava)
709
 
710
# Allow the GC to be disabled.  Can be useful when debugging.
711
AC_MSG_CHECKING([for garbage collector to use])
712
AC_ARG_ENABLE(java-gc,
713
  AS_HELP_STRING([--enable-java-gc=TYPE],
714
                 [choose garbage collector (default is boehm)]),
715
  [GC=$enableval],
716
  [GC=boehm])
717
GCLIBS=
718
GCINCS=
719
GCDEPS=
720
GCSPEC=
721
JC1GCSPEC=
722
GCTESTSPEC=
723
case "$GC" in
724
 boehm)
725
    AC_MSG_RESULT(boehm)
726
    GCLIBS=../boehm-gc/libgcjgc_convenience.la
727
    JC1GCSPEC='-fuse-boehm-gc'
728
    GCTESTSPEC="-L`${PWDCMD-pwd}`/../boehm-gc/.libs -rpath `${PWDCMD-pwd}`/../boehm-gc/.libs"
729
    GCINCS='-I$(top_srcdir)/../boehm-gc/include -I../boehm-gc/include'
730
    GCOBJS=boehm.lo
731
    GCHDR=boehm-gc.h
732
    # The POSIX thread support needs to know this.
733
    AC_DEFINE(HAVE_BOEHM_GC, 1, [Define if Boehm GC in use.])
734
    ;;
735
 no)
736
    AC_MSG_RESULT(none)
737
    GCHDR=no-gc.h
738
    ;;
739
 *)
740
    AC_MSG_ERROR([unrecognized collector "$GC"])
741
    ;;
742
esac
743
AC_SUBST(GCLIBS)
744
AC_SUBST(GCINCS)
745
AC_SUBST(GCDEPS)
746
AC_SUBST(GCSPEC)
747
AC_SUBST(JC1GCSPEC)
748
AC_SUBST(GCTESTSPEC)
749
AC_CONFIG_LINKS(include/java-gc.h:include/$GCHDR)
750
AM_CONDITIONAL(USING_BOEHMGC, test "$GC" = boehm)
751
AM_CONDITIONAL(USING_NOGC, test "$GC" = no)
752
 
753
 
754
AC_MSG_CHECKING([for thread model used by GCC])
755
THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
756
AC_MSG_RESULT([$THREADS])
757
 
758
case "$THREADS" in
759
 no | none | single)
760
    THREADS=none
761
    ;;
762
 posix | posix95 | pthreads)
763
    THREADS=posix
764
    case "$host" in
765
     *-*-linux*)
766
        AC_DEFINE(LINUX_THREADS, 1, [Define if using POSIX threads on Linux.])
767
        ;;
768
    esac
769
    ;;
770
 win32)
771
    ;;
772
 decosf1 | irix | mach | os2 | solaris | dce | vxworks)
773
    AC_MSG_ERROR(thread package $THREADS not yet supported)
774
    ;;
775
 *)
776
    AC_MSG_ERROR($THREADS is an unknown thread package)
777
    ;;
778
esac
779
 
780
THREADCXXFLAGS=
781
THREADLDFLAGS=
782
THREADLIBS=
783
THREADINCS=
784
THREADDEPS=
785
THREADH=
786
THREADSPEC=
787
case "$THREADS" in
788
 posix)
789
    case "$host" in
790
     *-*-cygwin*)
791
        # Don't set THREADLIBS here.  Cygwin doesn't have -lpthread.
792
        ;;
793
     *-*-freebsd[[1234]]*)
794
        # Before FreeBSD 5, it didn't have -lpthread (or any library which
795
        # merely adds pthread_* functions) but it does have a -pthread switch
796
        # which is required at link-time to select -lc_r *instead* of -lc.
797
        THREADLDFLAGS=-pthread
798
        # Don't set THREADSPEC here as might be expected since -pthread is
799
        # not processed when found within a spec file, it must come from
800
        # the command line.  For now, the user must provide the -pthread
801
        # switch to link code compiled with gcj.  In future, consider adding
802
        # support for weak references to pthread_* functions ala gthr.h API.
803
        THREADSPEC='%{!pthread: %{!shared: %eUnder this configuration, the user must provide -pthread when linking.}}'
804
        ;;
805
     *-*-freebsd*)
806
        # FreeBSD >=5.3 implements a model much closer to other modern UNIX
807
        # systems which support threads and -lpthread.
808
        THREADLDFLAGS=-pthread
809
        THREADSPEC=-lpthread
810
        ;;
811
     alpha*-dec-osf*)
812
        THREADCXXFLAGS=-pthread
813
        # boehm-gc needs some functions from librt, so link that too.
814
        THREADLIBS='-lpthread -lrt'
815
        THREADSPEC='-lpthread -lrt'
816
        ;;
817
     *)
818
        THREADLIBS=-lpthread
819
        THREADSPEC=-lpthread
820
        ;;
821
    esac
822
    THREADH=posix-threads.h
823
    # MIT pthreads doesn't seem to have the mutexattr functions.
824
    # But for now we don't check for it.  We just assume you aren't
825
    # using MIT pthreads.
826
    AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_INIT, 1, [Define if using POSIX threads that have the mutexattr functions.])
827
 
828
    # If we're using the Boehm GC, then we happen to know that it
829
    # defines _REENTRANT, so we don't bother.  Eww.
830
    if test "$GC" != boehm; then
831
       AC_DEFINE(_REENTRANT, 1, [Required define if using POSIX threads])
832
    fi
833
    AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Required define if using POSIX threads])
834
    ;;
835
 
836
 win32)
837
    THREADH=win32-threads.h
838
    ;;
839
 
840
 none)
841
    THREADH=no-threads.h
842
    ;;
843
esac
844
AC_CONFIG_LINKS(include/java-threads.h:include/$THREADH)
845
AC_SUBST(THREADLIBS)
846
AC_SUBST(THREADINCS)
847
AC_SUBST(THREADDEPS)
848
AC_SUBST(THREADSPEC)
849
AC_SUBST(THREADLDFLAGS)
850
AC_SUBST(THREADCXXFLAGS)
851
AM_CONDITIONAL(USING_POSIX_THREADS, test "$THREADS" = posix)
852
AM_CONDITIONAL(USING_WIN32_THREADS, test "$THREADS" = win32)
853
AM_CONDITIONAL(USING_NO_THREADS, test "$THREADS" = none)
854
 
855
if test -d sysdep; then true; else mkdir sysdep; fi
856
AC_CONFIG_LINKS(sysdep/locks.h:sysdep/$sysdeps_dir/locks.h)
857
AC_CONFIG_LINKS(sysdep/backtrace.h:$fallback_backtrace_h)
858
AC_CONFIG_LINKS(sysdep/descriptor.h:$descriptor_h)
859
 
860
HASH_SYNC_SPEC=
861
# Hash synchronization is only useful with posix threads right now.
862
if test "$enable_hash_synchronization" = yes && test "$THREADS" != "none"; then
863
   HASH_SYNC_SPEC=-fhash-synchronization
864
   AC_DEFINE(JV_HASH_SYNCHRONIZATION, 1, [Define if hash synchronization is in use])
865
fi
866
AC_SUBST(HASH_SYNC_SPEC)
867
 
868
AM_CONDITIONAL(USING_GCC, test "$GCC" = yes)
869
 
870
# We're in the tree with gcc, and need to include some of its headers.
871
GCC_UNWIND_INCLUDE='-I$(libgcj_basedir)/../gcc'
872
 
873
if test "x${with_newlib}" = "xyes"; then
874
   # We are being configured with a cross compiler.  AC_REPLACE_FUNCS
875
   # may not work correctly, because the compiler may not be able to
876
   # link executables.
877
 
878
   # We assume newlib.  This lets us hard-code the functions we know
879
   # we'll have.
880
   AC_DEFINE(HAVE_MEMMOVE, 1, [Define if you have memmove.])
881
   AC_DEFINE(HAVE_MEMCPY, 1, [Define if you have memcpy.])
882
   AC_DEFINE(HAVE_STRERROR, 1, [Define if you have strerror.])
883
   AC_DEFINE(HAVE_TIME, 1, [Define if you have time.])
884
   AC_DEFINE(HAVE_GMTIME_R, 1, [Define if you have the 'gmtime_r' function])
885
   AC_DEFINE(HAVE_LOCALTIME_R, 1, [Define if you have the 'localtime_r' function.])
886
   AC_DEFINE(HAVE_USLEEP_DECL, 1, [Define if usleep is declared in .])
887
   # This is only for POSIX threads.
888
   AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_INIT, 1, [Define if using POSIX threads that have the mutexattr functions.])
889
   # We also assume we are using gcc, which provides alloca.
890
   AC_DEFINE(HAVE_ALLOCA)
891
 
892
   # Assume we do not have getuid and friends.
893
   AC_DEFINE(NO_GETUID, 1, [Define if getuid() and friends are missing.])
894
   PLATFORMNET=NoNet
895
else
896
   AC_CHECK_FUNCS([strerror ioctl select fstat open fsync sleep opendir \
897
                   gmtime_r localtime_r readdir_r getpwuid_r getcwd \
898
                   access stat mkdir rename rmdir unlink realpath utime chmod \
899
                   nl_langinfo setlocale \
900
                   inet_pton uname inet_ntoa \
901
                   fork execvp pipe sigaction ftruncate])
902
   AC_CHECK_FUNCS(inet_aton inet_addr, break)
903
   AC_CHECK_HEADERS(execinfo.h unistd.h dlfcn.h)
904
   AC_CHECK_FUNC(backtrace, [
905
     case "$host" in
906
       ia64-*-linux*)
907
         # Has broken backtrace()
908
         ;;
909
       mips*-*-linux*)
910
         # Has broken backtrace(), but we supply our own.
911
         if test -d sysdep; then true; else mkdir -p sysdep; fi
912
         supply_backtrace=yes
913
         AC_DEFINE(HAVE_BACKTRACE, 1,
914
           [Define if your platform has a working backtrace() function.])
915
         ;;
916
       *)
917
         AC_DEFINE(HAVE_BACKTRACE, 1,
918
           [Define if your platform has a working backtrace() function.])
919
         ;;
920
     esac
921
   ], [
922
     case "$host" in
923
       *mingw*)
924
         # Has backtrace() defined in libgcj itself
925
         AC_DEFINE(HAVE_BACKTRACE, 1,
926
           [Define if your platform has a working backtrace() function.])
927
         ;;
928
     esac
929
   ])
930
 
931
   AC_CHECK_LIB(dl, dladdr, [
932
       AC_DEFINE(HAVE_DLADDR, 1, [Define if you have dladdr()])])
933
 
934
   if test x"$build" = x"$host"; then
935
     AC_CHECK_FILES(/proc/self/exe, [
936
       AC_DEFINE(HAVE_PROC_SELF_EXE, 1, [Define if you have /proc/self/exe])])
937
   else
938
     case $host in
939
     *-linux*)
940
       AC_DEFINE(HAVE_PROC_SELF_EXE, 1, [Define if you have /proc/self/exe])
941
       ;;
942
     esac
943
   fi
944
 
945
   AM_ICONV
946
   AM_LC_MESSAGES
947
   AC_STRUCT_TIMEZONE
948
 
949
   AC_CHECK_FUNCS(gethostbyname_r, [
950
     AC_DEFINE(HAVE_GETHOSTBYNAME_R, 1,
951
       [Define if you have the 'gethostbyname_r' function.])
952
     # There are two different kinds of gethostbyname_r.
953
     # We look for the one that returns `int'.
954
     # Hopefully this check is robust enough.
955
     AC_EGREP_HEADER(int.*gethostbyname_r, netdb.h, [
956
       AC_DEFINE(GETHOSTBYNAME_R_RETURNS_INT, 1, [Define if gethostbyname_r returns 'int'.])])
957
 
958
     case " $GCINCS " in
959
     *" -D_REENTRANT "*) ;;
960
     *)
961
        dnl On DU4.0, gethostbyname_r is only declared with -D_REENTRANT
962
        AC_CACHE_CHECK([whether gethostbyname_r declaration requires -D_REENTRANT],
963
        [libjava_cv_gethostbyname_r_needs_reentrant],
964
        [ AC_LANG_PUSH(C++)
965
          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]],
966
            [[gethostbyname_r("", 0, 0);]])],
967
            [libjava_cv_gethostbyname_r_needs_reentrant=no], [dnl
968
                CPPFLAGS_SAVE="$CPPFLAGS"
969
                CPPFLAGS="$CPPFLAGS -D_REENTRANT"
970
                AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[gethostbyname_r("", 0, 0);]])],
971
                    [libjava_cv_gethostbyname_r_needs_reentrant=yes],
972
                    [libjava_cv_gethostbyname_r_needs_reentrant=fail])
973
                CPPFLAGS="$CPPFLAGS_SAVE"
974
          ])
975
          AC_LANG_POP(C++)
976
        ])
977
        if test "x$libjava_cv_gethostbyname_r_needs_reentrant" = xyes; then
978
          AC_DEFINE(_REENTRANT, 1, [Required define if using POSIX threads])
979
        fi
980
     ;;
981
     esac
982
 
983
     AC_CACHE_CHECK([for struct hostent_data],
984
        [libjava_cv_struct_hostent_data], [dnl
985
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
986
#if GETHOSTBYNAME_R_NEEDS_REENTRANT && !defined(_REENTRANT)
987
# define _REENTRANT 1
988
#endif
989
#include ]], [[struct hostent_data data;]])],
990
          [libjava_cv_struct_hostent_data=yes],
991
          [libjava_cv_struct_hostent_data=no])])
992
     if test "x$libjava_cv_struct_hostent_data" = xyes; then
993
       AC_DEFINE(HAVE_STRUCT_HOSTENT_DATA, 1,
994
         [Define if struct hostent_data is defined in netdb.h])
995
     fi
996
   ])
997
 
998
   # FIXME: libjava source code expects to find a prototype for
999
   # gethostbyaddr_r in netdb.h.  The outer check ensures that
1000
   # HAVE_GETHOSTBYADDR_R will not be defined if the prototype fails
1001
   # to exist where expected.  (The root issue: AC_CHECK_FUNCS assumes C
1002
   # linkage check is enough, yet C++ code requires proper prototypes.)
1003
   AC_EGREP_HEADER(gethostbyaddr_r, netdb.h, [
1004
   AC_CHECK_FUNCS(gethostbyaddr_r, [
1005
     AC_DEFINE(HAVE_GETHOSTBYADDR_R, 1,
1006
       [Define if you have the 'gethostbyaddr_r' function.])
1007
     # There are two different kinds of gethostbyaddr_r.
1008
     # We look for the one that returns `int'.
1009
     # Hopefully this check is robust enough.
1010
     AC_EGREP_HEADER(int.*gethostbyaddr_r, netdb.h, [
1011
       AC_DEFINE(GETHOSTBYADDR_R_RETURNS_INT, 1,
1012
         [Define if gethostbyaddr_r returns 'int'.])])])])
1013
 
1014
   AC_CHECK_FUNCS(gethostname, [
1015
     AC_DEFINE(HAVE_GETHOSTNAME, 1,
1016
       [Define if you have the 'gethostname' function.])
1017
     AC_EGREP_HEADER(gethostname, unistd.h, [
1018
       AC_DEFINE(HAVE_GETHOSTNAME_DECL, 1,
1019
         [Define if gethostname is declared in .])])])
1020
 
1021
   AC_CHECK_FUNCS(usleep, [
1022
     AC_EGREP_HEADER(usleep, unistd.h, [
1023
       AC_DEFINE(HAVE_USLEEP_DECL, 1,
1024
          [Define if usleep is declared in .])])])
1025
 
1026
   # Look for these functions in the thread library, but only bother
1027
   # if using POSIX threads.
1028
   if test "$THREADS" = posix; then
1029
      save_LIBS="$LIBS"
1030
      LIBS="$LIBS $THREADLIBS"
1031
      # Some POSIX thread systems don't have pthread_mutexattr_settype.
1032
      # E.g., Solaris.
1033
      AC_CHECK_FUNCS(pthread_mutexattr_settype pthread_mutexattr_setkind_np)
1034
 
1035
      # Look for sched_yield.  Up to Solaris 2.6, it is in libposix4, since
1036
      # Solaris 7 the name librt is preferred.
1037
      AC_CHECK_FUNCS(sched_yield, , [
1038
        AC_CHECK_LIB(rt, sched_yield, [
1039
          AC_DEFINE(HAVE_SCHED_YIELD)
1040
          THREADLIBS="$THREADLIBS -lrt"
1041
          THREADSPEC="$THREADSPEC -lrt"], [
1042
          AC_CHECK_LIB(posix4, sched_yield, [
1043
            AC_DEFINE(HAVE_SCHED_YIELD)
1044
            THREADLIBS="$THREADLIBS -lposix4"
1045
            THREADSPEC="$THREADSPEC -lposix4"])])])
1046
      LIBS="$save_LIBS"
1047
 
1048
      # We can save a little space at runtime if the mutex has m_count
1049
      # or __m_count.  This is a nice hack for Linux.
1050
      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[
1051
          extern pthread_mutex_t *mutex; int q = mutex->m_count;
1052
        ]])], AC_DEFINE(PTHREAD_MUTEX_HAVE_M_COUNT, 1,
1053
             [Define if pthread_mutex_t has m_count member.]), [
1054
        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[
1055
            extern pthread_mutex_t *mutex; int q = mutex->__m_count;
1056
          ]])], AC_DEFINE(PTHREAD_MUTEX_HAVE___M_COUNT, 1,
1057
            [Define if pthread_mutex_t has __m_count member.]))])
1058
   fi
1059
 
1060
   # We require a way to get the time.
1061
   time_found=no
1062
   AC_CHECK_FUNCS(gettimeofday time ftime, time_found=yes)
1063
   if test "$time_found" = no; then
1064
      AC_MSG_ERROR([no function found to get the time])
1065
   fi
1066
 
1067
   AC_CHECK_FUNCS(memmove)
1068
 
1069
   # We require memcpy.
1070
   memcpy_found=no
1071
   AC_CHECK_FUNCS(memcpy, memcpy_found=yes)
1072
   if test "$memcpy_found" = no; then
1073
      AC_MSG_ERROR([memcpy is required])
1074
   fi
1075
 
1076
   AC_CHECK_LIB(dl, dlopen, [
1077
       AC_DEFINE(HAVE_DLOPEN, 1, [Define if dlopen is available])])
1078
 
1079
   # Some library-finding code we stole from Tcl.
1080
   #--------------------------------------------------------------------
1081
   #    Check for the existence of the -lsocket and -lnsl libraries.
1082
   #    The order here is important, so that they end up in the right
1083
   #    order in the command line generated by make.  Here are some
1084
   #    special considerations:
1085
   #    1. Use "connect" and "accept" to check for -lsocket, and
1086
   #       "gethostbyname" to check for -lnsl.
1087
   #    2. Use each function name only once:  can't redo a check because
1088
   #       autoconf caches the results of the last check and won't redo it.
1089
   #    3. Use -lnsl and -lsocket only if they supply procedures that
1090
   #       aren't already present in the normal libraries.  This is because
1091
   #       IRIX 5.2 has libraries, but they aren't needed and they're
1092
   #       bogus:  they goof up name resolution if used.
1093
   #    4. On some SVR4 systems, can't use -lsocket without -lnsl too.
1094
   #       To get around this problem, check for both libraries together
1095
   #       if -lsocket doesn't work by itself.
1096
   #--------------------------------------------------------------------
1097
 
1098
   AC_CACHE_CHECK([for socket libraries], gcj_cv_lib_sockets,
1099
    [gcj_cv_lib_sockets=
1100
     gcj_checkBoth=0
1101
     unset ac_cv_func_connect
1102
     AC_CHECK_FUNC(connect, gcj_checkSocket=0, gcj_checkSocket=1)
1103
     if test "$gcj_checkSocket" = 1; then
1104
         unset ac_cv_func_connect
1105
         AC_CHECK_LIB(socket, main, gcj_cv_lib_sockets="-lsocket",
1106
                      gcj_checkBoth=1)
1107
     fi
1108
     if test "$gcj_checkBoth" = 1; then
1109
         gcj_oldLibs=$LIBS
1110
         LIBS="$LIBS -lsocket -lnsl"
1111
         unset ac_cv_func_accept
1112
         AC_CHECK_FUNC(accept,
1113
                       [gcj_checkNsl=0
1114
                        gcj_cv_lib_sockets="-lsocket -lnsl"])
1115
         unset ac_cv_func_accept
1116
         LIBS=$gcj_oldLibs
1117
     fi
1118
     unset ac_cv_func_gethostbyname
1119
     gcj_oldLibs=$LIBS
1120
     LIBS="$LIBS $gcj_cv_lib_sockets"
1121
     AC_CHECK_FUNC(gethostbyname, ,
1122
                   [AC_CHECK_LIB(nsl, main,
1123
                                 [gcj_cv_lib_sockets="$gcj_cv_lib_sockets -lnsl"])])
1124
     unset ac_cv_func_gethostbyname
1125
     LIBS=$gcj_oldLIBS
1126
   ])
1127
   SYSTEMSPEC="$SYSTEMSPEC $gcj_cv_lib_sockets"
1128
 
1129
   if test "$with_system_zlib" = yes; then
1130
      AC_CHECK_LIB(z, deflate, ZLIBSPEC=-lz, ZLIBSPEC=)
1131
   fi
1132
 
1133
   # Test for Gtk stuff, if asked for.
1134
   if test "$use_gtk_awt" = yes; then
1135
      PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4)
1136
      AC_SUBST(GTK_CFLAGS)
1137
      AC_SUBST(GTK_LIBS)
1138
 
1139
      PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.4 gthread-2.0 >= 2.4)
1140
      AC_SUBST(GLIB_CFLAGS)
1141
      AC_SUBST(GLIB_LIBS)
1142
 
1143
      PKG_CHECK_MODULES(LIBART, libart-2.0 >= 2.1)
1144
      AC_SUBST(LIBART_CFLAGS)
1145
      AC_SUBST(LIBART_LIBS)
1146
 
1147
      # We require the XTest Extension to support java.awt.Robot.
1148
      AC_CHECK_LIB([Xtst], [XTestQueryExtension], [true],
1149
                   [AC_MSG_ERROR([libXtst not found, required by java.awt.Robot])],
1150
                   [${X_LIBS}])
1151
   fi
1152
 
1153
   # On Solaris, and maybe other architectures, the Boehm collector
1154
   # requires -ldl.
1155
   if test "$GC" = boehm; then
1156
      AC_CHECK_LIB(dl, main, SYSTEMSPEC="$SYSTEMSPEC -ldl")
1157
   fi
1158
fi
1159
AM_CONDITIONAL(SUPPLY_BACKTRACE, test "$supply_backtrace" = yes)
1160
 
1161
# Use a semicolon as CLASSPATH separator for MinGW, otherwise a colon.
1162
case $build in
1163
    *-mingw32) CLASSPATH_SEPARATOR=';' ;;
1164
    *)         CLASSPATH_SEPARATOR=':' ;;
1165
esac
1166
AC_SUBST(CLASSPATH_SEPARATOR)
1167
 
1168
# We must search the source tree for java.lang, since we still don't
1169
# have libgcj.jar nor java/lang/*.class
1170
GCJ_SAVE_CPPFLAGS=$CPPFLAGS
1171
CPPFLAGS="$CPPFLAGS -I`${PWDCMD-pwd}` -I`cd $srcdir && ${PWDCMD-pwd}`"
1172
 
1173
# Since some classes depend on this one, we need its source available
1174
# before we can do any GCJ compilation test :-(
1175
if test ! -f gnu/classpath/Configuration.java; then
1176
  test -d gnu || mkdir gnu
1177
  test -d gnu/classpath || mkdir gnu/classpath
1178
  # Note that it is not crucial that all the values here be correct.
1179
  sed -e "s,@prefix@,$prefix," \
1180
      -e "s,@VERSION@,$VERSION," \
1181
      -e "s,@LIBDEBUG@,false," \
1182
      -e "s,@INIT_LOAD_LIBRARY@,false," \
1183
      -e "s,@@,$LIBGCJDEBUG," \
1184
      -e "s,@default_toolkit@,$TOOLKIT," \
1185
      -e "s,@JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@,false," \
1186
      -e "s,@GTK_CAIRO_ENABLED@,false," \
1187
        < $srcdir/classpath/gnu/classpath/Configuration.java.in \
1188
        > gnu/classpath/Configuration.java
1189
  # We do not want to redirect the output of the grep below to /dev/null,
1190
  # but we add /dev/null to the input list so that grep will print the
1191
  # filename of Configuration.java in case it finds any matches.
1192
  if grep '@.*@' gnu/classpath/Configuration.java /dev/null; then
1193
    AC_MSG_ERROR([configure.ac is missing the substitutions above])
1194
  fi
1195
fi
1196
 
1197
LT_AC_PROG_GCJ
1198
 
1199
# Now remove it.
1200
rm -f gnu/classpath/Configuration.java
1201
 
1202
CPPFLAGS=$GCJ_SAVE_CPPFLAGS
1203
 
1204
AC_CHECK_SIZEOF(void *)
1205
 
1206
AC_C_BIGENDIAN
1207
 
1208
ZLIBS=
1209
SYS_ZLIBS=
1210
ZINCS=
1211
 
1212
if test -z "$ZLIBSPEC"; then
1213
   # Use zlib from the GCC tree.
1214
   ZINCS='-I$(top_srcdir)/../zlib'
1215
   ZLIBS=../zlib/libzgcj_convenience.la
1216
else
1217
   # System's zlib.
1218
   SYS_ZLIBS="$ZLIBSPEC"
1219
fi
1220
AC_SUBST(ZLIBS)
1221
AC_SUBST(SYS_ZLIBS)
1222
AC_SUBST(ZINCS)
1223
AC_SUBST(DIVIDESPEC)
1224
AC_SUBST(CHECKREFSPEC)
1225
AC_SUBST(EXCEPTIONSPEC)
1226
AC_SUBST(BACKTRACESPEC)
1227
AC_SUBST(IEEESPEC)
1228
 
1229
AM_CONDITIONAL(NATIVE, test "$NATIVE" = yes)
1230
AM_CONDITIONAL(NEEDS_DATA_START, test "$NEEDS_DATA_START" = yes && test "$NATIVE" = yes)
1231
AC_SUBST(GCC_UNWIND_INCLUDE)
1232
 
1233
# Process the option "--enable-version-specific-runtime-libs"
1234
# Calculate toolexeclibdir
1235
case ${version_specific_libs} in
1236
  yes)
1237
    # Need the gcc compiler version to know where to install libraries
1238
    # and header files if --enable-version-specific-runtime-libs option
1239
    # is selected.
1240
    includedir='$(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include/'
1241
    toolexecdir='$(libdir)/gcc/$(target_noncanonical)'
1242
    toolexecmainlibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
1243
    toolexeclibdir=$toolexecmainlibdir
1244
    ;;
1245
  no)
1246
    if test -n "$with_cross_host" &&
1247
       test x"$with_cross_host" != x"no"; then
1248
      # Install a library built with a cross compiler in tooldir, not libdir.
1249
      toolexecdir='$(exec_prefix)/$(target_noncanonical)'
1250
      toolexecmainlibdir='$(toolexecdir)/lib'
1251
    else
1252
      toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
1253
      toolexecmainlibdir='$(libdir)'
1254
    fi
1255
    multi_os_directory=`$CC -print-multi-os-directory`
1256
    case $multi_os_directory in
1257
      .) toolexeclibdir=$toolexecmainlibdir ;; # Avoid trailing /.
1258
      *) toolexeclibdir=$toolexecmainlibdir/$multi_os_directory ;;
1259
    esac
1260
    ;;
1261
esac
1262
AC_SUBST(toolexecdir)
1263
AC_SUBST(toolexecmainlibdir)
1264
AC_SUBST(toolexeclibdir)
1265
 
1266
# Determine where the standard .db file is found.
1267
multi_os_directory=`$CC -print-multi-os-directory`
1268
case $multi_os_directory in
1269
  .) dbexecdir='$(libdir)/gcj-$(gcc_version)' ;; # Avoid /.
1270
  *) dbexecdir='$(libdir)/'$multi_os_directory'/gcj-$(gcc_version)' ;;
1271
esac
1272
AC_SUBST(dbexecdir)
1273
 
1274
# Determine gcj version number.
1275
gcjversion=`$GCJ -v 2>&1 | sed -n 's/^.*version \([[^ ]]*\).*$/\1/p'`
1276
GCJVERSION=$gcjversion
1277
AC_SUBST(GCJVERSION)
1278
AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID])
1279
 
1280
AC_DEFINE(JV_VERSION, "1.4.2", [Compatibility version string])
1281
AC_DEFINE(JV_API_VERSION, "1.4", [API compatibility version string])
1282
 
1283
TL_AC_GXX_INCLUDE_DIR
1284
 
1285
# We check for sys/filio.h because Solaris 2.5 defines FIONREAD there.
1286
# On that system, sys/ioctl.h will not include sys/filio.h unless
1287
# BSD_COMP is defined; just including sys/filio.h is simpler.
1288
# We avoid AC_HEADER_DIRENT since we really only care about dirent.h
1289
# for now.  If you change this, you also must update natFile.cc.
1290
AC_CHECK_HEADERS([unistd.h bstring.h sys/time.h sys/types.h fcntl.h \
1291
                  sys/ioctl.h sys/filio.h sys/stat.h sys/select.h \
1292
                  sys/socket.h netinet/in.h arpa/inet.h netdb.h net/if.h \
1293
                  pwd.h sys/config.h stdint.h langinfo.h locale.h \
1294
                  dirent.h])
1295
AC_CHECK_HEADERS(inttypes.h, [
1296
    AC_DEFINE(HAVE_INTTYPES_H, 1, [Define if  is available])
1297
    AC_DEFINE(JV_HAVE_INTTYPES_H, 1, [Define if  is available])
1298
])
1299
AC_HEADER_SYS_WAIT
1300
 
1301
AC_CHECK_TYPE([ssize_t], [int])
1302
 
1303
AC_MSG_CHECKING([for in_addr_t])
1304
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include 
1305
#if STDC_HEADERS
1306
#include 
1307
#include 
1308
#endif
1309
#if HAVE_NETINET_IN_H
1310
#include 
1311
#endif]], [[in_addr_t foo;]])],
1312
  [AC_DEFINE(HAVE_IN_ADDR_T, 1,
1313
     [Define to 1 if 'in_addr_t' is defined in sys/types.h or netinet/in.h.])
1314
   AC_MSG_RESULT(yes)],
1315
  [AC_MSG_RESULT(no)])
1316
 
1317
AC_MSG_CHECKING([whether struct ip_mreq is in netinet/in.h])
1318
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct ip_mreq mreq;]])],
1319
  [AC_DEFINE(HAVE_STRUCT_IP_MREQ, 1,
1320
     [Define if struct ip_mreq is defined in netinet/in.h.])
1321
   AC_MSG_RESULT(yes)],
1322
  [AC_MSG_RESULT(no)])
1323
 
1324
AC_MSG_CHECKING([whether struct ipv6_mreq is in netinet/in.h])
1325
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct ipv6_mreq mreq6;]])],
1326
  [AC_DEFINE(HAVE_STRUCT_IPV6_MREQ, 1,
1327
     [Define if struct ipv6_mreq is defined in netinet/in.h.])
1328
   AC_MSG_RESULT(yes)],
1329
  [AC_MSG_RESULT(no)])
1330
 
1331
AC_MSG_CHECKING([whether struct sockaddr_in6 is in netinet/in.h])
1332
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct sockaddr_in6 addr6;]])],
1333
  [AC_DEFINE(HAVE_INET6, 1,
1334
     [Define if inet6 structures are defined in netinet/in.h.])
1335
   AC_MSG_RESULT(yes)],
1336
  [AC_MSG_RESULT(no)])
1337
 
1338
AC_MSG_CHECKING([for socklen_t in sys/socket.h])
1339
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _POSIX_PII_SOCKET
1340
#include 
1341
#include ]], [[socklen_t x = 5;]])],
1342
  [AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define it socklen_t typedef is in sys/socket.h.])
1343
   AC_MSG_RESULT(yes)],
1344
  [AC_MSG_RESULT(no)])
1345
 
1346
AC_MSG_CHECKING([for tm_gmtoff in struct tm])
1347
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[struct tm tim; tim.tm_gmtoff = 0;]])],
1348
  [AC_DEFINE(STRUCT_TM_HAS_GMTOFF, 1, [Define if struct tm has tm_gmtoff field.])
1349
   AC_MSG_RESULT(yes)],
1350
  [AC_MSG_RESULT(no)
1351
   AC_MSG_CHECKING([for global timezone variable])
1352
   dnl FIXME: we don't want a link check here because that won't work
1353
   dnl when cross-compiling.  So instead we make an assumption that
1354
   dnl the header file will mention timezone if it exists.
1355
   dnl Don't find the win32 function timezone
1356
   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[void i(){long z2 = 2*timezone;}]])],
1357
     [AC_DEFINE(HAVE_TIMEZONE, 1, [Define if global 'timezone' exists.])
1358
      AC_MSG_RESULT(yes)],
1359
     [AC_MSG_RESULT(no)
1360
       AC_MSG_CHECKING([for global _timezone variable])
1361
       dnl FIXME: As above, don't want link check
1362
       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[long z2 = _timezone;]])],
1363
         [AC_DEFINE(HAVE_UNDERSCORE_TIMEZONE, 1,
1364
            [Define if your platform has the global _timezone variable.])
1365
          AC_MSG_RESULT(yes)],
1366
          [AC_MSG_RESULT(no)])])])
1367
 
1368
AC_FUNC_ALLOCA
1369
AC_FUNC_MMAP
1370
 
1371
AC_CHECK_PROGS(PERL, perl, false)
1372
 
1373
SYSDEP_SOURCES=
1374
SIGNAL_HANDLER_AUX=
1375
 
1376
case "${host}" in
1377
 i?86-*-linux*)
1378
    SIGNAL_HANDLER=include/i386-signal.h
1379
    ;;
1380
 sparc*-sun-solaris*)
1381
    SIGNAL_HANDLER=include/sparc-signal.h
1382
    ;;
1383
# ia64-*)
1384
#    SYSDEP_SOURCES=sysdep/ia64.c
1385
#    test -d sysdep || mkdir sysdep
1386
#    ;;
1387
 hppa*-*-linux*)
1388
    SIGNAL_HANDLER=include/pa-signal.h
1389
    ;;
1390
 ia64-*-linux*)
1391
    SIGNAL_HANDLER=include/dwarf2-signal.h
1392
    ;;
1393
 powerpc*-*-linux*)
1394
    SIGNAL_HANDLER=include/powerpc-signal.h
1395
    ;;
1396
 alpha*-*-linux*)
1397
    SIGNAL_HANDLER=include/dwarf2-signal.h
1398
    ;;
1399
 s390*-*-linux*)
1400
    SIGNAL_HANDLER=include/s390-signal.h
1401
    ;;
1402
 x86_64*-*-linux*)
1403
    SIGNAL_HANDLER=include/x86_64-signal.h
1404
    SIGNAL_HANDLER_AUX=include/i386-signal.h
1405
    ;;
1406
 sparc*-*-linux*)
1407
    SIGNAL_HANDLER=include/dwarf2-signal.h
1408
    ;;
1409
 sh*-*-linux*)
1410
    SIGNAL_HANDLER=include/sh-signal.h
1411
    ;;
1412
 *mingw*)
1413
    SIGNAL_HANDLER=include/win32-signal.h
1414
    ;;
1415
 mips*-*-linux*)
1416
    SIGNAL_HANDLER=include/mips-signal.h
1417
    ;;
1418
 *-*-darwin*)
1419
    SIGNAL_HANDLER=include/darwin-signal.h
1420
    ;;
1421
 *)
1422
    SIGNAL_HANDLER=include/default-signal.h
1423
    ;;
1424
esac
1425
 
1426
# If we're using sjlj exceptions, forget what we just learned.
1427
if test "$enable_sjlj_exceptions" = yes; then
1428
   SIGNAL_HANDLER=include/default-signal.h
1429
   SIGNAL_HANDLER_AUX=
1430
fi
1431
 
1432
AC_SUBST(SYSDEP_SOURCES)
1433
 
1434
if test -z "$SIGNAL_HANDLER_AUX"; then
1435
  SIGNAL_HANDLER_AUX=$SIGNAL_HANDLER
1436
fi
1437
 
1438
AC_CONFIG_LINKS(include/java-signal.h:$SIGNAL_HANDLER
1439
                include/java-signal-aux.h:$SIGNAL_HANDLER_AUX)
1440
 
1441
if test "${multilib}" = "yes"; then
1442
  multilib_arg="--enable-multilib"
1443
else
1444
  multilib_arg=
1445
fi
1446
 
1447
# See if we support thread-local storage.
1448
GCC_CHECK_TLS
1449
 
1450
 
1451
here=`${PWDCMD-pwd}`
1452
AC_SUBST(here)
1453
 
1454
# We get this from the environment.
1455
AC_SUBST(GCJFLAGS)
1456
 
1457
AC_CONFIG_FILES([
1458
Makefile
1459
libgcj.pc
1460
libgcj.spec
1461
libgcj-test.spec
1462
gcj/Makefile
1463
include/Makefile
1464
testsuite/Makefile
1465
])
1466
 
1467
AC_CONFIG_COMMANDS([default],
1468
[# Only add multilib support code if we just rebuilt top-level Makefile.
1469
case " $CONFIG_FILES " in
1470
 *" Makefile "*)
1471
   LD="${ORIGINAL_LD_FOR_MULTILIBS}"
1472
   ac_file=Makefile . ${libgcj_basedir}/../config-ml.in
1473
   ;;
1474
esac
1475
for ac_multi_file in $CONFIG_FILES; do
1476
  case $ac_multi_file in
1477
  */Makefile)
1478
    grep "^MULTI[[^ ]]* =" Makefile >> "$ac_multi_file" ;;
1479
  esac
1480
done
1481
],
1482
srcdir=${srcdir}
1483
host=${host}
1484
target=${target}
1485
with_multisubdir=${with_multisubdir}
1486
ac_configure_args="${multilib_arg} ${ac_configure_args}"
1487
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
1488
libgcj_basedir=${libgcj_basedir}
1489
CC="${CC}"
1490
CXX="${CXX}"
1491
ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
1492
)
1493
 
1494
AC_OUTPUT

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.