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