1dnl Process this file with autoconf to produce a configure script.
2
3dnl -----------------------------------------------------------
4dnl Turning off cache for debug reasons
5dnl -----------------------------------------------------------
6dnl define([AC_CACHE_LOAD], )dnl
7dnl define([AC_CACHE_SAVE], )dnl
8
9AC_INIT([GNU Classpath],[0.99.1-pre],[classpath@gnu.org],[classpath])
10AC_CONFIG_SRCDIR(java/lang/System.java)
11AC_CONFIG_MACRO_DIR([m4])
12
13dnl GCJ LOCAL
14AC_CONFIG_AUX_DIR(../..)
15dnl END GCJ LOCAL
16
17AC_CANONICAL_TARGET
18
19dnl GCJ LOCAL
20AC_ARG_ENABLE(java-maintainer-mode,
21	AS_HELP_STRING([--enable-java-maintainer-mode],
22	[allow rebuilding of .class and .h files]))
23AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
24dnl END GCJ LOCAL
25
26dnl GCJ LOCAL
27# We would like to our source tree to be readonly.  However when releases or
28# pre-releases are generated, the man pages need to be included as they are
29# converted from the texi files via perl which we don't require end users to
30# have installed.
31# Therefore we have --enable-generated-files-in-srcdir to do just that.
32
33AC_MSG_CHECKING([whether to place generated files in the source directory])
34  dnl generated-files-in-srcdir is disabled by default
35  AC_ARG_ENABLE(generated-files-in-srcdir,
36[  --enable-generated-files-in-srcdir
37                          put copies of generated files in source dir
38                          intended for creating source tarballs for users
39                          without texinfo, perl, bison or flex.],
40      generated_files_in_srcdir=$enableval,
41      generated_files_in_srcdir=no)
42
43AC_MSG_RESULT($generated_files_in_srcdir)
44AM_CONDITIONAL(GENINSRC, test x$generated_files_in_srcdir = xyes)
45dnl END GCJ LOCAL
46
47# Find the rest of the source tree framework.
48AM_ENABLE_MULTILIB(, ../..)
49
50AM_CONDITIONAL(INSTALL_BINARIES, test -z "${with_multisubdir}")
51
52dnl -----------------------------------------------------------
53dnl Fold all IA-32 CPU architectures into "x86"
54dnl -----------------------------------------------------------
55if expr ${target_cpu} : '.*86' > /dev/null; then target_cpu=x86; fi
56
57dnl -----------------------------------------------------------
58dnl We will not track/change lib version until we reach version 1.0
59dnl at which time we'll have to be more anal about such things
60dnl -----------------------------------------------------------
61AC_SUBST(LIBVERSION, "0:0:0")
62case "$host_os" in
63     darwin*)
64	cp_module=""
65	;;
66	*)
67	cp_module="-module"
68	;;
69esac
70
71CLASSPATH_MODULE="${cp_module} -version-info ${LIBVERSION} -no-undefined"
72AC_SUBST(CLASSPATH_MODULE)
73
74CLASSPATH_CONVENIENCE="-no-undefined"
75AC_SUBST(CLASSPATH_CONVENIENCE)
76
77AC_PREREQ(2.64)
78AM_INIT_AUTOMAKE([1.9.0 no-dist gnu std-options tar-ustar -Wno-portability])
79AC_CONFIG_HEADERS([include/config.h])
80AC_PREFIX_DEFAULT(/usr/local/classpath)
81
82dnl GCC LOCAL
83GCC_NO_EXECUTABLES
84
85dnl -----------------------------------------------------------
86dnl Enable collections.jar (disabled by default)
87dnl -----------------------------------------------------------
88AC_ARG_ENABLE([collections],
89              [AS_HELP_STRING(--enable-collections,create collections.jar [default=no])],
90              [case x"${enableval}" in
91                xyes) COMPILE_COLLECTIONS=yes; COLLECTIONS_PREFIX="\"gnu/java/util/collections\"" ;;
92                xno) COMPILE_COLLECTIONS=no ;;
93		x) COMPILE_COLLECTIONS=yes; COLLECTIONS_PREFIX="\"gnu/java/util/collections\"" ;;
94                *) COMPILE_COLLECTIONS=yes; COLLECTIONS_PREFIX="\"${enableval}\"" ;;
95              esac],
96              [COMPILE_COLLECTIONS=no])
97AM_CONDITIONAL(CREATE_COLLECTIONS, test "x${COMPILE_COLLECTIONS}" = xyes)
98
99dnl -----------------------------------------------------------
100dnl Enable JNI libraries (enabled by default)
101dnl -----------------------------------------------------------
102AC_ARG_ENABLE([jni],
103              [AS_HELP_STRING(--enable-jni,compile JNI source [default=yes])],
104              [case "${enableval}" in
105                yes) COMPILE_JNI=yes; COMPILE_JAVA=yes ;;
106                no) COMPILE_JNI=no ;;
107                *) COMPILE_JNI=yes; COMPILE_JAVA=yes ;;
108              esac],
109              [COMPILE_JNI=yes])
110AM_CONDITIONAL(CREATE_JNI_LIBRARIES, test "x${COMPILE_JNI}" = xyes)
111
112dnl -----------------------------------------------------------
113dnl Enable core JNI libraries (enabled by default)
114dnl -----------------------------------------------------------
115AC_ARG_ENABLE([core-jni],
116              [AS_HELP_STRING(--enable-core-jni,
117	                      compile JNI sources for core [default=yes])],
118              [case "${enableval}" in
119                yes) COMPILE_CORE_JNI=yes; COMPILE_JAVA=yes ;;
120                no) COMPILE_CORE_JNI=no ;;
121                *) COMPILE_CORE_JNI=yes; COMPILE_JAVA=yes ;;
122              esac],
123              [COMPILE_CORE_JNI=yes])
124AM_CONDITIONAL(CREATE_CORE_JNI_LIBRARIES, test "x${COMPILE_CORE_JNI}" = xyes)
125
126dnl -----------------------------------------------------------
127dnl Default Preference Backend
128dnl -----------------------------------------------------------
129AC_ARG_ENABLE([default-preferences-peer],
130              [AS_HELP_STRING([--enable-default-preferences-peer@<:@=peer type or class name@:>@],
131                              [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])],
132              [case "${enableval}" in
133                file) DEFAULT_PREFS_PEER=gnu.java.util.prefs.FileBasedFactory  ;;
134                gconf|yes|true) DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory  ;;
135                memory) DEFAULT_PREFS_PEER=gnu.java.util.prefs.MemoryBasedFactory  ;;
136                no|false) AC_MSG_ERROR(bad value '${enableval}' for --enable-default-preferences-peer) ;;
137                *) DEFAULT_PREFS_PEER=${enableval} ;;
138              esac],
139              [DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory])
140dnl AC_SUBST(DEFAULT_PREFS_PEER)
141
142dnl -----------------------------------------------------------
143dnl GConf native peer (enabled by default)
144dnl -----------------------------------------------------------
145AC_ARG_ENABLE([gconf-peer],
146              [AS_HELP_STRING(--disable-gconf-peer,compile GConf native peers (disabled by --disable-jni) [default=yes])],
147              [case "${enableval}" in
148                yes) COMPILE_GCONF_PEER=yes ;;
149                no) COMPILE_GCONF_PEER=no ;;
150                *) COMPILE_GCONF_PEER=yes ;;
151              esac],
152              [COMPILE_GCONF_PEER=yes])
153AM_CONDITIONAL(CREATE_GCONF_PEER_LIBRARIES, test "x${COMPILE_GCONF_PEER}" = xyes)
154
155dnl -----------------------------------------------------------
156dnl GConf native peer error checking
157dnl -----------------------------------------------------------
158AC_ARG_ENABLE([gconf-peers],,AC_MSG_ERROR([No --enable-gconf-peers (or --disable-gconf-peers) option; you want --enable-gconf-peer]))
159
160dnl ------------------------------------------------------------
161dnl GStreamer based sound provider backend (disabled by default)
162dnl ------------------------------------------------------------
163AC_ARG_ENABLE([gstreamer-peer],
164              [AS_HELP_STRING(--enable-gstreamer-peer,compile GStreamer native peers (disabled by --disable-jni) [default=no])],
165              [case "${enableval}" in
166                yes) COMPILE_GSTREAMER_PEER=yes ;;
167                no) COMPILE_GSTREAMER_PEER=no ;;
168                *) COMPILE_GSTREAMER_PEER=default ;;
169              esac],
170              [COMPILE_GSTREAMER_PEER=default])
171AM_CONDITIONAL(CREATE_GSTREAMER_PEER_LIBRARIES, test "x${COMPILE_GSTREAMER_PEER}" = xyes)
172
173dnl -----------------------------------------------------------
174dnl GStreamer native peer error checking
175dnl -----------------------------------------------------------
176AC_ARG_ENABLE([gstreamer-peers],,AC_MSG_ERROR([No --enable-gstreamer-peers (or --disable-gstreamer-peers) option; you want --enable-gstreamer-peer]))
177
178dnl ------------------------------------------------------------
179dnl Whether to compile with -Werror or not (disabled by default)
180dnl ------------------------------------------------------------
181AC_ARG_ENABLE([Werror],
182              [AS_HELP_STRING(--enable-Werror,whether to compile C code with -Werror which turns any compiler warning into a compilation failure [default=no])],
183              [case "${enableval}" in
184                yes) ENABLE_WERROR=yes ;;
185                no) ENABLE_WERROR=no ;;
186                *) ENABLE_WERROR=no ;;
187              esac],
188              [ENABLE_WERROR=no])
189
190dnl -----------------------------------------------------------
191dnl Default AWT toolkit
192dnl -----------------------------------------------------------
193AC_ARG_ENABLE(default-toolkit,
194  AS_HELP_STRING([--enable-default-toolkit],
195                 [fully qualified class name of default AWT toolkit]))
196default_toolkit=$enable_default_toolkit
197if test "$default_toolkit" = ""; then
198   default_toolkit=gnu.java.awt.peer.gtk.GtkToolkit
199fi
200AC_SUBST(default_toolkit)
201
202dnl -----------------------------------------------------------
203dnl Native libxml/xslt library (disabled by default)
204dnl -----------------------------------------------------------
205AC_ARG_ENABLE([xmlj],
206              [AS_HELP_STRING(--enable-xmlj,compile native libxml/xslt library [default=no])],
207              [case "${enableval}" in
208                yes) COMPILE_XMLJ=yes ;;
209                no) COMPILE_XMLJ=no ;;
210                *) COMPILE_XMLJ=no ;;
211              esac],
212              [COMPILE_XMLJ=no])
213AM_CONDITIONAL(CREATE_XMLJ_LIBRARY, test "x${COMPILE_XMLJ}" = xyes)
214
215dnl -----------------------------------------------------------
216dnl ALSA code (enabled by default)
217dnl -----------------------------------------------------------
218AC_ARG_ENABLE([alsa],
219              [AS_HELP_STRING(--disable-alsa,compile ALSA providers (enable by --enable-alsa) [default=yes])],
220              [case "${enableval}" in
221                yes) COMPILE_ALSA=yes ;;
222                no) COMPILE_ALSA=no ;;
223                *) COMPILE_ALSA=yes ;;
224              esac],
225	      [AC_CHECK_HEADERS([alsa/asoundlib.h],
226				[AC_CHECK_LIB([asound], [snd_seq_open], COMPILE_ALSA=yes,COMPILE_ALSA=no)],
227				COMPILE_ALSA=no)])
228AM_CONDITIONAL(CREATE_ALSA_LIBRARIES, test "x${COMPILE_ALSA}" = xyes)
229
230dnl -----------------------------------------------------------
231dnl DSSI code (enabled by default)
232dnl -----------------------------------------------------------
233AC_ARG_ENABLE([dssi],
234              [AS_HELP_STRING(--disable-dssi,compile DSSI providers (enable by --enable-dssi) [default=yes])],
235              [case "${enableval}" in
236                yes) COMPILE_DSSI=yes ;;
237                no) COMPILE_DSSI=no ;;
238                *) COMPILE_DSSI=yes ;;
239              esac],
240              [COMPILE_DSSI=no
241	       AC_CHECK_HEADERS([dssi.h], [
242	         AC_CHECK_HEADERS([jack/jack.h],COMPILE_DSSI=yes)])])
243AM_CONDITIONAL(CREATE_DSSI_LIBRARIES, test "x${COMPILE_DSSI}" = xyes)
244
245dnl -----------------------------------------------------------
246dnl GTK native peer (enabled by default)
247dnl -----------------------------------------------------------
248AC_ARG_ENABLE([gtk-peer],
249              [AS_HELP_STRING(--disable-gtk-peer,compile GTK native peers (disabled by --disable-jni) [default=yes])],
250              [case "${enableval}" in
251                yes) COMPILE_GTK_PEER=yes ;;
252                no) COMPILE_GTK_PEER=no ;;
253                *) COMPILE_GTK_PEER=yes ;;
254              esac],
255              [COMPILE_GTK_PEER=yes])
256AM_CONDITIONAL(CREATE_GTK_PEER_LIBRARIES, test "x${COMPILE_GTK_PEER}" = xyes)
257
258dnl -----------------------------------------------------------
259dnl GTK native peer error checking
260dnl -----------------------------------------------------------
261AC_ARG_ENABLE([gtk-peers],,AC_MSG_ERROR([No --enable-gtk-peers (or --disable-gtk-peers) option; you want --enable-gtk-peer]))
262
263dnl -----------------------------------------------------------
264dnl Qt native peer (disabled by default)
265dnl -----------------------------------------------------------
266AC_ARG_ENABLE([qt-peer],
267              [AS_HELP_STRING(--enable-qt-peer,compile Qt4 native peers (disabled by --disable-jni) [default=no])],
268              [case "${enableval}" in
269                yes) COMPILE_QT_PEER=yes ;;
270                no) COMPILE_QT_PEER=no ;;
271                *) COMPILE_QT_PEER=yes ;;
272              esac],
273              [COMPILE_QT_PEER=no])
274AM_CONDITIONAL(CREATE_QT_PEER_LIBRARIES, test "x${COMPILE_QT_PEER}" = xyes)
275
276dnl -----------------------------------------------------------
277dnl Plugin (disabled by default)
278dnl -----------------------------------------------------------
279AC_ARG_ENABLE([plugin],
280              [AS_HELP_STRING(--disable-plugin,compile gcjwebplugin (disabled by --disable-plugin) [default=yes])],
281              [case "${enableval}" in
282                yes) COMPILE_PLUGIN=yes ;;
283                no) COMPILE_PLUGIN=no ;;
284                *) COMPILE_PLUGIN=yes ;;
285              esac],
286              [COMPILE_PLUGIN=no])
287AM_CONDITIONAL(CREATE_PLUGIN, test "x${COMPILE_PLUGIN}" = xyes)
288
289dnl -----------------------------------------------------------
290dnl Native java.math.BigInteger (enabled by default)
291dnl -----------------------------------------------------------
292AC_ARG_ENABLE([gmp],
293              [AS_HELP_STRING(--enable-gmp,
294                              compile native java.math.BigInteger library (disabled by --disable-gmp) [default=yes])],
295              [case "${enableval}" in
296                yes|true) COMPILE_GMP=yes ;;
297                no|false) COMPILE_GMP=no ;;
298                *) COMPILE_GMP=yes ;;
299              esac],
300              [COMPILE_GMP=yes])
301
302dnl -----------------------------------------------------------
303dnl GJDoc (enabled by default)
304dnl -----------------------------------------------------------
305AC_ARG_ENABLE([gjdoc],
306              [AS_HELP_STRING(--disable-gjdoc,compile GJDoc (disabled by --disable-gjdoc) [default=yes])],
307              [case "${enableval}" in
308                yes) COMPILE_GJDOC=yes ;;
309                no) COMPILE_GJDOC=no ;;
310                *) COMPILE_GJDOC=yes ;;
311              esac],
312              [COMPILE_GJDOC=yes])
313AM_CONDITIONAL(CREATE_GJDOC, test "x${COMPILE_GJDOC}" = xyes)
314
315dnl GCJ LOCAL: Calculates and substitutes toolexeclibdir.  $libdir is
316dnl defined to the same value for all multilibs.  We define toolexeclibdir
317dnl so that we can refer to the multilib installation directories from
318dnl classpath's build files.
319dnl -----------------------------------------------------------
320case ${host_alias} in
321  "") host_noncanonical=${build_noncanonical} ;;
322  *) host_noncanonical=${host_alias} ;;
323esac
324case ${target_alias} in
325  "") target_noncanonical=${host_noncanonical} ;;
326  *) target_noncanonical=${target_alias} ;;
327esac
328AC_SUBST(target_noncanonical)
329
330AC_ARG_ENABLE(version-specific-runtime-libs,
331  AS_HELP_STRING([--enable-version-specific-runtime-libs],
332                 [specify that runtime libraries should be installed in a compiler-specific directory]),
333    [case "$enableval" in
334      yes) version_specific_libs=yes ;;
335      no)  version_specific_libs=no ;;
336      *)   AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
337     esac],
338    [version_specific_libs=no]
339)
340CLASSPATH_TOOLEXECLIBDIR
341
342dnl -----------------------------------------------------------
343dnl Sets the native libraries installation dir
344dnl -----------------------------------------------------------
345dnl GCJ LOCAL: default to ${toolexeclibdir}/gcj-${gcc_version}-${libgcj_soversion}
346AC_ARG_WITH([native-libdir],
347	    [AS_HELP_STRING(--with-native-libdir,sets the installation directory for native libraries [default='${libdir}/${PACKAGE}'])],
348	    [
349	     nativeexeclibdir=${withval}
350	    ],
351	    [
352	     nativeexeclibdir='${toolexeclibdir}/gcj-'`cat ${srcdir}/../../gcc/BASE-VER`-`awk -F: '/^[[^#]].*:/ { print $1 }' ${srcdir}/../libtool-version`
353	    ])
354
355AC_SUBST(nativeexeclibdir)
356
357dnl -----------------------------------------------------------
358dnl Sets the Java library installation dir.
359dnl -----------------------------------------------------------
360AC_ARG_WITH([glibj-dir],
361	    [AS_HELP_STRING(--with-glibj-dir,sets the installation directory for glibj.zip [default='${libdir}/${PACKAGE}'])],
362	    [
363	     glibjdir=${withval}
364	    ],
365	    [
366	     glibjdir='${datadir}/${PACKAGE}'
367	    ])
368
369AC_SUBST(glibjdir)
370
371dnl -----------------------------------------------------------
372dnl Sets the Antlr jar to use for compiling gjdoc
373dnl -----------------------------------------------------------
374AC_ARG_WITH([antlr-jar],
375            [AS_HELP_STRING([--with-antlr-jar=file],[Use ANTLR from the specified jar file])],
376            [
377             ANTLR_JAR=$withval
378            ],
379            [
380             ANTLR_JAR="$ANTLR_JAR"
381            ])
382
383dnl -----------------------------------------------------------
384dnl Regenerate headers at build time (enabled if not found)
385dnl -----------------------------------------------------------
386AC_MSG_CHECKING([whether to regenerate the headers])
387AC_ARG_ENABLE([regen-headers],
388              [AS_HELP_STRING(--enable-regen-headers,automatically regenerate JNI headers [default=yes if headers don't exist])],
389              [case "${enableval}" in
390                yes) REGENERATE_JNI_HEADERS=yes ;;
391                no) REGENERATE_JNI_HEADERS=no ;;
392                *) REGENERATE_JNI_HEADERS=yes ;;
393              esac],
394              [if test -e ${srcdir}/include/java_lang_VMSystem.h; then
395			REGENERATE_JNI_HEADERS=no ;
396		   else
397			REGENERATE_JNI_HEADERS=yes ;
398	       fi])
399AC_MSG_RESULT(${REGENERATE_JNI_HEADERS})
400AM_CONDITIONAL(CREATE_JNI_HEADERS, test "x${REGENERATE_JNI_HEADERS}" = xyes)
401
402dnl ------------------------------------------------------------------------
403dnl Regenerate GJDoc parser at build time (enabled if not found)
404dnl ------------------------------------------------------------------------
405AC_MSG_CHECKING([whether to regenerate the GJDoc parser])
406AC_ARG_ENABLE([regen-gjdoc-parser],
407              [AS_HELP_STRING(--enable-regen-gjdoc-parser,automatically regenerate the GJDoc parser [default=yes if generated source doesn't exist])],
408              [case "${enableval}" in
409                yes) REGENERATE_GJDOC_PARSER=yes ;;
410                no) REGENERATE_GJDOC_PARSER=no ;;
411                *) REGENERATE_GJDOC_PARSER=yes ;;
412              esac],
413              [if test -e ${srcdir}/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java; then
414			REGENERATE_GJDOC_PARSER=no ;
415		   else
416			REGENERATE_GJDOC_PARSER=yes ;
417	       fi])
418AC_MSG_RESULT(${REGENERATE_GJDOC_PARSER})
419AM_CONDITIONAL(CREATE_GJDOC_PARSER, test "x${REGENERATE_GJDOC_PARSER}" = xyes)
420
421dnl -----------------------------------------------------------
422dnl Enable tool wrapper binaries (disabled by default)
423dnl -----------------------------------------------------------
424AC_ARG_ENABLE([tool-wrappers],
425              [AS_HELP_STRING(--enable-tool-wrappers,create tool wrapper binaries [default=no])],
426              [case x"${enableval}" in
427                xyes)
428                  COMPILE_WRAPPERS=yes;
429                  AC_CHECK_HEADERS([ltdl.h],, [AC_MSG_ERROR(cannot find ltdl.h)])
430                  AC_CHECK_LIB(ltdl, lt_dlopen,, [AC_MSG_ERROR(cannot find libltdl)])
431                  ;;
432                xno) COMPILE_WRAPPERS=no ;;
433		x) COMPILE_WRAPPERS=yes ;;
434                *) COMPILE_WRAPPERS=yes ;;
435              esac],
436              [COMPILE_WRAPPERS=no])
437AM_CONDITIONAL(CREATE_WRAPPERS, test "x${COMPILE_WRAPPERS}" = xyes)
438
439AC_PROG_LN_S
440AC_PROG_INSTALL
441
442dnl -----------------------------------------------------------
443dnl Checks for programs.
444dnl -----------------------------------------------------------
445
446dnl Initialize libtool
447AC_DISABLE_STATIC
448LT_INIT
449AC_PROG_AWK
450AC_PROG_CC
451AM_PROG_CC_C_O
452AC_PROG_CPP
453AC_PROG_CXX
454
455# Handle -Werror default case.
456if test "$ENABLE_WERROR" = default; then
457  case "$host_os" in
458    *linux*)
459      if test "$GCC" = yes; then
460        ENABLE_WERROR=yes
461      fi
462      ;;
463  esac
464fi
465
466if test "x${COMPILE_COLLECTIONS}" = xyes; then
467  AC_PATH_PROG(PERL, [perl])
468  AC_SUBST(PERL)
469  AC_SUBST(COLLECTIONS_PREFIX)
470  AC_CONFIG_FILES([lib/mkcollections.pl])
471  AC_CONFIG_COMMANDS([mkcollections.pl],[chmod 755 lib/mkcollections.pl])
472fi
473
474if test "x${COMPILE_JNI}" = xyes; then
475  GCC_ATTRIBUTE_UNUSED
476
477  AC_HEADER_STDC
478
479  dnl Checking sizeof void * is needed for fdlibm to work properly on ppc64,
480  dnl at least.
481  AC_COMPILE_CHECK_SIZEOF(void *)
482
483  dnl Checking for endianess.
484  AC_C_BIGENDIAN_CROSS
485
486  dnl We check for sys/filio.h because Solaris 2.5 defines FIONREAD there.
487  dnl On that system, sys/ioctl.h will not include sys/filio.h unless
488  dnl BSD_COMP is defined; just including sys/filio.h is simpler.
489  dnl Check for crt_externs.h on Darwin.
490  dnl Check for netinet/in_systm.h, netinet/ip.h and net/if.h for Windows CE.
491  dnl Check for sys/loadavg.h for getloadavg() on Solaris 9.
492  dnl Check for sys/sockio.h for SIOCGIFFLAGS on OpenSolaris.
493  AC_CHECK_HEADERS([unistd.h sys/types.h sys/config.h sys/ioctl.h \
494		    asm/ioctls.h \
495		    inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \
496		    sys/time.h \
497		    sys/select.h \
498		    crt_externs.h \
499                    fcntl.h \
500		    sys/mman.h \
501		    magic.h \
502                    sys/event.h sys/epoll.h \
503		    ifaddrs.h \
504		    netinet/in_systm.h netinet/ip.h net/if.h \
505		    sys/loadavg.h sys/sockio.h])
506
507  AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
508  AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
509  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]))
510  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]))
511
512  AC_SEARCH_LIBS([clock_gettime], [rt])
513  AC_SEARCH_LIBS([inet_pton],[nsl])
514  AC_CHECK_LIB([socket], [gethostname])
515
516  AC_CHECK_FUNCS([ftruncate fsync select \
517		  gethostname socket strerror fork pipe execve open close \
518		  lseek fstat read readv write writev htonl memset htons connect \
519		  getsockname getpeername bind listen accept \
520		  recvfrom send sendto setsockopt getsockopt time mktime clock_gettime \
521		  gethostbyname_r localtime_r \
522		  strerror_r \
523                  fcntl \
524		  statvfs \
525		  mmap munmap mincore msync madvise getpagesize sysconf \
526		  lstat readlink \
527 		  inet_aton inet_addr inet_pton \
528		  getifaddrs kqueue kevent epoll_create \
529                  getloadavg])
530
531  LIBMAGIC=
532  AC_CHECK_LIB(magic, magic_open, LIBMAGIC=-lmagic)
533  AC_SUBST(LIBMAGIC)
534
535  AC_MSG_CHECKING([whether struct sockaddr_in6 is in netinet/in.h])
536  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>]], [[struct sockaddr_in6 addr6;]])],
537                    [AC_DEFINE(HAVE_INET6, 1,
538                     [Define if inet6 structures are defined in netinet/in.h.])
539                     AC_MSG_RESULT(yes)],
540                    [AC_MSG_RESULT(no)])
541
542  AC_HEADER_TIME
543  AC_STRUCT_TM
544  AC_STRUCT_TIMEZONE
545
546  AC_MSG_CHECKING([for tm_gmtoff in struct tm])
547  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]],[[struct tm tim; tim.tm_gmtoff = 0;]])],
548  [AC_DEFINE(STRUCT_TM_HAS_GMTOFF, 1, [Define if struct tm has tm_gmtoff field.])
549   AC_MSG_RESULT(yes)],
550  [AC_MSG_RESULT(no)
551   AC_MSG_CHECKING([for global timezone variable])
552   dnl FIXME: we don't want a link check here because that won't work
553   dnl when cross-compiling.  So instead we make an assumption that
554   dnl the header file will mention timezone if it exists.
555   dnl Don't find the win32 function timezone
556   AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[void i(){long z2 = 2*timezone;}]])],
557     [AC_DEFINE(HAVE_TIMEZONE, 1, [Define if global 'timezone' exists.])
558      AC_MSG_RESULT(yes)],
559     [AC_MSG_RESULT(no)
560       AC_MSG_CHECKING([for global _timezone variable])
561       dnl FIXME: As above, don't want link check
562       AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <time.h>]], [[long z2 = _timezone;]])],
563         [AC_DEFINE(HAVE_UNDERSCORE_TIMEZONE, 1,
564            [Define if your platform has the global _timezone variable.])
565          AC_MSG_RESULT(yes)],
566          [AC_MSG_RESULT(no)])])])
567
568  AC_C_CONST
569  AC_C_INLINE
570  AC_C_ATTRIBUTE
571  AX_FUNC_WHICH_GETHOSTBYNAME_R
572
573  dnl See if we HAVE_ICONV, how ICONV_CONST is set and LTLIBICONV
574  AM_ICONV
575
576  dnl When using gcc we want warnings, lots of warnings :-)
577  if test "x${GCC}" = xyes; then
578    dnl We want ISO C90 ansi, but with longlong (jlong) support
579    dnl and modern POSIX and BSD C library functions/prototypes.
580
581    dnl Warning flags for (almost) everybody.
582    dnl Should probably be configurable
583    WARNING_CFLAGS='-W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long'
584    AC_SUBST(WARNING_CFLAGS)
585
586    dnl CFLAGS that are used for all native code.  We want to compile
587    dnl everything with unwinder data so that backtrace() will always
588    dnl work.
589    EXTRA_CFLAGS='-fexceptions -fasynchronous-unwind-tables'
590    AC_SUBST(EXTRA_CFLAGS)
591
592    dnl Strict warning flags which not every module uses.
593    dnl Should probably be configurable.
594    STRICT_WARNING_CFLAGS='-Wstrict-prototypes -pedantic'
595    AC_SUBST(STRICT_WARNING_CFLAGS)
596
597    dnl Whether or not to add -Werror, also not used by all modueles.
598    dnl Can be configured by --disable-Werror
599    ERROR_CFLAGS=
600    if test "x${ENABLE_WERROR}" = xyes; then
601       ERROR_CFLAGS='-Werror'
602    fi
603    AC_SUBST(ERROR_CFLAGS)
604  fi
605
606  dnl Check for libxml and libxslt libraries (when xmlj is enabled).
607  if test "x${COMPILE_XMLJ}" = xyes; then
608    PKG_CHECK_MODULES(XML, libxml-2.0 >= 2.6.8)
609    PKG_CHECK_MODULES(XSLT, libxslt >= 1.1.11)
610    AC_SUBST(XML_LIBS)
611    AC_SUBST(XML_CFLAGS)
612    AC_SUBST(XSLT_LIBS)
613    AC_SUBST(XSLT_CFLAGS)
614  fi
615
616  dnl Check for AWT related gthread/gtk
617  if test "x${COMPILE_GTK_PEER}" = xyes; then
618    AC_PATH_XTRA
619    if test "$no_x" = yes; then
620        AC_MSG_ERROR([GTK+ peers requested but no X library available])
621    fi
622    dnl Check if we can link against the XTest library and set
623    dnl HAVE_XTEST accordingly.
624    AC_CHECK_LIB([Xtst], [XTestQueryExtension],
625                 [AC_DEFINE(HAVE_XTEST, 1, [Define to 1 if you have libXtst.])[XTEST_LIBS="$XTEST_LIBS -X11 -lXtst"]],
626                 [true],
627                 [${X_LIBS}])
628
629
630    PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gdk-pixbuf-2.0)
631    PKG_CHECK_MODULES(FREETYPE2, freetype2)
632    PKG_CHECK_MODULES(PANGOFT2, pangoft2)
633    PKG_CHECK_MODULES(CAIRO, cairo >= 1.1.8)
634    dnl Check if we can link against the XRender library and set
635    dnl HAVE_XRENDER accordingly.
636    AC_CHECK_LIB([Xrender], [XRenderQueryExtension],
637		 [AC_DEFINE(HAVE_XRENDER, 1, [Define to 1 if you have libXrender.])[X_EXTRA_LIBS="$X_EXTRA_LIBS -lXrender"]],
638		 [true],
639		 [${X_LIBS}])
640
641    dnl Check if we can link against the XRandR library and set
642    dnl HAVE_XRANDR accordingly.
643    AC_CHECK_LIB([Xrandr], [XRRQueryExtension],
644                 [AC_DEFINE(HAVE_XRANDR, 1, [Define to 1 if you have libXrandr.])[X_EXTRA_LIBS="$X_EXTRA_LIBS -lXrandr"]],
645                 [true],
646                 [${X_LIBS}])
647
648    AC_SUBST(GTK_CFLAGS)
649    AC_SUBST(GTK_LIBS)
650    AC_SUBST(FREETYPE2_LIBS)
651    AC_SUBST(FREETYPE2_CFLAGS)
652    AC_SUBST(PANGOFT2_LIBS)
653    AC_SUBST(PANGOFT2_CFLAGS)
654    AC_SUBST(XTEST_LIBS)
655  fi
656
657  dnl gconf-peer
658  if  test "x${COMPILE_GCONF_PEER}" = xyes; then
659    PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.6.0)
660    AC_SUBST(GCONF_CFLAGS)
661    AC_SUBST(GCONF_LIBS)
662    dnl we also need gdk for locking
663    PKG_CHECK_MODULES(GDK, gdk-2.0 >= 2.8)
664    AC_SUBST(GDK_CFLAGS)
665    AC_SUBST(GDK_LIBS)
666    dnl check if the config value was given form the command line,
667    dnl if not, overwrite the default if we have the gconf backend
668    dnl compiled in
669    USE_GCONF_PREFS_PEER=$enable_default_preferences_peer
670    if test "$USE_GCONF_PREFS_PEER" = ""; then
671      DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory
672    fi
673  fi
674
675  dnl gstreamer-peer
676  if  test "x${COMPILE_GSTREAMER_PEER}" = xyes; then
677    GST_MAJORMINOR=0.10
678    GST_REQUIRED=0.10.10
679
680    dnl gstreamer
681    PKG_CHECK_MODULES(GSTREAMER, gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED)
682    AC_SUBST(GSTREAMER_CFLAGS)
683    AC_SUBST(GSTREAMER_LIBS)
684
685    dnl gstreamer-base
686    PKG_CHECK_MODULES(GSTREAMER_BASE,
687                      gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED)
688    AC_SUBST(GSTREAMER_BASE_CFLAGS)
689    AC_SUBST(GSTREAMER_BASE_LIBS)
690
691    dnl gstreamer-plugin-base
692    PKG_CHECK_MODULES(GSTREAMER_PLUGINS_BASE,
693                      gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED)
694    AC_SUBST(GSTREAMER_PLUGINS_BASE_CFLAGS)
695    AC_SUBST(GSTREAMER_PLUGINS_BASE_LIBS)
696
697	GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined'
698	AC_SUBST(GST_PLUGIN_LDFLAGS)
699
700    PKG_CHECK_MODULES(GDK, gdk-2.0 >= 2.8)
701    AC_SUBST(GDK_CFLAGS)
702    AC_SUBST(GDK_LIBS)
703
704	dnl set the gstreamer based file reader, writer and mixer
705	GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader
706	GSTREAMER_MIXER_PROVIDER=gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider
707  fi
708  dnl add the gstreamer resources
709  AC_SUBST(GSTREAMER_FILE_READER)
710  AC_SUBST(GSTREAMER_MIXER_PROVIDER)
711
712  dnl Check for AWT related Qt4
713  if test "x${COMPILE_QT_PEER}" = xyes; then
714    PKG_CHECK_MODULES(QT, QtCore QtGui >= 4.1.0, HAVE_QT4="yes", HAVE_QT4="no")
715    if test "x$HAVE_QT4" = "xyes"; then
716      dnl Check needed because in some cases the QtGui includedir
717      dnl doesn't contain the subsystem dir.
718      QT_INCLUDE_DIR=`$PKG_CONFIG --variable=includedir QtGui`
719      EXTRA_QT_INCLUDE_DIR="$QT_INCLUDE_DIR/Qt"
720      AC_CHECK_FILE([$QT_INCLUDE_DIR/QWidget],
721      AC_MSG_NOTICE([No extra QT_INCLUDE_DIR needed]),
722      AC_CHECK_FILE([$EXTRA_QT_INCLUDE_DIR/QWidget],
723	QT_CFLAGS="$QT_CFLAGS -I$EXTRA_QT_INCLUDE_DIR",
724	AC_MSG_WARN([QWidget not found])))
725	AC_CHECK_PROG(MOC, [moc], [moc])
726	AC_CHECK_PROG(MOC4, [moc-qt4], [moc-qt4])
727	if test x"$MOC4" != x ; then
728	  AC_MSG_NOTICE([Using $MOC4 as moc])
729	  MOC=$MOC4;
730	fi
731    fi
732    if test "x$HAVE_QT4" = "xno"; then
733      AC_MSG_NOTICE([Looking for QT_CFLAGS and QT_LIBS without pkg-config])
734      case "$host_os" in
735  	darwin*)
736  	  AC_ARG_WITH([qt4dir],
737  	    [AS_HELP_STRING([--with-qt4dir=DIR],
738  	    [Qt4 installation directory used for OS-X.
739  	    For other systems use pkg-config.])],
740  	    [QT4DIR=$withval]
741  	    )
742  	  if test x"$QT4DIR" = x ; then
743  	    AC_MSG_ERROR([*** No path for Qt4 --with-qt4dir option given])
744  	  fi
745  	  AC_MSG_RESULT([QT4DIR... $QT4DIR])
746  	  AC_CHECK_PROG(MOC, [moc], [$QT4DIR/bin/moc], [], $QT4DIR/bin)
747  	  if test x"$MOC" = x; then
748  	    AC_MSG_ERROR([*** This is not the right Qt installation])
749  	  fi
750  	  QT_CFLAGS="-F$QT4DIR/lib -I$QT4DIR/lib/QtCore.framework/Headers"
751  	  QT_CFLAGS="$QT_CFLAGS -I$QT4DIR/lib/QtGui.framework/Headers"
752  	  QT_LIBS="-Xlinker -F$QT4DIR/lib -Xlinker -framework -Xlinker QtCore"
753  	  QT_LIBS="$QT_LIBS -Xlinker -framework -Xlinker QtGui"
754  	  ;;
755  	*)
756  	  AC_MSG_ERROR([*** Please check PKG_CONFIG_PATH or the version
757  	  of your installed Qt4 installation.])
758  	  ;;
759      esac
760    fi
761    AC_MSG_NOTICE([Set QT_CFLAGS... $QT_CFLAGS])
762    AC_SUBST(QT_CFLAGS)
763    AC_SUBST(QT_LIBS)
764  fi
765  dnl **********************************************************************
766  dnl Check for MSG_NOSIGNAL
767  dnl **********************************************************************
768  AC_MSG_CHECKING(for MSG_NOSIGNAL)
769  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[ int f = MSG_NOSIGNAL; ]])],[ AC_MSG_RESULT(yes)
770     AC_DEFINE(HAVE_MSG_NOSIGNAL, 1,
771     	       [Define this symbol if you have MSG_NOSIGNAL]) ],[ AC_MSG_RESULT(no)
772  ])
773 dnl **********************************************************************
774 dnl Check for SO_NOSIGPIPE (Darwin equivalent for MSG_NOSIGNAL)
775 dnl **********************************************************************
776 AC_MSG_CHECKING(for SO_NOSIGPIPE )
777 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[ int f = SO_NOSIGPIPE; ]])],[ AC_MSG_RESULT(yes)
778    AC_DEFINE(HAVE_SO_NOSIGPIPE, 1,
779    	      [Define this symbol if you have SO_NOSIGPIPE]) ],[ AC_MSG_RESULT(no)
780 ])
781  dnl **********************************************************************
782  dnl Check for MSG_WAITALL
783  dnl **********************************************************************
784  AC_MSG_CHECKING(for MSG_WAITALL)
785  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[ int f = MSG_WAITALL; ]])],[ AC_MSG_RESULT(yes)
786     AC_DEFINE(HAVE_MSG_WAITALL, 1,
787     	       [Define this symbol if you have MSG_WAITALL]) ],[ AC_MSG_RESULT(no)
788  ])
789
790  dnl Check for plugin support headers and libraries.
791  if test "x${COMPILE_PLUGIN}" = xyes; then
792    PKG_CHECK_MODULES(MOZILLA, mozilla-plugin libxul-unstable, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
793    if test "x${MOZILLA_FOUND}" = xno; then
794      PKG_CHECK_MODULES(MOZILLA, mozilla-plugin, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
795    fi
796    if test "x${MOZILLA_FOUND}" = xno; then
797      PKG_CHECK_MODULES(MOZILLA, firefox-plugin firefox-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
798    fi
799    if test "x${MOZILLA_FOUND}" = xno; then
800      PKG_CHECK_MODULES(MOZILLA, xulrunner-plugin xulrunner-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
801    fi
802    if test "x${MOZILLA_FOUND}" = xno; then
803      PKG_CHECK_MODULES(MOZILLA, mozilla-firefox-plugin mozilla-firefox-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
804    fi
805    if test "x${MOZILLA_FOUND}" = xno; then
806      PKG_CHECK_MODULES(MOZILLA, seamonkey-plugin seamonkey-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
807    fi
808    if test "x${MOZILLA_FOUND}" = xno; then
809      PKG_CHECK_MODULES(MOZILLA, iceape-plugin iceape-xpcom, [MOZILLA_FOUND=yes], [MOZILLA_FOUND=no])
810    fi
811    if test "x${MOZILLA_FOUND}" = xno; then
812      AC_MSG_ERROR([Couldn't find plugin support headers and libraries, try --disable-plugin])
813    fi
814
815    PKG_CHECK_MODULES(GLIB, glib-2.0)
816    PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gdk-pixbuf-2.0)
817
818    AC_SUBST(MOZILLA_CFLAGS)
819    AC_SUBST(MOZILLA_LIBS)
820    AC_SUBST(GLIB_CFLAGS)
821    AC_SUBST(GLIB_LIBS)
822    AC_SUBST(GTK_CFLAGS)
823    AC_SUBST(GTK_LIBS)
824
825    AC_SUBST(PLUGIN_DIR, $HOME/.mozilla/plugins/)
826  fi
827
828  dnl Check for GNU MP library and header file
829  dnl for GNU MP versions >= 4.2 use __gmpz_combit; otherwise look for
830  dnl __gmpz_mul_si for earlier versions (>= 3.1).
831  dnl IMPORTANT: if you decide to look for __gmpz_combit, don't forget to
832  dnl change the name of the corresponding ac_ variable on lines 860...
833  AC_ARG_WITH(gmp, [  --with-gmp=PATH         specify prefix directory for the installed GMP package.
834                          Equivalent to --with-gmp-include=PATH/include
835                          plus --with-gmp-lib=PATH/lib])
836  AC_ARG_WITH(gmp_include, [  --with-gmp-include=PATH specify directory for installed GMP include files])
837  AC_ARG_WITH(gmp_lib, [  --with-gmp-lib=PATH     specify directory for the installed GMP library])
838
839  if test "x$with_gmp" != x; then
840    gmplibs=-lgmp
841    gmpinc=
842    gmplibs="-L$with_gmp/lib $gmplibs"
843    gmpinc="-I$with_gmp/include $gmpinc"
844    if test "x$with_gmp_include" != x; then
845      gmpinc="-I$with_gmp_include $gmpinc"
846    fi
847    if test "x$with_gmp_lib" != x; then
848      gmplibs="-L$with_gmp_lib $gmplibs"
849    fi
850  else
851    gmplibs="-lgmp"
852    gmpinc="-I/usr/include"
853  fi
854
855  if test "x${COMPILE_GMP}" = xyes; then
856    AC_MSG_CHECKING([for GMP directories])
857    if test "x$with_gmp" != x; then
858       gmplibs="-L$with_gmp/lib -lgmp"
859       gmpinc="-I$with_gmp/include"
860       if test "x$with_gmp_include" != x; then
861       	  gmpinc="-I$with_gmp_include $gmpinc"
862       fi
863       if test "x$with_gmp_lib" != x; then
864       	  gmplibs="-L$with_gmp_lib $gmplibs"
865       fi
866    else
867        with_gmp="/usr"
868	gmplibs="-lgmp"
869    	gmpinc="-I/usr/include"
870    fi
871    AC_MSG_RESULT([prefix=$with_gmp, libs=$gmplibs, inc=$gmpinc])
872    AC_CHECK_LIB(gmp, __gmpz_mul_si,
873      [GMP_CFLAGS="$gmpinc"
874       GMP_LIBS="$gmplibs" ],
875      [GMP_CFLAGS=
876       GMP_LIBS= ])
877    AC_SUBST(GMP_CFLAGS)
878    AC_SUBST(GMP_LIBS)
879
880    AC_CHECK_HEADERS([gmp.h])
881  fi
882
883else
884  COMPILE_GMP=no
885fi
886
887if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
888  CLASSPATH_WITH_JAVAH
889fi
890
891dnl -----------------------------------------------------------
892dnl Add the include files for the native abstraction layer.
893dnl Used by AM_CPPFLAGS in the different modules.
894dnl -----------------------------------------------------------
895CLASSPATH_INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/native/jni/classpath -I\$(top_srcdir)/native/jni/native-lib"
896AC_SUBST(CLASSPATH_INCLUDES)
897
898dnl -----------------------------------------------------------
899if test "x${COMPILE_JNI}" = xyes; then
900  AC_MSG_CHECKING(jni_md.h support)
901  if test -f ${srcdir}/include/jni_md-${target_cpu}-${target_os}.h; then
902    AC_MSG_RESULT(yes)
903  else
904    target_cpu=x86
905    target_os=linux-gnu
906    AC_MSG_WARN(no, using x86-linux-gnu)
907  fi
908  ac_sources="include/jni_md-${target_cpu}-${target_os}.h"
909  ac_dests="include/jni_md.h"
910  while test -n "$ac_sources"; do
911    set $ac_dests; ac_dest=$1; shift; ac_dests=$*
912    set $ac_sources; ac_source=$1; shift; ac_sources=$*
913    ac_config_links_1="$ac_config_links_1 $ac_dest:$ac_source"
914  done
915  AC_CONFIG_LINKS([$ac_config_links_1])
916fi
917
918CLASSPATH_WITH_CLASSLIB
919
920dnl -----------------------------------------------------------
921dnl Initialize maintainer mode
922dnl -----------------------------------------------------------
923AM_MAINTAINER_MODE
924
925dnl -----------------------------------------------------------
926dnl Enable debugging statements at compile time.  By default
927dnl these statements should be optimized out of the bytecode
928dnl produced by an optimizing Java compiler and not hinder
929dnl performance because debugging is turned off by default.
930dnl -----------------------------------------------------------
931AC_ARG_ENABLE([debug],
932              [AS_HELP_STRING(--enable-debug,enable runtime debugging code)],
933              [case "${enableval}" in
934                yes)
935              	LIBDEBUG="true"
936                AC_DEFINE(DEBUG, 1, [Define to 1 if you want native library runtime debugging code enabled])
937              	;;
938                no)   LIBDEBUG="false" ;;
939                *) 	AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
940              esac],
941              [LIBDEBUG="false"])
942AC_SUBST(LIBDEBUG)
943
944dnl -----------------------------------------------------------
945dnl Enable execution of all static initializer loadLibrary()
946dnl calls at compile time.  By default most people will not
947dnl want to disable this, but some VMs (gcj) don't need or want
948dnl them.
949dnl -----------------------------------------------------------
950AC_ARG_ENABLE([load-library],
951              [AS_HELP_STRING(--enable-load-library,enable to use JNI native methods [default=yes])],
952              [case "${enableval}" in
953                yes) INIT_LOAD_LIBRARY="true" ;;
954                no) INIT_LOAD_LIBRARY="false" ;;
955                *) AC_MSG_ERROR(bad value ${enableval} for --enable-load-library) ;;
956              esac],
957              [INIT_LOAD_LIBRARY="true"])
958AC_SUBST(INIT_LOAD_LIBRARY)
959
960
961dnl -----------------------------------------------------------
962dnl Specify the jar file containing the Eclipse Java Compiler.  If
963dnl this option is not specified then the com.sun.tools.javac
964dnl implementation will not be included in tools.zip.
965dnl -----------------------------------------------------------
966dnl GCJ LOCAL: default to $multi_basedir/ecj.jar
967dnl In the default case where $multi_basedir/ecj.jar is found
968dnl $(jardir)/ecj.jar will not expand properly in GNU Classpath's
969dnl gnu/classpath/Configuration.java.  That is OK though since libjava's
970dnl gnu/classpath/Configuration.java overrides GNU Classpath's and
971dnl ECJ_JAR_FILE will be properly expanded in libjava's
972dnl gnu/classpath/natConfiguration.cc.
973AC_ARG_WITH([ecj-jar],
974  	    [AS_HELP_STRING([--with-ecj-jar=ABS.PATH],
975  	    [specify jar file containing the Eclipse Java Compiler])],
976  	    [ECJ_JAR=$withval],
977	    [if test -f $multi_basedir/ecj.jar; then
978	       ECJ_JAR='$(jardir)/ecj.jar'
979	     fi])
980AC_SUBST(ECJ_JAR)
981
982dnl -----------------------------------------------------------
983dnl Should the VM explicitly run class initialization subfunctions for
984dnl java.lang.System?   (default is false -- the subfunctions will be run
985dnl automatically by the class initializer)
986dnl -----------------------------------------------------------
987AC_ARG_ENABLE([java-lang-system-explicit-initialization],
988              [AS_HELP_STRING(--enable-java-lang-system-explicit-initialization,will the VM explicitly invoke java.lang.System's static initialization methods [default=no])],
989              [case "${enableval}" in
990                yes|true) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="true" ;;
991                no|false) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false" ;;
992                *) AC_MSG_ERROR(bad value ${enableval} for --enable-java-lang-system-explicit-initialization) ;;
993              esac],
994              [JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false"])
995AC_SUBST(JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION)
996
997
998dnl -----------------------------------------------------------
999dnl avoiding automake complaints
1000dnl -----------------------------------------------------------
1001REMOVE=""
1002AC_SUBST(REMOVE)
1003
1004dnl -----------------------------------------------------------
1005dnl This is probably useless.
1006dnl -----------------------------------------------------------
1007AC_PATH_PROG(MKDIR, mkdir)
1008AC_PATH_PROG(CP, cp)
1009AC_PATH_PROG(DATE, date)
1010
1011dnl -----------------------------------------------------------
1012dnl According to the GNU coding guide, we shouldn't require find,
1013dnl and zip, however GNU provides both so it should be okay
1014dnl -----------------------------------------------------------
1015AC_PATH_PROG(FIND, find)
1016
1017dnl -----------------------------------------------------------
1018dnl Specify what to install (install only glibj.zip by default)
1019dnl -----------------------------------------------------------
1020CLASSPATH_WITH_GLIBJ
1021
1022dnl -----------------------------------------------------------
1023dnl Enable API documentation generation (disabled by default)
1024dnl -----------------------------------------------------------
1025CLASSPATH_WITH_GJDOC
1026
1027dnl -----------------------------------------------------------
1028dnl Whether to use jay to regenerate parsers.
1029dnl -----------------------------------------------------------
1030REGEN_WITH_JAY
1031
1032dnl -----------------------------------------------------------
1033dnl This sets the build-time default, which can now be overridden
1034dnl by setting the system property gnu.classpath.awt.gtk.portable.native.sync
1035dnl to "true" or "false".
1036dnl -----------------------------------------------------------
1037AC_ARG_ENABLE([portable-native-sync],
1038              [AS_HELP_STRING(--enable-portable-native-sync,synchronize VM threads portably)],
1039              [case "${enableval}" in
1040                yes)
1041                     AC_DEFINE(PORTABLE_NATIVE_SYNC, 1, [Define if you want to synchronize VM threads portably by default; undef otherwise])
1042                     ;;
1043                no)  ;;
1044                *)
1045                     AC_MSG_ERROR(bad value ${enableval} for --enable-portable-native-sync)
1046                     ;;
1047              esac],
1048              [])
1049
1050AX_CREATE_STDINT_H([include/config-int.h])
1051
1052dnl -----------------------------------------------------------------------
1053dnl                    Support for using a prebuilt class library
1054dnl -----------------------------------------------------------------------
1055AC_ARG_WITH([glibj_zip],
1056            AS_HELP_STRING([--with-glibj-zip=ABS.PATH],
1057                           [use prebuilt glibj.zip class library]))
1058
1059case "$with_glibj_zip" in
1060"")
1061        use_glibj_zip=false
1062        ;;
1063"no" )
1064        use_glibj_zip=false
1065        ;;
1066"yes")
1067        AC_MSG_ERROR([Please suply an absolute path to a prebuilt glibj.zip])
1068        ;;
1069*)
1070        use_glibj_zip=true
1071        PATH_TO_GLIBJ_ZIP=$with_glibj_zip
1072	;;
1073esac;
1074
1075AM_CONDITIONAL(USE_PREBUILT_GLIBJ_ZIP, test x$use_glibj_zip = xtrue)
1076AC_SUBST(PATH_TO_GLIBJ_ZIP)
1077
1078if test "x${TOOLSDIR}" != x; then
1079  dnl GCJ LOCAL
1080  if test "x${COMPILE_WRAPPERS}" = xno && test "x${enable_java_maintainer_mode}" = xyes; then
1081    AC_PROG_JAVA_WORKS
1082  fi
1083  dnl END GCJ LOCAL
1084  if test "x${COMPILE_GJDOC}" = xyes; then
1085    AC_LIB_ANTLR
1086    dnl GCJ LOCAL
1087    if test "x${REGENERATE_GJDOC_PARSER}" = xyes && test "x${enable_java_maintainer_mode}" = xyes; then
1088    dnl END GCJ LOCAL
1089	AC_PROG_ANTLR(2,7,1)
1090    fi
1091  fi
1092fi
1093
1094
1095# Check for javac if we need to build either the class library,
1096# the examples or the tools
1097if test "x${use_glibj_zip}" = xfalse || \
1098   test "x${EXAMPLESDIR}" != x || \
1099   test "x${TOOLSDIR}" != x && \
1100   test "x${build_class_files}" != xno && \
1101   test "${enable_java_maintainer_mode}" = yes; then dnl GCJ_LOCAL
1102	AC_PROG_JAVAC_WORKS
1103  	CLASSPATH_JAVAC_MEM_CHECK
1104else
1105   AM_CONDITIONAL(GCJ_JAVAC, false)
1106fi
1107
1108dnl -----------------------------------------------------------
1109dnl Build with Escher based X peers.
1110dnl -----------------------------------------------------------
1111AC_ARG_WITH([escher],
1112	 AS_HELP_STRING([--with-escher=ABS.PATH],
1113	                [specify path to escher dir or JAR for X peers]))
1114case "$with_escher" in
1115"")
1116        use_escher=false
1117        ;;
1118"no")
1119        use_escher=false
1120        ;;
1121"yes")
1122        AC_MSG_ERROR([Please supply an absolute path to Escher library])
1123        ;;
1124*)
1125        use_escher=true
1126        PATH_TO_ESCHER=$with_escher
1127        ;;
1128esac
1129
1130AM_CONDITIONAL(USE_ESCHER, test x$use_escher = xtrue)
1131AC_SUBST(PATH_TO_ESCHER)
1132
1133dnl -----------------------------------------------------------
1134dnl Check if local socket support should be included.
1135dnl -----------------------------------------------------------
1136AC_ARG_ENABLE([local-sockets],
1137              [AS_HELP_STRING(--enable-local-sockets,enables local (AF_LOCAL) socket API [default: no])],
1138              [case "${enableval}" in
1139                yes)
1140                  ENABLE_LOCAL_SOCKETS=yes
1141                  ;;
1142                *)
1143                  ENABLE_LOCAL_SOCKETS=no
1144                  ;;
1145               esac],
1146              [])
1147if test "x$ENABLE_LOCAL_SOCKETS" = "xyes"
1148then
1149  AC_CHECK_HEADER([sys/un.h])
1150  AC_CHECK_FUNCS([read write bind listen accept shutdown], [],
1151                 AC_MSG_ERROR([networking support not available]))
1152  AC_DEFINE(ENABLE_LOCAL_SOCKETS, [1], [Define to enable support for local sockets.])
1153fi
1154AM_CONDITIONAL(ENABLE_LOCAL_SOCKETS, test "x$ENABLE_LOCAL_SOCKETS" = "xyes")
1155
1156dnl -----------------------------------------------------------
1157dnl Add the default preference peer
1158dnl -----------------------------------------------------------
1159AC_SUBST(DEFAULT_PREFS_PEER)
1160
1161dnl -----------------------------------------------------------
1162dnl Set GNU MP related params
1163dnl -----------------------------------------------------------
1164WANT_NATIVE_BIG_INTEGER=false
1165if test "x${COMPILE_GMP}" = xyes; then
1166  if test "x${ac_cv_lib_gmp___gmpz_mul_si}" = xyes; then
1167    if test "x${ac_cv_header_gmp_h}" = xyes; then
1168      WANT_NATIVE_BIG_INTEGER=true
1169      AC_DEFINE(WITH_GNU_MP, 1, [Define to 1 if gmp is usable])
1170    else
1171      COMPILE_GMP=no
1172    fi
1173  else
1174    COMPILE_GMP=no
1175  fi
1176fi
1177AC_SUBST(WANT_NATIVE_BIG_INTEGER)
1178AM_CONDITIONAL(CREATE_GMPBI_LIBRARY, test "x${COMPILE_GMP}" = xyes)
1179
1180dnl -----------------------------------------------------------
1181dnl output files
1182dnl -----------------------------------------------------------
1183AC_CONFIG_FILES([Makefile
1184doc/Makefile
1185doc/api/Makefile
1186external/Makefile
1187external/sax/Makefile
1188external/w3c_dom/Makefile
1189external/relaxngDatatype/Makefile
1190external/jsr166/Makefile
1191gnu/classpath/Configuration.java
1192gnu/java/security/Configuration.java
1193include/Makefile
1194native/Makefile
1195native/fdlibm/Makefile
1196native/jawt/Makefile
1197native/jni/Makefile
1198native/jni/classpath/Makefile
1199native/jni/java-io/Makefile
1200native/jni/java-lang/Makefile
1201native/jni/java-math/Makefile
1202native/jni/java-net/Makefile
1203native/jni/java-nio/Makefile
1204native/jni/java-util/Makefile
1205native/jni/gtk-peer/Makefile
1206native/jni/gconf-peer/Makefile
1207native/jni/gstreamer-peer/Makefile
1208native/jni/qt-peer/Makefile
1209native/jni/xmlj/Makefile
1210native/jni/midi-alsa/Makefile
1211native/jni/midi-dssi/Makefile
1212native/jni/native-lib/Makefile
1213native/plugin/Makefile
1214resource/Makefile
1215resource/META-INF/services/java.util.prefs.PreferencesFactory
1216resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader
1217resource/META-INF/services/javax.sound.sampled.spi.MixerProvider
1218scripts/Makefile
1219scripts/classpath.spec
1220lib/Makefile
1221lib/gen-classlist.sh
1222lib/copy-vmresources.sh
1223scripts/check_jni_methods.sh
1224tools/Makefile
1225examples/Makefile
1226examples/Makefile.jawt
1227examples/Makefile.java2d])
1228
1229CLASSPATH_COND_IF([CREATE_WRAPPERS], [test "x${COMPILE_WRAPPERS}" = xyes], [],
1230[AC_CONFIG_FILES([tools/gappletviewer
1231tools/gjarsigner
1232tools/gkeytool
1233tools/gjar
1234tools/gnative2ascii
1235tools/gserialver
1236tools/grmiregistry
1237tools/gtnameserv
1238tools/gorbd
1239tools/grmid
1240tools/grmic
1241tools/gjavah])
1242
1243AC_CONFIG_COMMANDS([gappletviewer],[chmod 755 tools/gappletviewer])
1244AC_CONFIG_COMMANDS([gjarsigner],[chmod 755 tools/gjarsigner])
1245AC_CONFIG_COMMANDS([gkeytool],[chmod 755 tools/gkeytool])
1246AC_CONFIG_COMMANDS([gjar],[chmod 755 tools/gjar])
1247AC_CONFIG_COMMANDS([gnative2ascii],[chmod 755 tools/gnative2ascii])
1248AC_CONFIG_COMMANDS([gserialver],[chmod 755 tools/gserialver])
1249AC_CONFIG_COMMANDS([grmiregistry],[chmod 755 tools/grmiregistry])
1250AC_CONFIG_COMMANDS([gtnameserv],[chmod 755 tools/gtnameserv])
1251AC_CONFIG_COMMANDS([gorbd],[chmod 755 tools/gorbd])
1252AC_CONFIG_COMMANDS([grmid],[chmod 755 tools/grmid])
1253AC_CONFIG_COMMANDS([grmic],[chmod 755 tools/grmic])
1254AC_CONFIG_COMMANDS([gjavah], [chmod 755 tools/gjavah])
1255])
1256
1257if test "x${COMPILE_GJDOC}" = xyes
1258then
1259CLASSPATH_COND_IF([CREATE_WRAPPERS], [test "x${COMPILE_WRAPPERS}" = xyes], [],
1260[AC_CONFIG_FILES([tools/gjdoc])
1261AC_CONFIG_COMMANDS([gjdoc], [chmod 755 tools/gjdoc])
1262])
1263fi
1264
1265AC_CONFIG_COMMANDS([gen-classlist],[chmod 755 lib/gen-classlist.sh])
1266AC_CONFIG_COMMANDS([copy-vmresources],[chmod 755 lib/copy-vmresources.sh])
1267AC_OUTPUT
1268
1269# Create standard.omit based on decisions we just made.
1270cat ${srcdir}/lib/standard.omit.in > lib/standard.omit
1271if test x$use_escher != xtrue; then
1272   echo gnu/java/awt/peer/x/.*java$ >> lib/standard.omit
1273fi
1274
1275if test "x${COMPILE_PLUGIN}" = "xyes" ; then
1276  AC_MSG_WARN([You have enabled the browser plugin.  Please note that this is no longer maintained as part of GNU Classpath; development has moved to the IcedTea project.])
1277fi
1278