1dnl BEGIN LICENSE BLOCK
2dnl Version: CMPL 1.1
3dnl
4dnl The contents of this file are subject to the Cisco-style Mozilla Public
5dnl License Version 1.1 (the "License"); you may not use this file except
6dnl in compliance with the License.  You may obtain a copy of the License
7dnl at www.eclipse-clp.org/license.
8dnl 
9dnl Software distributed under the License is distributed on an "AS IS"
10dnl basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See
11dnl the License for the specific language governing rights and limitations
12dnl under the License. 
13dnl 
14dnl The Original Code is  The ECLiPSe Constraint Logic Programming System. 
15dnl The Initial Developer of the Original Code is  Cisco Systems, Inc. 
16dnl Portions created by the Initial Developer are
17dnl Copyright (C) 2006 Cisco Systems, Inc.  All Rights Reserved.
18dnl 
19dnl Contributor(s): ECRC GmbH
20dnl Contributor(s): IC-Parc, Imperial College London
21dnl Contributor(s): CrossCore Optimization
22dnl 
23dnl END LICENSE BLOCK
24dnl
25dnl ECLiPSe Configuration File
26dnl
27dnl Much of this file was previously sepia/src/configure.in
28dnl
29
30#----------------------------------------------------------------------
31# General
32#----------------------------------------------------------------------
33
34# AC_INIT defines PACKAGE_NAME and PACKAGE_VERSION
35AC_INIT([ECLiPSe], [6.2])
36AC_PREREQ([2.59])
37AC_COPYRIGHT([ECLiPSe is copyright Cisco Systems, Inc])
38AC_REVISION([$Id: configure.ac,v 1.65 2015/10/05 21:00:58 kish_shen Exp $])
39AC_CONFIG_SRCDIR([BUILD_ROTD])
40AC_CONFIG_AUX_DIR([config])
41AC_PREFIX_DEFAULT([\${top_srcdir}])
42
43
44#----------------------------------------------------------------------
45# Host
46#----------------------------------------------------------------------
47
48# Where we build
49AC_CANONICAL_BUILD
50
51# What we build for
52AC_CANONICAL_HOST
53
54# Map autoconf's canonical host names to ECLiPSe's ARCH.
55# Please don't put anything else in this switch!
56case $host in
57
58    i?86-*-linux*)
59    	arch=i386_linux
60	;;
61    x86_64-*-linux*)
62    	arch=x86_64_linux
63	;;
64    i?86-*-solaris2.*)
65    	arch=i386_sunos5
66	;;
67    x86_64-*-solaris2.*)
68    	arch=x86_64_sunos5
69	;;
70    i?86-*-mingw* | i?86-*-cygwin*)
71    	arch=i386_nt
72	;;
73    x86_64-*-mingw* | x86_64-*-cygwin*)
74    	arch=x86_64_nt
75	;;
76    sparc*-*-sunos[1-4]*)
77    	arch=sun4
78	;;
79    sparc*-*-solaris2.* | sparc*-*-sunos5*)
80    	arch=sparc_sunos5
81	;;
82    powerpc*-*-darwin*)
83	arch=ppc_macosx
84	;;
85    i?86-*-darwin*)
86	arch=i386_macosx
87	;;
88    x86_64-*-darwin*)
89        arch=x86_64_macosx
90	;;
91    alpha*-*-linux*)
92	arch=alpha_linux
93	;;
94    armv7*-*-linux*)
95	arch=armv7_linux
96	;;
97    *)
98	AC_MSG_ERROR([Unknown architecture: $host])
99	;;
100esac
101
102# If ARCH was set, make sure it matches what was detected
103if test -z "$ARCH" ; then
104    ARCH=$arch
105else
106    if test "$ARCH" != "$arch" ; then
107        # config.guess does not seem to distinguish 32/64 bit PPC for the Mac
108        # assume ARCH setting is what the user wants to build
109        if test "$ARCH" == "ppc64_macosx" ; then
110            arch=$ARCH
111        else
112		AC_MSG_WARN([Cross-compiling without site config file $CONFIG_SITE!!!])
113        fi
114    fi
115fi
116
117AC_MSG_NOTICE([Building for ECLiPSe architecture ----- $ARCH -----])
118
119AC_DEFINE_UNQUOTED(HOSTARCH, "$ARCH")
120
121# When cross-building, make sure we have a site defaults file,
122# because many tests won't work!!!
123if test "$host" != "$build"; then
124    if ! test -r "$CONFIG_SITE"; then
125	AC_MSG_WARN([Cross-compiling without site config file $CONFIG_SITE!!!])
126    fi
127fi
128
129# Make sure we are using a reasonable CONFIG_SITE file
130if test -r "$CONFIG_SITE"; then
131    if echo "$CONFIG_SITE" | grep -v -q "^config.*\.$ARCH"; then
132	AC_MSG_ERROR([Won't use "$CONFIG_SITE" for architecture $ARCH,
133	    change or unset CONFIG_SITE])
134    fi
135else
136    AC_MSG_NOTICE([No file $CONFIG_SITE])
137fi
138
139# This is how we tell the makefiles that we are cross-compiling
140if test "$host" != "$build"; then
141    MAKE_TARGET=install_cross
142else
143    MAKE_TARGET=install_all
144fi
145
146
147#----------------------------------------------------------------------
148# Defaults for variables
149#----------------------------------------------------------------------
150
151# Notes on OPT_FLAGS* -- these settings are for gcc (tested with 
152# versions 3.3.5 (i386_linux) and 4.0.1 (Mac OS X)
153# -O3 leads to seg faults when running some programs
154# -O2 for OPT_FLAGS_EMU leads to not distinguishable emu instructions for threaded code
155#     due to -freorder-blocks optimisation
156# -fomit-frame-pointer gives faster code for x86
157# the flags for OPT_FLAGS_EMU are -O2 optimisations that don't cause problems 
158# and do not slow down execution on i386_linux
159# no -fomit-frame-pointer from optimised debugging -- it makes debugging
160# impossible on some machines (otherwise -O1+ will turn it on) 
161OPT_FLAGS="-O2 -fomit-frame-pointer"
162OPT_FLAGS_EMU="-O1 -fomit-frame-pointer -fthread-jumps -fforce-addr  -fexpensive-optimizations -fdelete-null-pointer-checks -fpeephole2 -falign-functions -falign-jumps  -foptimize-sibling-calls -fregmove  -fsched-interblock -fcaller-saves"
163OPTDBG_FLAGS="-O2"
164OPTDBG_FLAGS_EMU="-O1 -fthread-jumps -fforce-addr  -fexpensive-optimizations -fdelete-null-pointer-checks -fpeephole2 -falign-functions -falign-jumps  -foptimize-sibling-calls -fregmove  -fsched-interblock -fcaller-saves"
165
166# For some cross-compilations, gcc's include path is in the wrong order.
167# We can fix this by adding an explicit -isystem <dir> argument.
168if test -z "$OS_INCLUDES"; then
169    OS_INCLUDES=""
170fi
171
172# OPT_LDFLAGS will be prefixed to LDFLAGS if not --enable-debug
173OPT_LDFLAGS="-s"
174
175
176# DYNLDFLAGS is used when linking shared libraries
177# In principle, we should also use -Wl,-Bsymbolic here, to link the
178# references to global symbols within the library directly to the definition
179# within the library, and avoiding strange bugs due to symbol clashes.
180# However, this does not work properly with data symbols (like ec_),
181# due to the following behaviour. Quoting from
182# http://docs.sun.com/app/docs/doc/806-0641/6j9vuqujb?a=view:
183#  "If a symbolically bound symbol is interposed upon, then references to
184#   the symbol from outside of the symbolically bound object will bind to
185#   the interposer, whereas the object itself is already bound internally. 
186#   Essentially two symbols with the same name are now being referenced
187#   from within the process.  A symbolically bound data symbol that
188#   results in a copy relocation (see "Copy Relocations") creates the same
189#   interposition situation."
190DYNLDFLAGS="-shared"
191
192# use with $CC [generating executable]
193RUNPATH_LDFLAG="-Wl,-R"
194# use with $DYLD [generating dynamic library]
195RUNPATH_DYLDFLAG=$RUNPATH_LDFLAG
196
197# OPT_LOCAL_FLAGS will be appended to LOCALFLAGS if not --enable-debug
198OPT_LOCAL_FLAGS="-DTHREADED"
199OPTIMIZE=cp
200
201#
202# SYSLIBS contains libraries whose use is different on various
203# platforms and which are not needed during autoconfiguration
204# LIBS contains libraries needed to compile programs inside autoconf
205SYSLIBS=""
206GRAPHLIBS=""
207OBJECT_SUFFIX=o
208OBJECTS_SUFFIX=a
209LIB_PREFIX=lib
210DLIBDIR=lib
211BUILDO=o
212
213# Default memory block sizes (in Mega-Pwords)
214VIRTUAL_HEAP_DEFAULT="4"
215VIRTUAL_SHARED_DEFAULT="8"
216VIRTUAL_LOCAL_STACK_DEFAULT="8"
217VIRTUAL_GLOBAL_STACK_DEFAULT="32"
218SHARED_MEM_OFFSET_HEAP="16*MB"
219
220LDTCL=""
221LOCK="lock.o"
222
223LL_C_SO=".c.so:"
224LD_C_SO="touch \$@"
225PL_C_SO=""
226PD_C_SO=""
227PL_O_SO=""
228PD_O_SO=""
229
230WANT_MPS=n
231
232dnl this must be before bsd on AIX
233LIBS="-lm $LIBS"
234
235if test -z "$LD"; then
236    LD=ld
237fi
238
239CXXSUFFIX=cc
240
241origostype=$OSTYPE
242
243# define the broad type of os -- unix is the default, and currently the only
244# other supported class is win
245OSCLASS="unix"
246
247# -D_REENTRANT is e.g. for making use of errno thread-safe
248#	(we could use -pthread but that isn't supported everywhere)
249CFLAGS="-fPIC -D_REENTRANT $CFLAGS"
250
251# needed for strip on Mac OS X 
252STRIPFLAGS=
253
254JAVA_PATH_SEP=:
255
256#----------------------------------------------------------------------
257# Explicit settings - things that can't be figured out automatically
258#----------------------------------------------------------------------
259case "$ARCH" in
260 i386_macosx)
261    # it seems that the stdc++/gcc libs that needs to be linked in are at
262    # gcc version dependent directories. The following tries to determine
263    # the exact path using gcc to obtain its version information
264    GCC_VERSION=`gcc -v 2>&1 | sed -n 's/gcc version //p' | sed -e 's/\([[^ ]]*\) .*/\1/'`
265    GCCLIBDIR=$(ls -d /usr/lib/gcc/i686*/$GCC_VERSION 2>/dev/null)
266    if test $? -ne 0; then
267	GCCLIBDIR="."
268    fi
269    # this is needed to catch the case of empty GCCLIBDIR (David Dreisgmeyer)
270    if [ -z $GCCLIBDIR ]; then
271        GCCLIBDIR="."
272    fi
273    CFLAGS="-m32  -mmacosx-version-min=10.4 $CFLAGS"
274    LOCAL_FLAGS="-DD_LOAD -no-cpp-precomp -dynamic"
275    OBJECT_SUFFIX=dylib
276    OBJECTS_SUFFIX=dylib
277    # these needed to be changed to build at SourceForge
278    LDFLAGS="-m32 -mmacosx-version-min=10.4"
279    # -dynamiclib is the official Apple way of producing dynamic libraries
280    # -shared works on 10.6, but apparently not 10.5
281    DYNLDFLAGS="-dynamiclib -single_module -flat_namespace -search_paths_first -m32 -mmacosx-version-min=10.4 -L$GCCLIBDIR"
282    LD_C_SO=""
283    PL_C_SO=".c.dylib:"
284    PD_C_SO="$LD_C_SO"
285    PL_O_SO=".o.dylib:"
286    PD_O_SO="$LD_C_SO"
287    # gcc can be used in recent Mac OS X
288    DYLD="gcc"
289    DYLDCXX="g++"
290    LDYLD="libtool -dynamic -L$GCCLIBDIR"
291    # LDTCL for loading Tcl/Tk, implemented as a Framework
292    LDTCL="-framework Tcl"
293    # RUNPATH_LDLAG is really a noop here (-rpath not supported pre 10.5)
294    RUNPATH_DYLDFLAG="-L"
295    RUNPATH_LDFLAG="-L"
296    LDD="otool"
297    LDDFLAG="-L"
298    STRIPFLAGS="-u -i -S"
299    # AC_DEFINE(HAVE_CEIL_NEGZERO_BUG) # bug fixed sometime in 10.5
300    LOCK=
301    ;;
302 x86_64_macosx)
303    # it seems that the stdc++/gcc libs that needs to be linked in are at
304    # gcc version dependent directories. The following tries to determine
305    # the exact path using gcc to obtain its version information
306    GCC_VERSION=`gcc -v 2>&1 | sed -n 's/gcc version //p' | sed -e 's/\([[^ ]]*\) .*/\1/'`
307    GCCLIBDIR=$(ls -d /usr/lib/gcc/i686*/$GCC_VERSION/x86_64 2>/dev/null)
308    CFLAGS="-m64  -mmacosx-version-min=10.4 $CFLAGS"
309    if test $? -ne 0; then
310	GCCLIBDIR="."
311    fi
312    # this is needed to catch the case of empty GCCLIBDIR (David Dreisgmeyer)
313    if [ -z $GCCLIBDIR ]; then
314        GCCLIBDIR="."
315    fi
316    LOCAL_FLAGS="-DD_LOAD -no-cpp-precomp -dynamic"
317    OBJECT_SUFFIX=dylib
318    OBJECTS_SUFFIX=dylib
319    # these needed to be changed to build at SourceForge
320    LDFLAGS="-m64 -mmacosx-version-min=10.4"
321    # -dynamiclib is the official Apple way of producing dynamic libraries
322    # -shared works on 10.6, but apparently not 10.5
323    DYNLDFLAGS="-dynamiclib -single_module -flat_namespace -search_paths_first -m64 -mmacosx-version-min=10.4 -L$GCCLIBDIR"
324    LD_C_SO=""
325    PL_C_SO=".c.dylib:"
326    PD_C_SO="$LD_C_SO"
327    PL_O_SO=".o.dylib:"
328    PD_O_SO="$LD_C_SO"
329    DYLD="gcc"
330    DYLDCXX="g++"
331    LDYLD="libtool -dynamic -L$GCCLIBDIR"
332    # LDTCL for loading Tcl/Tk, implemented as a Framework
333    LDTCL="-framework Tcl"
334    # RUNPATH_LDLAG is really a noop here (-rpath not supported pre 10.5)
335    RUNPATH_DYLDFLAG="-L"
336    RUNPATH_LDFLAG="-L"
337    LDD="otool"
338    LDDFLAG="-L"
339    STRIPFLAGS="-u -i -S"
340    #    AC_DEFINE(HAVE_CEIL_NEGZERO_BUG) # bug fixed sometime in 10.5
341    # 2013-06-22: this fix is now broken in 10.6
342    AC_DEFINE(HAVE_RINT_BUG)
343    LOCK=
344    ;;
345 ppc_macosx)
346    GCC_VERSION=`gcc -v 2>&1 | sed -n 's/gcc version //p' | sed -e 's/\([[^ ]]*\) .*/\1/'`
347    GCCLIBDIR=$(ls -d /usr/lib/gcc/powerpc*/$GCC_VERSION 2>/dev/null)
348    if test $? -ne 0; then
349	GCCLIBDIR="."
350    fi
351    # this is needed to catch the case of empty GCCLIBDIR (David Dreisgmeyer)
352    if [ -z $GCCLIBDIR ]; then
353        GCCLIBDIR="."
354    fi
355    CFLAGS="-m32  -mmacosx-version-min=10.3 $CFLAGS"
356    LOCAL_FLAGS="-DD_LOAD -no-cpp-precomp -dynamic -m32"
357    OBJECT_SUFFIX=dylib
358    OBJECTS_SUFFIX=dylib
359    # these needed to be changed to build at SourceForge
360    #LDFLAGS="-Wl,-search_paths_first"
361    #DYNLDFLAGS="-dynamic -single_module -flat_namespace -search_paths_first -lgcc"
362    # It seems that PPC MacOSX have some problems linking that requires 
363    # libgcc to be linked in to define some undefined symbols, but the 
364    # method to do this varies with the OS versions:
365    # -lgcc (10.2)
366    # -lcc_dynamic (10.3? -- suggested on the web, but not tested by us)
367    # -L$GCCLIBDIR -lgcc (10.4), where $GCCLIBDIR is a directory in 
368    # /usr/lib/gcc, which the script tries to determine. The flag
369    # -arch_only ppc is also required, as the libgcc.a cannot be linked 
370    # for ppc64 or Intel
371    LDFLAGS="-m32"
372    DYNLDFLAGS="-dynamic -single_module -flat_namespace  -search_paths_first -L$GCCLIBDIR  -lgcc -arch_only ppc"
373    LD_C_SO=""
374    PL_C_SO=".c.dylib:"
375    PD_C_SO="$LD_C_SO"
376    PL_O_SO=".o.dylib:"
377    PD_O_SO="$LD_C_SO"
378    DYLD="libtool"
379    DYLDCXX="libtool"
380    LDYLD="libtool -dynamic -L$GCCLIBDIR"
381    # LDTCL for loading Tcl/Tk, implemented as a Framework
382    #LDTCL="-framework tcl"
383    LDTCL=" -framework Tcl"
384    # -lSystemStubs needed for PPC MacOs X 10.4.9 we built on
385    LIBS="$LIBS -lSystemStubs"
386    RUNPATH_DYLDFLAG="-executable_path "
387    # RUNPATH_LDLAG is really a noop here
388    RUNPATH_LDFLAG="-L"
389    LDD="otool"
390    LDDFLAG="-L"
391    STRIPFLAGS="-u -i -S"
392    LOCK=
393    ;;
394 ppc64_macosx)
395    GCC_VERSION=`gcc -v 2>&1 | sed -n 's/gcc version //p' | sed -e 's/\([[^ ]]*\) .*/\1/'`
396    GCCLIBDIR=$(ls -d /usr/lib/gcc/powerpc*/$GCC_VERSION/ppc64 2>/dev/null)
397    if test $? -ne 0; then
398	GCCLIBDIR="."
399    fi
400    # this is needed to catch the case of empty GCCLIBDIR (David Dreisgmeyer)
401    if [ -z $GCCLIBDIR ]; then
402        GCCLIBDIR="."
403    fi
404    CFLAGS="-m64  -mmacosx-version-min=10.4 $CFLAGS"
405    LOCAL_FLAGS="-DD_LOAD -no-cpp-precomp -dynamic -m64"
406    OBJECT_SUFFIX=dylib
407    OBJECTS_SUFFIX=dylib
408    # these needed to be changed to build at SourceForge
409    #LDFLAGS="-Wl,-search_paths_first"
410    #DYNLDFLAGS="-dynamic -single_module -flat_namespace -search_paths_first -lgcc"
411    # It seems that PPC MacOSX have some problems linking that requires 
412    # libgcc to be linked in to define some undefined symbols, but the 
413    # method to do this varies with the OS versions:
414    # -lgcc (10.2)
415    # -lcc_dynamic (10.3? -- suggested on the web, but not tested by us)
416    # -L$GCCLIBDIR -lgcc (10.4), where $GCCLIBDIR is a directory in 
417    # /usr/lib/gcc, which the script tries to determine. The flag
418    # -arch_only ppc is also required, as the libgcc.a cannot be linked 
419    # for ppc64 or Intel
420    LDFLAGS="-m64"
421    DYNLDFLAGS="-dynamic -single_module -flat_namespace  -search_paths_first -L$GCCLIBDIR  -lgcc -arch_only ppc64"
422    LD_C_SO=""
423    PL_C_SO=".c.dylib:"
424    PD_C_SO="$LD_C_SO"
425    PL_O_SO=".o.dylib:"
426    PD_O_SO="$LD_C_SO"
427    DYLD="libtool"
428    DYLDCXX="libtool"
429    LDYLD="libtool -dynamic -L$GCCLIBDIR"
430    # LDTCL for loading Tcl/Tk, implemented as a Framework
431    #LDTCL="-framework tcl"
432    LDTCL=" -framework Tcl"
433    # -lSystemStubs needed for PPC MacOs X 10.4.9 we built on
434    LIBS="$LIBS -lSystemStubs"
435    RUNPATH_DYLDFLAG="-executable_path "
436    # RUNPATH_LDLAG is really a noop here
437    RUNPATH_LDFLAG="-L"
438    LDD="otool"
439    LDDFLAG="-L"
440    STRIPFLAGS="-u -i -S"
441    LOCK=
442    ;;
443 sun4)
444    LOCAL_FLAGS="-Dsun4_0 -DD_LOAD"
445    OPT_LDFLAGS="-Xlinker -x"
446    LDFLAGS="-static"
447    RUNPATH_LDFLAG="-L"
448    RUNPATH_DYLDFLAG="-L"
449
450    WANT_MPS=y
451    ;;
452 supersparc_sunos4)
453    CFLAGS="-msupersparc $CFLAGS"
454    LOCAL_FLAGS="-Dsun4_0 -DD_LOAD"
455    LDFLAGS="-Xlinker -Bstatic"
456    RUNPATH_LDFLAG="-L"
457    RUNPATH_DYLDFLAG="-L"
458
459    WANT_MPS=y
460    ;;
461 sparc_sunos5)
462    LOCAL_FLAGS="-DD_LOAD"
463    AC_DEFINE(SVR4)
464    OBJECT_SUFFIX=so
465    OBJECTS_SUFFIX=so
466    LD_C_SO="\$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -G \$< -o \$@"
467    PL_C_SO=".c.so:"
468    PD_C_SO="$LD_C_SO"
469    PL_O_SO=".o.so:"
470    PD_O_SO="$LD_C_SO"
471    WANT_MPS=y
472    # some bash shell set OSTYPE to solaris2.10
473    OSTYPE="solaris"
474    AC_DEFINE(HAVE_MAP_NORESERVE)
475    ;;
476 i386_sunos5)
477    CFLAGS="-m32 $CFLAGS"
478    LDFLAGS="-m32"
479    DYNLDFLAGS="-m32 -G"
480    LOCAL_FLAGS="-DD_LOAD"
481    AC_DEFINE(SVR4)
482    OBJECT_SUFFIX=so
483    OBJECTS_SUFFIX=so
484    LD_C_SO="\$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -G \$< -o \$@"
485    PL_C_SO=".c.so:"
486    PD_C_SO="$LD_C_SO"
487    PL_O_SO=".o.so:"
488    PD_O_SO="$LD_C_SO"
489    WANT_MPS=y
490    OSTYPE="solaris"
491    AC_DEFINE(HAVE_MAP_NORESERVE)
492    ;;
493 x86_64_sunos5)
494    CFLAGS="-m64 $CFLAGS"
495    LDFLAGS="-m64 "
496    DYNLDFLAGS="-m64 -shared"
497    LOCAL_FLAGS="-DD_LOAD"
498
499    AC_DEFINE(SVR4)
500    OBJECT_SUFFIX=so
501    OBJECTS_SUFFIX=so
502    LD_C_SO="\$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -shared \$< -o \$@"
503    PL_C_SO=".c.so:"
504    PD_C_SO="$LD_C_SO"
505    PL_O_SO=".o.so:"
506    PD_O_SO="$LD_C_SO"
507    WANT_MPS=y
508    AC_DEFINE(HAVE_MAP_NORESERVE)
509    ;;
510 alpha_linux)
511    LOCAL_FLAGS="-DD_LOAD"
512    FLOAT_ROUND_FLAGS="-mfp-rounding-mode=d"
513    CFLAGS="-mieee $CFLAGS"
514    OBJECT_SUFFIX=so
515    OBJECTS_SUFFIX=so
516    LD_C_SO="\$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -shared \$< -o \$@"
517    PL_C_SO=".c.so:"
518    PD_C_SO="$LD_C_SO"
519    PL_O_SO=".o.so:"
520    PD_O_SO="$LD_C_SO"
521    ;;
522 i386_linux)
523    OPTIMIZE="sh ../src/opt_i386_linux.sh"
524    LOCAL_FLAGS="-DD_LOAD"
525    OBJECT_SUFFIX=so
526    OBJECTS_SUFFIX=so
527    CFLAGS="-m32 $CFLAGS"
528    LDFLAGS="$LDFLAGS -m32"
529    DYNLDFLAGS="$DYNLDFLAGS -m32"
530    LD_C_SO="\$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -shared \$< -o \$@"
531    PL_C_SO=".c.so:"
532    PD_C_SO="$LD_C_SO"
533    PL_O_SO=".o.so:"
534    PD_O_SO="$LD_C_SO"
535    RUNPATH_LDFLAG="-Wl,-rpath "
536    RUNPATH_DYLDFLAG="-Wl,-rpath "
537    WANT_MPS=y
538    # the check for mman.h does not work in my linux release because
539    # of a compiler warning. The following fix fakes the cache value:
540    ac_cv_header_sys_mman_h=yes
541    # at least some i386 linux libcs have this bug:
542    AC_DEFINE(ATOF_NEGZERO_BUG)
543    # some bash shell set OSTYPE to gnu-linux
544    OSTYPE="linux"  
545    ;;
546 x86_64_linux)
547    OPTIMIZE="sh ../src/opt_i386_linux.sh"
548    LOCAL_FLAGS="-DD_LOAD"
549    OBJECT_SUFFIX=so
550    OBJECTS_SUFFIX=so
551    LD_C_SO="\$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -shared \$< -o \$@"
552    PL_C_SO=".c.so:"
553    PD_C_SO="$LD_C_SO"
554    PL_O_SO=".o.so:"
555    PD_O_SO="$LD_C_SO"
556    WANT_MPS=y
557    # some bash shell set OSTYPE to gnu-linux
558    OSTYPE="linux"  
559    ;;
560 armv7_linux)
561    LOCAL_FLAGS="-DD_LOAD"
562    OBJECT_SUFFIX=so
563    OBJECTS_SUFFIX=so
564    # char is unsigned in ARM
565    CFLAGS="-fsigned-char $CFLAGS"
566    LDFLAGS="$LDFLAGS"
567    DYNLDFLAGS="$DYNLDFLAGS"
568    LD_C_SO="\$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -shared \$< -o \$@"
569    PL_C_SO=".c.so:"
570    PD_C_SO="$LD_C_SO"
571    PL_O_SO=".o.so:"
572    PD_O_SO="$LD_C_SO"
573    RUNPATH_LDFLAG="-Wl,-rpath "
574    RUNPATH_DYLDFLAG="-Wl,-rpath "
575    # some bash shell set OSTYPE to gnu-linux
576    OSTYPE="linux"  
577    ;;
578 i386_nt)
579    ac_cv_func_select=yes
580    ac_cv_func_gethostname=yes
581    ac_cv_func_getpagesize=yes
582
583    OPTIMIZE="sh ../src/opt_i386_linux.sh"
584    LOCAL_FLAGS="-DREMOTE_TESTS"
585    OBJECT_SUFFIX=dll
586    OBJECTS_SUFFIX=dll
587    LIB_PREFIX=
588    DLIBDIR=bin
589    dnl wsock32 is for select(), gethostname() and sockets
590    dnl netapi32 is for the Netbios() function
591    LIBS="-lwsock32 -lnetapi32 $LIBS"
592    dnl Set to the oldest Windows version you want it to work on.
593    dnl 0x500=Win2000 - you may lose functionality if chosing an older version.
594    AC_DEFINE(HAVE_WIN32_WINNT, 0x500)
595    OSTYPE="win32"
596    OSCLASS="win"
597    JAVA_PATH_SEP=";"
598    ;;
599 x86_64_nt)
600    CFLAGS="$CFLAGS"
601    LOCAL_FLAGS="-DREMOTE_TESTS"
602    OBJECT_SUFFIX=dll
603    OBJECTS_SUFFIX=dll
604    LIB_PREFIX=
605    DLIBDIR=bin
606    DYLD="\$(CC)"
607    DYLDCXX="\$(CXX)"
608    dnl ws2_32 is for select(), gethostname() and sockets
609    dnl netapi32 is for the Netbios() function
610    LIBS="-lws2_32 -lnetapi32 $LIBS"
611    dnl Set to the oldest Windows version you want it to work on.
612    dnl 0x500=Win2000 - you may lose functionality if chosing an older version.
613    AC_DEFINE(HAVE_WIN32_WINNT, 0x500)
614    OSTYPE="win64"
615    OSCLASS="win"
616    JAVA_PATH_SEP=";"
617    ;;
618 i386_dynix3)
619    LOCAL_FLAGS="-DD_LOAD"
620    ;;
621 dec5000)
622    LOCAL_FLAGS="-DD_LOAD"
623    AC_DEFINE(REMOTE_TESTS)
624    ;;
625 alpha_osf32)
626    CFLAGS="-taso -Olimit 4500 -ieee_with_inexact $CFLAGS"
627    OPT_FLAGS_EMU=-O2
628    LDFLAGS=-taso
629    DYNLDFLAGS="-G -taso"
630    LOCAL_FLAGS="-DD_LOAD"
631    OBJECT_SUFFIX=so
632    OBJECTS_SUFFIX=so
633    LD_C_SO="\$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -shared \$< -o \$@"
634    PL_O_SO=".o.so:"
635    PD_O_SO="ld -shared \$< -o \$@"
636    DYLD = "\$(CC)"
637    DYLDCXX = "\$(CXX)"
638    LDYLD="\$CC -G -taso"
639    WANT_MPS=y
640    ;;
641 rs_aix32)
642    CFLAGS="-fsigned-char $CFLAGS"
643    OPT_FLAGS_EMU=" "
644    OPT_FLAGS_ARITH=" "
645    LOCAL_FLAGS="-DD_LOAD"
646    LDFLAGS="-Xlinker -bexport:../../Kernel/src/expsymtab"
647    AC_DEFINE(AIX)
648    AC_DEFINE(_BSD,44)
649    AC_DEFINE(_ALL_SOURCE)
650    AC_DEFINE(REMOTE_TESTS)
651    AC_DEFINE(SMALL_SPACE)
652    AC_DEFINE(STACK_BASE,0x30000000)
653    ;;
654 rs_aix32_cc)
655    CC=cc
656    CFLAGS="-qchars=signed $CFLAGS"
657    OPT_FLAGS_EMU=" "
658    OPT_FLAGS_ARITH=" "
659    LOCAL_FLAGS="-DD_LOAD"
660    LDFLAGS="-Wl,-bexport:../../Kernel/src/expsymtab"
661    AC_DEFINE(AIX)
662    AC_DEFINE(_BSD,44)
663    AC_DEFINE(_ALL_SOURCE)
664    AC_DEFINE(REMOTE_TESTS)
665    AC_DEFINE(SMALL_SPACE)
666    AC_DEFINE(STACK_BASE,0x30000000)
667    ;;
668 rs_aix41)
669    CFLAGS="-fsigned-char $CFLAGS"
670    OPT_FLAGS_EMU=" "
671    OPT_FLAGS_ARITH=" "
672    LOCAL_FLAGS="-DD_LOAD"
673    LDFLAGS="-Xlinker -bexport:../../Kernel/src/expsymtab"
674    AC_DEFINE(AIX)
675    AC_DEFINE(_BSD,44)
676    AC_DEFINE(_ALL_SOURCE)
677    AC_DEFINE(REMOTE_TESTS)
678    AC_DEFINE(SMALL_SPACE)
679    ;;
680 hp700_ux90)
681    LOCAL_FLAGS="-DD_LOAD"
682    LIBS="-L/lib/pa1.1 $LIBS"
683    LDFLAGS="-Xlinker -a -Xlinker archive"
684    AC_DEFINE(SVR4)
685    AC_DEFINE(REMOTE_TESTS)
686    ;;
687 spp_ux90)
688    LOCAL_FLAGS="-DD_LOAD"
689    LIBS="-L/lib/pa1.1 $LIBS"
690    LDFLAGS="-Xlinker -a -Xlinker archive"
691    AC_DEFINE(SVR4)
692    AC_DEFINE(REMOTE_TESTS)
693    ;;
694 sgi_irix52)
695    CFLAGS="-signed -Olimit 4300 -mips2 $CFLAGS"
696    LOCAL_FLAGS="-DD_LOAD"
697    AC_DEFINE(SVR4)
698    OBJECT_SUFFIX=so
699    OBJECTS_SUFFIX=so
700    LL_C_SO=""
701    LD_C_SO=""
702    PL_O_SO=".o.so:"
703    PD_O_SO="ld -shared \$< -o \$@"
704    DYLD="ld"
705    DYLDCXX="ld"
706    LDYLD="ld -shared"
707    WANT_MPS=y
708    ;;
709 next_mach)
710    LOCAL_FLAGS="-DNO_SAVE"
711    AC_DEFINE(REMOTE_TESTS)
712    ;;
713 m88k_svr4)
714    OPT_FLAGS_EMU=-O
715    LOCAL_FLAGS="-DD_LOAD -DGETTIME1"
716    SYSLIBS="-ltermcap $SYSLIBS"
717    AC_DEFINE(REMOTE_TESTS)
718    AC_DEFINE(SVR4)
719#    BUILDO=so		# problems with the dynamic linker
720    OBJECT_SUFFIX=so
721    OBJECTS_SUFFIX=so
722    LD_C_SO="\$(CC) \$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -shared \$< -o \$@"
723    PL_C_SO=".c.so:"
724    PD_C_SO="$LD_C_SO"
725    PL_O_SO=".o.so:"
726    PD_O_SO="$LD_C_SO"
727    DYNLDFLAGS="\$(OPT_FLAGS) \$(CFLAGS) \$(CPPFLAGS) -shared"
728    WANT_MPS=y
729    # FIND_X is buggy, but not path is needed, so the default one will do
730    x_libraries=/usr/lib
731    ;;
732 *)
733    echo $ARCH:Unknown architecture
734    exit
735    ;;
736esac
737
738
739if test -z "$OSTYPE"; then
740   AC_MSG_ERROR([Unable to determine OSTYPE])
741else
742   if test "$host" != "$build"; then
743      # if cross-compiling, should not be using the shell's OSTYPE
744      if test "$origostype" == "$OSTYPE"; then
745          AC_MSG_ERROR([OSTYPE not set for cross-compile]) 
746      fi
747   fi
748   AC_MSG_NOTICE([OSTYPE is $OSTYPE])
749fi
750
751#----------------------------------------------------------------------
752# checks for programs
753#----------------------------------------------------------------------
754
755if test -z "$CFLAGS"; then
756    # stop AC_PROG_CC from initialising CFLAGS
757    CFLAGS=" "
758fi
759
760if test -z "$DYLD"; then
761    DYLD="\$(CC)"
762    DYLDCXX="\$(CXX)"
763    LDYLD="\$CC -shared"
764fi
765
766if test -z "$LDD"; then
767    LDD="ldd"
768    LDDFLAG=
769fi
770
771# Find compiler, also sets OBJEXT and EXEEXT
772AC_PROG_CC
773AC_PROG_CPP
774AC_PROG_CXX
775AC_PROG_CXXCPP
776AC_PROG_AWK
777AC_PATH_PROG(AR,ar,ar,[$PATH:/usr/ccs/bin])
778AC_PROG_RANLIB
779AC_PROG_LN_S
780AC_CHECK_PROG(SED,sed,sed,false)
781AC_CHECK_TOOL([STRIP],[strip])
782
783# Compiler characteristics
784
785AC_C_CONST
786AC_C_INLINE
787AC_C_VOLATILE
788AC_C_BIGENDIAN
789AC_C_CHAR_UNSIGNED
790AC_CHECK_SIZEOF(int,4)
791AC_CHECK_SIZEOF(long,4)
792AC_CHECK_SIZEOF(char *,4)
793AC_CHECK_SIZEOF(long *,4)
794
795AC_CHECK_TYPES([long long, __int64])
796
797dnl -fstrict-overflow breaks some code that does integer overflow detection
798dnl but the option is only present starting from gcc 4.2
799dnl gcc 4.1 does not have the flag, but the strict-overflow optimisation
800dnl still seem to be done for some platforms (e.g. i386_linux)
801AC_MSG_CHECKING(for version-dependent compiler options)
802SAVED_CFLAGS="$CFLAGS"
803CFLAGS="$CFLAGS -fno-strict-overflow"
804AC_TRY_COMPILE([] , [return 0;],
805    [AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
806    CFLAGS="$SAVED_CFLAGS" 
807    AC_DEFINE(MAY_HAVE_STRICT_OVERFLOW)])
808
809
810dnl Check for void pointers
811AC_CACHE_CHECK(for void pointer, ec_cv_c_void_p,
812    AC_TRY_COMPILE([] , [void *p;],
813	ec_cv_c_void_p=yes, ec_cv_c_void_p=no))
814if test "$ec_cv_c_void_p" = no; then
815    AC_DEFINE(HAVE_NO_VOID_PTR)
816fi
817
818
819AC_CHECK_FUNC(__fpu_control, [], [AC_CHECK_LIB(ieee,main)])
820AC_CHECK_LIB(dl,dlopen)
821AC_CHECK_LIB(nsl,main)
822AC_CHECK_LIB(socket,socket)
823
824# LDFLAGS is used when linking executables
825# Check to see if we can include GNU linker's specific flags:
826# --export-dynamic replaces obsolete -rdynamic option
827# It is only meaningful when linking an executable, and makes executable's
828# symbols visible in the dynamic symbol table (which would otherwise only
829# contain symbols exported from dynamically linked libraries). It is
830# probably only useful when making a statically linked eclipse, rather
831# than one using libeclipse.so, but probably doesn't hurt otherwise.
832AC_MSG_CHECKING(for version-dependent linker options)
833SAVED_LDFLAGS="$LDFLAGS"
834LDFLAGS="-Wl,--export-dynamic $LDFLAGS"
835AC_LINK_IFELSE([AC_LANG_PROGRAM([],[return0;])], 
836	[AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) 
837	LDFLAGS="$SAVED_LDFLAGS"])
838
839#----------------------------------------------------------------------
840# The --enable-debug option
841#----------------------------------------------------------------------
842AC_ARG_ENABLE(debug,
843	[  --enable-debug          compile with debugging features (ARG=opt for debugging optimised code)],
844	AC_MSG_RESULT(Configuring for debug=$enable_debug)
845	[if test "x$enable_debug" != "xopt"; then 
846	    [OPTIMIZE=cp OPT_FLAGS_EMU=-g OPT_FLAGS_ARITH=-g OPT_FLAGS=-g LOCAL_FLAGS="$LOCAL_FLAGS -DPRINTAM"]
847         else
848	    [OPTIMIZE=cp OPT_FLAGS_EMU="$OPTDBG_FLAGS_EMU -g" OPT_FLAGS_ARITH="$OPT_FLAGS_ARITH -g" OPT_FLAGS="$OPTDBG_FLAGS -g" LOCAL_FLAGS="$LOCAL_FLAGS -DPRINTAM"]
849        fi],
850	[NICE=nice LDFLAGS="$OPT_LDFLAGS $LDFLAGS" LOCAL_FLAGS="$LOCAL_FLAGS $OPT_LOCAL_FLAGS"]
851)
852
853if test -z "$OPT_FLAGS_EMU"; then
854	OPT_FLAGS_EMU="$OPT_FLAGS"
855fi
856if test -z "$OPT_FLAGS_ARITH"; then
857	OPT_FLAGS_ARITH="$OPT_FLAGS"
858fi
859
860#----------------------------------------------------------------------
861# The --with-readline option
862#----------------------------------------------------------------------
863#AC_ARG_WITH(readline,
864#	[  --with-readline         support fancy command line editing],
865#	LOCAL_FLAGS="$LOCAL_FLAGS -DHAVE_READLINE" SYSLIBS="-lreadline -lhistory -ltermcap $SYSLIBS",
866#	[])
867
868
869AC_DEFINE_UNQUOTED(OBJECT_SUFFIX_STRING, "$OBJECT_SUFFIX")
870AC_DEFINE_UNQUOTED(VIRTUAL_HEAP_DEFAULT, $VIRTUAL_HEAP_DEFAULT)
871AC_DEFINE_UNQUOTED(VIRTUAL_SHARED_DEFAULT, $VIRTUAL_SHARED_DEFAULT)
872AC_DEFINE_UNQUOTED(VIRTUAL_LOCAL_STACK_DEFAULT, $VIRTUAL_LOCAL_STACK_DEFAULT)
873AC_DEFINE_UNQUOTED(VIRTUAL_GLOBAL_STACK_DEFAULT, $VIRTUAL_GLOBAL_STACK_DEFAULT)
874AC_DEFINE_UNQUOTED(SHARED_MEM_OFFSET_HEAP, $SHARED_MEM_OFFSET_HEAP)
875
876#----------------------------------------------------------------------
877# Programs
878#----------------------------------------------------------------------
879
880echo checking how to process .S files
881rm -f conftest*
882cat > conftest.S <<EOF
883#include "confdefs.h"
884l:
885EOF
886/bin/cp conftest.S conftest1.S
887err=`eval "($CC -c -I. -I../include conftest.S >/dev/null) 2>&1"`
888if test -z "$err" && test -f conftest.o; then
889  S_TO_O='$(CC) $(CPPFLAGS) $(CFLAGS) -c $<'
890else
891  rm -f conftest.o
892  /bin/cp conftest1.S conftest.S
893  err=`eval "(/lib/cpp -P -I. -I../include conftest.S >conftest.s;$CC -c conftest.s) 2>&1"`
894  if test -z "$err"; then
895    S_TO_O='/lib/cpp $(CPPFLAGS) -P $< > $*.s; $(CC) $(CFLAGS) -c $*.s'
896  else
897    rm -f conftest.o
898    err=`eval "($CC -E -P -I. -I../include conftest.S >conftest.s; $CC -c conftest.s) 2>&1"`
899    if test -z "$err"; then
900      S_TO_O='$(CC) $(CPPFLAGS) -E -P $< > $*.s; $(CC) $(CFLAGS) -c $*.s'
901    else
902	rm -f conftest.o
903	err=`eval "($CC -E -I. -I../include conftest.S >conftest.s; $CC -c conftest.s) 2>&1"`
904	if test -z "$err"; then
905	  S_TO_O='$(CC) $(CPPFLAGS) -E $< > $*.s; $(CC) $(CFLAGS) -c $*.s'
906	else
907	  echo "...I have found no way to process the .S files"
908	fi
909    fi
910  fi
911fi
912rm -f conftest*
913test -n "$verbose" && echo "	.S will be processed by $S_TO_O"
914
915
916#----------------------------------------------------------------------
917# Header files
918#----------------------------------------------------------------------
919dnl Check how to read a directory
920AC_HEADER_DIRENT
921dnl Check for ANSI C header files and string operations
922AC_HEADER_STDC
923AC_CHECKING(access types)
924AC_TRY_COMPILE([#include <unistd.h>], [
925    (void) access("/", R_OK);
926    ], AC_DEFINE(ACCESS_IN_UNISTD))
927dnl Check if sbrk is declared in unistd.h
928AC_EGREP_HEADER(sbrk, [unistd.h],, AC_DEFINE(SBRK_UNDEF))
929AC_EGREP_HEADER(gethostid, [unistd.h],, AC_DEFINE(GETHOSTID_UNDEF))
930AC_EGREP_HEADER(strtol, [unistd.h],, AC_DEFINE(STRTOL_UNDEF))
931AC_EGREP_HEADER(memcpy, [string.h], AC_DEFINE(MEMCPY_STRING),
932    AC_EGREP_HEADER(memcpy, [memory.h],AC_DEFINE(MEMCPY_MEMORY),))
933AC_EGREP_HEADER(PATH_MAX, limits.h, AC_DEFINE(PATH_IN_LIMITS))
934
935AC_CHECK_HEADERS(ctype.h memory.h string.h unistd.h sys/mman.h sys/param.h \
936		sys/systeminfo.h sys/utsname.h netdb.h fenv.h fpu_control.h \
937		fcntl.h limits.h windows.h)
938
939
940#
941# Typedefs
942#
943dnl Check for off_t
944AC_TYPE_OFF_T
945dnl Check for pid_t
946AC_TYPE_PID_T
947dnl Check the return type of the signal handler function
948AC_TYPE_SIGNAL
949dnl Check size_t
950AC_TYPE_SIZE_T
951
952#----------------------------------------------------------------------
953# Library functions
954#----------------------------------------------------------------------
955dnl AC_FUNC_VFORK - this seems too strong for our purposes - bad on Solaris 2.x
956AC_CHECK_FUNC(vfork, , AC_DEFINE(vfork, fork) echo "...No vfork available")
957AC_CHECK_FUNCS(strerror bcopy memcpy memmove gethrtime localtime_r)
958AC_CHECK_FUNCS(getcwd gethostid uname getrusage getwd random)
959AC_CHECK_FUNCS(sigvec sigstack siginterrupt)
960AC_CHECK_FUNCS(sigaction sigaltstack sigprocmask)
961AC_CHECK_FUNCS(setsid sysconf sysinfo tcgetattr times)
962AC_CHECK_FUNCS(finite isinf isnan sincos)
963AC_CHECK_FUNC(alarm, AC_DEFINE(HAVE_ALARM), echo "...Alarm not found")
964AC_CHECK_FUNC(pipe, AC_DEFINE(HAVE_PIPE), echo "...No pipes available")
965AC_CHECK_FUNC(rename, AC_DEFINE(HAVE_RENAME), echo "...Rename not found")
966AC_CHECK_FUNC(setitimer, AC_DEFINE(HAVE_SETITIMER), echo "...Setitimer not found")
967AC_CHECK_FUNC(putenv, AC_DEFINE(HAVE_PUTENV), echo "...Putenv not found")
968AC_CHECK_FUNC(sleep, AC_DEFINE(HAVE_SLEEP), echo "...Sleep not found")
969AC_CHECK_FUNC(vsprintf, AC_DEFINE(HAVE_VARARGS), echo "...Vsprintf not found")
970AC_CHECK_FUNCS(vsprintf vsnprintf)
971AC_CHECK_FUNCS(fpsetround ieee_flags)
972AC_CHECK_FUNCS(realpath)
973
974dnl The following require wsock32 on Windows, and the check doesn't work:
975dnl this doesn't work: AC_SEARCH_LIBS(select, wsock32)
976dnl this doesn't work: AC_SEARCH_LIBS(gethostname, wsock32)
977AC_CHECK_FUNCS(select gethostname)
978
979AC_FUNC_MMAP
980
981AC_MSG_CHECKING([for pow(zero,neg) bug])
982AC_RUN_IFELSE([AC_LANG_PROGRAM([[
983#include <math.h>
984double (*ppow)(double,double) = pow;
985]],[[
986return (*ppow)(0.0,-2.0) < 0.0 ? 0 : 1;
987]])],
988[AC_MSG_RESULT(yes)
989 AC_DEFINE(HAVE_POW_ZERO_NEG_BUG)],
990[AC_MSG_RESULT(no)],
991[AC_MSG_RESULT(maybe)]
992)
993
994AC_MSG_CHECKING(for working rint)
995AC_RUN_IFELSE([AC_LANG_PROGRAM([[
996#include <math.h>
997double (*print)(double) = rint;
998]],[[
999exit((int) (*print)(0.2));
1000]])],
1001[AC_MSG_RESULT(yes)
1002 AC_DEFINE(HAVE_RINT)],
1003[AC_MSG_RESULT(no)],
1004[AC_MSG_RESULT(maybe)
1005 AC_CHECK_FUNC(rint, AC_DEFINE(HAVE_RINT))]
1006)
1007
1008AC_MSG_CHECKING(for working trunc)
1009AC_RUN_IFELSE([AC_LANG_PROGRAM([[
1010#include <math.h>
1011double (*ptrunc)(double) = trunc;
1012]],[[
1013exit(1.0 == (*ptrunc)(1.6) ? 0 : 1);
1014]])],
1015[ if test "$ARCH" != "i386_macosx"; then
1016    AC_MSG_RESULT(yes) 
1017    AC_DEFINE(HAVE_TRUNC)
1018  else
1019    # Intel Mac OS X (10.4) has buggy trunc (>-1.0,<-0.0 gives 0.0)
1020    AC_MSG_RESULT(no)
1021  fi],
1022[AC_MSG_RESULT(no)],
1023[AC_MSG_RESULT(maybe)
1024 AC_CHECK_FUNC(trunc, AC_DEFINE(HAVE_TRUNC))]
1025)
1026
1027AC_CACHE_CHECK(whether sprintf returns length, ec_cv_func_sprintf,
1028    AC_TRY_RUN([
1029#include <stdio.h>
1030int main() {char buf; exit(sprintf(&buf,""));}
1031], ec_cv_func_sprintf=yes, ec_cv_func_sprintf=no, ec_cv_func_sprintf=yes))
1032if test "$ec_cv_func_sprintf" = yes; then
1033    AC_DEFINE(SPRINTF_RETURNS_LENGTH)
1034fi
1035
1036AC_COMPILE_CHECK(fstat, [#include <sys/stat.h>], [
1037struct stat buf;
1038(void) fstat(0, &buf);
1039], AC_DEFINE(HAVE_FSTAT), echo "...Fstat not found")
1040
1041AC_COMPILE_CHECK(svr4 dynamic loading, [#include <dlfcn.h>], [
1042(void) dlopen("/", 0);
1043], AC_DEFINE(HAVE_DLOPEN))
1044
1045AC_CHECK_HEADERS(mach-o/dyld.h)
1046
1047AC_COMPILE_CHECK(nlist, [#include <nlist.h>], [
1048struct nlist nl;
1049(void) nlist("/", &nl);
1050], AC_DEFINE(HAVE_NLIST))
1051
1052echo checking for sgihrclock
1053AC_TRY_RUN([
1054#include <sys/types.h>
1055#include <sys/syssgi.h>
1056#include <sys/immu.h>
1057#include <errno.h>
1058
1059main()
1060{
1061__psunsigned_t cycleval;
1062if(syssgi(SGI_QUERY_CYCLECNTR, &cycleval) == -1
1063   && errno == ENODEV)
1064	exit(-1);
1065}], AC_DEFINE(HAVE_SGIHRCLOCK,1), :,:)
1066
1067dnl The ':' arguments are to say do nothing in these cases
1068
1069echo checking for sgi64bitclock
1070AC_TRY_RUN([
1071#include <sys/types.h>
1072#include <fcntl.h>
1073#include <sys/mman.h>
1074#include <sys/syssgi.h>
1075#include <sys/immu.h>
1076#include <errno.h>
1077
1078typedef unsigned long long iotimer_t;
1079
1080main()
1081{
1082__psunsigned_t phys_addr, raddr, cycleval;
1083volatile iotimer_t start_value, *iotimer_addr;
1084int fd, poffmask;
1085poffmask = getpagesize() - 1;
1086if((phys_addr = syssgi(SGI_QUERY_CYCLECNTR, &cycleval)) == -1
1087   && errno == ENODEV)
1088	exit(-1);
1089raddr = phys_addr & ~poffmask;
1090fd = open("/dev/mmem", O_RDONLY);
1091iotimer_addr = (volatile iotimer_t *)mmap(0, poffmask, PROT_READ,
1092					    MAP_PRIVATE, fd, (__psint_t)raddr);
1093iotimer_addr = (iotimer_t *)((__psunsigned_t)iotimer_addr + (phys_addr & poffmask));
1094start_value = *iotimer_addr;
1095}], AC_DEFINE(HAVE_SGI64BITCLOCK,1), :,:)
1096
1097#
1098# Structures
1099#
1100dnl Check if struct stat contains st_blksize
1101AC_STRUCT_ST_BLKSIZE
1102
1103AC_COMPILE_CHECK([n_un in struct nlist],
1104[#include <a.out.h>] , [struct nlist n; n.n_un.n_name;],
1105AC_DEFINE(N_NAME, n_un.n_name), AC_DEFINE(N_NAME, n_name))
1106
1107
1108#----------------------------------------------------------------------
1109# System services
1110#----------------------------------------------------------------------
1111
1112dnl Check for /dev/zero
1113AC_CACHE_CHECK(for /dev/zero, ec_cv_dev_zero,
1114    if test -r /dev/zero; then ec_cv_dev_zero=yes; else ec_cv_dev_zero=no; fi)
1115if test "$ec_cv_dev_zero" = yes; then
1116    AC_DEFINE(HAVE_DEV_ZERO)
1117fi
1118
1119echo "checking if times() returns elapsed real time"
1120AC_TRY_RUN([#include <sys/types.h>
1121#include <sys/times.h>
1122int main() {
1123struct tms buf;
1124exit( times(&buf) ? 1:0 );}], AC_DEFINE(BSD_TIMES),:,:)
1125AC_CHECK_PROG(UPT, uptime, uptime, '')
1126AC_DEFINE_UNQUOTED(UPTIME, $UPT)
1127
1128echo check if we can limit cputime
1129check="/bin/csh -c 'limit cputime 10' >/dev/null 2>&1"
1130if eval $check; then
1131    AC_DEFINE(HAVE_CPU_LIMIT)
1132fi
1133
1134#
1135# Check how to get the page size
1136#
1137AC_COMPILE_CHECK(getpagesize, [], [
1138(void) getpagesize();
1139], AC_DEFINE(HAVE_GETPAGESIZE) vpage=1)
1140if test -z "$vpage"; then
1141#SVR4
1142AC_COMPILE_CHECK(sysconf1, [#include <unistd.h>], [
1143(void) sysconf(_SC_PAGESIZE);
1144], AC_DEFINE(SYSCONF_PAGE, _SC_PAGESIZE) vpage=1)
1145fi
1146if test -z "$vpage"; then
1147#AIX
1148AC_COMPILE_CHECK(sysconf2, [#include <unistd.h>], [
1149(void) sysconf(_SC_PAGE_SIZE);
1150], AC_DEFINE(SYSCONF_PAGE, _SC_PAGE_SIZE) vpage=1)
1151fi
1152if test -z "$vpage"; then
1153    echo "...don't know how to get the page size, using 4096"
1154fi
1155
1156#
1157# Check if we can get a signal when data is ready
1158#
1159# BSD
1160AC_CACHE_CHECK(for bsd_sigio, ec_cv_sys_bsd_sigio,
1161AC_COMPILE_CHECK(, [#include <sys/types.h>
1162#include <unistd.h>
1163#include <fcntl.h>], [
1164int i, fd;
1165(void) fcntl(fd, F_SETOWN, getpid());
1166i = fcntl(fd, F_GETFL, 0);
1167(void) fcntl(fd, F_SETFL, i | FASYNC);
1168], ec_cv_sys_bsd_sigio=yes, ec_cv_sys_bsd_sigio=no))
1169
1170#HP-UX
1171AC_CACHE_CHECK(for hp_ux_sigio, ec_cv_sys_hp_ux_sigio,
1172AC_COMPILE_CHECK(, [#include <sys/types.h>
1173#include <sys/ioctl.h>], [
1174int i, fd, pid;
1175pid = (int) getpid();
1176(void) ioctl(fd, SIOCSPGRP, &pid);
1177i = 1;
1178(void) ioctl(fd, FIOASYNC, &i);
1179], ec_cv_sys_hp_ux_sigio=yes, ec_cv_sys_hp_ux_sigio=no))
1180
1181#SVR4
1182AC_CACHE_CHECK(for sigpoll, ec_cv_sys_sigpoll,
1183AC_COMPILE_CHECK(, [#include <sys/types.h>
1184#include <stropts.h>
1185#include <sys/conf.h>], [
1186int i, fd;
1187i = ioctl(fd, I_SETSIG, S_RDNORM|S_RDBAND|S_HIPRI|S_BANDURG);
1188], ec_cv_sys_sigpoll=yes, ec_cv_sys_sigpoll=no))
1189
1190if test "$ec_cv_sys_bsd_sigio" = yes; then
1191    AC_DEFINE(SIGIO_FASYNC)
1192elif test "$ec_cv_sys_hp_ux_sigio" = yes; then
1193    AC_DEFINE(SIGIO_FIOASYNC)
1194elif test "$ec_cv_sys_sigpoll" = yes; then
1195    AC_DEFINE(SIGIO_SETSIG)
1196else
1197    echo "...SIGIO not available"
1198fi
1199
1200#
1201# Check if the signal action is reset to SIG_DLF before entering the handler
1202#
1203echo checking if signal action is reset before entering the handler
1204AC_TRY_RUN([#include <signal.h>
1205handler (n) {exit signal(n, SIG_IGN) == SIG_DFL;}
1206main () {
1207signal (SIGINT, handler);
1208kill (getppid (), SIGINT);
1209}
1210], AC_DEFINE(HANDLER_RESET),:,:)
1211
1212#
1213# Check if mprotect can be used to test for an area already allocated
1214#
1215echo checking if mprotect can be used to check for allocated pages
1216AC_TRY_RUN([#include	<sys/types.h>
1217#include	<sys/mman.h>
1218#include	<errno.h>
1219main () {
1220return !(mprotect((char *) 0x3bffc000, 16384, PROT_READ|PROT_WRITE) == -1 &&
1221	errno == ENOMEM);
1222}
1223], AC_DEFINE(HAVE_MPROTECT), echo "...mprotect does not work",
1224echo "...mprotect not tested")
1225
1226#
1227# Terminal I/O
1228#
1229AC_COMPILE_CHECK(termio, [#include <termio.h>], [
1230struct termio   rawbuf;
1231int		fd;
1232rawbuf.c_iflag = tbuf->c_iflag & ~(INLCR | ICRNL);
1233(void) ioctl(fd, TCGETA, &rawbuf);
1234], AC_DEFINE(TERMIO_SYS_V_STYLE))
1235
1236AC_TRY_RUN([#include <termio.h>
1237int main() {
1238char	c = '\n';
1239int res = ioctl(0, TIOCSTI, &c);
1240if (res == 0) read(0, &c, 1);
1241return res;}
1242], AC_DEFINE(HAVE_PUSHBACK), :, :)
1243
1244
1245AC_DEFINE(SOCKETS)
1246
1247AC_CHECK_HEADER([sys/un.h], AC_DEFINE(HAVE_AF_UNIX), [])
1248
1249
1250dnl Check if we can get Ethernet Adapter Address 
1251AC_CACHE_CHECK(if we can get Ethernet Adapter Address, ec_cv_siocgifhwaddr,
1252    AC_TRY_COMPILE([#include <sys/ioctl.h>
1253#include <net/if.h>], [
1254	int fd;
1255	struct ifreq req;
1256	(void) ioctl(fd, SIOCGIFHWADDR, &req);
1257	],
1258	ec_cv_siocgifhwaddr=yes, ec_cv_siocgifhwaddr=no))
1259
1260if test "$ec_cv_siocgifhwaddr" = yes; then
1261    AC_DEFINE(HAVE_SIOCGIFHWADDR)
1262fi
1263
1264
1265dnl Check if we can access registers from within a signal handler
1266AC_CACHE_CHECK(if we can access registers from within a signal handler, ec_cv_ucontextgregs,
1267    AC_TRY_COMPILE([#include <signal.h>
1268#include <ucontext.h>], [[
1269	ucontext_t ctx;
1270	greg_t x = ctx.uc_mcontext.gregs[0];
1271	]],
1272	ec_cv_ucontextgregs=yes, ec_cv_ucontextgregs=no))
1273
1274if test "$ec_cv_ucontextgregs" = yes; then
1275    AC_DEFINE(HAVE_UCONTEXTGREGS)
1276fi
1277
1278#----------------------------------------------------------------------
1279# Linking libstdc++ 
1280#----------------------------------------------------------------------
1281
1282dnl Did not find a way of doing this test in a less low-level way:
1283dnl try to link stdc++ statically into a shared library 
1284AC_MSG_CHECKING(test whether we can statically link lstdc++ into a shared library)
1285rm -f conftest.cc conftest.o conftest.so
1286cat > conftest.cc <<EOF
1287#include "confdefs.h"
1288#include <iostream>
1289void p(void) { std::cout << "hello"; }
1290EOF
1291
1292$CXX $CPPFLAGS $CFLAGS -c conftest.cc
1293STDCXXLIB="-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic"
1294if $CC $DYNLDFLAGS -o conftest.so conftest.o $STDCXXLIB >/dev/null 2>&1; then
1295    AC_MSG_RESULT(yes)
1296else
1297    STDCXXLIB="-lstdc++"
1298    AC_MSG_RESULT(no)
1299fi
1300rm -f conftest.cc conftest.o conftest.so
1301
1302
1303#----------------------------------------------------------------------
1304# Check for various third party components
1305#----------------------------------------------------------------------
1306
1307ECLIPSETHIRDPARTY=${ECLIPSETHIRDPARTY:-"/vol/Eclipse/thirdparty"}
1308
1309
1310#----------
1311# TCL
1312#----------
1313
1314
1315AC_ARG_WITH([tcl], [[  --without-tcl
1316			Build ECLiPSe without the tkeclipse development
1317			environment and without the Tcl/Tk interface
1318			(not recommended).
1319    ]],
1320    [tcl_requested="$withval"], [tcl_requested=yes])
1321
1322if test "$tcl_requested" = "yes"; then
1323
1324    TCL_REQUIRED="8.5 8.4 8.3"
1325
1326    if test "$OSCLASS" != "win" ; then
1327	dnl find X includes and libraries
1328	AC_PATH_X
1329	if test ! -z "$x_libraries"; then
1330	    GRAPHLIBS="-L$x_libraries -lX11 $GRAPHLIBS"
1331	else
1332	    GRAPHLIBS="-lX11 $GRAPHLIBS"
1333	fi
1334	if test ! -z "$x_includes"; then
1335	    OS_INCLUDES="-I$x_includes $OS_INCLUDES"
1336	fi
1337    fi
1338    found_tcl=
1339    for TCL_VERSION in $TCL_REQUIRED; do
1340	if test "$OSCLASS" != "win"; then
1341	    tcl_lib_version=$TCL_VERSION
1342	else
1343	    tcl_lib_version=`echo $TCL_VERSION|tr -d .`
1344	fi
1345	# look in thirdparty directory first
1346	TCL_ARCH_DIR="$ECLIPSETHIRDPARTY/tcltk$TCL_VERSION/$ARCH"
1347	if test -d "$TCL_ARCH_DIR/lib" ; then
1348	    found_tcl=yes
1349	    TCL_DIR="$TCL_ARCH_DIR"
1350	    TCL_INCL_DIR="$TCL_DIR/include"
1351	    break
1352	fi
1353	# check in standard locations
1354	if test "$OSCLASS" = "win"; then
1355	    TCL_DIR="$PROGRAMFILES/Tcl"
1356	    if test -d "$TCL_DIR/lib/tcl$TCL_VERSION" ; then
1357		found_tcl=yes
1358		TCL_ARCH_DIR="$TCL_DIR"
1359		TCL_INCL_DIR="$TCL_DIR/include"
1360		break
1361	    fi
1362	else
1363	    TCL_DIRS="/usr /usr/local"
1364	    for TCL_DIR in $TCL_DIRS; do
1365		if test -d "$TCL_DIR/lib/tcl$TCL_VERSION" ; then
1366		    found_tcl=yes
1367		    TCL_ARCH_DIR="$TCL_DIR"
1368		    TCL_INCL_DIR="$TCL_DIR/include/tcl$TCL_VERSION"
1369		    GRAPHLIBS="-L$TCL_ARCH_DIR/lib -ltcl$tcl_lib_version -ltk$tcl_lib_version $GRAPHLIBS"
1370		    break
1371		fi
1372	    done
1373	    if test -n "$found_tcl"; then
1374		break
1375	    fi 
1376	fi
1377    done
1378    if test -z "$found_tcl"; then
1379	AC_MSG_WARN([Could not find usable Tcl ($TCL_REQUIRED) in $ECLIPSETHIRDPARTY or elsewhere])
1380	BUILD_WITH_TCL="no"
1381    else
1382	AC_MSG_NOTICE([Using Tcl $TCL_VERSION in $TCL_DIR])
1383	AC_DEFINE(HAVE_TCL)
1384	AC_DEFINE(HAVE_TK)
1385	GRAPHLIBS="-L\"$TCL_ARCH_DIR/lib\" -ltcl$tcl_lib_version -ltk$tcl_lib_version $GRAPHLIBS"
1386	OS_INCLUDES="-I\"$TCL_INCL_DIR\" $OS_INCLUDES"
1387	BUILD_WITH_TCL="yes"
1388    fi
1389
1390else
1391    AC_MSG_WARN([Not building any components that need Tcl/Tk])
1392fi
1393
1394
1395#----------
1396# PTHREADS
1397#----------
1398
1399AC_ARG_WITH([pthreads], [[  --without-pthreads
1400			Build ECLiPSe without using pthreads.
1401    ]],
1402    [pthreads_requested="$withval"], [pthreads_requested=yes])
1403
1404if test "$pthreads_requested" = "yes"; then
1405    AC_CHECK_HEADERS(pthread.h)
1406    AC_CHECK_LIB(pthread,pthread_create)
1407else
1408    AC_MSG_NOTICE([Not using pthreads])
1409fi
1410
1411
1412#----------
1413# GMP
1414#----------
1415
1416AC_ARG_WITH([gmp], [[  --without-gmp
1417			Build ECLiPSe without bignum/rational support.
1418			(Not recommended - compiler will be restricted)
1419			Default is to try finding GMP to build this support.
1420    ]],
1421    [gmp_requested="$withval"], [gmp_requested=yes])
1422
1423if test "$gmp_requested" = "yes"; then
1424    GMP_REQUIRED="4.2 4.1"
1425    for gmp_version in $GMP_REQUIRED; do
1426	GMP_DIR=$ECLIPSETHIRDPARTY/gmp$gmp_version
1427	if test -d $GMP_DIR/$ARCH/lib; then
1428	    found_mp=gmp
1429	    AC_DEFINE(HAVE_LIBGMP)
1430	    if test -d "$GMP_DIR/$ARCH/include"; then
1431		OS_INCLUDES="-I$GMP_DIR/$ARCH/include $OS_INCLUDES"
1432	    else
1433		OS_INCLUDES="-I$GMP_DIR/include $OS_INCLUDES"
1434	    fi
1435	    GMP_LIBDIR="$GMP_DIR/$ARCH/lib"
1436	    if test "$ARCH" = "i386_nt"; then
1437		GMP_LIB="gmp33"
1438	    elif test "$ARCH" = "x86_64_nt"; then
1439		# mingw build has lib prefix unlike normal Windows dlls
1440		GMP_LIB="libgmp-3"
1441	    else
1442		GMP_LIB="gmp"
1443	    fi
1444	    GMP_LD="-L$GMP_LIBDIR -l$GMP_LIB"
1445            # MacOS X does not support -rpath until 10.5; so to run on
1446            # earlier Mac OS X, we link in static GMP for sepia
1447	    # executable to avoid setting DYLD_LIBRARY_PATH
1448	    if test "$ARCH" = "i386_macosx"; then
1449		GMP_EXE_LD="$GMP_LIBDIR/lib$GMP_LIB.a"
1450	    elif test "$ARCH" = "ppc_macosx"; then
1451		GMP_EXE_LD="$GMP_LIBDIR/lib$GMP_LIB.a"
1452	    elif test "$ARCH" = "x86_64_macosx"; then
1453		GMP_EXE_LD="$GMP_LIBDIR/lib$GMP_LIB.a"
1454	    else
1455		GMP_EXE_LD="$GMP_LD"
1456	    fi
1457	    INSTALL_GMP=install_gmp
1458	    break
1459	fi
1460    done
1461    if test -z "$found_mp"; then
1462        # try finding MPIR instead
1463	MPIR_REQUIRED="1.3.1"
1464    	for mpir_version in $MPIR_REQUIRED; do
1465	    MPIR_DIR=$ECLIPSETHIRDPARTY/mpir$mpir_version
1466	    if test -d $MPIR_DIR/$ARCH/lib; then
1467	        found_mp=mpir
1468	    	AC_DEFINE(HAVE_LIBGMP)
1469	    	AC_DEFINE(USING_MPIR)
1470	    	if test -d "$MPIR_DIR/$ARCH/include"; then
1471		    OS_INCLUDES="-I$MPIR_DIR/$ARCH/include $OS_INCLUDES"
1472	       	else
1473		    OS_INCLUDES="-I$MPIR_DIR/include $OS_INCLUDES"
1474	    	fi
1475	    	GMP_LIBDIR="$MPIR_DIR/$ARCH/lib"
1476		GMP_LIB="gmp"
1477	    	GMP_LD="-L$GMP_LIBDIR -l$GMP_LIB"
1478	        # MacOS X does not support -rpath until 10.5; so to run on
1479                # earlier Mac OS X, we link in static GMP for sepia
1480	        # executable to avoid setting DYLD_LIBRARY_PATH
1481		if test "$ARCH" = "i386_macosx"; then
1482		    GMP_EXE_LD="$GMP_LIBDIR/lib$GMP_LIB.a"
1483	        elif test "$ARCH" = "ppc_macosx"; then
1484		    GMP_EXE_LD="$GMP_LIBDIR/lib$GMP_LIB.a"
1485	        elif test "$ARCH" = "x86_64_macosx"; then
1486		    GMP_EXE_LD="$GMP_LIBDIR/lib$GMP_LIB.a"
1487	        else
1488		    GMP_EXE_LD="$GMP_LD"
1489	        fi
1490	    	INSTALL_GMP=install_gmp
1491		break
1492	    fi
1493	done
1494    fi	
1495    if test -z "$found_mp"; then
1496	AC_MSG_WARN([Could not find Gmp ($GMP_REQUIRED) in $ECLIPSETHIRDPARTY])
1497	# set to something, so we can use -R$(GMP_LIBDIR) without syntax error
1498	GMP_LIBDIR="."
1499
1500	# If we have nothing in ECLIPSETHIRDPARTY, try if it's a standard lib.
1501	# Defines only -lgmp and HAVE_LIBGMP, no attempts to package the gmp lib
1502	# with ECLiPSe.  Check for mpz_import to require a new enough version.
1503	AC_CHECK_LIB(gmp, __gmpz_import)
1504    elif test "$found_mp" = "gmp"; then
1505	AC_MSG_NOTICE([Using Gmp in $GMP_DIR])
1506    else		     
1507	AC_MSG_NOTICE([Using MPIR in $MPIR_DIR])
1508    fi
1509else
1510    AC_MSG_NOTICE([Not using Gmp, not building bignum/rational support])
1511    # set to something, so we can use -R$(GMP_LIBDIR) without syntax error
1512    GMP_LIBDIR="."
1513fi
1514
1515
1516#----------
1517# Osi
1518#----------
1519
1520AC_ARG_WITH([osi], [[  --with-osi[=versions]
1521			Build ECLiPSe interface to COIN-OR Osi.  You can
1522			optionally specify a version list, e.g. "clpcbc symclp".
1523			Default is to build all available versions.
1524    ]],
1525    [osi_versions_requested="$withval"], [osi_versions_requested=yes])
1526
1527OSIBASEDIR="$ECLIPSETHIRDPARTY/coin"
1528OSICLP_ADDLIB=""
1529OSICLP_ADDDEF=""
1530if test "$osi_versions_requested" != "no"; then
1531    if test "$osi_versions_requested" = "yes"; then
1532    	osi_versions_requested="clpcbc symclp"
1533    fi
1534    for version in $osi_versions_requested; do
1535	found_osi_version=
1536	dnl For backward compatibility, allow ${version}amd as well
1537	OSIDIRS="$OSIBASEDIR${version}amd $OSIBASEDIR$version"
1538	for OSIDIR in $OSIDIRS; do
1539	    if test -d "$OSIDIR/$ARCH/lib"; then
1540		found_osi_version=yes
1541		OSI_VERSIONS="$OSI_VERSIONS $version"
1542		AC_MSG_NOTICE([Using OSI $version in $OSIDIR])
1543		case $version in
1544		clpcbc) CLPCBCDIR="$OSIDIR" ;;
1545		symclp) SYMCLPDIR="$OSIDIR" ;;
1546		glpk)  OSIGLPKDIR="$OSIDIR" ;;
1547		esac
1548		ls -d $OSIDIR/$ARCH/lib/*amd* >/dev/null 2>/dev/null
1549		if test $? -eq 0; then
1550		     AC_MSG_NOTICE([Found AMD support for $version])
1551		     OSICLP_ADDLIB="-lamd"
1552		     OSICLP_ADDDEF="-DUFL_BARRIER"
1553		fi
1554		break
1555	    fi
1556	done
1557	if test -z "$found_osi_version"; then
1558	    AC_MSG_WARN([Could not find $ARCH support for $version in $OSIDIRS])
1559	fi
1560    done
1561fi
1562if test -n "$OSI_VERSIONS"; then
1563    AC_MSG_NOTICE([Will build OSI interfaces for versions $OSI_VERSIONS])
1564    INSTALL_EPLEX=install_eplex
1565else
1566    AC_MSG_NOTICE([Not building any OSI interfaces])
1567fi
1568
1569
1570#----------
1571# Cplex
1572#----------
1573
1574case $ARCH in
1575    i386_linux)		CPLEX_ARCH_PREFIX=x86_debian ;;
1576    x86_64_linux)	CPLEX_ARCH_PREFIX=x86-64_debian ;;
1577    sparc_sunos5)	CPLEX_ARCH_PREFIX=ultrasparc32 ;;
1578    i386_nt)		CPLEX_ARCH_PREFIX=x86_win32 ;;
1579    x86_64_nt)		CPLEX_ARCH_PREFIX=x64_win64 ;;
1580    i386_macosx)	CPLEX_ARCH_PREFIX=x86_darwin ;;
1581    x86_64_macosx)	CPLEX_ARCH_PREFIX=x86-64_darwin ;;
1582    *)			CPLEX_ARCH_PREFIX=unsupported ;;
1583esac
1584
1585AC_ARG_WITH([cplex], [[  --with-cplex[=versions]
1586			Build ECLiPSe interface to ILOG Cplex.  You can
1587			optionally specify a version list, e.g. "81 90".
1588			Default is to build all available versions.
1589    ]],
1590    [cplex_versions_requested="$withval"], [cplex_versions_requested=yes])
1591
1592if test "$cplex_versions_requested" != "no"; then
1593    if test "$cplex_versions_requested" = "yes"; then
1594    	cplex_versions_requested="75 81 90 102 110 121 122 1251" 
1595    fi
1596    for version in $cplex_versions_requested; do
1597	CPLEXDIR="$ECLIPSETHIRDPARTY/cplex$version"
1598	if test -d $CPLEXDIR/lib/$ARCH -o \
1599		-d $CPLEXDIR/lib/$CPLEX_ARCH_PREFIX -o \
1600		-d $CPLEXDIR/bin/$CPLEX_ARCH_PREFIX >/dev/null 2>&1 ; then
1601	    CPLEX_VERSIONS="$CPLEX_VERSIONS $version"
1602	    AC_MSG_NOTICE([Using Cplex in $CPLEXDIR])
1603	else
1604	    AC_MSG_WARN([Could not find $ARCH support in $CPLEXDIR])
1605	fi
1606    done
1607fi
1608if test -n "$CPLEX_VERSIONS"; then
1609    AC_MSG_NOTICE([Will build Cplex interfaces for versions $CPLEX_VERSIONS])
1610    INSTALL_EPLEX=install_eplex
1611else
1612    AC_MSG_NOTICE([Not building any Cplex interfaces])
1613fi
1614
1615
1616#----------
1617# Xpress
1618#----------
1619
1620AC_ARG_WITH([xpress], [[  --with-xpress[=versions]
1621			Build ECLiPSe interface to Dash Xpress-MP.  You can
1622			optionally specify a version list, e.g. "1427 1525".
1623			Default is to build all available versions.
1624    ]],
1625    [xpress_versions_requested="$withval"], [xpress_versions_requested=yes])
1626
1627if test "$xpress_versions_requested" != "no"; then
1628    if test "$xpress_versions_requested" = "yes"; then
1629    	xpress_versions_requested="1326icp 1427icp 1427 1525 2000"
1630    fi
1631    for version in $xpress_versions_requested; do
1632	XPRESSDIR="$ECLIPSETHIRDPARTY/xosl$version"
1633	if test -d "$XPRESSDIR/$ARCH"; then
1634	    XPRESS_VERSIONS="$XPRESS_VERSIONS $version"
1635	    AC_MSG_NOTICE([Using Xpress-MP in $XPRESSDIR])
1636	else
1637	    AC_MSG_WARN([Could not find $XPRESSDIR])
1638	fi
1639    done
1640fi
1641if test -n "$XPRESS_VERSIONS"; then
1642    AC_MSG_NOTICE([Will build Xpress-MP interfaces for versions $XPRESS_VERSIONS])
1643    INSTALL_EPLEX=install_eplex
1644else
1645    AC_MSG_NOTICE([Not building any Xpress-MP interfaces])
1646fi
1647
1648
1649#----------
1650# Gurobi
1651#----------
1652
1653case $ARCH in
1654    i386_linux)		GRB_ARCH=linux32 ;;
1655    x86_64_linux)	GRB_ARCH=linux64 ;;
1656    i386_nt)		GRB_ARCH=win32 ;;
1657    x86_64_nt)		GRB_ARCH=win64 ;;
1658    i386_macosx)	GRB_ARCH=mac32 ;;
1659    x86_64_macosx)	GRB_ARCH=mac64 ;;
1660    *)			GRB_ARCH=unsupported ;;
1661esac
1662
1663GUROBI_SEARCH_PATH="\
1664$ECLIPSETHIRDPARTY
1665/opt
1666C:
1667/Library"
1668
1669AC_ARG_WITH([gurobi], [[  --with-gurobi[=versions]
1670			Build ECLiPSe interface to the Gurobi optimizer.  You
1671			can optionally specify a version list, e.g. "50 51".
1672			Default is to build the first matching version.
1673    ]],
1674    [gurobi_versions_requested="$withval"], [gurobi_versions_requested=yes])
1675
1676if test "$gurobi_versions_requested" != "no"; then
1677    if test "$gurobi_versions_requested" = "yes"; then
1678    	gurobi_versions_requested="50"
1679    fi
1680    IFSorig=$IFS
1681    IFS=`printf '\n\t'`
1682    GUROBIDIR=
1683    for version in $gurobi_versions_requested; do
1684	for gurobi_path in $GUROBI_SEARCH_PATH; do
1685	    # find last (highest minor version number) match
1686	    gurobi_dirs="$gurobi_path/gurobi$version?/$GRB_ARCH"
1687	    for dir in $gurobi_dirs; do
1688		test -d "$dir" && GUROBIDIR=$dir
1689	    done
1690	    test -n "$GUROBIDIR" && GUROBI_VERSION=$version && break 2
1691	done
1692    done
1693    IFS=$IFSorig
1694fi
1695if test -n "$GUROBI_VERSION"; then
1696    AC_MSG_NOTICE([Will build Gurobi interface for version $GUROBI_VERSION])
1697    INSTALL_EPLEX=install_eplex
1698else
1699    AC_MSG_NOTICE([Not building Gurobi interface])
1700fi
1701
1702
1703#----------
1704# Gecode
1705#----------
1706
1707AC_ARG_WITH([gfd], [[  --with-gfd
1708			Build ECLiPSe interface to Gecode Solover.
1709			Default is to build the interface.
1710    ]],
1711    [gfd_requested="$withval"], [gfd_requested=yes])
1712
1713ALL_WITH_GECODE=
1714ALL_CROSS_WITH_GECODE=
1715GECODE_BASEDIR="$ECLIPSETHIRDPARTY/gecode-"
1716GECODE_REQUIRED="4.4"
1717GECODE_VERSION="4.4.0"
1718
1719if test "$gfd_requested" = "yes"; then
1720   GECODEDIR=$(ls -d $GECODE_BASEDIR$GECODE_REQUIRED*/$ARCH  2>/dev/null)
1721   if test -d "$GECODEDIR"; then
1722      ALL_WITH_GECODE=all_with_gecode
1723      ALL_CROSS_WITH_GECODE=all_cross_with_gecode
1724      AC_MSG_NOTICE([Using Gecode in $GECODEDIR])
1725      AC_MSG_NOTICE([Will build Gecode Interface for Gecode version $GECODE_REQUIRED])
1726   else
1727# try a specific version of Gecode
1728      GECODEDIR=$(ls -d $GECODE_BASEDIR$GECODE_VERSION/$ARCH  2>/dev/null)
1729      if test -d "$GECODEDIR"; then
1730         ALL_WITH_GECODE=all_with_gecode
1731         ALL_CROSS_WITH_GECODE=all_cross_with_gecode
1732         AC_MSG_NOTICE([Using Gecode in $GECODEDIR])
1733         AC_MSG_NOTICE([Will build Gecode Interface for Gecode version $GECODE_REQUIRED])
1734     fi
1735   fi
1736fi
1737if test -z "$ALL_WITH_GECODE"; then
1738    AC_MSG_NOTICE([Not building Gecode interface])
1739fi
1740
1741#----------
1742# Java JDK
1743#----------
1744
1745JAVA_SEARCH_PATH="\
1746$ECLIPSETHIRDPARTY/java/$ARCH/java
1747/usr/java
1748/usr/lib/java
1749/usr/lib/jvm
1750/usr/lib/jvm/java
1751/usr/lib/jvm/default-java
1752/usr/j2se
1753C:/Program Files/Java/jdk*
1754$PROGRAMFILES/Java/jdk*
1755/Library/Java/Home"
1756
1757AC_ARG_WITH([java], [[  --with-java[=dir]	Build ECLiPSe/Java interface.
1758			If dir is given, this is taken as the Java installation
1759			to use, otherwise the value of a JAVA_HOME environment
1760			variable is used, otherwise a number of standard
1761			locations is searched for a Java installation.
1762			Default:yes
1763    ]],
1764    [with_java="$withval"], [with_java=yes])
1765
1766if test "$with_java" = "no"; then
1767    unset JAVA_HOME
1768    unset JRE_HOME
1769    ALL_WITH_JAVA=
1770    ALL_CROSS_WITH_JAVA=
1771    AC_MSG_NOTICE([Not building Java interface])
1772else
1773    if test "$with_java" != "yes"; then
1774	JAVA_SEARCH_PATH="$with_java"
1775    elif test -n "$JAVA_HOME"; then
1776	JAVA_SEARCH_PATH="$JAVA_HOME"
1777    fi
1778    IFSorig=$IFS
1779    IFS=`printf '\n\t'`
1780    for JAVA_HOME in $JAVA_SEARCH_PATH; do
1781	if test -x "$JAVA_HOME/bin/javac" -a -d "$JAVA_HOME/include"; then
1782	    break
1783	fi
1784	JAVA_HOME=
1785    done
1786    IFS=$IFSorig
1787    if test -n "$JAVA_HOME"; then
1788	AC_DEFINE(HAVE_JAVA)
1789	ALL_WITH_JAVA=all_with_java
1790	ALL_CROSS_WITH_JAVA=all_cross_with_java
1791	AC_MSG_NOTICE([Using Java in $JAVA_HOME])
1792    else
1793	unset JAVA_HOME
1794	ALL_WITH_JAVA=
1795	ALL_CROSS_WITH_JAVA=
1796	AC_MSG_WARN([Could not find a usable Java installation])
1797    fi
1798fi
1799
1800
1801#----------
1802# FlexLM licence manager
1803#----------
1804
1805FLEXLM_VERSION_PREF="7.2"
1806
1807AC_ARG_WITH([flexlm], [[  --with-flexlm[=version]
1808			Build ECLiPSe interface to FlexLM. You can optionally
1809			specify a version preference list.  Default is to
1810			build first available.
1811    ]],
1812    [flexlm_versions="$withval"], [flexlm_versions=yes])
1813
1814FLEXLMDIR=
1815if test "$flexlm_versions" != "no"; then
1816    if test "$flexlm_versions" = "yes"; then
1817    	flexlm_versions="$FLEXLM_VERSION_PREF"
1818    fi
1819    for version in $flexlm_versions; do
1820	FLEXLMDIR="$ECLIPSETHIRDPARTY/flexlm$version/$ARCH"
1821	if test -r "$FLEXLMDIR/lmclient.h"; then
1822	    break
1823	else
1824	    FLEXLMDIR=
1825	fi
1826    done
1827    if test -z "$FLEXLMDIR"; then
1828	CPPFLAGS_WITH_WITHOUT_FLEXLM=CPPFLAGS_WITHOUT_FLEXLM
1829	LIBS_WITH_WITHOUT_FLEXLM=LIBS_WITHOUT_FLEXLM
1830	FILES_WITH_WITHOUT_FLEXLM=FILES_WITHOUT_FLEXLM
1831	AC_MSG_WARN([Could not find FlexLM $flexlm_versions])
1832    else
1833	AC_DEFINE(HAVE_FLEXLM)
1834	CPPFLAGS_WITH_WITHOUT_FLEXLM=CPPFLAGS_WITH_FLEXLM
1835	LIBS_WITH_WITHOUT_FLEXLM=LIBS_WITH_FLEXLM
1836	FILES_WITH_WITHOUT_FLEXLM=FILES_WITH_FLEXLM
1837	AC_MSG_NOTICE([Using FlexLM in $FLEXLMDIR])
1838    fi
1839else
1840    CPPFLAGS_WITH_WITHOUT_FLEXLM=CPPFLAGS_WITHOUT_FLEXLM
1841    LIBS_WITH_WITHOUT_FLEXLM=LIBS_WITHOUT_FLEXLM
1842    FILES_WITH_WITHOUT_FLEXLM=FILES_WITHOUT_FLEXLM
1843    AC_MSG_NOTICE([Not building the FlexLM interface])
1844fi
1845
1846
1847#----------
1848# Grappa (prerequisite for Visualisation component)
1849#----------
1850
1851ALL_VISUALISATION=
1852if test -n "$JAVA_HOME"; then
1853
1854    GRAPPA_REQUIRED="1.2"
1855    for version in $GRAPPA_REQUIRED; do
1856	GRAPPA_DIR=$ECLIPSETHIRDPARTY/grappa$version
1857	GRAPPA_JAR=grappa`echo $version|tr . _`.jar
1858	if test -r $GRAPPA_DIR/$GRAPPA_JAR; then
1859	    break
1860	fi
1861	GRAPPA_JAR=
1862    done
1863    if test -z "$GRAPPA_JAR"; then
1864	AC_MSG_WARN([Could not find Grappa ($GRAPPA_REQUIRED) in $ECLIPSETHIRDPARTY])
1865    else
1866        if test -z "$JRE_HOME"; then
1867	   if test -d $JAVA_HOME/jre; then
1868	      JRE_HOME=$JAVA_HOME/jre
1869	   else
1870	      AC_MSG_WARN([Could not find JRE for Java; Visualisation tools will not be built.])
1871	   fi
1872	fi
1873	if test -n $JRE_HOME; then		 
1874	   AC_MSG_NOTICE([Using JRE in $JRE_HOME])
1875	   ALL_VISUALISATION=all_visualisation
1876	   AC_MSG_NOTICE([Using Grappa $GRAPPA_DIR/$GRAPPA_JAR])
1877	fi
1878    fi
1879
1880else
1881    AC_MSG_WARN([Not looking for Grappa because no Java available])
1882fi
1883
1884
1885#----------
1886# Graphviz
1887#----------
1888
1889AC_ARG_WITH([graphviz], [[  --with-graphviz[=versions]
1890			Copy graphviz executables into the installation.
1891			You can optionally specify a version list, e.g. "1.10".
1892			Default is to use the first available version.
1893    ]],
1894    [graphviz_versions_requested="$withval"], [graphviz_versions_requested=yes])
1895
1896GRAPHVIZ_TARGET=
1897GRAPHVIZ_DIR=
1898if test "$graphviz_versions_requested" != "no"; then
1899    if test "$graphviz_versions_requested" = "yes"; then
1900    	graphviz_versions_requested="2.26 1.10"
1901    fi
1902    for version in $graphviz_versions_requested; do
1903	GRAPHVIZ_DIR="$ECLIPSETHIRDPARTY/graphviz$version/$ARCH"
1904	if test -d "$GRAPHVIZ_DIR"; then
1905	    GRAPHVIZ_TARGET=install_graphviz
1906	    AC_MSG_NOTICE([Using Graphviz version $version])
1907	    break
1908	else
1909	    AC_MSG_WARN([Could not find $GRAPHVIZ_DIR])
1910	fi
1911    done
1912fi
1913if test -z "$GRAPHVIZ_TARGET"; then
1914    AC_MSG_NOTICE([Not adding Graphviz executables])
1915fi
1916
1917
1918#----------
1919# MySQL
1920#----------
1921
1922AC_ARG_WITH([mysql], [[  --with-mysql[=versions]
1923			Build ECLiPSe database interface.  You can optionally
1924			specify a version list, e.g. "50".
1925			Default is to build the first available version.
1926    ]],
1927    [mysql_versions_requested="$withval"], [mysql_versions_requested=yes])
1928
1929ALL_WITH_MYSQL=
1930ALL_CROSS_WITH_MYSQL=
1931if test "$mysql_versions_requested" != "no"; then
1932    if test "$mysql_versions_requested" = "yes"; then
1933	mysql_versions_requested="55 54 53 52 51 50"
1934    fi
1935    for version in $mysql_versions_requested; do
1936	MYSQLDIR="$ECLIPSETHIRDPARTY/mysql$version/$ARCH"
1937	if test -d "$MYSQLDIR"; then
1938	    ALL_WITH_MYSQL=all_with_mysql
1939	    ALL_CROSS_WITH_MYSQL=all_cross_with_mysql
1940	    AC_MSG_NOTICE([Using MySQL version $version])
1941	    break
1942	else
1943	    AC_MSG_WARN([Could not find $MYSQLDIR])
1944	fi
1945    done
1946fi
1947if test -z "$ALL_WITH_MYSQL"; then
1948    AC_MSG_NOTICE([Not building MySQL interface])
1949fi
1950
1951
1952#----------
1953# CP-Viz
1954#----------
1955
1956AC_ARG_WITH([cpviz], [[  --without-cpviz
1957			Build ECLiPSe without the CP-Viz constraint visualiser
1958			(CP-Viz requires Java, Batik and Javahelp)
1959    ]],
1960    [cpviz_requested="$withval"], [cpviz_requested=yes])
1961
1962
1963ALL_CPVIZ=
1964if test "$cpviz_requested" != "no"; then
1965    for f in "$ECLIPSETHIRDPARTY/batik-"*/lib /usr/share/java ; do
1966	if test -r "$f/batik-util.jar"; then BATIK_LIBDIR="$f"; break; fi
1967    done
1968    for f in "$ECLIPSETHIRDPARTY/jh"*/javahelp/lib /usr/share/java ; do
1969	if test -r "$f/jhall.jar"; then JHELP_LIBDIR="$f"; break; fi
1970    done
1971    if test -n "$BATIK_LIBDIR" -a -n "$JHELP_LIBDIR" -a -n "$JAVA_HOME"; then
1972	ALL_CPVIZ=all_cpviz
1973    fi
1974fi
1975if test -n "$ALL_CPVIZ"; then
1976    AC_MSG_NOTICE([Will build CP-Viz tool])
1977    AC_MSG_NOTICE([Using Batik $BATIK_LIBDIR])
1978    AC_MSG_NOTICE([Using Javahelp $JHELP_LIBDIR])
1979else
1980    AC_MSG_NOTICE([Not building CP-Viz tool])
1981fi
1982
1983
1984#----------
1985# Documents
1986#----------
1987
1988AC_CHECK_PROG(PROG_LATEX, latex, yes,no)
1989AC_CHECK_PROG(PROG_PS2PDF,ps2pdf,yes,no)
1990AC_CHECK_PROG(PROG_HEVEA, hevea, yes,no)
1991
1992MAKE_DOCUMENTS=
1993if test "$PROG_LATEX" = yes -a "$PROG_PS2PDF" = yes -a "$PROG_HEVEA" = yes; then
1994    MAKE_DOCUMENTS="make_documents"
1995    AC_MSG_NOTICE([Can build ECLiPSe documentation])
1996else
1997    AC_MSG_WARN([No tools to build ECLiPSe documentation])
1998fi
1999
2000
2001#----------------------------------------------------------------------
2002
2003LIBS="-L. $SYSLIBS $LIBS"
2004
2005
2006#----------------------------------------------------------------------
2007# The files to generate
2008#----------------------------------------------------------------------
2009
2010AC_CONFIG_FILES([
2011	Makefile.$ARCH:Makefile.in
2012	Kernel/$ARCH/Makefile:Kernel/src/Makefile.in
2013	Kernel/$ARCH/INST_PARAMS:Kernel/src/INST_PARAMS.in
2014	Kernel/$ARCH/Makefile.external:Kernel/src/Makefile.external.in
2015	Shm/$ARCH/Makefile:Shm/src/Makefile.in
2016	Eplex/Makefile.$ARCH:Eplex/Makefile.in
2017	icparc_solvers/Makefile.$ARCH:icparc_solvers/Makefile.in
2018	JavaInterface/Makefile.$ARCH:JavaInterface/Makefile.in
2019	Flexlm/Makefile.$ARCH:Flexlm/Makefile.in
2020	Visualisation/Makefile.$ARCH:Visualisation/Makefile.in
2021	Compiler/Makefile.$ARCH:Compiler/Makefile.in
2022	Contrib/Makefile.$ARCH:Contrib/Makefile.in
2023	Mercury/Makefile.$ARCH:Mercury/Makefile.in
2024	ecrc_solvers/Makefile.$ARCH:ecrc_solvers/Makefile.in
2025	pt_libraries/Makefile.$ARCH:pt_libraries/Makefile.in
2026	Oci/Makefile.$ARCH:Oci/Makefile.in
2027	ZincInterface/Makefile.$ARCH:ZincInterface/Makefile.in
2028	GecodeInterface/Makefile.$ARCH:GecodeInterface/Makefile.in
2029	CPViz/Makefile.$ARCH:CPViz/Makefile.in
2030	])
2031AC_CONFIG_HEADERS([
2032	Kernel/$ARCH/config.h:Kernel/src/config.h.in
2033	Shm/$ARCH/config.h:Shm/src/config.h.in],
2034	[echo timestamp > Kernel/$ARCH/stamp-h])
2035
2036
2037dnl Words to substitute in the Makefiles
2038AC_SUBST(ARCH)
2039AC_SUBST(host)
2040AC_SUBST(build)
2041AC_SUBST(ECLIPSETHIRDPARTY)
2042AC_SUBST(top_srcdir)
2043AC_SUBST(top_builddir)
2044AC_SUBST(abs_top_builddir)
2045AC_SUBST(prefix)
2046AC_SUBST(CC)
2047AC_SUBST(CXX)
2048AC_SUBST(CXXSUFFIX)
2049AC_SUBST(LD)
2050AC_SUBST(AR)
2051AC_SUBST(RANLIB)
2052AC_SUBST(STRIP)
2053AC_SUBST(EXEEXT)
2054AC_SUBST(NICE)
2055AC_SUBST(OPT_FLAGS)
2056AC_SUBST(OPT_FLAGS_ARITH)
2057AC_SUBST(OPT_FLAGS_EMU)
2058AC_SUBST(OSTYPE)
2059AC_SUBST(OSCLASS)
2060AC_SUBST(FLOAT_ROUND_FLAGS)
2061AC_SUBST(CFLAGS)
2062AC_SUBST(LOCAL_FLAGS)
2063AC_SUBST(OS_INCLUDES)
2064AC_SUBST(OPTIMIZE)
2065AC_SUBST(LDFLAGS)
2066AC_SUBST(DYNLDFLAGS)
2067AC_SUBST(RUNPATH_LDFLAG)
2068AC_SUBST(RUNPATH_DYLDFLAG)
2069AC_SUBST(STRIPFLAGS)
2070AC_SUBST(S_TO_O)
2071AC_SUBST(C_TO_I)
2072AC_SUBST(LL_C_SO)
2073AC_SUBST(LD_C_SO)
2074AC_SUBST(PL_C_SO)
2075AC_SUBST(PD_C_SO)
2076AC_SUBST(PL_O_SO)
2077AC_SUBST(PD_O_SO)
2078AC_SUBST(DYLD)
2079AC_SUBST(DYLDCXX)
2080AC_SUBST(LDTCL)
2081AC_SUBST(TCL_DIR)
2082AC_SUBST(BUILD_WITH_TCL)
2083AC_SUBST(TCL_ARCH_DIR)
2084AC_SUBST(BUILD_WITH_TCL)
2085AC_SUBST(TCL_VERSION)
2086AC_SUBST(BUILDO)
2087AC_SUBST(GRAPHLIBS)
2088AC_SUBST(LIBS)
2089AC_SUBST(LDD)
2090AC_SUBST(LDDFLAG)
2091AC_SUBST(WANT_MPS)
2092AC_SUBST(OBJECT_SUFFIX)
2093AC_SUBST(OBJECTS_SUFFIX)
2094AC_SUBST(LIB_PREFIX)
2095AC_SUBST(DLIBDIR)
2096AC_SUBST(GMP_LD)
2097AC_SUBST(GMP_EXE_LD)
2098AC_SUBST(GMP_LIBDIR)
2099AC_SUBST(GMP_LIB)
2100AC_SUBST(INSTALL_GMP)
2101AC_SUBST(LOCK)
2102AC_SUBST(INSTALL_EPLEX)
2103AC_SUBST(OSI_VERSIONS)
2104AC_SUBST(CLPCBCDIR)
2105AC_SUBST(SYMCLPDIR)
2106AC_SUBST(OSIGLPKDIR)
2107AC_SUBST(OSICLP_ADDLIB)
2108AC_SUBST(OSICLP_ADDDEF)
2109AC_SUBST(CPLEX_VERSIONS)
2110AC_SUBST(XPRESS_VERSIONS)
2111AC_SUBST(GUROBIDIR)
2112AC_SUBST(GUROBI_VERSION)
2113AC_SUBST(ALL_WITH_GECODE)
2114AC_SUBST(ALL_CROSS_WITH_GECODE)
2115AC_SUBST(GECODEDIR)
2116AC_SUBST(GECODE_VERSION)
2117AC_SUBST(ALL_WITH_JAVA)
2118AC_SUBST(ALL_CROSS_WITH_JAVA)
2119AC_SUBST(JAVA_HOME)
2120AC_SUBST(JRE_HOME)
2121AC_SUBST(CPPFLAGS_WITH_WITHOUT_FLEXLM)
2122AC_SUBST(LIBS_WITH_WITHOUT_FLEXLM)
2123AC_SUBST(FILES_WITH_WITHOUT_FLEXLM)
2124AC_SUBST(FLEXLMDIR)
2125AC_SUBST(GRAPPA_DIR)
2126AC_SUBST(GRAPPA_JAR)
2127AC_SUBST(ALL_VISUALISATION)
2128AC_SUBST(MAKE_TARGET)
2129AC_SUBST(MAKE_DOCUMENTS)
2130AC_SUBST(ALL_WITH_MYSQL)
2131AC_SUBST(ALL_CROSS_WITH_MYSQL)
2132AC_SUBST(MYSQLDIR)
2133AC_SUBST(GRAPHVIZ_TARGET)
2134AC_SUBST(GRAPHVIZ_DIR)
2135AC_SUBST(STDCXXLIB)
2136AC_SUBST(ALL_CPVIZ)
2137AC_SUBST(BATIK_LIBDIR)
2138AC_SUBST(JHELP_LIBDIR)
2139AC_SUBST(JAVA_PATH_SEP)
2140
2141AC_OUTPUT