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.96-pre],[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 GConf 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 GStreamer based sound provider backend (disabled by default)
159 dnl ------------------------------------------------------------
160 AC_ARG_ENABLE([gstreamer-peer],
161 [AS_HELP_STRING(--enable-gstreamer-peer,compile GStreamer native peers (disabled by --disable-jni) [default=no])],
162 [case "${enableval}" in
163 yes) COMPILE_GSTREAMER_PEER=yes ;;
164 no) COMPILE_GSTREAMER_PEER=no ;;
165 *) COMPILE_GSTREAMER_PEER=default ;;
167 [COMPILE_GSTREAMER_PEER=default])
168 AM_CONDITIONAL(CREATE_GSTREAMER_PEER_LIBRARIES, test "x${COMPILE_GSTREAMER_PEER}" = xyes)
170 dnl -----------------------------------------------------------
171 dnl GStreamer native peer error checking
172 dnl -----------------------------------------------------------
173 AC_ARG_ENABLE([gstreamer-peers],,AC_MSG_ERROR([No --enable-gstreamer-peers (or --disable-gstreamer-peers) option; you want --enable-gstreamer-peer]))
175 dnl ------------------------------------------------------------
176 dnl Whether to compile with -Werror or not (disabled by default)
177 dnl ------------------------------------------------------------
178 AC_ARG_ENABLE([Werror],
179 [AS_HELP_STRING(--enable-Werror,whether to compile C code with -Werror which turns any compiler warning into a compilation failure [default=no])],
180 [case "${enableval}" in
181 yes) ENABLE_WERROR=yes ;;
182 no) ENABLE_WERROR=no ;;
183 *) ENABLE_WERROR=default ;;
185 [ENABLE_WERROR=default])
187 dnl -----------------------------------------------------------
188 dnl Default AWT toolkit
189 dnl -----------------------------------------------------------
190 AC_ARG_ENABLE(default-toolkit,
191 AS_HELP_STRING([--enable-default-toolkit],
192 [fully qualified class name of default AWT toolkit]))
193 default_toolkit=$enable_default_toolkit
194 if test "$default_toolkit" = ""; then
195 default_toolkit=gnu.java.awt.peer.gtk.GtkToolkit
197 AC_SUBST(default_toolkit)
199 dnl -----------------------------------------------------------
200 dnl Native libxml/xslt library (disabled by default)
201 dnl -----------------------------------------------------------
202 AC_ARG_ENABLE([xmlj],
203 [AS_HELP_STRING(--enable-xmlj,compile native libxml/xslt library [default=no])],
204 [case "${enableval}" in
205 yes) COMPILE_XMLJ=yes ;;
206 no) COMPILE_XMLJ=no ;;
207 *) COMPILE_XMLJ=no ;;
210 AM_CONDITIONAL(CREATE_XMLJ_LIBRARY, test "x${COMPILE_XMLJ}" = xyes)
212 dnl -----------------------------------------------------------
213 dnl ALSA code (enabled by default)
214 dnl -----------------------------------------------------------
215 AC_ARG_ENABLE([alsa],
216 [AS_HELP_STRING(--disable-alsa,compile ALSA providers (enable by --enable-alsa) [default=yes])],
217 [case "${enableval}" in
218 yes) COMPILE_ALSA=yes ;;
219 no) COMPILE_ALSA=no ;;
220 *) COMPILE_ALSA=yes ;;
222 [AC_CHECK_HEADERS([alsa/asoundlib.h],
223 [AC_CHECK_LIB([asound], [snd_seq_open], COMPILE_ALSA=yes,COMPILE_ALSA=no)],
225 AM_CONDITIONAL(CREATE_ALSA_LIBRARIES, test "x${COMPILE_ALSA}" = xyes)
227 dnl -----------------------------------------------------------
228 dnl DSSI code (enabled by default)
229 dnl -----------------------------------------------------------
230 AC_ARG_ENABLE([dssi],
231 [AS_HELP_STRING(--disable-dssi,compile DSSI providers (enable by --enable-dssi) [default=yes])],
232 [case "${enableval}" in
233 yes) COMPILE_DSSI=yes ;;
234 no) COMPILE_DSSI=no ;;
235 *) COMPILE_DSSI=yes ;;
238 AC_CHECK_HEADERS([dssi.h], [
239 AC_CHECK_HEADERS([jack/jack.h],COMPILE_DSSI=yes)])])
240 AM_CONDITIONAL(CREATE_DSSI_LIBRARIES, test "x${COMPILE_DSSI}" = xyes)
242 dnl -----------------------------------------------------------
243 dnl GTK native peer (enabled by default)
244 dnl -----------------------------------------------------------
245 AC_ARG_ENABLE([gtk-peer],
246 [AS_HELP_STRING(--disable-gtk-peer,compile GTK native peers (disabled by --disable-jni) [default=yes])],
247 [case "${enableval}" in
248 yes) COMPILE_GTK_PEER=yes ;;
249 no) COMPILE_GTK_PEER=no ;;
250 *) COMPILE_GTK_PEER=yes ;;
252 [COMPILE_GTK_PEER=yes])
253 AM_CONDITIONAL(CREATE_GTK_PEER_LIBRARIES, test "x${COMPILE_GTK_PEER}" = xyes)
255 dnl -----------------------------------------------------------
256 dnl GTK native peer error checking
257 dnl -----------------------------------------------------------
258 AC_ARG_ENABLE([gtk-peers],,AC_MSG_ERROR([No --enable-gtk-peers (or --disable-gtk-peers) option; you want --enable-gtk-peer]))
260 dnl -----------------------------------------------------------
261 dnl Qt native peer (disabled by default)
262 dnl -----------------------------------------------------------
263 AC_ARG_ENABLE([qt-peer],
264 [AS_HELP_STRING(--enable-qt-peer,compile Qt4 native peers (disabled by --disable-jni) [default=no])],
265 [case "${enableval}" in
266 yes) COMPILE_QT_PEER=yes ;;
267 no) COMPILE_QT_PEER=no ;;
268 *) COMPILE_QT_PEER=yes ;;
270 [COMPILE_QT_PEER=no])
271 AM_CONDITIONAL(CREATE_QT_PEER_LIBRARIES, test "x${COMPILE_QT_PEER}" = xyes)
273 dnl -----------------------------------------------------------
274 dnl Plugin (enabled by default)
275 dnl -----------------------------------------------------------
276 AC_ARG_ENABLE([plugin],
277 [AS_HELP_STRING(--disable-plugin,compile gcjwebplugin (disabled by --disable-plugin) [default=yes])],
278 [case "${enableval}" in
279 yes) COMPILE_PLUGIN=yes ;;
280 no) COMPILE_PLUGIN=no ;;
281 *) COMPILE_PLUGIN=yes ;;
283 [COMPILE_PLUGIN=yes])
284 AM_CONDITIONAL(CREATE_PLUGIN, test "x${COMPILE_PLUGIN}" = xyes)
286 dnl -----------------------------------------------------------
287 dnl GCJ LOCAL: Calculates and substitutes toolexeclibdir. $libdir is
288 dnl defined to the same value for all multilibs. We define toolexeclibdir
289 dnl so that we can refer to the multilib installation directories from
290 dnl classpath's build files.
291 dnl -----------------------------------------------------------
292 CLASSPATH_TOOLEXECLIBDIR
294 dnl -----------------------------------------------------------
295 dnl Sets the native libraries installation dir
296 dnl -----------------------------------------------------------
297 dnl GCJ LOCAL: default to ${toolexeclibdir}/gcj-${gcc_version}-${libgcj_soversion}
298 AC_ARG_WITH([native-libdir],
299 [AS_HELP_STRING(--with-native-libdir,sets the installation directory for native libraries [default='${libdir}/${PACKAGE}'])],
301 nativeexeclibdir=${withval}
304 nativeexeclibdir='${toolexeclibdir}/gcj-'`cat ${srcdir}/../../gcc/BASE-VER`-`awk -F: '/^[[^#]].*:/ { print $1 }' ${srcdir}/../libtool-version`
307 AC_SUBST(nativeexeclibdir)
309 dnl -----------------------------------------------------------
310 dnl Sets the Java library installation dir.
311 dnl -----------------------------------------------------------
312 AC_ARG_WITH([glibj-dir],
313 [AS_HELP_STRING(--with-glibj-dir,sets the installation directory for glibj.zip [default='${libdir}/${PACKAGE}'])],
318 glibjdir='${datadir}/${PACKAGE}'
323 dnl -----------------------------------------------------------
324 dnl Sets the VM name for use in tool wrapper scripts
325 dnl -----------------------------------------------------------
327 [AS_HELP_STRING(--with-vm,sets the VM binary name [default='${prefix}/bin/jamvm'])],
332 VM_BINARY='${prefix}/bin/jamvm'
337 dnl -----------------------------------------------------------
338 dnl Regenerate headers at build time (disabled by default)
339 dnl -----------------------------------------------------------
340 AC_ARG_ENABLE([regen-headers],
341 [AS_HELP_STRING(--enable-regen-headers,automatically regenerate JNI headers [default=no])],
342 [case "${enableval}" in
343 yes) REGENERATE_JNI_HEADERS=yes ;;
344 no) REGENERATE_JNI_HEADERS=no ;;
345 *) REGENERATE_JNI_HEADERS=no ;;
347 [REGENERATE_JNI_HEADERS=no])
348 AM_CONDITIONAL(CREATE_JNI_HEADERS, test "x${REGENERATE_JNI_HEADERS}" = xyes)
350 dnl -----------------------------------------------------------
351 dnl Enable tool wrapper binaries (disabled by default)
352 dnl -----------------------------------------------------------
353 AC_ARG_ENABLE([tool-wrappers],
354 [AS_HELP_STRING(--enable-tool-wrappers,create tool wrapper binaries [default=no])],
355 [case x"${enableval}" in
357 COMPILE_WRAPPERS=yes;
358 AC_CHECK_HEADERS([ltdl.h],, [AC_MSG_ERROR(cannot find ltdl.h)])
359 AC_CHECK_LIB(ltdl, lt_dlopen,, [AC_MSG_ERROR(cannot find libltdl)])
361 xno) COMPILE_WRAPPERS=no ;;
362 x) COMPILE_WRAPPERS=yes ;;
363 *) COMPILE_WRAPPERS=yes ;;
365 [COMPILE_WRAPPERS=no])
366 AM_CONDITIONAL(CREATE_WRAPPERS, test "x${COMPILE_WRAPPERS}" = xyes)
371 dnl -----------------------------------------------------------
372 dnl Checks for programs.
373 dnl -----------------------------------------------------------
375 dnl Initialize libtool
384 # Handle -Werror default case.
385 if test "$ENABLE_WERROR" = default; then
388 if test "$GCC" = yes; then
395 if test "x${COMPILE_COLLECTIONS}" = xyes; then
396 AC_PATH_PROG(PERL, [perl])
398 AC_SUBST(COLLECTIONS_PREFIX)
399 AC_CONFIG_FILES([lib/mkcollections.pl])
400 AC_CONFIG_COMMANDS([mkcollections.pl],[chmod 755 lib/mkcollections.pl])
403 if test "x${COMPILE_JNI}" = xyes; then
408 dnl Checking sizeof void * is needed for fdlibm to work properly on ppc64,
410 AC_COMPILE_CHECK_SIZEOF(void *)
412 dnl Checking for endianess.
415 dnl We check for sys/filio.h because Solaris 2.5 defines FIONREAD there.
416 dnl On that system, sys/ioctl.h will not include sys/filio.h unless
417 dnl BSD_COMP is defined; just including sys/filio.h is simpler.
418 dnl Check for crt_externs.h on Darwin.
419 AC_CHECK_HEADERS([unistd.h sys/types.h sys/config.h sys/ioctl.h \
421 inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \
428 sys/event.h sys/epoll.h \
431 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
432 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
433 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]))
434 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]))
436 AC_SEARCH_LIBS([inet_pton],[nsl])
437 AC_CHECK_FUNCS([ftruncate fsync select \
438 gethostname socket strerror fork pipe execve open close \
439 lseek fstat read readv write writev htonl memset htons connect \
440 getsockname getpeername bind listen accept \
441 recvfrom send sendto setsockopt getsockopt time mktime \
442 gethostbyname_r localtime_r \
445 mmap munmap mincore msync madvise getpagesize sysconf \
447 inet_aton inet_addr inet_pton \
448 getifaddrs kqueue kevent epoll_create \
449 readdir_r getloadavg])
452 AC_CHECK_LIB(magic, magic_open, LIBMAGIC=-lmagic)
455 AC_MSG_CHECKING([whether struct sockaddr_in6 is in netinet/in.h])
456 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>]], [[struct sockaddr_in6 addr6;]])],
457 [AC_DEFINE(HAVE_INET6, 1,
458 [Define if inet6 structures are defined in netinet/in.h.])
466 AC_MSG_CHECKING([for tm_gmtoff in struct tm])
467 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],[[struct tm tim; tim.tm_gmtoff = 0;]])],
468 [AC_DEFINE(STRUCT_TM_HAS_GMTOFF, 1, [Define if struct tm has tm_gmtoff field.])
471 AC_MSG_CHECKING([for global timezone variable])
472 dnl FIXME: we don't want a link check here because that won't work
473 dnl when cross-compiling. So instead we make an assumption that
474 dnl the header file will mention timezone if it exists.
475 dnl Don't find the win32 function timezone
476 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[void i(){long z2 = 2*timezone;}]])],
477 [AC_DEFINE(HAVE_TIMEZONE, 1, [Define if global 'timezone' exists.])
480 AC_MSG_CHECKING([for global _timezone variable])
481 dnl FIXME: As above, don't want link check
482 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[long z2 = _timezone;]])],
483 [AC_DEFINE(HAVE_UNDERSCORE_TIMEZONE, 1,
484 [Define if your platform has the global _timezone variable.])
486 [AC_MSG_RESULT(no)])])])
491 AX_FUNC_WHICH_GETHOSTBYNAME_R
493 dnl See if we HAVE_ICONV, how ICONV_CONST is set and LTLIBICONV
496 dnl When using gcc we want warnings, lots of warnings :-)
497 if test "x${GCC}" = xyes; then
498 dnl We want ISO C90 ansi, but with longlong (jlong) support
499 dnl and modern POSIX and BSD C library functions/prototypes.
501 dnl Warning flags for (almost) everybody.
502 dnl Should probably be configurable
503 WARNING_CFLAGS='-W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long'
504 AC_SUBST(WARNING_CFLAGS)
506 dnl Strict warning flags which not every module uses.
507 dnl Should probably be configurable.
508 STRICT_WARNING_CFLAGS='-Wstrict-prototypes -pedantic'
509 AC_SUBST(STRICT_WARNING_CFLAGS)
511 dnl Whether or not to add -Werror, also not used by all modueles.
512 dnl Can be configured by --disable-Werror
514 if test "x${ENABLE_WERROR}" = xyes; then
515 ERROR_CFLAGS='-Werror'
517 AC_SUBST(ERROR_CFLAGS)
520 dnl Check for libxml and libxslt libraries (when xmlj is enabled).
521 if test "x${COMPILE_XMLJ}" = xyes; then
522 PKG_CHECK_MODULES(XML, libxml-2.0 >= 2.6.8)
523 PKG_CHECK_MODULES(XSLT, libxslt >= 1.1.11)
527 AC_SUBST(XSLT_CFLAGS)
530 dnl Check for AWT related gthread/gtk
531 if test "x${COMPILE_GTK_PEER}" = xyes; then
533 if test "$no_x" = yes; then
534 AC_MSG_ERROR([GTK+ peers requested but no X library available])
536 dnl We explicitly want the XTest Extension for Robot support.
537 AC_CHECK_LIB([Xtst], [XTestQueryExtension],
538 [XTEST_LIBS="$XTEST_LIBS -lX11 -lXtst"],
539 [AC_MSG_ERROR([libXtst NOT found, required for GdkRobot])],
542 PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gdk-pixbuf-2.0)
543 PKG_CHECK_MODULES(FREETYPE2, freetype2)
544 PKG_CHECK_MODULES(PANGOFT2, pangoft2)
545 PKG_CHECK_MODULES(CAIRO, cairo >= 1.1.8)
546 dnl Check if we can link against the XRender library and set
547 dnl HAVE_XRENDER accordingly.
548 AC_CHECK_LIB([Xrender], [XRenderQueryExtension],
549 [AC_DEFINE(HAVE_XRENDER, 1, [Define to 1 if you have libXrender.])[X_EXTRA_LIBS="$X_EXTRA_LIBS -lXrender"]],
553 dnl Check if we can link against the XRandR library and set
554 dnl HAVE_XRANDR accordingly.
555 AC_CHECK_LIB([Xrandr], [XRRQueryExtension],
556 [AC_DEFINE(HAVE_XRANDR, 1, [Define to 1 if you have libXrandr.])[X_EXTRA_LIBS="$X_EXTRA_LIBS -lXrandr"]],
562 AC_SUBST(FREETYPE2_LIBS)
563 AC_SUBST(FREETYPE2_CFLAGS)
564 AC_SUBST(PANGOFT2_LIBS)
565 AC_SUBST(PANGOFT2_CFLAGS)
570 if test "x${COMPILE_GCONF_PEER}" = xyes; then
571 PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.6.0)
572 AC_SUBST(GCONF_CFLAGS)
574 dnl we also need gdk for locking
575 PKG_CHECK_MODULES(GDK, gdk-2.0 >= 2.8)
578 dnl check if the config value was given form the command line,
579 dnl if not, overwrite the default if we have the gconf backend
581 USE_GCONF_PREFS_PEER=$enable_default_preferences_peer
582 if test "$USE_GCONF_PREFS_PEER" = ""; then
583 DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory
588 if test "x${COMPILE_GSTREAMER_PEER}" = xyes; then
593 PKG_CHECK_MODULES(GSTREAMER, gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED)
594 AC_SUBST(GSTREAMER_CFLAGS)
595 AC_SUBST(GSTREAMER_LIBS)
598 PKG_CHECK_MODULES(GSTREAMER_BASE,
599 gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED)
600 AC_SUBST(GSTREAMER_BASE_CFLAGS)
601 AC_SUBST(GSTREAMER_BASE_LIBS)
603 dnl gstreamer-plugin-base
604 PKG_CHECK_MODULES(GSTREAMER_PLUGINS_BASE,
605 gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED)
606 AC_SUBST(GSTREAMER_PLUGINS_BASE_CFLAGS)
607 AC_SUBST(GSTREAMER_PLUGINS_BASE_LIBS)
609 GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined'
610 AC_SUBST(GST_PLUGIN_LDFLAGS)
612 dnl set the gstreamer based file reader, writer and mixer
613 GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader
614 GSTREAMER_MIXER_PROVIDER=gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider
616 dnl add the gstreamer resources
617 AC_SUBST(GSTREAMER_FILE_READER)
618 AC_SUBST(GSTREAMER_MIXER_PROVIDER)
620 dnl Check for AWT related Qt4
621 if test "x${COMPILE_QT_PEER}" = xyes; then
622 PKG_CHECK_MODULES(QT, QtCore QtGui >= 4.1.0, HAVE_QT4="yes", HAVE_QT4="no")
623 if test "x$HAVE_QT4" = "xyes"; then
624 dnl Check needed because in some cases the QtGui includedir
625 dnl doesn't contain the subsystem dir.
626 QT_INCLUDE_DIR=`$PKG_CONFIG --variable=includedir QtGui`
627 EXTRA_QT_INCLUDE_DIR="$QT_INCLUDE_DIR/Qt"
628 AC_CHECK_FILE([$QT_INCLUDE_DIR/QWidget],
629 AC_MSG_NOTICE([No extra QT_INCLUDE_DIR needed]),
630 AC_CHECK_FILE([$EXTRA_QT_INCLUDE_DIR/QWidget],
631 QT_CFLAGS="$QT_CFLAGS -I$EXTRA_QT_INCLUDE_DIR",
632 AC_MSG_WARN([QWidget not found])))
633 AC_CHECK_PROG(MOC, [moc], [moc])
634 AC_CHECK_PROG(MOC, [moc-qt4], [moc-qt4])
636 if test "x$HAVE_QT4" = "xno"; then
637 AC_MSG_NOTICE([Looking for QT_CFLAGS and QT_LIBS without pkg-config])
640 AC_ARG_WITH([qt4dir],
641 [AS_HELP_STRING([--with-qt4dir=DIR],
642 [Qt4 installation directory used for OS-X.
643 For other systems use pkg-config.])],
646 if test x"$QT4DIR" = x ; then
647 AC_MSG_ERROR([*** No path for Qt4 --with-qt4dir option given])
649 AC_MSG_RESULT([QT4DIR... $QT4DIR])
650 AC_CHECK_PROG(MOC, [moc], [$QT4DIR/bin/moc], [], $QT4DIR/bin)
651 if test x"$MOC" = x; then
652 AC_MSG_ERROR([*** This is not the right Qt installation])
654 QT_CFLAGS="-F$QT4DIR/lib -I$QT4DIR/lib/QtCore.framework/Headers"
655 QT_CFLAGS="$QT_CFLAGS -I$QT4DIR/lib/QtGui.framework/Headers"
656 QT_LIBS="-Xlinker -F$QT4DIR/lib -Xlinker -framework -Xlinker QtCore"
657 QT_LIBS="$QT_LIBS -Xlinker -framework -Xlinker QtGui"
660 AC_MSG_ERROR([*** Please check PKG_CONFIG_PATH or the version
661 of your installed Qt4 installation.])
665 AC_MSG_NOTICE([Set QT_CFLAGS... $QT_CFLAGS])
669 dnl **********************************************************************
670 dnl Check for MSG_NOSIGNAL
671 dnl **********************************************************************
672 AC_MSG_CHECKING(for MSG_NOSIGNAL)
673 AC_TRY_COMPILE([#include <sys/socket.h>],
674 [ int f = MSG_NOSIGNAL; ],
676 AC_DEFINE(HAVE_MSG_NOSIGNAL, 1,
677 [Define this symbol if you have MSG_NOSIGNAL]) ],
680 dnl **********************************************************************
681 dnl Check for SO_NOSIGPIPE (Darwin equivalent for MSG_NOSIGNAL)
682 dnl **********************************************************************
683 AC_MSG_CHECKING(for SO_NOSIGPIPE )
684 AC_TRY_COMPILE([#include <sys/socket.h>],
685 [ int f = SO_NOSIGPIPE; ],
687 AC_DEFINE(HAVE_SO_NOSIGPIPE, 1,
688 [Define this symbol if you have SO_NOSIGPIPE]) ],
691 dnl **********************************************************************
692 dnl Check for MSG_WAITALL
693 dnl **********************************************************************
694 AC_MSG_CHECKING(for MSG_WAITALL)
695 AC_TRY_COMPILE([#include <sys/socket.h>],
696 [ int f = MSG_WAITALL; ],
698 AC_DEFINE(HAVE_MSG_WAITALL, 1,
699 [Define this symbol if you have MSG_WAITALL]) ],
703 dnl Check for plugin support headers and libraries.
704 if test "x${COMPILE_PLUGIN}" = xyes; then
705 PKG_CHECK_MODULES(MOZILLA, mozilla-plugin, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
706 if test "x${MOZILLA_FOUND}" = xno; then
707 PKG_CHECK_MODULES(MOZILLA, firefox-plugin firefox-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
709 if test "x${MOZILLA_FOUND}" = xno; then
710 PKG_CHECK_MODULES(MOZILLA, xulrunner-plugin xulrunner-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
712 if test "x${MOZILLA_FOUND}" = xno; then
713 PKG_CHECK_MODULES(MOZILLA, mozilla-firefox-plugin mozilla-firefox-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
715 if test "x${MOZILLA_FOUND}" = xno; then
716 PKG_CHECK_MODULES(MOZILLA, seamonkey-plugin seamonkey-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
718 if test "x${MOZILLA_FOUND}" = xno; then
719 PKG_CHECK_MODULES(MOZILLA, iceape-plugin iceape-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
721 if test "x${MOZILLA_FOUND}" = xno; then
722 AC_MSG_ERROR([Couldn't find plugin support headers and libraries, try --disable-plugin])
725 PKG_CHECK_MODULES(GLIB, glib-2.0)
726 PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gdk-pixbuf-2.0)
728 AC_SUBST(MOZILLA_CFLAGS)
729 AC_SUBST(MOZILLA_LIBS)
730 AC_SUBST(GLIB_CFLAGS)
735 AC_SUBST(PLUGIN_DIR, $HOME/.mozilla/plugins/)
739 if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
743 dnl -----------------------------------------------------------
744 dnl Add the include files for the native abstraction layer.
745 dnl Used by AM_CPPFLAGS in the different modules.
746 dnl -----------------------------------------------------------
747 CLASSPATH_INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/native/jni/classpath -I\$(top_srcdir)/native/jni/native-lib"
748 AC_SUBST(CLASSPATH_INCLUDES)
750 dnl -----------------------------------------------------------
751 if test "x${COMPILE_JNI}" = xyes; then
752 AC_MSG_CHECKING(jni_md.h support)
753 if test -f ${srcdir}/include/jni_md-${target_cpu}-${target_os}.h; then
758 AC_MSG_WARN(no, using x86-linux-gnu)
760 ac_sources="include/jni_md-${target_cpu}-${target_os}.h"
761 ac_dests="include/jni_md.h"
762 while test -n "$ac_sources"; do
763 set $ac_dests; ac_dest=$1; shift; ac_dests=$*
764 set $ac_sources; ac_source=$1; shift; ac_sources=$*
765 ac_config_links_1="$ac_config_links_1 $ac_dest:$ac_source"
767 AC_CONFIG_LINKS([$ac_config_links_1])
772 CLASSPATH_WITH_CLASSLIB
774 dnl -----------------------------------------------------------
775 dnl Initialize maintainer mode
776 dnl -----------------------------------------------------------
779 dnl -----------------------------------------------------------
780 dnl Enable debugging statements at compile time. By default
781 dnl these statements should be optimized out of the bytecode
782 dnl produced by an optimizing Java compiler and not hinder
783 dnl performance because debugging is turned off by default.
784 dnl -----------------------------------------------------------
785 AC_ARG_ENABLE([debug],
786 [AS_HELP_STRING(--enable-debug,enable runtime debugging code)],
787 [case "${enableval}" in
790 AC_DEFINE(DEBUG, 1, [Define to 1 if you want native library runtime debugging code enabled])
792 no) LIBDEBUG="false" ;;
793 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
798 dnl -----------------------------------------------------------
799 dnl Enable execution of all static initializer loadLibrary()
800 dnl calls at compile time. By default most people will not
801 dnl want to disable this, but some VMs (gcj) don't need or want
803 dnl -----------------------------------------------------------
804 AC_ARG_ENABLE([load-library],
805 [AS_HELP_STRING(--enable-load-library,enable to use JNI native methods [default=yes])],
806 [case "${enableval}" in
807 yes) INIT_LOAD_LIBRARY="true" ;;
808 no) INIT_LOAD_LIBRARY="false" ;;
809 *) AC_MSG_ERROR(bad value ${enableval} for --enable-load-library) ;;
811 [INIT_LOAD_LIBRARY="true"])
812 AC_SUBST(INIT_LOAD_LIBRARY)
815 dnl -----------------------------------------------------------
816 dnl Specify the jar file containing the Eclipse Java Compiler. If
817 dnl this option is not specified then the com.sun.tools.javac
818 dnl implementation will not be included in tools.zip.
819 dnl -----------------------------------------------------------
820 dnl GCJ LOCAL: default to $multi_basedir/ecj.jar
821 dnl In the default case where $multi_basedir/ecj.jar is found
822 dnl $(jardir)/ecj.jar will not expand properly in GNU Classpath's
823 dnl gnu/classpath/Configuration.java. That is OK though since libjava's
824 dnl gnu/classpath/Configuration.java overrides GNU Classpath's and
825 dnl ECJ_JAR_FILE will be properly expanded in libjava's
826 dnl gnu/classpath/natConfiguration.cc.
827 AC_ARG_WITH([ecj-jar],
828 [AS_HELP_STRING([--with-ecj-jar=ABS.PATH],
829 [specify jar file containing the Eclipse Java Compiler])],
831 [if test -f $multi_basedir/ecj.jar; then
832 ECJ_JAR='$(jardir)/ecj.jar'
836 dnl -----------------------------------------------------------
837 dnl Should the VM explicitly run class initialization subfunctions for
838 dnl java.lang.System? (default is false -- the subfunctions will be run
839 dnl automatically by the class initializer)
840 dnl -----------------------------------------------------------
841 AC_ARG_ENABLE([java-lang-system-explicit-initialization],
842 [AS_HELP_STRING(--enable-java-lang-system-explicit-initialization,will the VM explicitly invoke java.lang.System's static initialization methods [default=no])],
843 [case "${enableval}" in
844 yes|true) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="true" ;;
845 no|false) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false" ;;
846 *) AC_MSG_ERROR(bad value ${enableval} for --enable-java-lang-system-explicit-initialization) ;;
848 [JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false"])
849 AC_SUBST(JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION)
852 dnl -----------------------------------------------------------
853 dnl avoiding automake complaints
854 dnl -----------------------------------------------------------
858 dnl -----------------------------------------------------------
859 dnl This is probably useless.
860 dnl -----------------------------------------------------------
861 AC_PATH_PROG(MKDIR, mkdir)
863 AC_PATH_PROG(DATE, date)
865 dnl -----------------------------------------------------------
866 dnl According to the GNU coding guide, we shouldn't require find,
867 dnl and zip, however GNU provides both so it should be okay
868 dnl -----------------------------------------------------------
869 AC_PATH_PROG(FIND, find)
871 dnl -----------------------------------------------------------
872 dnl Specify what to install (install only glibj.zip by default)
873 dnl -----------------------------------------------------------
876 dnl -----------------------------------------------------------
877 dnl Enable API documentation generation (disabled by default)
878 dnl -----------------------------------------------------------
881 dnl -----------------------------------------------------------
882 dnl Whether to use jay to regenerate parsers.
883 dnl -----------------------------------------------------------
886 dnl -----------------------------------------------------------
887 dnl This sets the build-time default, which can now be overridden
888 dnl by setting the system property gnu.classpath.awt.gtk.portable.native.sync
889 dnl to "true" or "false".
890 dnl -----------------------------------------------------------
891 AC_ARG_ENABLE([portable-native-sync],
892 [AS_HELP_STRING(--enable-portable-native-sync,synchronize VM threads portably)],
893 [case "${enableval}" in
895 AC_DEFINE(PORTABLE_NATIVE_SYNC, 1, [Define if you want to synchronize VM threads portably by default; undef otherwise])
899 AC_MSG_ERROR(bad value ${enableval} for --enable-portable-native-sync)
904 AX_CREATE_STDINT_H([include/config-int.h])
906 dnl -----------------------------------------------------------------------
907 dnl Support for using a prebuilt class library
908 dnl -----------------------------------------------------------------------
909 AC_ARG_WITH([glibj_zip],
910 AS_HELP_STRING([--with-glibj-zip=ABS.PATH],
911 [use prebuilt glibj.zip class library]))
913 case "$with_glibj_zip" in
921 AC_MSG_ERROR([Please suply an absolute path to a prebuilt glibj.zip])
925 PATH_TO_GLIBJ_ZIP=$with_glibj_zip
929 AM_CONDITIONAL(USE_PREBUILT_GLIBJ_ZIP, test x$use_glibj_zip = xtrue)
930 AC_SUBST(PATH_TO_GLIBJ_ZIP)
932 dnl -----------------------------------------------------------
933 dnl Build with Escher based X peers.
934 dnl -----------------------------------------------------------
935 AC_ARG_WITH([escher],
936 AS_HELP_STRING([--with-escher=ABS.PATH],
937 [specify path to escher dir or JAR for X peers]))
938 case "$with_escher" in
946 AC_MSG_ERROR([Please supply an absolute path to Escher library])
950 PATH_TO_ESCHER=$with_escher
954 AM_CONDITIONAL(USE_ESCHER, test x$use_escher = xtrue)
955 AC_SUBST(PATH_TO_ESCHER)
957 dnl -----------------------------------------------------------
958 dnl Check if local socket support should be included.
959 dnl -----------------------------------------------------------
960 AC_ARG_ENABLE([local-sockets],
961 [AS_HELP_STRING(--enable-local-sockets,enables local (AF_LOCAL) socket API [default: no])],
962 [case "${enableval}" in
964 ENABLE_LOCAL_SOCKETS=yes
967 ENABLE_LOCAL_SOCKETS=no
971 if test "x$ENABLE_LOCAL_SOCKETS" = "xyes"
973 AC_CHECK_HEADER([sys/un.h])
974 AC_CHECK_FUNCS([read write bind listen accept shutdown], [],
975 AC_MSG_ERROR([networking support not available]))
976 AC_DEFINE(ENABLE_LOCAL_SOCKETS, [1], [Define to enable support for local sockets.])
978 AM_CONDITIONAL(ENABLE_LOCAL_SOCKETS, test "x$ENABLE_LOCAL_SOCKETS" = "xyes")
980 dnl -----------------------------------------------------------
981 dnl Add the default preference peer
982 dnl -----------------------------------------------------------
983 AC_SUBST(DEFAULT_PREFS_PEER)
985 dnl -----------------------------------------------------------
987 dnl -----------------------------------------------------------
988 AC_CONFIG_FILES([Makefile
992 external/sax/Makefile
993 external/w3c_dom/Makefile
994 external/relaxngDatatype/Makefile
995 external/jsr166/Makefile
996 gnu/classpath/Configuration.java
997 gnu/java/security/Configuration.java
1000 native/fdlibm/Makefile
1001 native/jawt/Makefile
1003 native/jni/classpath/Makefile
1004 native/jni/java-io/Makefile
1005 native/jni/java-lang/Makefile
1006 native/jni/java-net/Makefile
1007 native/jni/java-nio/Makefile
1008 native/jni/java-util/Makefile
1009 native/jni/gtk-peer/Makefile
1010 native/jni/gconf-peer/Makefile
1011 native/jni/gstreamer-peer/Makefile
1012 native/jni/qt-peer/Makefile
1013 native/jni/xmlj/Makefile
1014 native/jni/midi-alsa/Makefile
1015 native/jni/midi-dssi/Makefile
1016 native/jni/native-lib/Makefile
1017 native/plugin/Makefile
1019 resource/META-INF/services/java.util.prefs.PreferencesFactory
1020 resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader
1021 resource/META-INF/services/javax.sound.sampled.spi.MixerProvider
1023 scripts/classpath.spec
1025 lib/gen-classlist.sh
1026 lib/copy-vmresources.sh
1029 examples/Makefile.jawt
1030 examples/Makefile.java2d])
1032 if test "x${COMPILE_WRAPPERS}" = xno
1034 AC_CONFIG_FILES([tools/gappletviewer
1046 AC_CONFIG_COMMANDS([gappletviewer],[chmod 755 tools/gappletviewer])
1047 AC_CONFIG_COMMANDS([gjarsigner],[chmod 755 tools/gjarsigner])
1048 AC_CONFIG_COMMANDS([gkeytool],[chmod 755 tools/gkeytool])
1049 AC_CONFIG_COMMANDS([gjar],[chmod 755 tools/gjar])
1050 AC_CONFIG_COMMANDS([gnative2ascii],[chmod 755 tools/gnative2ascii])
1051 AC_CONFIG_COMMANDS([gserialver],[chmod 755 tools/gserialver])
1052 AC_CONFIG_COMMANDS([grmiregistry],[chmod 755 tools/grmiregistry])
1053 AC_CONFIG_COMMANDS([gtnameserv],[chmod 755 tools/gtnameserv])
1054 AC_CONFIG_COMMANDS([gorbd],[chmod 755 tools/gorbd])
1055 AC_CONFIG_COMMANDS([grmid],[chmod 755 tools/grmid])
1056 AC_CONFIG_COMMANDS([grmic],[chmod 755 tools/grmic])
1057 AC_CONFIG_COMMANDS([gjavah], [chmod 755 tools/gjavah])
1060 AC_CONFIG_COMMANDS([gen-classlist],[chmod 755 lib/gen-classlist.sh])
1061 AC_CONFIG_COMMANDS([copy-vmresources],[chmod 755 lib/copy-vmresources.sh])
1064 # Create standard.omit based on decisions we just made.
1065 cat ${srcdir}/lib/standard.omit.in > lib/standard.omit
1066 if test x$use_escher != xtrue; then
1067 echo gnu/java/awt/peer/x/.*java$ >> lib/standard.omit