1 dnl Process this file with autoconf to produce a configure script.
3 dnl -----------------------------------------------------------
4 dnl Turning off cache for debug reasons
5 dnl -----------------------------------------------------------
6 dnl define([AC_CACHE_LOAD], )dnl
7 dnl define([AC_CACHE_SAVE], )dnl
9 AC_INIT([GNU Classpath],[0.95],[classpath@gnu.org],[classpath])
10 AC_CONFIG_SRCDIR(java/lang/System.java)
13 AC_CONFIG_AUX_DIR(../..)
19 AC_ARG_ENABLE(java-maintainer-mode,
20 AS_HELP_STRING([--enable-java-maintainer-mode],
21 [allow rebuilding of .class and .h files]))
22 AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
26 # We would like to our source tree to be readonly. However when releases or
27 # pre-releases are generated, the man pages need to be included as they are
28 # converted from the texi files via perl which we don't require end users to
30 # Therefore we have --enable-generated-files-in-srcdir to do just that.
32 AC_MSG_CHECKING([whether to place generated files in the source directory])
33 dnl generated-files-in-srcdir is disabled by default
34 AC_ARG_ENABLE(generated-files-in-srcdir,
35 [ --enable-generated-files-in-srcdir
36 put copies of generated files in source dir
37 intended for creating source tarballs for users
38 without texinfo, perl, bison or flex.],
39 generated_files_in_srcdir=$enableval,
40 generated_files_in_srcdir=no)
42 AC_MSG_RESULT($generated_files_in_srcdir)
43 AM_CONDITIONAL(GENINSRC, test x$generated_files_in_srcdir = xyes)
46 # Find the rest of the source tree framework.
47 AM_ENABLE_MULTILIB(, ../..)
49 dnl -----------------------------------------------------------
50 dnl Fold all IA-32 CPU architectures into "x86"
51 dnl -----------------------------------------------------------
52 if expr ${target_cpu} : '.*86' > /dev/null; then target_cpu=x86; fi
54 dnl -----------------------------------------------------------
55 dnl We will not track/change lib version until we reach version 1.0
56 dnl at which time we'll have to be more anal about such things
57 dnl -----------------------------------------------------------
58 AC_SUBST(LIBVERSION, "0:0:0")
68 CLASSPATH_MODULE="${cp_module} -version-info ${LIBVERSION} -no-undefined"
69 AC_SUBST(CLASSPATH_MODULE)
71 CLASSPATH_CONVENIENCE="-no-undefined"
72 AC_SUBST(CLASSPATH_CONVENIENCE)
75 AM_INIT_AUTOMAKE([1.9.0 gnu std-options tar-ustar -Wno-portability])
76 AC_CONFIG_HEADERS([include/config.h])
77 AC_PREFIX_DEFAULT(/usr/local/classpath)
82 dnl -----------------------------------------------------------
83 dnl Enable collections.jar (disabled by default)
84 dnl -----------------------------------------------------------
85 AC_ARG_ENABLE([collections],
86 [AS_HELP_STRING(--enable-collections,create collections.jar [default=no])],
87 [case x"${enableval}" in
88 xyes) COMPILE_COLLECTIONS=yes; COLLECTIONS_PREFIX="\"gnu/java/util/collections\"" ;;
89 xno) COMPILE_COLLECTIONS=no ;;
90 x) COMPILE_COLLECTIONS=yes; COLLECTIONS_PREFIX="\"gnu/java/util/collections\"" ;;
91 *) COMPILE_COLLECTIONS=yes; COLLECTIONS_PREFIX="\"${enableval}\"" ;;
93 [COMPILE_COLLECTIONS=no])
94 AM_CONDITIONAL(CREATE_COLLECTIONS, test "x${COMPILE_COLLECTIONS}" = xyes)
96 dnl -----------------------------------------------------------
97 dnl Enable JNI libraries (enabled by default)
98 dnl -----------------------------------------------------------
100 [AS_HELP_STRING(--enable-jni,compile JNI source [default=yes])],
101 [case "${enableval}" in
102 yes) COMPILE_JNI=yes; COMPILE_JAVA=yes ;;
103 no) COMPILE_JNI=no ;;
104 *) COMPILE_JNI=yes; COMPILE_JAVA=yes ;;
107 AM_CONDITIONAL(CREATE_JNI_LIBRARIES, test "x${COMPILE_JNI}" = xyes)
109 dnl -----------------------------------------------------------
110 dnl Enable core JNI libraries (enabled by default)
111 dnl -----------------------------------------------------------
112 AC_ARG_ENABLE([core-jni],
113 [AS_HELP_STRING(--enable-core-jni,
114 compile JNI sources for core [default=yes])],
115 [case "${enableval}" in
116 yes) COMPILE_CORE_JNI=yes; COMPILE_JAVA=yes ;;
117 no) COMPILE_CORE_JNI=no ;;
118 *) COMPILE_CORE_JNI=yes; COMPILE_JAVA=yes ;;
120 [COMPILE_CORE_JNI=yes])
121 AM_CONDITIONAL(CREATE_CORE_JNI_LIBRARIES, test "x${COMPILE_CORE_JNI}" = xyes)
123 dnl -----------------------------------------------------------
124 dnl Default Preference Backend
125 dnl -----------------------------------------------------------
126 AC_ARG_ENABLE([default-preferences-peer],
127 [AS_HELP_STRING([--enable-default-preferences-peer@<:@=peer type or class name@:>@],
128 [specify one of: "gconf" [default] for a GConf based backend, "file" for a file based one, "memory" for a transient one, or a fully qualified class name implementing java.util.prefs.PreferencesFactory])],
129 [case "${enableval}" in
130 file) DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory ;;
131 gconf|yes|true) DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory ;;
132 memory) DEFAULT_PREFS_PEER=gnu.java.util.prefs.MemoryBasedFactory ;;
133 no|false) AC_MSG_ERROR(bad value '${enableval}' for --enable-default-preferences-peer) ;;
134 *) DEFAULT_PREFS_PEER=${enableval} ;;
136 [DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory])
137 dnl AC_SUBST(DEFAULT_PREFS_PEER)
139 dnl -----------------------------------------------------------
140 dnl GConf native peer (enabled by default)
141 dnl -----------------------------------------------------------
142 AC_ARG_ENABLE([gconf-peer],
143 [AS_HELP_STRING(--disable-gconf-peer,compile GConf native peers (disabled by --disable-jni) [default=yes])],
144 [case "${enableval}" in
145 yes) COMPILE_GCONF_PEER=yes ;;
146 no) COMPILE_GCONF_PEER=no ;;
147 *) COMPILE_GCONF_PEER=yes ;;
149 [COMPILE_GCONF_PEER=yes])
150 AM_CONDITIONAL(CREATE_GCONF_PEER_LIBRARIES, test "x${COMPILE_GCONF_PEER}" = xyes)
152 dnl -----------------------------------------------------------
153 dnl GTK native peer error checking
154 dnl -----------------------------------------------------------
155 AC_ARG_ENABLE([gconf-peers],,AC_MSG_ERROR([No --enable-gconf-peers (or --disable-gconf-peers) option; you want --enable-gconf-peer]))
157 dnl ------------------------------------------------------------
158 dnl Whether to compile with -Werror or not (disabled by default)
159 dnl ------------------------------------------------------------
160 AC_ARG_ENABLE([Werror],
161 [AS_HELP_STRING(--enable-Werror,whether to compile C code with -Werror which turns any compiler warning into a compilation failure [default=no])],
162 [case "${enableval}" in
163 yes) ENABLE_WERROR=yes ;;
164 no) ENABLE_WERROR=no ;;
165 *) ENABLE_WERROR=default ;;
167 [ENABLE_WERROR=default])
169 dnl -----------------------------------------------------------
170 dnl Default AWT toolkit
171 dnl -----------------------------------------------------------
172 AC_ARG_ENABLE(default-toolkit,
173 AS_HELP_STRING([--enable-default-toolkit],
174 [fully qualified class name of default AWT toolkit]))
175 default_toolkit=$enable_default_toolkit
176 if test "$default_toolkit" = ""; then
177 default_toolkit=gnu.java.awt.peer.gtk.GtkToolkit
179 AC_SUBST(default_toolkit)
181 dnl -----------------------------------------------------------
182 dnl Native libxml/xslt library (disabled by default)
183 dnl -----------------------------------------------------------
184 AC_ARG_ENABLE([xmlj],
185 [AS_HELP_STRING(--enable-xmlj,compile native libxml/xslt library [default=no])],
186 [case "${enableval}" in
187 yes) COMPILE_XMLJ=yes ;;
188 no) COMPILE_XMLJ=no ;;
189 *) COMPILE_XMLJ=no ;;
192 AM_CONDITIONAL(CREATE_XMLJ_LIBRARY, test "x${COMPILE_XMLJ}" = xyes)
194 dnl -----------------------------------------------------------
195 dnl ALSA code (enabled by default)
196 dnl -----------------------------------------------------------
197 AC_ARG_ENABLE([alsa],
198 [AS_HELP_STRING(--disable-alsa,compile ALSA providers (enable by --enable-alsa) [default=yes])],
199 [case "${enableval}" in
200 yes) COMPILE_ALSA=yes ;;
201 no) COMPILE_ALSA=no ;;
202 *) COMPILE_ALSA=yes ;;
204 [AC_CHECK_HEADERS([alsa/asoundlib.h],
205 [AC_CHECK_LIB([asound], [snd_seq_open], COMPILE_ALSA=yes,COMPILE_ALSA=no)],
207 AM_CONDITIONAL(CREATE_ALSA_LIBRARIES, test "x${COMPILE_ALSA}" = xyes)
209 dnl -----------------------------------------------------------
210 dnl DSSI code (enabled by default)
211 dnl -----------------------------------------------------------
212 AC_ARG_ENABLE([dssi],
213 [AS_HELP_STRING(--disable-dssi,compile DSSI providers (enable by --enable-dssi) [default=yes])],
214 [case "${enableval}" in
215 yes) COMPILE_DSSI=yes ;;
216 no) COMPILE_DSSI=no ;;
217 *) COMPILE_DSSI=yes ;;
220 AC_CHECK_HEADERS([dssi.h], [
221 AC_CHECK_HEADERS([jack/jack.h],COMPILE_DSSI=yes)])])
222 AM_CONDITIONAL(CREATE_DSSI_LIBRARIES, test "x${COMPILE_DSSI}" = xyes)
224 dnl -----------------------------------------------------------
225 dnl GTK native peer (enabled by default)
226 dnl -----------------------------------------------------------
227 AC_ARG_ENABLE([gtk-peer],
228 [AS_HELP_STRING(--disable-gtk-peer,compile GTK native peers (disabled by --disable-jni) [default=yes])],
229 [case "${enableval}" in
230 yes) COMPILE_GTK_PEER=yes ;;
231 no) COMPILE_GTK_PEER=no ;;
232 *) COMPILE_GTK_PEER=yes ;;
234 [COMPILE_GTK_PEER=yes])
235 AM_CONDITIONAL(CREATE_GTK_PEER_LIBRARIES, test "x${COMPILE_GTK_PEER}" = xyes)
237 dnl -----------------------------------------------------------
238 dnl GTK native peer error checking
239 dnl -----------------------------------------------------------
240 AC_ARG_ENABLE([gtk-peers],,AC_MSG_ERROR([No --enable-gtk-peers (or --disable-gtk-peers) option; you want --enable-gtk-peer]))
242 dnl -----------------------------------------------------------
243 dnl Qt native peer (disabled by default)
244 dnl -----------------------------------------------------------
245 AC_ARG_ENABLE([qt-peer],
246 [AS_HELP_STRING(--enable-qt-peer,compile Qt4 native peers (disabled by --disable-jni) [default=no])],
247 [case "${enableval}" in
248 yes) COMPILE_QT_PEER=yes ;;
249 no) COMPILE_QT_PEER=no ;;
250 *) COMPILE_QT_PEER=yes ;;
252 [COMPILE_QT_PEER=no])
253 AM_CONDITIONAL(CREATE_QT_PEER_LIBRARIES, test "x${COMPILE_QT_PEER}" = xyes)
255 dnl -----------------------------------------------------------
256 dnl Plugin (enabled by default)
257 dnl -----------------------------------------------------------
258 AC_ARG_ENABLE([plugin],
259 [AS_HELP_STRING(--disable-plugin,compile gcjwebplugin (disabled by --disable-plugin) [default=yes])],
260 [case "${enableval}" in
261 yes) COMPILE_PLUGIN=yes ;;
262 no) COMPILE_PLUGIN=no ;;
263 *) COMPILE_PLUGIN=yes ;;
265 [COMPILE_PLUGIN=yes])
266 AM_CONDITIONAL(CREATE_PLUGIN, test "x${COMPILE_PLUGIN}" = xyes)
268 dnl -----------------------------------------------------------
269 dnl GCJ LOCAL: Calculates and substitutes toolexeclibdir. $libdir is
270 dnl defined to the same value for all multilibs. We define toolexeclibdir
271 dnl so that we can refer to the multilib installation directories from
272 dnl classpath's build files.
273 dnl -----------------------------------------------------------
274 CLASSPATH_TOOLEXECLIBDIR
276 dnl -----------------------------------------------------------
277 dnl Sets the native libraries installation dir
278 dnl -----------------------------------------------------------
279 dnl GCJ LOCAL: default to ${toolexeclibdir}/gcj-${gcc_version}
280 AC_ARG_WITH([native-libdir],
281 [AS_HELP_STRING(--with-native-libdir,sets the installation directory for native libraries [default='${libdir}/${PACKAGE}'])],
283 nativeexeclibdir=${withval}
286 nativeexeclibdir='${toolexeclibdir}/gcj-'`cat ${srcdir}/../../gcc/BASE-VER`
289 AC_SUBST(nativeexeclibdir)
291 dnl -----------------------------------------------------------
292 dnl Sets the Java library installation dir.
293 dnl -----------------------------------------------------------
294 AC_ARG_WITH([glibj-dir],
295 [AS_HELP_STRING(--with-glibj-dir,sets the installation directory for glibj.zip [default='${libdir}/${PACKAGE}'])],
300 glibjdir='${datadir}/${PACKAGE}'
305 dnl -----------------------------------------------------------
306 dnl Sets the VM name for use in tool wrapper scripts
307 dnl -----------------------------------------------------------
309 [AS_HELP_STRING(--with-vm,sets the VM binary name [default='${prefix}/bin/jamvm'])],
314 VM_BINARY='${prefix}/bin/jamvm'
318 AM_CONDITIONAL(FOUND_CACAO, test "x`basename $VM_BINARY`" = xcacao)
320 dnl -----------------------------------------------------------
321 dnl Regenerate headers at build time (disabled by default)
322 dnl -----------------------------------------------------------
323 AC_ARG_ENABLE([regen-headers],
324 [AS_HELP_STRING(--enable-regen-headers,automatically regenerate JNI headers [default=no])],
325 [case "${enableval}" in
326 yes) REGENERATE_JNI_HEADERS=yes ;;
327 no) REGENERATE_JNI_HEADERS=no ;;
328 *) REGENERATE_JNI_HEADERS=no ;;
330 [REGENERATE_JNI_HEADERS=no])
331 AM_CONDITIONAL(CREATE_JNI_HEADERS, test "x${REGENERATE_JNI_HEADERS}" = xyes)
333 dnl -----------------------------------------------------------
334 dnl Enable tool wrapper binaries (disabled by default)
335 dnl -----------------------------------------------------------
336 AC_ARG_ENABLE([tool-wrappers],
337 [AS_HELP_STRING(--enable-tool-wrappers,create tool wrapper binaries [default=no])],
338 [case x"${enableval}" in
340 COMPILE_WRAPPERS=yes;
341 AC_CHECK_HEADERS([ltdl.h],, [AC_MSG_ERROR(cannot find ltdl.h)])
342 AC_CHECK_LIB(ltdl, lt_dlopen,, [AC_MSG_ERROR(cannot find libltdl)])
344 xno) COMPILE_WRAPPERS=no ;;
345 x) COMPILE_WRAPPERS=yes ;;
346 *) COMPILE_WRAPPERS=yes ;;
348 [COMPILE_WRAPPERS=no])
349 AM_CONDITIONAL(CREATE_WRAPPERS, test "x${COMPILE_WRAPPERS}" = xyes)
354 dnl -----------------------------------------------------------
355 dnl Checks for programs.
356 dnl -----------------------------------------------------------
358 dnl Initialize libtool
367 # Handle -Werror default case.
368 if test "$ENABLE_WERROR" = default; then
371 if test "$GCC" = yes; then
378 if test "x${COMPILE_COLLECTIONS}" = xyes; then
379 AC_PATH_PROG(PERL, [perl])
381 AC_SUBST(COLLECTIONS_PREFIX)
382 AC_CONFIG_FILES([lib/mkcollections.pl])
383 AC_CONFIG_COMMANDS([mkcollections.pl],[chmod 755 lib/mkcollections.pl])
386 if test "x${COMPILE_JNI}" = xyes; then
391 dnl Checking sizeof void * is needed for fdlibm to work properly on ppc64,
393 AC_COMPILE_CHECK_SIZEOF(void *)
395 dnl Checking for endianess.
398 dnl We check for sys/filio.h because Solaris 2.5 defines FIONREAD there.
399 dnl On that system, sys/ioctl.h will not include sys/filio.h unless
400 dnl BSD_COMP is defined; just including sys/filio.h is simpler.
401 dnl Check for crt_externs.h on Darwin.
402 AC_CHECK_HEADERS([unistd.h sys/types.h sys/config.h sys/ioctl.h \
404 inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \
411 sys/event.h sys/epoll.h \
414 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
415 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
416 AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
417 AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
419 AC_CHECK_FUNCS([ftruncate fsync select \
420 gethostname socket strerror fork pipe execve open close \
421 lseek fstat read readv write writev htonl memset htons connect \
422 getsockname getpeername bind listen accept \
423 recvfrom send sendto setsockopt getsockopt time mktime \
424 gethostbyname_r localtime_r \
427 mmap munmap mincore msync madvise getpagesize sysconf \
429 inet_aton inet_addr inet_pton \
430 getifaddrs kqueue kevent epoll_create \
431 readdir_r getloadavg])
434 AC_CHECK_LIB(magic, magic_open, LIBMAGIC=-lmagic)
437 AC_MSG_CHECKING([whether struct sockaddr_in6 is in netinet/in.h])
438 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>]], [[struct sockaddr_in6 addr6;]])],
439 [AC_DEFINE(HAVE_INET6, 1,
440 [Define if inet6 structures are defined in netinet/in.h.])
448 AC_MSG_CHECKING([for tm_gmtoff in struct tm])
449 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],[[struct tm tim; tim.tm_gmtoff = 0;]])],
450 [AC_DEFINE(STRUCT_TM_HAS_GMTOFF, 1, [Define if struct tm has tm_gmtoff field.])
453 AC_MSG_CHECKING([for global timezone variable])
454 dnl FIXME: we don't want a link check here because that won't work
455 dnl when cross-compiling. So instead we make an assumption that
456 dnl the header file will mention timezone if it exists.
457 dnl Don't find the win32 function timezone
458 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[void i(){long z2 = 2*timezone;}]])],
459 [AC_DEFINE(HAVE_TIMEZONE, 1, [Define if global 'timezone' exists.])
462 AC_MSG_CHECKING([for global _timezone variable])
463 dnl FIXME: As above, don't want link check
464 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[long z2 = _timezone;]])],
465 [AC_DEFINE(HAVE_UNDERSCORE_TIMEZONE, 1,
466 [Define if your platform has the global _timezone variable.])
468 [AC_MSG_RESULT(no)])])])
473 AX_FUNC_WHICH_GETHOSTBYNAME_R
475 dnl See if we HAVE_ICONV, how ICONV_CONST is set and LTLIBICONV
478 dnl When using gcc we want warnings, lots of warnings :-)
479 if test "x${GCC}" = xyes; then
480 dnl We want ISO C90 ansi, but with longlong (jlong) support
481 dnl and modern POSIX and BSD C library functions/prototypes.
483 dnl Warning flags for (almost) everybody.
484 dnl Should probably be configurable
485 WARNING_CFLAGS='-W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long'
486 AC_SUBST(WARNING_CFLAGS)
488 dnl Strict warning flags which not every module uses.
489 dnl Should probably be configurable.
490 STRICT_WARNING_CFLAGS='-Wstrict-prototypes -pedantic'
491 AC_SUBST(STRICT_WARNING_CFLAGS)
493 dnl Whether or not to add -Werror, also not used by all modueles.
494 dnl Can be configured by --disable-Werror
496 if test "x${ENABLE_WERROR}" = xyes; then
497 ERROR_CFLAGS='-Werror'
499 AC_SUBST(ERROR_CFLAGS)
502 dnl Check for libxml and libxslt libraries (when xmlj is enabled).
503 if test "x${COMPILE_XMLJ}" = xyes; then
504 PKG_CHECK_MODULES(XML, libxml-2.0 >= 2.6.8)
505 PKG_CHECK_MODULES(XSLT, libxslt >= 1.1.11)
509 AC_SUBST(XSLT_CFLAGS)
512 dnl Check for AWT related gthread/gtk
513 if test "x${COMPILE_GTK_PEER}" = xyes; then
515 if test "$no_x" = yes; then
516 AC_MSG_ERROR([GTK+ peers requested but no X library available])
518 dnl We explicitly want the XTest Extension for Robot support.
519 AC_CHECK_LIB([Xtst], [XTestQueryExtension],
520 [XTEST_LIBS="$XTEST_LIBS -lX11 -lXtst"],
521 [AC_MSG_ERROR([libXtst NOT found, required for GdkRobot])],
524 PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gdk-pixbuf-2.0)
525 PKG_CHECK_MODULES(FREETYPE2, freetype2)
526 PKG_CHECK_MODULES(PANGOFT2, pangoft2)
527 PKG_CHECK_MODULES(CAIRO, cairo >= 1.1.8)
528 dnl Check if we can link against the XRender library and set
529 dnl HAVE_XRENDER accordingly.
530 AC_CHECK_LIB([Xrender], [XRenderQueryExtension],
531 [AC_DEFINE(HAVE_XRENDER, 1, [Define to 1 if you have libXrender.])[X_EXTRA_LIBS="$X_EXTRA_LIBS -lXrender"]],
535 dnl Check if we can link against the XRandR library and set
536 dnl HAVE_XRANDR accordingly.
537 AC_CHECK_LIB([Xrandr], [XRRQueryExtension],
538 [AC_DEFINE(HAVE_XRANDR, 1, [Define to 1 if you have libXrandr.])[X_EXTRA_LIBS="$X_EXTRA_LIBS -lXrandr"]],
544 AC_SUBST(FREETYPE2_LIBS)
545 AC_SUBST(FREETYPE2_CFLAGS)
546 AC_SUBST(PANGOFT2_LIBS)
547 AC_SUBST(PANGOFT2_CFLAGS)
552 if test "x${COMPILE_GCONF_PEER}" = xyes; then
553 PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.6.0)
554 AC_SUBST(GCONF_CFLAGS)
556 dnl we also need gdk for locking
557 PKG_CHECK_MODULES(GDK, gdk-2.0 >= 2.8)
560 dnl check if the config value was given form the command line,
561 dnl if not, overwrite the default if we have the gconf backend
563 USE_GCONF_PREFS_PEER=$enable_default_preferences_peer
564 if test "$USE_GCONF_PREFS_PEER" = ""; then
565 DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory
569 dnl Check for AWT related Qt4
570 if test "x${COMPILE_QT_PEER}" = xyes; then
571 PKG_CHECK_MODULES(QT, QtCore QtGui >= 4.1.0, HAVE_QT4="yes", HAVE_QT4="no")
572 if test "x$HAVE_QT4" = "xyes"; then
573 dnl Check needed because in some cases the QtGui includedir
574 dnl doesn't contain the subsystem dir.
575 QT_INCLUDE_DIR=`$PKG_CONFIG --variable=includedir QtGui`
576 EXTRA_QT_INCLUDE_DIR="$QT_INCLUDE_DIR/Qt"
577 AC_CHECK_FILE([$QT_INCLUDE_DIR/QWidget],
578 AC_MSG_NOTICE([No extra QT_INCLUDE_DIR needed]),
579 AC_CHECK_FILE([$EXTRA_QT_INCLUDE_DIR/QWidget],
580 QT_CFLAGS="$QT_CFLAGS -I$EXTRA_QT_INCLUDE_DIR",
581 AC_MSG_WARN([QWidget not found])))
582 AC_CHECK_PROG(MOC, [moc], [moc])
583 AC_CHECK_PROG(MOC, [moc-qt4], [moc-qt4])
585 if test "x$HAVE_QT4" = "xno"; then
586 AC_MSG_NOTICE([Looking for QT_CFLAGS and QT_LIBS without pkg-config])
589 AC_ARG_WITH([qt4dir],
590 [AS_HELP_STRING([--with-qt4dir=DIR],
591 [Qt4 installation directory used for OS-X.
592 For other systems use pkg-config.])],
595 if test x"$QT4DIR" = x ; then
596 AC_MSG_ERROR([*** No path for Qt4 --with-qt4dir option given])
598 AC_MSG_RESULT([QT4DIR... $QT4DIR])
599 AC_CHECK_PROG(MOC, [moc], [$QT4DIR/bin/moc], [], $QT4DIR/bin)
600 if test x"$MOC" = x; then
601 AC_MSG_ERROR([*** This is not the right Qt installation])
603 QT_CFLAGS="-F$QT4DIR/lib -I$QT4DIR/lib/QtCore.framework/Headers"
604 QT_CFLAGS="$QT_CFLAGS -I$QT4DIR/lib/QtGui.framework/Headers"
605 QT_LIBS="-Xlinker -F$QT4DIR/lib -Xlinker -framework -Xlinker QtCore"
606 QT_LIBS="$QT_LIBS -Xlinker -framework -Xlinker QtGui"
609 AC_MSG_ERROR([*** Please check PKG_CONFIG_PATH or the version
610 of your installed Qt4 installation.])
614 AC_MSG_NOTICE([Set QT_CFLAGS... $QT_CFLAGS])
618 dnl **********************************************************************
619 dnl Check for MSG_NOSIGNAL
620 dnl **********************************************************************
621 AC_MSG_CHECKING(for MSG_NOSIGNAL)
622 AC_TRY_COMPILE([#include <sys/socket.h>],
623 [ int f = MSG_NOSIGNAL; ],
625 AC_DEFINE(HAVE_MSG_NOSIGNAL, 1,
626 [Define this symbol if you have MSG_NOSIGNAL]) ],
629 dnl **********************************************************************
630 dnl Check for SO_NOSIGPIPE (Darwin equivalent for MSG_NOSIGNAL)
631 dnl **********************************************************************
632 AC_MSG_CHECKING(for SO_NOSIGPIPE )
633 AC_TRY_COMPILE([#include <sys/socket.h>],
634 [ int f = SO_NOSIGPIPE; ],
636 AC_DEFINE(HAVE_SO_NOSIGPIPE, 1,
637 [Define this symbol if you have SO_NOSIGPIPE]) ],
641 dnl Check for plugin support headers and libraries.
642 if test "x${COMPILE_PLUGIN}" = xyes; then
643 PKG_CHECK_MODULES(MOZILLA, mozilla-plugin, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
644 if test "x${MOZILLA_FOUND}" = xno; then
645 PKG_CHECK_MODULES(MOZILLA, firefox-plugin firefox-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
647 if test "x${MOZILLA_FOUND}" = xno; then
648 PKG_CHECK_MODULES(MOZILLA, xulrunner-plugin xulrunner-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
650 if test "x${MOZILLA_FOUND}" = xno; then
651 PKG_CHECK_MODULES(MOZILLA, mozilla-firefox-plugin mozilla-firefox-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
653 if test "x${MOZILLA_FOUND}" = xno; then
654 PKG_CHECK_MODULES(MOZILLA, seamonkey-plugin seamonkey-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
656 if test "x${MOZILLA_FOUND}" = xno; then
657 PKG_CHECK_MODULES(MOZILLA, iceape-plugin iceape-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
659 if test "x${MOZILLA_FOUND}" = xno; then
660 AC_MSG_ERROR([Couldn't find plugin support headers and libraries, try --disable-plugin])
663 PKG_CHECK_MODULES(GLIB, glib-2.0)
664 PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gdk-pixbuf-2.0)
666 AC_SUBST(MOZILLA_CFLAGS)
667 AC_SUBST(MOZILLA_LIBS)
668 AC_SUBST(GLIB_CFLAGS)
673 AC_SUBST(PLUGIN_DIR, $HOME/.mozilla/plugins/)
679 dnl -----------------------------------------------------------
680 dnl Add the include files for the native abstraction layer.
681 dnl Used by AM_CPPFLAGS in the different modules.
682 dnl -----------------------------------------------------------
683 CLASSPATH_INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/native/jni/classpath -I\$(top_srcdir)/native/jni/native-lib"
684 AC_SUBST(CLASSPATH_INCLUDES)
686 dnl -----------------------------------------------------------
687 if test "x${COMPILE_JNI}" = xyes; then
688 AC_MSG_CHECKING(jni_md.h support)
689 if test -f ${srcdir}/include/jni_md-${target_cpu}-${target_os}.h; then
694 AC_MSG_WARN(no, using x86-linux-gnu)
696 ac_sources="include/jni_md-${target_cpu}-${target_os}.h"
697 ac_dests="include/jni_md.h"
698 while test -n "$ac_sources"; do
699 set $ac_dests; ac_dest=$1; shift; ac_dests=$*
700 set $ac_sources; ac_source=$1; shift; ac_sources=$*
701 ac_config_links_1="$ac_config_links_1 $ac_dest:$ac_source"
703 AC_CONFIG_LINKS([$ac_config_links_1])
708 CLASSPATH_WITH_CLASSLIB
710 dnl -----------------------------------------------------------
711 dnl Initialize maintainer mode
712 dnl -----------------------------------------------------------
715 dnl -----------------------------------------------------------
716 dnl Enable debugging statements at compile time. By default
717 dnl these statements should be optimized out of the bytecode
718 dnl produced by an optimizing Java compiler and not hinder
719 dnl performance because debugging is turned off by default.
720 dnl -----------------------------------------------------------
721 AC_ARG_ENABLE([debug],
722 [AS_HELP_STRING(--enable-debug,enable runtime debugging code)],
723 [case "${enableval}" in
726 AC_DEFINE(DEBUG, 1, [Define to 1 if you want native library runtime debugging code enabled])
728 no) LIBDEBUG="false" ;;
729 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
734 dnl -----------------------------------------------------------
735 dnl Enable execution of all static initializer loadLibrary()
736 dnl calls at compile time. By default most people will not
737 dnl want to disable this, but some VMs (gcj) don't need or want
739 dnl -----------------------------------------------------------
740 AC_ARG_ENABLE([load-library],
741 [AS_HELP_STRING(--enable-load-library,enable to use JNI native methods [default=yes])],
742 [case "${enableval}" in
743 yes) INIT_LOAD_LIBRARY="true" ;;
744 no) INIT_LOAD_LIBRARY="false" ;;
745 *) AC_MSG_ERROR(bad value ${enableval} for --enable-load-library) ;;
747 [INIT_LOAD_LIBRARY="true"])
748 AC_SUBST(INIT_LOAD_LIBRARY)
751 dnl -----------------------------------------------------------
752 dnl Specify the jar file containing the Eclipse Java Compiler. If
753 dnl this option is not specified then the com.sun.tools.javac
754 dnl implementation will not be included in tools.zip.
755 dnl -----------------------------------------------------------
756 dnl GCJ LOCAL: default to $multi_basedir/ecj.jar
757 dnl In the default case where $multi_basedir/ecj.jar is found
758 dnl $(jardir)/ecj.jar will not expand properly in GNU Classpath's
759 dnl gnu/classpath/Configuration.java. That is OK though since libjava's
760 dnl gnu/classpath/Configuration.java overrides GNU Classpath's and
761 dnl ECJ_JAR_FILE will be properly expanded in libjava's
762 dnl gnu/classpath/natConfiguration.cc.
763 AC_ARG_WITH([ecj-jar],
764 [AS_HELP_STRING([--with-ecj-jar=ABS.PATH],
765 [specify jar file containing the Eclipse Java Compiler])],
767 [if test -f $multi_basedir/ecj.jar; then
768 ECJ_JAR='$(jardir)/ecj.jar'
772 dnl -----------------------------------------------------------
773 dnl Should the VM explicitly run class initialization subfunctions for
774 dnl java.lang.System? (default is false -- the subfunctions will be run
775 dnl automatically by the class initializer)
776 dnl -----------------------------------------------------------
777 AC_ARG_ENABLE([java-lang-system-explicit-initialization],
778 [AS_HELP_STRING(--enable-java-lang-system-explicit-initialization,will the VM explicitly invoke java.lang.System's static initialization methods [default=no])],
779 [case "${enableval}" in
780 yes|true) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="true" ;;
781 no|false) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false" ;;
782 *) AC_MSG_ERROR(bad value ${enableval} for --enable-java-lang-system-explicit-initialization) ;;
784 [JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false"])
785 AC_SUBST(JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION)
788 dnl -----------------------------------------------------------
789 dnl avoiding automake complaints
790 dnl -----------------------------------------------------------
794 dnl -----------------------------------------------------------
795 dnl This is probably useless.
796 dnl -----------------------------------------------------------
797 AC_PATH_PROG(MKDIR, mkdir)
799 AC_PATH_PROG(DATE, date)
801 dnl -----------------------------------------------------------
802 dnl According to the GNU coding guide, we shouldn't require find,
803 dnl and zip, however GNU provides both so it should be okay
804 dnl -----------------------------------------------------------
805 AC_PATH_PROG(FIND, find)
807 dnl -----------------------------------------------------------
808 dnl Specify what to install (install only glibj.zip by default)
809 dnl -----------------------------------------------------------
812 dnl -----------------------------------------------------------
813 dnl Enable API documentation generation (disabled by default)
814 dnl -----------------------------------------------------------
817 dnl -----------------------------------------------------------
818 dnl Whether to use jay to regenerate parsers.
819 dnl -----------------------------------------------------------
822 dnl -----------------------------------------------------------
823 dnl This sets the build-time default, which can now be overridden
824 dnl by setting the system property gnu.classpath.awt.gtk.portable.native.sync
825 dnl to "true" or "false".
826 dnl -----------------------------------------------------------
827 AC_ARG_ENABLE([portable-native-sync],
828 [AS_HELP_STRING(--enable-portable-native-sync,synchronize VM threads portably)],
829 [case "${enableval}" in
831 AC_DEFINE(PORTABLE_NATIVE_SYNC, 1, [Define if you want to synchronize VM threads portably by default; undef otherwise])
835 AC_MSG_ERROR(bad value ${enableval} for --enable-portable-native-sync)
840 AX_CREATE_STDINT_H([include/config-int.h])
842 dnl -----------------------------------------------------------------------
843 dnl Support for using a prebuilt class library
844 dnl -----------------------------------------------------------------------
845 AC_ARG_WITH([glibj_zip],
846 AS_HELP_STRING([--with-glibj-zip=ABS.PATH],
847 [use prebuilt glibj.zip class library]))
849 case "$with_glibj_zip" in
857 AC_MSG_ERROR([Please suply an absolute path to a prebuilt glibj.zip])
861 PATH_TO_GLIBJ_ZIP=$with_glibj_zip
865 AM_CONDITIONAL(USE_PREBUILT_GLIBJ_ZIP, test x$use_glibj_zip = xtrue)
866 AC_SUBST(PATH_TO_GLIBJ_ZIP)
868 dnl -----------------------------------------------------------
869 dnl Build with Escher based X peers.
870 dnl -----------------------------------------------------------
871 AC_ARG_WITH([escher],
872 AS_HELP_STRING([--with-escher=ABS.PATH],
873 [specify path to escher dir or JAR for X peers]))
874 case "$with_escher" in
882 AC_MSG_ERROR([Please supply an absolute path to Escher library])
886 PATH_TO_ESCHER=$with_escher
890 AM_CONDITIONAL(USE_ESCHER, test x$use_escher = xtrue)
891 AC_SUBST(PATH_TO_ESCHER)
893 dnl -----------------------------------------------------------
894 dnl Check if local socket support should be included.
895 dnl -----------------------------------------------------------
896 AC_ARG_ENABLE([local-sockets],
897 [AS_HELP_STRING(--enable-local-sockets,enables local (AF_LOCAL) socket API [default: no])],
898 [case "${enableval}" in
900 ENABLE_LOCAL_SOCKETS=yes
903 ENABLE_LOCAL_SOCKETS=no
907 if test "x$ENABLE_LOCAL_SOCKETS" = "xyes"
909 AC_CHECK_HEADER([sys/un.h])
910 AC_CHECK_FUNCS([read write bind listen accept shutdown], [],
911 AC_MSG_ERROR([networking support not available]))
912 AC_DEFINE(ENABLE_LOCAL_SOCKETS, [1], [Define to enable support for local sockets.])
914 AM_CONDITIONAL(ENABLE_LOCAL_SOCKETS, test "x$ENABLE_LOCAL_SOCKETS" = "xyes")
916 dnl -----------------------------------------------------------
917 dnl Add the default preference peer
918 dnl -----------------------------------------------------------
919 AC_SUBST(DEFAULT_PREFS_PEER)
921 dnl -----------------------------------------------------------
923 dnl -----------------------------------------------------------
924 AC_CONFIG_FILES([Makefile
928 external/sax/Makefile
929 external/w3c_dom/Makefile
930 external/relaxngDatatype/Makefile
931 external/jsr166/Makefile
932 gnu/classpath/Configuration.java
933 gnu/java/security/Configuration.java
936 native/fdlibm/Makefile
939 native/jni/classpath/Makefile
940 native/jni/java-io/Makefile
941 native/jni/java-lang/Makefile
942 native/jni/java-net/Makefile
943 native/jni/java-nio/Makefile
944 native/jni/java-util/Makefile
945 native/jni/gtk-peer/Makefile
946 native/jni/gconf-peer/Makefile
947 native/jni/qt-peer/Makefile
948 native/jni/xmlj/Makefile
949 native/jni/midi-alsa/Makefile
950 native/jni/midi-dssi/Makefile
951 native/jni/native-lib/Makefile
952 native/plugin/Makefile
954 resource/META-INF/services/java.util.prefs.PreferencesFactory
956 scripts/classpath.spec
959 lib/copy-vmresources.sh
962 examples/Makefile.jawt
963 examples/Makefile.java2d])
965 if test "x${COMPILE_WRAPPERS}" = xno
967 AC_CONFIG_FILES([tools/gappletviewer
979 AC_CONFIG_COMMANDS([gappletviewer],[chmod 755 tools/gappletviewer])
980 AC_CONFIG_COMMANDS([gjarsigner],[chmod 755 tools/gjarsigner])
981 AC_CONFIG_COMMANDS([gkeytool],[chmod 755 tools/gkeytool])
982 AC_CONFIG_COMMANDS([gjar],[chmod 755 tools/gjar])
983 AC_CONFIG_COMMANDS([gnative2ascii],[chmod 755 tools/gnative2ascii])
984 AC_CONFIG_COMMANDS([gserialver],[chmod 755 tools/gserialver])
985 AC_CONFIG_COMMANDS([grmiregistry],[chmod 755 tools/grmiregistry])
986 AC_CONFIG_COMMANDS([gtnameserv],[chmod 755 tools/gtnameserv])
987 AC_CONFIG_COMMANDS([gorbd],[chmod 755 tools/gorbd])
988 AC_CONFIG_COMMANDS([grmid],[chmod 755 tools/grmid])
989 AC_CONFIG_COMMANDS([grmic],[chmod 755 tools/grmic])
990 AC_CONFIG_COMMANDS([gjavah], [chmod 755 tools/gjavah])
993 AC_CONFIG_COMMANDS([gen-classlist],[chmod 755 lib/gen-classlist.sh])
994 AC_CONFIG_COMMANDS([copy-vmresources],[chmod 755 lib/copy-vmresources.sh])
997 # Create standard.omit based on decisions we just made.
998 cat ${srcdir}/lib/standard.omit.in > lib/standard.omit
999 if test x$use_escher != xtrue; then
1000 echo gnu/java/awt/peer/x/.*java$ >> lib/standard.omit