a7b0d68f111e6e71c68cc196152d5a5121955c3e
[scilab.git] / scilab / configure.ac
1 #
2 # Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 # Copyright (C) INRIA - 2006-2008 - Sylvestre Ledru
4 # Copyright (C) DIGITEO - 2009-2011 - Sylvestre Ledru
5 # Copyright (C) DIGITEO - 2009 - Pierre MARECHAL <pierre.marechal@scilab.org>
6 # Copyright (C) Scilab Enterprises - 2014 - Clement DAVID <clement.david@scilab-enterprises.com>
7 #
8 # This file must be used under the terms of the CeCILL.
9 # This source file is licensed as described in the file COPYING, which
10 # you should have received as part of this distribution.  The terms
11 # are also available at
12 # http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
13 #
14
15 dnl Process this file with autoconf to produce a configure script.
16
17
18 AC_REVISION($Revision$)dnl
19 AC_INIT([Scilab],[6],[http://bugzilla.scilab.org/])
20 AC_PREREQ(2.69)
21 AC_CONFIG_MACRO_DIR([m4])
22
23 SCI_BUILDDIR="`pwd`"
24 SCI_SRCDIR="$srcdir"
25 SCI_SRCDIR_FULL="`cd $SCI_SRCDIR && pwd`"
26
27 if test -d "$SCI_SRCDIR_FULL/usr"; then
28     WITH_DEVTOOLS=true
29     DEVTOOLS_BINDIR="$SCI_SRCDIR_FULL/usr/bin"
30     DEVTOOLS_INCDIR="$SCI_SRCDIR_FULL/usr/include"
31     DEVTOOLS_LIBDIR="$SCI_SRCDIR_FULL/usr/lib"
32 else
33     WITH_DEVTOOLS=false
34     DEVTOOLS_BINDIR=
35     DEVTOOLS_INCDIR=
36     DEVTOOLS_LIBDIR=
37 fi
38
39 SCILAB_VERSION_MAJOR=6
40 SCILAB_VERSION_MINOR=0
41 SCILAB_VERSION_MAINTENANCE=0
42 AC_SUBST(SCILAB_VERSION_MAJOR)
43 AC_SUBST(SCILAB_VERSION_MINOR)
44 AC_SUBST(SCILAB_VERSION_MAINTENANCE)
45
46
47 SCILAB_LIBRARY_VERSION=$SCILAB_VERSION_MAJOR:$SCILAB_VERSION_MINOR:$SCILAB_VERSION_MAINTENANCE
48 AC_SUBST(SCILAB_LIBRARY_VERSION)
49
50 SCILAB_BINARY_VERSION=$SCILAB_VERSION_MAJOR.$SCILAB_VERSION_MINOR.$SCILAB_VERSION_MAINTENANCE
51 AC_SUBST(SCILAB_BINARY_VERSION)
52
53 #shared library versioning
54 #GENERIC_LIBRARY_VERSION=1:2:0
55 #                       | | |
56 #                +------+ | +---+
57 #                |        |     |
58 #             current:revision:age
59 #                |        |     |
60 #                |        |     +- increment if interfaces have been added
61 #                |        |        set to zero if interfaces have been removed
62 #                                  or changed
63 #                |        +- increment if source code has changed
64 #                |           set to zero if current is incremented
65 #                +- increment if interfaces have been added, removed or changed
66
67 # Check if we have a space in the path to the source tree
68 SPACE_IN_PATH=`echo "$SCI_SRCDIR_FULL"|grep " " > /dev/null; echo $?`
69 if test "$SPACE_IN_PATH" = "0"; then
70    AC_MSG_WARN([=====================================])
71    AC_MSG_WARN([Configure thinks that there is a space in the path to the source. This may cause problem with libtool and some other things...])
72    AC_MSG_WARN([=====================================])
73    sleep 180
74 fi
75
76 AC_CONFIG_AUX_DIR(config)
77 AC_CONFIG_HEADERS([modules/core/includes/machine.h])
78
79 AC_PROG_LN_S
80 AM_PROG_AR
81
82 AC_CUSTOM_LARGE_FILE
83
84 # In order to be able to change the scilab directory
85 # See http://wiki.debian.org/RpathIssue
86 AC_RELOCATABLE
87 AC_RELOCATABLE_LIBRARY
88 AC_LIB_RPATH
89
90 # If configure detect that timestamp changed,
91 # it tries to rebuild configure & makefile which can be a painmaker
92 # if the version is different
93 AM_MAINTAINER_MODE
94
95 AM_INIT_AUTOMAKE([-Wall foreign serial-tests subdir-objects]) # Not using -Werror because we override {C,F}FLAGS in order to disable optimisation
96
97 AC_CANONICAL_HOST
98
99 #################################
100 ## all the --with-* argument help
101 #################################
102
103
104 AC_ARG_ENABLE(debug,
105    AS_HELP_STRING([--enable-debug],[Do not optimize and print warning messages (C/C++/Fortran/Java code)]))
106
107 AC_ARG_ENABLE(debug-C,
108    AS_HELP_STRING([--enable-debug-C],[Do not optimize and print warning messages (C code)]))
109
110 AC_ARG_ENABLE(debug-CXX,
111    AS_HELP_STRING([--enable-debug-CXX],[Do not optimize and print warning messages (C++ code)]))
112
113 AC_ARG_ENABLE(debug-java,
114    AS_HELP_STRING([--enable-debug-java],[Print warning messages and line numbers (Java code)]))
115
116 AC_ARG_ENABLE(debug-fortran,
117    AS_HELP_STRING([--enable-debug-fortran],[Do not optimize and print warning messages (Fortran code)]))
118
119 AC_ARG_ENABLE(debug-linker,
120    AS_HELP_STRING([--enable-debug-linker],[Print warning messages from the linker (ld)]))
121
122 AC_ARG_ENABLE(code-coverage,
123    AS_HELP_STRING([--enable-code-coverage],[Enable code coverage]))
124
125 AC_ARG_ENABLE(stop-on-warning,
126    AS_HELP_STRING([--enable-stop-on-warning],[Stop the compilation on the first warning found in the C/C++ code]))
127
128 AC_ARG_WITH(gcc,
129     AS_HELP_STRING([--with-gcc],[Use gcc C compiler ]))
130
131 AC_ARG_WITH(gfortran,
132     AS_HELP_STRING([--with-gfortran],[Use gfortran, GNU Fortran 95 compiler]))
133
134 AC_ARG_WITH(intelcompilers,
135     AS_HELP_STRING([--with-intelcompilers],[Use Intel C (icc) and Fortran (ifort) proprietary compilers (GNU/Linux only) ]))
136
137 AC_ARG_WITH(tk,
138     AS_HELP_STRING([--without-tk],[Disable the interface to Tcl/Tk ]))
139
140 AC_ARG_WITH(javasci,
141     AS_HELP_STRING([--without-javasci],[Disable the Java/Scilab interface (javasci)]))
142
143 AC_ARG_ENABLE(compilation-tests,
144     AS_HELP_STRING([--enable-compilation-tests],[Enable unitary tests and checks at compilation time]))
145
146 AC_ARG_WITH(gui,
147     AS_HELP_STRING([--without-gui],[Disable the Scilab Graphical User Interface (GUI). Intended for embedded/clustering/grid Scilab ]))
148
149 AC_ARG_ENABLE(build-swig,
150     AS_HELP_STRING([--enable-build-swig=path],[Regenerate Java => C and Scilab => C wrappers produces by Swig]))
151
152
153 AC_ARG_ENABLE(build-giws,
154     AS_HELP_STRING([--enable-build-giws],[Regenerate C/C++ => Java wrappers produces by Giws]))
155
156 AC_ARG_ENABLE(build-parser,
157     AS_HELP_STRING([--enable-build-parser],[Regenerate code for the parser (Lex & YACC)]))
158
159
160 ################################################
161 ########## compilator & misc programs detection
162 ################################################
163
164 AC_PROG_CPP
165 AC_PROG_GREP
166
167 ######
168 #### Mac OS X set of fink path with provided
169 ######
170
171 AC_ARG_WITH(fink_prefix,
172 AS_HELP_STRING([--with-fink-prefix],[Provide a fink prefix. Default: /sw/ ]))
173 # Need MacosX Version to specify some path.
174 case "$host_os" in
175      *Darwin* | *darwin*)
176                AC_GET_MACOSX_VERSION
177      ;;
178 esac
179
180 case "$host" in
181     *darwin*)
182         if test -n "$with_fink_prefix"; then
183             # If with-fink-prefix is provided, use the provided path to make sure that we will
184             # use it to detect dependencies (for example, gfortran is not provided in xcode.
185             # Therefor, we use the one in fink)
186             FINK_PREFIX="$with_fink_prefix/"
187
188             # Exec the init script of fink to make sure that the env is set
189             if test -f $with_fink_prefix/bin/init.sh; then
190                 echo "source $with_fink_prefix/bin/init.sh executed to set the env"
191                 source $with_fink_prefix/bin/init.sh
192             else
193                 AC_MSG_WARN([Could not find the fink init.sh script: $with_fink_prefix/bin/init.sh])
194             fi
195         else
196             FINK_PREFIX="/sw/"
197         fi
198
199         #Append to the default flags on Apple machines
200         CPPFLAGS="$CPPFLAGS -I$FINK_PREFIX/include/"
201         LDFLAGS="$LDFLAGS -L$FINK_PREFIX/lib/"
202         ;;
203 esac
204
205 AC_ARG_WITH(min_macosx_version,
206 AS_HELP_STRING([--with-min-macosx-version],[Force compilers to generate binaries compatible with MacOSX minimal version.]))
207 case "$host" in
208     *darwin*)
209     if test -n "$with_min_macosx_version"; then
210        MIN_MACOSX_VERSION=$with_min_macosx_version
211        #Append to the default flags on Apple machines
212        ARCH_CFLAGS="-mmacosx-version-min=$MIN_MACOSX_VERSION"
213        ARCH_CXXFLAGS="-mmacosx-version-min=$MIN_MACOSX_VERSION"
214        ARCH_FFLAGS="-mmacosx-version-min=$MIN_MACOSX_VERSION"
215        ARCH_LDFLAGS="-mmacosx-version-min=$MIN_MACOSX_VERSION"
216        # We need this to be passed to all linker commands
217        LDFLAGS="$LDFLAGS -mmacosx-version-min=$MIN_MACOSX_VERSION"
218     fi
219 ;;
220 esac
221
222
223 #####################################################
224 ## Look for pkg-config
225 #####################################################
226 PKG_PROG_PKG_CONFIG
227
228 #####################################################
229 ## check if options are correct (or not)
230 #####################################################
231
232 if test "$with_intelcompilers" = yes -a "$with_gcc" = yes; then
233     AC_MSG_ERROR([Conflicting options : you specified two compiler series])
234 fi
235
236 ######## fortran ########
237
238 if test "$with_gfortran" = yes; then
239    AC_PROG_F77(gfortran)
240    if test -z "$F77"; then
241      AC_MSG_ERROR([You asked me to use gfortran but i haven't been able to find it])
242     fi
243 fi
244
245 if test "$with_intelcompilers" = yes; then
246    AC_PROG_F77(ifc ifort)
247    if test -z "$F77"; then
248      AC_MSG_ERROR([You asked me to use ifc (intel fortran compiler) but i haven't been able to find it])
249     fi
250 fi
251
252 if test -z "$F77"; then
253 ## No Fortran compiler specified... Prefer gfortran and intel compilers
254    AC_PROG_F77([gfortran ifc ifort])
255    if test -z "$F77"; then
256         # Best effort to find a compiler (might be g77)
257     AC_PROG_F77
258    fi
259 fi
260
261
262 # case statements were introduced in fortran 90 so we can use that
263 # as a test to see if our compiler is fortran 90 compatible.
264 f90compatible=false
265 if test -z "$F77"; then
266   AC_MSG_ERROR([No fortran compiler found. Cannot compile scilab without a fortran compiler])
267 fi
268
269 AC_MSG_CHECKING([if $F77 is a fortran 90 compatible compiler])
270  f90compatible=false
271 AC_LANG_PUSH([Fortran 77])
272 AC_COMPILE_IFELSE([
273       PROGRAM hello
274         do 50 i = 1, 5
275            select case ( i )
276               case (1)
277                  print*, "case is 1, i is ", i
278               case ( 2 : 3 )
279                  print*, "case is 2 to 3, i is ", i
280               case default
281                  print*, "default case, i is ", i
282               end select
283  50           continue
284       END
285     ],
286     [AC_MSG_RESULT([yes])
287      AC_DEFINE([G95_FORTRAN],[],[uses G95 fortran])
288      f90compatible=true
289     ],
290     [AC_MSG_RESULT([no])]
291 )
292 AC_LANG_POP([Fortran 77])
293
294 ############ C ###############
295
296
297 if test "$with_gcc" = yes; then
298    AC_PROG_CC(gcc)
299    if test -z "$CC"; then
300      AC_MSG_ERROR([You asked me to use gcc but i haven't been able to find it])
301     fi
302 fi
303
304 if test "$with_intelcompilers" = yes; then
305    AC_PROG_CC(icc ecc)
306    if test -z "$CC"; then
307      AC_MSG_ERROR([You asked me to use icc (intel C compiler) but I haven't been able to find it])
308     fi
309 fi
310
311 if test -z "$CC"; then
312 # No C compiler specified... We rely on Autoconf to find the best
313    AC_PROG_CC
314 fi
315
316 if test -z "$CC"; then
317   AC_MSG_ERROR([No C Compiler found. Cannot compile Scilab without a C compiler])
318 fi
319
320 AC_CHECK_SIZEOF([int])
321 AC_CHECK_SIZEOF([long])
322
323 ### C++ ###
324 AC_PROG_CXX
325 # we can't just do something like
326 # AC_CHECK_PROG(cxx_present, $CXX, "yes", "no")
327 # because if the user has specified the full path of the desired C++ compiler then AC_CHECK_PROG
328 # will fail.  If AC_PROG_CXX fails to find a c++ compiler it will set CXX=g++ so just run AC_CHECK_PROG
329 # in this special case
330 case $CXX in
331     g++)
332         AC_CHECK_PROG([cxx_present], [$CXX], [yes], [no])
333         if test "x$cxx_present" != "xyes"; then
334             AC_MSG_ERROR([No C++ compiler found. Cannot compile scilab without a C++ compiler])
335         fi
336         ;;
337 esac
338
339 # for "subdir-objects"
340
341 AM_PROG_CC_C_O
342 AC_PROG_F77_C_O
343
344
345 if test "$enable_debug" = yes; then
346    enable_debug_fortran=yes
347    enable_debug_C=yes
348    enable_debug_CXX=yes
349    enable_debug_java=yes
350 else
351    enable_debug=no
352 fi
353
354 if test "$enable_debug_fortran" = yes; then
355    FFLAGS="`echo "$FFLAGS"| sed -e 's|-O[0-9+]|-O0|'`"
356 else
357    enable_debug_fortran=no
358 fi
359
360 if test "$enable_debug_C" = yes; then
361    CFLAGS="`echo "$CFLAGS"| sed -e 's|-O[0-9+]|-O0|'`"
362 else
363    enable_debug_C=no
364 fi
365
366 if test "$enable_debug_CXX" = yes; then
367    CXXFLAGS="`echo "$CXXFLAGS"| sed -e 's|-O[0-9+]|-O0|'`"
368 else
369    enable_debug_CXX=no
370 fi
371
372 if test "$enable_debug_java" = yes; then
373    LOGGING_LEVEL="INFO"
374 else
375    LOGGING_LEVEL="SEVERE"
376 fi
377 AC_SUBST(LOGGING_LEVEL)
378
379 if test "x${prefix}" = "xNONE"; then
380   prefix="${ac_default_prefix}"
381 fi
382
383 ###############################
384 ## get the version
385 ###############################
386
387 SCIVERSION=`cat $SCI_SRCDIR/Version.incl | sed -e "s/SCIVERSION=//" `
388
389 #############################################
390 ## Compilers and options according to machine
391 #############################################
392
393 ######################
394 ######## Set compilation options for intel C/Fortran compilers
395 ######################
396
397 if test "$with_intelcompilers" = yes; then
398    SCI_INTEL_COMPILER()
399 fi
400
401 ########### FORTRAN ######################
402
403
404 ######################
405 ######## With gfortran ...
406 ######################
407 if test -n "$F77"; then
408    case "$F77" in
409      gfortran*)
410         ## With GNU Compiler enable the code coverage
411         if test "$enable_code_coverage" = yes; then
412             CODECOVERAGE_FFLAGS="-fprofile-arcs -ftest-coverage"
413         fi
414      ;;
415      g77*)
416         AC_MSG_ERROR([g77 is no longer supported. Please consider switching to gfortran])
417      ;;
418    esac
419
420    if test "$enable_debug_fortran" = yes; then
421     AC_LANG_PUSH([Fortran 77])
422     for flag in -g -Wall -Wsurprising; do
423         case " ${FFLAGS} " in
424             *\ ${flag}\ *)
425                 # flag is already present
426                 ;;
427
428             *)
429                 AC_MSG_CHECKING([if the Fortran compiler accepts ${flag}])
430                 ac_save_FFLAGS="$FFLAGS"
431                 FFLAGS="$FFLAGS ${flag}"
432                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
433                     [AC_MSG_RESULT([yes])
434                      DEBUG_FFLAGS="${flag}"
435                     ],
436                     [AC_MSG_RESULT([no])]
437                 )
438                 ;;
439         esac
440     done
441     AC_LANG_POP([Fortran 77])
442    else
443       DEBUG_FFLAGS="-DNDEBUG"
444    fi
445       case "$host" in
446          x86_64-*-linux*)
447             ARCH_FFLAGS="-m64 -fPIC"
448                     ;;
449         # Dec Alpha OSF 4
450         alpha*-dec-osf4.*)
451           ARCH_FFLAGS="-fpe3"
452         ;;
453         alpha*-dec-osf*)
454             ARCH_FFLAGS="-fpe3 -switch nosqrt_recip"
455         ;;
456         rs6000-*-*)
457             ARCH_FFLAGS="-qcharlen=4096"
458             ;;
459         mips-*-ultrix*)
460             ARCH_FFLAGS="-O0 -fpe1"
461         ;;
462           *-*-hpux9.*)
463             ARCH_FFLAGS="+Obb1200 +E4 -Dhpux"
464         ;;
465           *-*-hpux10.*)
466             if test "$enable_debug_fortran" = yes; then
467                 ARCH_FFLAGS="+E4 +Z +DAportable -Dhpux"
468             else
469                 ARCH_FFLAGS="+O2 +E4 +Z +DAportable -Dhpux"
470             fi
471 #            ARCH_LDFLAGS="-Wl,+vnocompatwarnings,-E /usr/lib/libdld.sl"
472
473             ;;
474           *-*-hpux11.*)
475            if test "$enable_debug_fortran" = yes; then
476               ARCH_FFLAGS=" +Z +DAportable -Dhpux"
477              else
478               ARCH_FFLAGS="+O2 +Z +DAportable -Dhpux"
479            fi
480            ARCH_LDFLAGS="-ldld -lnsl -lU77 -lm"
481
482      ;;
483       esac
484
485 fi
486
487 #########################
488 # setting parameters according to system types
489 #########################
490
491 case "$host" in
492     *-*-hpux9.*|*-*-hpux10.*|*-*-hpux11.*)
493         HPUX=1
494     ;;
495     sparc-*)
496         SPARC=1
497     ;;
498     mips-sgi-irix*)
499       MIPS_SGI_IRIX=1
500     ;;
501      *-*-solaris*)
502      SOLARIS=1
503      ;;
504     *darwin*)
505       MACOSX=1
506     ;;
507 esac
508
509 AM_CONDITIONAL(IS_MACOSX, test -n "$MACOSX")
510 AM_CONDITIONAL(IS_HPUX, test -n "$HPUX")
511 AM_CONDITIONAL(IS_SPARC, test -n "$SPARC")
512 AM_CONDITIONAL(IS_SOLARIS, test -n "$SOLARIS")
513 AM_CONDITIONAL(IS_MIPS_SGI_IRIX, test -n "$MIPS_SGI_IRIX")
514
515
516
517 ############
518 ## C++
519 ############
520
521
522 if test -z "$CXX"; then
523   AC_MSG_ERROR([No C++ compiler found. Cannot compile scilab without a C++ compiler])
524 fi
525
526 case "$CXX" in
527     g++-* | g++ | ccache*g++ | ccache*g++-* )
528         ## With GNU C++ Compiler
529
530         # enable the code coverage
531         if test "$enable_code_coverage" = yes; then
532             CODECOVERAGE_CXXFLAGS="-fprofile-arcs -ftest-coverage"
533         fi
534
535         if test "$enable_debug_CXX" = yes; then
536             DEBUG_CXXFLAGS="-pipe -Wshadow -Wpointer-arith -Wcast-align -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -Wno-strict-aliasing -Wextra -Wall -g3 -Wunsafe-loop-optimizations"
537             case "$host" in
538                 *-linux-gnu )
539                     # Only doing that under Linux
540                     DEBUG_CXXFLAGS="$DEBUG_CXXFLAGS -fdiagnostics-show-option -Werror=format-security"
541                 ;;
542             esac
543         else
544             DEBUG_CXXFLAGS="-DNDEBUG"
545         fi
546         COMPILER_CXXFLAGS="$COMPILER_CXXFLAGS -fno-stack-protector " # bug 3131
547     ;;
548
549 esac
550
551 #### 64 bits detection
552 IS_64_BITS_CPU=false
553 case "$host" in
554          x86_64-*-linux-gnu | x86_64-linux-gnu | ia64-*-linux-gnu | alpha-*-linux-gnu | alpha-*-netbsd* | x86_64-*-netbsd* | sparc64-*-netbsd*)
555                 IS_64_BITS_CPU=true
556     ;;
557 esac
558
559 ##########"
560
561 case "$CC" in
562      gcc-* | gcc | ccache*gcc | ccache*gcc-* )
563    ## With GNU Compiler
564
565    # enable the code coverage
566    if test "$enable_code_coverage" = yes; then
567     CODECOVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage"
568    fi
569
570    if test "$enable_debug_C" = yes; then
571       DEBUG_CFLAGS="-pipe -Wformat -Wshadow -Wfloat-equal -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations  -Wstrict-prototypes  -Wmissing-noreturn -Wendif-labels -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wwrite-strings -Winline -Wredundant-decls -Wall -Wchar-subscripts -Wextra  -Wuninitialized -Wno-format-y2k -Wmissing-format-attribute -Wno-missing-field-initializers -Wno-strict-aliasing  -Wold-style-definition -g3 -Wunsafe-loop-optimizations"
572       # used to be -O0
573       case "$host" in
574       *-linux-gnu )
575       # Only doing that under Linux
576         if test "$enable_debug_linker" = yes; then
577             LDFLAGS="$LDFLAGS -Wl,--warn-common,-x"
578         fi
579           DEBUG_CFLAGS="$DEBUG_CFLAGS -fdiagnostics-show-option -Werror=format-security"
580           ;;
581           esac
582    else
583       DEBUG_CFLAGS="-DNDEBUG"
584    fi
585
586    COMPILER_CFLAGS="$COMPILER_CFLAGS -fno-stack-protector " # bug 3131
587    # Explictly disable the as needed. It was disable by default but Ubuntu
588    # activated it by default since release 11.04. See bug #8961.
589    # Once all cyclic dependencies have been dropped, this line could be removed.
590    # Check if linker supports --as-needed and --no-as-needed options
591    if $LD --help 2>/dev/null | grep no-as-needed > /dev/null; then
592       LDFLAGS="$LDFLAGS -Wl,--no-as-needed"
593    fi
594
595
596    case "$host" in
597      x86_64-*-linux-gnu | x86_64-linux-gnu)
598         ARCH_CFLAGS="-m64"
599     ;;
600      alpha-*-linux-gnu)
601         ARCH_CFLAGS="-mieee-with-inexact"
602         ARCH_LDFLAGS="-mieee-with-inexact"
603     ;;
604      powerpc-*-linux-gnu)
605         ARCH_CFLAGS="-D_GNU_SOURCE"
606     ;;
607      *-*-solaris*)
608         ARCH_CFLAGS="-DSVR4 -DSYSV -Dsolaris"
609     ;;
610    *-*-freebsd*)
611      ARCH_CFLAGS="-Dfreebsd"
612      ARCH_LDFLAGS="-lm"
613      ;;
614
615   alpha-*-netbsd*)
616     ARCH_CFLAGS="-Dnetbsd -mieee"
617     ARCH_FFLAGS="-Dnetbsd -mieee"
618     ;;
619
620   *-*-netbsd*)
621     ARCH_CFLAGS="-Dnetbsd"
622     ;;
623
624   *-*-darwin*)
625     # Flag no more added since :
626     #  - No more supported in recent gcc versions (> 4.6)
627     #  - only needed when compiling with flag -mmacosx-min-version=10.5
628     #ARCH_CFLAGS="$ARCH_CFLAGS -no_compact_linkedit"
629     #ARCH_CXXFLAGS="$ARCH_CXXFLAGS -no_compact_linkedit"
630     #ARCH_LDFLAGS="$ARCH_LDFLAGS -no_compact_linkedit"
631     # We need this to be passed to all linker commands
632     #LDFLAGS="$LDFLAGS -no_compact_linkedit"
633
634     case "$F77" in
635          gfortran-*|gfortran)
636              # Extract from gfortran -v the version it has been built for
637                MAC_DETECTED_ARCH="`$F77 -v 2>&1|grep "Target:"|sed -e "s/Target: \([[a-z0-9A-Z_]]*\).*/\1/g"`"
638          ;;
639          *)
640         AC_MSG_WARN([gfortran not used. Could not detect the architecture. Switch to the default case: x86_64])
641         MAC_DETECTED_ARCH="x86_64"
642          ;;
643     esac
644     CC="$CC -arch $MAC_DETECTED_ARCH"
645     CXX="$CXX -arch $MAC_DETECTED_ARCH"
646     ;;
647 esac
648 ;; # end of the gcc case on the $CC
649    *)
650
651         ## CC compiler (not GCC)
652         if test "$enable_debug_C" != yes; then
653              ARCH_CFLAGS="-DNDEBUG"
654         fi
655
656 case "$host" in
657 # Dec Alpha OSF 4
658   alpha*-dec-osf4.*)
659       ARCH_CFLAGS="-std -ieee_with_inexact"
660       ARCH_LDFLAGS="-ieee_with_inexact"
661       ;;
662   alpha*-dec-osf*)
663       ARCH_CFLAGS="-ieee_with_inexact"
664       ARCH_LDFLAGS="-ieee_with_inexact"
665       ;;
666   rs6000-*-*) # IBM AIX RS 6000 (NO LONGER SUPPORTED)
667     ARCH_CFLAGS="-Daix -DSYSV"
668   ;;
669   mips-sgi-irix*) # SGI
670     ARCH_CFLAGS="-DSYSV -DSVR4"
671   ;;
672   *-*-hpux9.*)
673     ARCH_CFLAGS="-DSYSV -Dhpux"
674   ;;
675   *-*-hpux10.*) # HP 10
676     if test "$enable_debug_C" = yes; then
677       ARCH_CFLAGS="-DSYSV -Dhpux"
678     else
679       ARCH_CFLAGS="-DSYSV -Dhpux +Z +DAportable"
680     fi
681   ;;
682
683   *-*-hpux11.*) # HP 11
684     ARCH_CFLAGS="-DSYSV -Dhpux -Dhppa +Z +DAportable"
685   ;;
686   *-*-solaris*) # SUN SOLARIS
687     ARCH_CFLAGS="-DSVR4 -DSYSV -Dsolaris -I/usr/local/include/"
688     ARCH_LDFLAGS="-L/usr/local/lib/"
689   ;;
690 esac
691 ;; # end of not a gcc compiler
692 esac
693
694
695 # enable the code coverage
696 if test "$enable_code_coverage" = yes; then
697    AC_PATH_PROG(LCOV, lcov)
698    if test -z "$LCOV" ; then
699         AC_MSG_ERROR([Cannot find lcov. Please install it (package lcov under Debian) or remove the option --enable-code-coverage])
700    fi
701    AC_PATH_PROG(GENHTML, genhtml)
702    if test -z "$GENHTML" ; then
703         AC_MSG_ERROR([Cannot find genhtml. Please install it (package lcov under Debian) or remove the option --enable-code-coverage])
704    fi
705    CODECOVERAGE_LDFLAGS="-coverage -lgcov"
706 fi
707 AM_CONDITIONAL(CODE_COVERAGE, test "$enable_code_coverage" = yes)
708 AM_CONDITIONAL(ENABLE_DEBUG, test "$enable_debug" = yes)
709
710 # flag for possible compilations in configure
711 SCILIBS_CFLAGS=''
712 SCILIBS_CXXFLAGS=''
713 SCILIBS_FFLAGS=''
714
715 if test $IS_64_BITS_CPU = true -o "$MACOSX" = "1"; then
716    if test $f90compatible = false; then
717       AC_MSG_ERROR([64 bits support needs a fortran 90 compiler (try --with-gfortran).])
718    fi
719 fi
720
721 AM_CONDITIONAL(IS_64_BITS_CPU, test $IS_64_BITS_CPU = true)
722
723 # check if the compiler supports c++11
724 saved_cppflags="$CXXFLAGS"
725 CXXFLAGS=""
726 AX_CXX_COMPILE_STDCXX_11(noext,mandatory)
727 STDCXX_11_CXXFLAGS="$CXXFLAGS"
728 CXXFLAGS="$saved_cppflags"
729
730 ################
731 ## SSE
732 ## By default, for x86 CPU, enable the SSE2.
733 ## Note that it is already the case with 64 bits CPU
734 ## (these extensions are enabled by default by gcc)
735 ################
736
737 case "$host" in
738      i*86-linux-gnu|i*86-*-linux-gnu)
739         SSE_CFLAGS="-msse2"
740         SSE_FFLAGS="-msse2"
741         SSE_CXXFLAGS="-msse2"
742      ;;
743 esac
744
745 #######################
746 ## test for underscores (name mangling issues between C and fortran)
747 #######################
748 AC_CHECK_UNDERSCORE_FORTRAN()
749
750 #################
751 ## LLVM
752 #################
753
754 AC_LLVM_CONFIG()
755
756 ###############################
757 ### Regenerate the parser files
758 ### Flex & Yacc
759 ###############################
760
761 if test "$enable_build_parser" = yes; then
762
763    AC_PROG_LEX
764    if test -z "$LEX" -o "$LEX" = ":"; then
765           AC_MSG_ERROR([No implementation of Lex (flex, lex) detected. Please install it (package flex)])
766    fi
767
768    AC_PROG_YACC
769    if test -z "$YACC"; then
770           AC_MSG_ERROR([No implementation of Yacc (bison, yacc) detected. Please install it (package bison)])
771   fi
772 # Actually, AC_PROG_YACC is lying. It sometimes put yacc into $YACC even it
773 # hasn't been able to find it.
774 #  AC_CHECK_PROG(YACC_PRESENT, $YACC, AC_MSG_ERROR([No implementation of Yacc (bison, yacc) detected. Please install it (package bison)]) )
775
776    AC_CHECK_PROG(yacc_present, $YACC, "yes","no")
777    if test "x$yacc_present" != "xyes"; then
778       AC_MSG_ERROR([No implementation of Yacc (bison, yacc) detected. Please install it (package bison)])
779    fi
780
781 fi
782 AM_CONDITIONAL(BUILD_PARSER, test "$enable_build_parser" = yes)
783
784 #################
785 ## HDF5
786 #################
787
788 AC_HDF5()
789 # The Java detection is done after in this file.
790
791
792 #################
793 ## scirenderer
794 #################
795
796 AC_ARG_WITH(external-scirenderer,
797     AS_HELP_STRING([--with-external-scirenderer],[Disable the usage of the internal copy of scirenderer. Intended for packaging of Scilab]))
798
799 AM_CONDITIONAL(EXTERNAL_SCIRENDERER, test "$with_external_scirenderer" = yes)
800
801
802 #################
803 ## XCOS
804 #################
805
806 AC_ARG_WITH(xcos,
807     AS_HELP_STRING([--without-xcos], [Disable Xcos]))
808
809 AC_ARG_WITH(modelica,
810     AS_HELP_STRING([--without-modelica],[Disable the OCaml module (modelica)]))
811
812
813 if test "$with_gui" = no; then
814    AC_MSG_WARN([GUI is disabled. Disabling then Xcos GUI])
815 fi
816
817 XCOS_ENABLE=no
818
819 if test "$with_xcos" != no; then
820    AC_DEFINE([WITH_XCOS], [], [with XCos])
821
822    save_LIBS="$LIBS"
823
824    AC_CHECK_LIB([rt], [clock_gettime],
825               [RT_LIB="-lrt";
826               AC_DEFINE([HAVE_CLOCK_GETTIME], [1],[Whether clock_gettime is available]) ],
827         [AC_MSG_WARN([librt: library missing (Cannot find symbol clock_gettime). Check if librt is installed (it is usually provided by the libc) and if the version is correct])]
828    )
829    LIBS="$save_LIBS"
830    AC_SUBST(RT_LIB)
831
832
833 #################
834 ## ocaml which only called when using Xcos
835 #################
836
837    if test "$with_modelica" != no; then
838       AC_CHECK_PROG_OCAML()
839    fi
840    XCOS_ENABLE=yes
841
842 fi
843
844 AC_SUBST(XCOS_ENABLE)
845
846 AM_CONDITIONAL(OCAML, test "$with_modelica" != no -a "$OCAMLC" != no -a "$OCAMLOPT" != no)
847 AM_CONDITIONAL(XCOS, test "$XCOS_ENABLE" != no)
848
849 ###########################
850 ## test for JAVA compiler
851 ###########################
852 if test "$with_javasci" != no -o "$with_gui" != no -o "$enable_build_help" != no; then
853
854      # See if --with-jdk command line argument is given
855      # Try to detect the installed JVM, this could be controlled
856      # by the above --with options
857      AC_JAVA_WITH_JDK
858      if test "$with_jdk" != no; then
859
860      AC_JAVA_DETECT_JVM
861      case "$ac_java_jvm_version" in
862         1.8)
863         ;;
864         *)
865             AC_MSG_ERROR([Wrong version of Java. Expected at least 1.8. Found $ac_java_jvm_version])
866         ;;
867      esac
868
869    if test "$ac_java_jvm_name" = "jdk"; then
870         JAVA_HOME=$ac_java_jvm_dir
871         JAVA_VERSION=$ac_java_jvm_version
872 #     AC_JAVA_TOOLS
873
874         AC_JAVA_JNI_INCLUDE
875         JAVA_JNI_INCLUDE=$ac_java_jvm_jni_include_flags
876
877         case "$host_os" in
878              *Darwin* | *darwin*)
879                # Mac OS X does not link against the lib but uses -framework
880                JAVA_JNI_LIBS="-framework JavaVM"
881              ;;
882              *)
883                AC_JAVA_JNI_LIBS
884                JAVA_JNI_LIBS=$ac_java_jvm_jni_lib_flags
885                JAVA_JNI_LIBS_PRELOAD=$ac_java_jvm_ld_preload
886              ;;
887         esac
888
889         AC_JAVA_CLASSPATH
890         JAVA_CLASSPATH=$ac_java_classpath
891         AC_JAVA_TOOLS
892         AC_JAVA_ANT
893
894         case "$host_os" in
895              *Darwin* | *darwin*)
896                   JAVA_HOME=""
897              ;;
898         esac
899
900
901         if test "$with_gui" != no; then
902
903                 if test "$with_xcos" != no; then
904                    # jgraphx
905                    AC_JAVA_CHECK_JAR([jgraphx],[com.mxgraph.view.mxGraph],[Diagram design],[],[VERSION],[2.0.0.1])
906                    JGRAPHX=$PACKAGE_JAR_FILE
907                    AC_SUBST(JGRAPHX)
908                 fi
909
910                 if test "$with_external_scirenderer" = yes; then
911                    # scirenderer
912                    AC_JAVA_CHECK_JAR([scirenderer],[org.scilab.forge.scirenderer.PackageInfo],[Scilab Renderer],[],[VERSION],[1.1.0])
913                    SCIRENDERER=$PACKAGE_JAR_FILE
914                    SCIRENDERER_CP=$PACKAGE_JAR_FILE
915                  else
916                    echo "Use external version of scirenderer"
917                    # Use the scirenderer in Scilab sources
918                    SCIRENDERER="\${modules.dir}/scirenderer/\${build.jar.dir}/scirenderer.jar"
919                    SCIRENDERER_CP="\$SCILAB/modules/scirenderer/jar/scirenderer.jar"
920                 fi
921                 AC_SUBST(SCIRENDERER)
922                 AC_SUBST(SCIRENDERER_CP)
923
924                # Docking system
925                 AC_JAVA_CHECK_JAR([flexdock],[org.flexdock.util.Utilities],[Scilab Gui],[],[VERSION],[1.2.4])
926                 FLEXDOCK=$PACKAGE_JAR_FILE
927                 AC_SUBST(FLEXDOCK)
928
929                 # Swing look&feel implementations
930                 AC_JAVA_CHECK_JAR([looks],[com.jgoodies.looks.common.MenuItemRenderer],[Scilab Gui - Look and feel],"yes")
931                 LOOKS=$PACKAGE_JAR_FILE
932
933                 # Named differently under ArchLinux or Fedora
934                 if test -z "$LOOKS"; then
935                     AC_JAVA_CHECK_JAR([jgoodies-looks],[com.jgoodies.looks.common.MenuItemRenderer],[Scilab Gui - Look and feel])
936                     LOOKS=$PACKAGE_JAR_FILE
937                 fi
938                 AC_SUBST(LOOKS)
939
940                 #  Skin Look and Feel
941                 AC_JAVA_CHECK_JAR([skinlf],[com.l2fprod.util.AccessUtils],[Scilab Gui - Skin Look and Feel])
942                 SKINLF=$PACKAGE_JAR_FILE
943                 AC_SUBST(SKINLF)
944
945                 # JOGL 2
946                 AC_JAVA_CHECK_JAR([jogl2],[javax.media.opengl.glu.GLUnurbs],[Scilab 3D rendering - Version 2.0])
947                 JOGL2=$PACKAGE_JAR_FILE
948                 AC_SUBST(JOGL2)
949
950                 AC_JAVA_CHECK_VERSION_MANIFEST([jogl2],$JOGL2,[2.2],[Specification-Version])
951
952                 if test "$MACOSX" = 1; then
953                    echo "Check of the presence of libjogl.jnilib and libjogl_awt.jnilib disabled under Mac OS X"
954                 else
955                    LDFLAGS_save=$LDFLAGS
956                    # Provide known paths where distribs/OS can store JNI libs
957                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
958                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
959                    LDFLAGS="$LDFLAGS -L/usr/lib/jogl2 -L/usr/lib64/jogl2"               # RedHat
960                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/lib/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
961                    AC_CHECK_LIB([jogl_desktop], [glTexParameterf], [JOGL2_LIBS="-ljogl_desktop"],[AC_MSG_WARN([Could not link against -ljogl_desktop. Will try against -ljogl_desktop -lGL])])
962                    if test -z "$JOGL2_LIBS"; then # The previous test failed add more options to the LDFLAGS
963                        # the space after "jogl" in the following line is on
964                        # purpose to disable the cache
965                           AC_CHECK_LIB([jogl_desktop ], [glTexParameterf],
966                        [JOGL2_LIBS="-ljogl_desktop -lGL"],
967                        [AC_MSG_ERROR(["libjogl: Library
968 missing (Cannot find symbol glTexParameterf). Check if libjogl - C/Java (JNI)
969 interface for JOGL2 - or libGL (OpenGL library) are installed and if the version is correct. Note that you might have to update etc/librarypath.xml to provide the actual path to the JNI libraries."])],
970                        [-lGL])
971                    fi
972
973                    LDFLAGS=$LDFLAGS_save
974                 fi
975
976                 # JoGL Native <=> Java connector
977                 AC_JAVA_CHECK_JAR([gluegen2-rt],[jogamp.common.os.MachineDescriptionRuntime],[Scilab 3D rendering])
978                 GLUEGEN2_RT=$PACKAGE_JAR_FILE
979                 AC_SUBST(GLUEGEN2_RT)
980
981                 if test "$MACOSX" = 1; then
982                    echo "Check of the presence of libgluegen-rt.jnilib disabled under Mac OS X"
983                 else
984                    LDFLAGS_save=$LDFLAGS
985                    # Provide known paths where distribs/OS can store JNI libs
986                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
987                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
988                    LDFLAGS="$LDFLAGS -L/usr/lib/gluegen2 -L/usr/lib64/gluegen2"         # RedHat
989                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/lib/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
990                    symbol="Java_jogamp_common_jvm_JVMUtil_initialize"
991                    AC_CHECK_LIB([gluegen2-rt], [$symbol], [GLUEGEN2_RT_LIBS="-lgluegen2-rt"],
992                    [AC_MSG_ERROR([libgluegen2-rt: Library missing (Cannot find symbol $symbol). Check if libgluegen-rt - C/Java (JNI) interface for GLUEGEN2 - is installed and if the version is correct. Note that you might have to update etc/librarypath.xml to provide the actual path to the JNI libraries.])],
993                    [-ldl])
994                    LDFLAGS=$LDFLAGS_save
995                 fi
996
997                 # Jhall
998                 AC_JAVA_CHECK_JAR([jhall],[javax.help.JHelp],[Scilab Help Browser],"yes")
999                 # Named differently under Mandriva or Fedora
1000                 if test -z "$PACKAGE_JAR_FILE"; then
1001                     AC_JAVA_CHECK_JAR([javahelp2],[javax.help.JHelp],[Scilab Help Browser])
1002                 fi
1003                 JHALL=$PACKAGE_JAR_FILE
1004                 AC_SUBST(JHALL)
1005
1006                 # Console API
1007                 AC_JAVA_CHECK_JAR([jrosetta-API],[com.artenum.rosetta.interfaces.core.ConsoleConfiguration],[JRosetta : Console API Artenum / Scilab],"yes")
1008                 if test -z "$PACKAGE_JAR_FILE"; then
1009                     AC_JAVA_CHECK_JAR([jrosetta-api],[com.artenum.rosetta.interfaces.core.ConsoleConfiguration],[JRosetta : Console API Artenum / Scilab])
1010                 fi
1011                 JROSETTA_API=$PACKAGE_JAR_FILE
1012                 AC_SUBST(JROSETTA_API)
1013
1014                 # Console Core
1015                 AC_JAVA_CHECK_JAR([jrosetta-engine],[com.artenum.rosetta.util.ConfigurationBuilder],[JRosetta : Console Core Artenum / Scilab],[],[getVersion],[1.0.4])
1016                 JROSETTA_ENGINE=$PACKAGE_JAR_FILE
1017                 AC_SUBST(JROSETTA_ENGINE)
1018
1019
1020                 # MathML rendering solution
1021                 # Used in both graphic & help
1022                 AC_JAVA_CHECK_JAR([jeuclid-core],[net.sourceforge.jeuclid.LayoutContext],[MathML rendering solution (at least version 3.1.X)])
1023                 JEUCLID_CORE=$PACKAGE_JAR_FILE
1024                 AC_SUBST(JEUCLID_CORE)
1025
1026
1027                 ################ Mandatory for graphic_export features #####
1028                 # XML to PDF/other Translator
1029                 AC_JAVA_CHECK_JAR([fop],[org.apache.fop.pdf.PDFInfo],[XML to PDF Translator (fop)])
1030                 FOP=$PACKAGE_JAR_FILE
1031                 AC_SUBST(FOP)
1032
1033                 AC_ARG_WITH(emf, [AS_HELP_STRING([--without-emf],
1034                     [disable support for EMF (Windows Metafile) export])])
1035                 if test "x$with_emf" != xno; then
1036                     # Freehep Graphics2D
1037                     AC_JAVA_CHECK_JAR([freehep-graphics2d],[org.freehep.graphics2d.VectorGraphics],[Freehep Graphics2D])
1038                     FREEHEP_GRAPHICS2D=$PACKAGE_JAR_FILE
1039                     AC_SUBST(FREEHEP_GRAPHICS2D)
1040
1041                     # Freehep GraphicsIO
1042                     AC_JAVA_CHECK_JAR([freehep-graphicsio],[org.freehep.graphicsio.VectorGraphicsIO],[Freehep GraphicsIO])
1043                     FREEHEP_GRAPHICSIO=$PACKAGE_JAR_FILE
1044                     AC_SUBST(FREEHEP_GRAPHICSIO)
1045
1046                     # Freehep GraphicsIO EMF
1047                     AC_JAVA_CHECK_JAR([freehep-graphicsio-emf],[org.freehep.graphicsio.emf.EMFGraphics2D],[Freehep GraphicsIO EMF])
1048                     FREEHEP_GRAPHICSIO_EMF=$PACKAGE_JAR_FILE
1049                     AC_SUBST(FREEHEP_GRAPHICSIO_EMF)
1050
1051                     # Freehep IO
1052                     AC_JAVA_CHECK_JAR([freehep-io],[org.freehep.util.io.XMLSequence],[Freehep IO])
1053                     FREEHEP_IO=$PACKAGE_JAR_FILE
1054                     AC_SUBST(FREEHEP_IO)
1055
1056                     # Freehep Util
1057                     AC_JAVA_CHECK_JAR([freehep-util],[org.freehep.util.StringUtilities],[Freehep Util])
1058                     FREEHEP_UTIL=$PACKAGE_JAR_FILE
1059                     AC_SUBST(FREEHEP_UTIL)
1060                 fi
1061
1062                 # xml.apache.org SVG Library (under mandriva for example)
1063                 AC_JAVA_CHECK_JAR([batik-all],[org.apache.batik.Version],
1064                                   [Apache SVG Library],"yes",[getVersion],[1.8])
1065                 BATIK=$PACKAGE_JAR_FILE
1066
1067                 if test -z "$BATIK"; then
1068                    # Other other distribs
1069                    AC_JAVA_CHECK_JAR([batik],[org.apache.batik.Version],
1070                                      [Apache SVG Library],[],[getVersion],[1.8])
1071                    BATIK=$PACKAGE_JAR_FILE
1072                 fi
1073                 AC_SUBST(BATIK)
1074
1075                 # Commons I/O library
1076                 AC_JAVA_CHECK_JAR([commons-io],[org.apache.commons.io.output.CountingOutputStream],[Commons I/O library])
1077                 COMMONS_IO=$PACKAGE_JAR_FILE
1078                 AC_SUBST(COMMONS_IO)
1079
1080                 # XML graphics common
1081                 AC_JAVA_CHECK_JAR([xmlgraphics-commons],[org.apache.xmlgraphics.util.Service],[Commons graphics library])
1082                 XMLGRAPHICS_COMMONS=$PACKAGE_JAR_FILE
1083                 AC_SUBST(XMLGRAPHICS_COMMONS)
1084
1085                 # Avalon Framework (PDF)
1086                 AC_JAVA_CHECK_JAR([avalon-framework],[org.apache.avalon.framework.configuration.ConfigurationException],[Common framework for Java server application])
1087                 AVALON_FRAMEWORK=$PACKAGE_JAR_FILE
1088                 AC_SUBST(AVALON_FRAMEWORK)
1089
1090                 # XML API EXT (conversion of a SVG => PNG)
1091                 AC_JAVA_CHECK_JAR([xml-apis-ext],[org.w3c.dom.svg.SVGDocument],[XML Commons external code],"yes")
1092                 XML_APIS_EXT=$PACKAGE_JAR_FILE
1093
1094                 if test -z "$XML_APIS_EXT"; then
1095                     # Other other distribs (Ex: Fedora/Redhat)
1096                     AC_JAVA_CHECK_JAR([xml-commons-apis-ext],[org.w3c.dom.svg.SVGDocument],[XML Commons external code])
1097                     XML_APIS_EXT=$PACKAGE_JAR_FILE
1098                 fi
1099                 AC_SUBST(XML_APIS_EXT)
1100
1101                 ################ END Mandatory for graphic_export features #####
1102
1103
1104                 # Logging (flexdock dep)
1105                 AC_JAVA_CHECK_JAR([commons-logging],[org.apache.commons.logging.LogFactory],[Apache logging])
1106                 COMMONS_LOGGING=$PACKAGE_JAR_FILE
1107                 AC_SUBST(COMMONS_LOGGING)
1108
1109                 # JLaTeXMath
1110                 AC_JAVA_CHECK_JAR([jlatexmath],[org.scilab.forge.jlatexmath.TeXFormula],[LaTex Rendering],[],[VERSION],[1.0.3])
1111                 JLATEXMATH=$PACKAGE_JAR_FILE
1112                 AC_SUBST(JLATEXMATH)
1113
1114                 # JLaTeXMath FOP
1115                 AC_JAVA_CHECK_JAR([jlatexmath-fop],[org.scilab.forge.jlatexmath.fop.JLaTeXMathObj],[LaTex Rendering - FOP plugin])
1116                 JLATEXMATH_FOP=$PACKAGE_JAR_FILE
1117                 AC_SUBST(JLATEXMATH_FOP)
1118
1119                 AC_DEFINE([WITH_GUI],[],[With the JAVA stuff (GUI, Console, JOGL...)])
1120
1121         fi
1122
1123         # Checkstyle (code checking)
1124         AC_JAVA_CHECK_JAR([checkstyle],[com.puppycrawl.tools.checkstyle.CheckStyleTask],[Checkstyle - code checking],"yes")
1125         CHECKSTYLE=$PACKAGE_JAR_FILE
1126         AC_SUBST(CHECKSTYLE)
1127
1128         # Commons beanutils (dependency of checkstyle)
1129         AC_JAVA_CHECK_JAR([commons-beanutils],[org.apache.commons.beanutils.Converter],[Bean utility],"yes")
1130         COMMONS_BEANUTILS=$PACKAGE_JAR_FILE
1131         AC_SUBST(COMMONS_BEANUTILS)
1132
1133         # antlr (dependency of checkstyle)
1134         AC_JAVA_CHECK_JAR([antlr],[antlr.TokenStreamException],[language tool for constructing recognizers],"yes")
1135         ANTLR=$PACKAGE_JAR_FILE
1136         AC_SUBST(ANTLR)
1137
1138         # Junit 4 (java unitary test)
1139         AC_JAVA_CHECK_JAR([junit4],[org.junit.Assert],[Junit4 - Unit tests],"yes")
1140         if test -z "$PACKAGE_JAR_FILE"; then
1141                 AC_JAVA_CHECK_JAR([junit],[org.junit.Assert],[Junit4 -
1142 Unit tests],"yes")
1143         fi
1144         JUNIT4=$PACKAGE_JAR_FILE
1145         AC_SUBST(JUNIT4)
1146         
1147         # hamcrest (junit4 dependency)
1148         AC_JAVA_CHECK_JAR([hamcrest-all],[org.hamcrest.core.IsNull],[Hamcrest- library matchers],"yes")
1149         if test -z "$PACKAGE_JAR_FILE"; then
1150             AC_JAVA_CHECK_JAR([hamcrest/all],[org.hamcrest.core.IsNull],[Hamcrest- library matchers],"yes")
1151         fi
1152         HAMCREST=$PACKAGE_JAR_FILE
1153         AC_SUBST(HAMCREST)
1154
1155         # Cobertura (java code coverage)
1156         AC_JAVA_CHECK_JAR([cobertura],[net.sourceforge.cobertura.merge.Main],[cobertura - Java code coverage],"yes")
1157         COBERTURA=$PACKAGE_JAR_FILE
1158         AC_SUBST(COBERTURA)
1159
1160         # ASM (a dependency of Cobertura)
1161         AC_JAVA_CHECK_JAR([asm3],[org.objectweb.asm.Type],[Java bytecode manipulation (dep of cobertura)],"yes")
1162         if test -z "$ASM3"; then
1163                 AC_JAVA_CHECK_JAR([asm],[org.objectweb.asm.Type],[Java bytecode manipulation (dep of cobertura)],"yes")
1164         fi
1165         ASM3=$PACKAGE_JAR_FILE
1166         AC_SUBST(ASM3)
1167
1168         AC_JAVA_CHECK_JAR([ecj],[org.eclipse.jdt.core.compiler.batch.BatchCompiler],[Eclipse Java compiler],"yes")
1169         ECJ=$PACKAGE_JAR_FILE
1170         if test -z "$ECJ"; then
1171            ECJ='$SCILAB/thirdparty/ecj.jar'
1172         fi
1173         AC_SUBST(ECJ)
1174
1175     else
1176         AC_MSG_WARN([Sun javac not found: I will not build the java interface])
1177         if test "$ac_java_jvm_name" != ""; then
1178             AC_MSG_WARN([We do not support $ac_java_jvm_name yet])
1179         fi
1180     fi
1181     AC_SUBST(JAVA_JNI_INCLUDE)
1182     AC_SUBST(JAVA_JNI_LIBS)
1183     AC_SUBST(JAVA_HOME)
1184
1185
1186     if test "$enable_debug_java" = yes; then
1187         JAVAC_DEBUG="on"
1188     else
1189         JAVAC_DEBUG="off"
1190     fi
1191     AC_SUBST(JAVAC_DEBUG)
1192
1193     if test "$enable_build_swig" != no -a "$enable_build_swig" != ""; then
1194         SWIG_PROG()
1195         SWIG_ENABLE_JAVA()
1196         SWIG_ENABLE_SCILAB()
1197         AC_SUBST(SWIG_BIN)
1198         AC_SUBST(SWIG_JAVA)
1199         AC_SUBST(SWIG_SCILAB)
1200
1201     fi
1202
1203     # Giws is the equivalent of Swig developed by the Scilab team
1204     # in order to provide a wrapper to Java from C/C++
1205     if test "$enable_build_giws" != no -a "$enable_build_giws" != ""; then
1206         AC_GIWS([1.3.0])
1207     fi
1208
1209     fi # "$with_jdk" != no;
1210 fi
1211
1212 JAVA_ENABLE=yes
1213 if test -z "$JAVAC"; then
1214     JAVA_ENABLE=no
1215 fi
1216
1217 AC_SUBST(JAVA_ENABLE)
1218
1219 # Xcos is not checked here because gui=no disables it
1220 AM_CONDITIONAL(NEED_JAVA, [test "$with_jdk" != no -a \( "$with_javasci" != no -o "$with_gui" != no -o "$enable_build_help" != no \)])
1221 AM_CONDITIONAL(GUI, [test "$with_jdk" != no -a "$with_gui" != no])
1222 AM_CONDITIONAL(JAVASCI, [test "$with_jdk" != no -a "$with_javasci" != no])
1223 AM_CONDITIONAL(SWIG, [test "$with_jdk" != no -a "$enable_build_swig" != no -a "$enable_build_swig" != ""])
1224 AM_CONDITIONAL(GIWS, [test "$with_jdk" != no -a "$enable_build_giws" != no -a "$enable_build_giws" != ""])
1225
1226 ##############################################################
1227 ## GUI module
1228 ##############################################################
1229
1230 GUI_ENABLE=no
1231
1232 if test "$JAVA_ENABLE" != no; then
1233    GUI_ENABLE=yes
1234 fi
1235
1236 if test "$with_gui" != no; then
1237    GUI_ENABLE=yes
1238 fi
1239
1240 AC_SUBST(GUI_ENABLE)
1241
1242 ##############################################################
1243 ## test for functions in standard C library and C math library
1244 ##############################################################
1245
1246 # Provided by unistd.h
1247 AC_CHECK_FUNCS([sleep] [usleep] [dup2] [getcwd] [getpagesize] [getpass])
1248 AC_CHECK_FUNCS([rmdir])
1249
1250 AC_CHECK_FUNC([getwd],AC_DEFINE([HAVE_GETWD],[1],[Define to 1 if you have the `getwd' function.]),[AC_DEFINE([getwd(x)],[getcwd(x,1024)],[Don't use getwd but getcwd])])
1251
1252 # Provided by <regex.h>
1253 AC_CHECK_FUNCS([regcomp])
1254
1255 # Provided by stdlib.h
1256 AC_CHECK_FUNCS([atexit] [putenv] [setenv])
1257
1258 # Provided by String.h
1259 AC_CHECK_FUNCS([bzero] [memmove] [memset] [strcasecmp] [strerror] [strchr] [strdup] [strpbrk] [strrchr] [strstr] [strtol])
1260
1261 # Provided by select.h
1262 AC_CHECK_FUNCS([select])
1263
1264 # Provided by pwd.h
1265 AC_CHECK_FUNCS([endpwent])
1266
1267 # Provided by netdb.h
1268 AC_CHECK_FUNCS([gethostbyaddr] [gethostbyname] [gethostname])
1269
1270 # Provided by time.h
1271 AC_CHECK_FUNCS([gettimeofday])
1272
1273 # Provided by ctype.h
1274 AC_CHECK_FUNCS([isascii])
1275
1276 # Provided by wctype.h
1277 AC_CHECK_FUNCS([iswprint])
1278
1279 # Provided by types.h
1280 AC_CHECK_FUNCS([mkdir])
1281
1282 # Provided by mman.h
1283 AC_CHECK_FUNCS([munmap])
1284
1285 # Provided by signal.h
1286 AC_CHECK_FUNCS([strsignal])
1287
1288
1289 # Check of the libm (lib math). Macro provided by libtool.
1290 save_LDFLAGS="$LDFLAGS"
1291 LT_LIB_M()
1292
1293 # Provided by math.h
1294
1295 LDFLAGS="$LDFLAGS $LIBM"
1296 AC_CHECK_FUNCS([pow] [sqrt] [finite] [floor] [exp10] [erf] [erfc] [isnan])
1297
1298 ### If isinf exists or not (used to not be the case under Solaris)
1299 ### See bug #4164
1300 AC_DEFINE([HAVE_ISINF],[1],[Have isinf function or macro equivalent])
1301 AC_CHECK_FUNC([isinf],,[
1302         AC_DEFINE([isinf(x)],[(!finite(x) && x==x)],[Provide a macro to do isinf])
1303 ])
1304 LIBS="$LIBS $LIBM"
1305 LDFLAGS="$save_LDFLAGS"
1306
1307 # Provided by regex.h
1308 AC_CHECK_FUNCS([re_comp])
1309
1310 # Provided by socket.h
1311 AC_CHECK_FUNCS([socket])
1312
1313 # Provided by utsname.h
1314 AC_CHECK_FUNCS([uname])
1315
1316 # Provided by wtloop.c
1317 AC_CHECK_FUNCS([setlocale])
1318
1319 # Function memcmp used in modules/fileio/src/c/xls.c
1320 AC_FUNC_MEMCMP
1321
1322 # function stat used in modules/core/src/c/link_std.c
1323 AC_FUNC_STAT
1324
1325 # function strtod used in modules/core/src/c/getval.c
1326 AC_FUNC_STRTOD
1327
1328 ########################
1329 ## test for header files
1330 ########################
1331
1332 AC_CHECK_HEADERS([limits.h values.h])
1333
1334 AC_CHECK_HEADERS([fcntl.h float.h libintl.h locale.h malloc.h netdb.h netinet/in.h nlist.h sgtty.h stddef.h sys/file.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h sys/timeb.h sys/utsname.h syslog.h term.h termcap.h termio.h termios.h wchar.h wctype.h time.h])
1335
1336 # check header dirent
1337 AC_HEADER_DIRENT
1338
1339 # static struct timeval defined or not | used in modules/core/src/c/timer.c
1340 AC_HEADER_TIME
1341
1342 # check if the specific header is available or not | used in modules/core/src/c/link_SYSV.c
1343 AC_HEADER_SYS_WAIT
1344
1345
1346 #######################
1347 ## Test for structures ##
1348 #######################
1349 AC_CHECK_MEMBERS([struct stat.st_blksize])
1350 AC_CHECK_MEMBERS([struct stat.st_rdev])
1351
1352
1353 #######################
1354 ## MISC Test
1355 #######################
1356
1357 # gettext.  See http://www.gnu.org/software/hello/manual/gettext/AM_005fGNU_005fGETTEXT.html
1358 AM_GNU_GETTEXT([external])
1359 AM_GNU_GETTEXT_VERSION([0.16])
1360
1361 # function closedir used in modules/metanet/src/c/files.c
1362 AC_FUNC_CLOSEDIR_VOID
1363
1364 # Signals used in modules/core/src/c/realmain.c
1365 AC_TYPE_SIGNAL
1366
1367 # struct tm used in modules/core/src/c/history.c
1368 AC_STRUCT_TM
1369
1370 # st_blocks in the struct in modules/io/sci_gateway/c/intfilestat.c
1371 AC_STRUCT_ST_BLOCKS
1372
1373
1374 ##################
1375 ## termcap library
1376 ##################
1377
1378 # some systems may have a system curses implementation as well as ncurses
1379 # installed.  We need to be consistent in making sure we get the correct
1380 # library to go with the correct header and also provide a way for the user
1381 # to have some control over which is picked when both are available.
1382 #
1383 # For now, just check for -lcurses and then -lncurses.  The user control
1384 # may need to be revisited
1385
1386 TERMCAP_LIB=no
1387
1388 # Various observations:
1389 #
1390 #  ncurses
1391 #    - installs ncurses.h and possibly curses.h as a link to ncurses.h
1392 #    - installs -lncurses.
1393 #    - need to include term.h for tgetent() but tgetent() is in -lncurses.a
1394 #
1395 # curses as found in NetBSD-4 and NetBSD-5
1396 #    - installs curses.h
1397 #    - need to include termcap.h and link with -ltermcap for tgetent()
1398 #
1399
1400 AC_CHECK_LIB([curses],[main])
1401 if test $ac_cv_lib_curses_main = no ; then
1402     AC_CHECK_LIB([ncurses],[main])
1403 fi
1404
1405 # make sure we have what we need for tgetent
1406 AC_SEARCH_LIBS([tgetent],[termcap])
1407
1408 AC_CHECK_HEADERS([ncurses.h curses.h])
1409
1410 if test "x$ac_cv_lib_curses_main" = "xyes" -o "x$ac_cv_lib_ncurses_main" = "xyes" ; then
1411   AC_DEFINE([HAVE_TERMCAP],[],[Have Term Cap])
1412 else
1413  AC_MSG_ERROR([No termcap library detected. Please install ncurses dev library (or termcap library)])
1414 fi
1415
1416 ##################
1417 ## other libraries
1418 ##################
1419
1420 AC_CHECK_LIB(dl, dlopen)
1421
1422 AC_SEARCH_LIBS([pthread_join],[pthread])
1423
1424 #################
1425 ## FFTW
1426 #################
1427
1428 AC_ARG_WITH(fftw,
1429     AS_HELP_STRING([--without-fftw],[Disable the interface to the FFTW 3 library]))
1430
1431 FFTW_ENABLE=no
1432 if test "$with_fftw" != no; then
1433    AC_FFTW()
1434    FFTW_ENABLE=yes
1435 fi
1436
1437 AC_SUBST(FFTW_ENABLE)
1438 AM_CONDITIONAL(FFTW, test "$with_fftw" != no)
1439
1440
1441 #################
1442 ## EIGEN
1443 #################
1444
1445 AC_EIGEN()
1446
1447
1448 #################
1449 ## MPI
1450 #################
1451
1452 # Disable by default the build of MPI:
1453 # * It is hard to package
1454 # * People are administrating cluster know about rebuilding packages
1455 # * They use their own MPI library
1456 AC_ARG_WITH(mpi,
1457     AS_HELP_STRING([--with-mpi],[compile with MPI library]))
1458
1459 MPI_ENABLE=no
1460 if test "$with_mpi" == yes; then
1461    AC_OPENMPI()
1462    # We will have to detect other implementation of OpenMPI
1463    MPI_ENABLE=yes
1464 fi
1465 AC_SUBST(MPI_ENABLE)
1466
1467 AM_CONDITIONAL(MPI, test "$with_mpi" == yes)
1468
1469 #################
1470 ## OpenMP
1471 #################
1472
1473 AC_ARG_WITH(openmp,
1474     AS_HELP_STRING([--without-openmp],[Disable the usage of OpenMP (parallelization of some algoritms)]))
1475
1476 OPENMP_ENABLE=no
1477 if test "$with_openmp" != no; then
1478 #   AC_OPENMP
1479     OPENMP_CFLAGS="-fopenmp"
1480     OPENMP_CXXFLAGS="-fopenmp"
1481     OPENMP_LIBS="-lgomp" 
1482
1483     AC_CHECK_HEADERS([omp.h], [],
1484      [AC_MSG_ERROR([Could not find omp.h])])
1485
1486     OPENMP_ENABLE=yes
1487 fi
1488 AC_SUBST(OPENMP_ENABLE)
1489 AC_SUBST(OPENMP_CFLAGS)
1490 AC_SUBST(OPENMP_CXXFLAGS)
1491 AC_SUBST(OPENMP_LIBS)
1492
1493 AM_CONDITIONAL(OPENMP, test "$with_openmp" != no)
1494
1495
1496 #######################
1497 ## Test for libxml
1498 #######################
1499
1500 AC_LIBXML2()
1501
1502 #######################
1503 ## Test for gettext
1504 #######################
1505
1506 ALL_LINGUAS="en_US fr_FR zh_CN zh_TW ru_RU ca_ES de_DE es_ES pt_BR ja_JP it_IT uk_UA pl_PL cs_CZ"
1507 ALL_LINGUAS_DOC="en_US fr_FR pt_BR ja_JP ru_RU"
1508
1509 AC_ARG_ENABLE(build-localization,
1510         AS_HELP_STRING([--disable-build-localization],[Disable the localization build])
1511         )
1512 BUILD_LOCALIZATION_ENABLE=no
1513
1514 if test "$enable_build_localization" != no; then
1515
1516    AC_SUBST(ALL_LINGUAS)
1517    AC_SUBST(ALL_LINGUAS_DOC)
1518    AC_CHECK_FUNCS([bind_textdomain_codeset])
1519
1520    AC_PATH_PROG(MSGCAT, msgcat, no)
1521 #   AC_PATH_PROG(MSGFMT, msgfmt, no)
1522 #   AC_PATH_PROG(XGETTEXT, xgettext, no)
1523
1524    if test x$MSGFMT = xno; then
1525       AC_MSG_ERROR([The msgfmt command is required to build Scilab.  If it is installed on your system, ensure that it is in your path.  If it is not, install GNU gettext to continue or use the option --disable-build-localization ])
1526       fi
1527     if test x$MSGCAT = xno; then
1528       AC_MSG_ERROR([The msgcat command is required to build Scilab.  If it is installed on your system, ensure that it is in your path.  If it is not, install GNU gettext to continue or use the option --disable-build-localization ])
1529     fi
1530     BUILD_LOCALIZATION_ENABLE=yes
1531 fi
1532 AM_CONDITIONAL(GENERATE_LOCALIZATION_FILES, test "$BUILD_LOCALIZATION_ENABLE" = yes)
1533
1534 #######################
1535 ## Test for blas/Atlas and lapack
1536 #######################
1537 AC_MSG_CHECKING([if BLAS, ATLAS or MKL is available])
1538 echo ""
1539 ACX_BLAS(
1540         [AC_MSG_RESULT([$BLAS_TYPE found])]
1541         ,
1542         AC_MSG_ERROR([Impossible to find a BLAS compatible library (see BLAS or ATLAS).])
1543         )
1544
1545 AC_MSG_CHECKING([if LAPACK is available])
1546 echo ""
1547 ACX_LAPACK(
1548         [AC_MSG_RESULT([$LAPACK_TYPE found])],
1549         AC_MSG_ERROR([Impossible to find the LAPACK library.])
1550         )
1551
1552
1553 AC_ARG_WITH(arpack-ng,
1554     AS_HELP_STRING([--without-arpack-ng],[Disable the interface to ARPACK-NG]))
1555
1556 ARPACK_NG=no
1557 if test "$with_arpack_ng" != no; then
1558    ARPACK_NG=yes
1559    AC_MSG_CHECKING([if ARPACK-NG is available])
1560 echo ""
1561 ACX_ARPACK(
1562         [AC_MSG_RESULT([ARPACK-NG library found])],
1563         AC_MSG_ERROR([Impossible to find the ARPACK library. Please note that arpack was bundled with version prior to 5.4.0 and Scilab requires arpack-ng ( http://forge.scilab.org/index.php/p/arpack-ng/ ).])
1564         )
1565
1566 CHECK_ARPACK_OK(
1567 [AC_MSG_RESULT([Working ARPACK-NG library found (probably ARPACK-NG or a patched version of ARPACK)])],
1568 [AC_MSG_ERROR([ARPACK library found, but seems not to work properly. Please make sure you are using arpack-ng])
1569 ])
1570 else
1571    AC_MSG_CHECKING([Skip ARPACK-NG detection])
1572 fi
1573
1574 AM_CONDITIONAL(ARPACK_NG, test "$ARPACK_NG" != "no")
1575
1576
1577 #################
1578 ## UMFPACK
1579 #################
1580
1581 AC_ARG_WITH(umfpack,
1582     AS_HELP_STRING([--without-umfpack],[Disable the interface to the UMFPACK library]))
1583
1584 UMFPACK_ENABLE=no
1585 if test "$with_umfpack" != no; then
1586    AC_UMFPACK([$BLAS_LIBS])
1587    UMFPACK_ENABLE=yes
1588 fi
1589
1590 AC_SUBST(UMFPACK_ENABLE)
1591 AM_CONDITIONAL(UMFPACK, test "$with_umfpack" != no)
1592
1593 #######################
1594 ## Test for PCRE
1595 #######################
1596
1597 AC_PCRE()
1598
1599 #######################
1600 ## Test for CURL
1601 #######################
1602
1603 AC_CURL()
1604
1605 #################
1606 ## Tcl/Tk library
1607 #################
1608
1609 WITH_TKSCI=no
1610 if test "$with_tk" != no; then
1611    if test "$MACOSX" = "1"; then
1612       AC_MSG_ERROR([Due to technical constraints, Tcl/Tk must be disabled under Mac OS X (--without-tk)])
1613    fi
1614
1615     # check user arguments
1616     USER_TCL_LIB_PATH=""
1617     USER_TCL_INC_PATH=""
1618     AC_ARG_WITH(tcl-library,
1619         AS_HELP_STRING([--with-tcl-library=DIR],[Set the path to the TCL library]),
1620         [  USER_TCL_LIB_PATH=$withval
1621     ])
1622     AC_ARG_WITH(tcl-include,
1623         AS_HELP_STRING([--with-tcl-include=DIR],[Set the path to the TCL headers]),
1624         [  USER_TCL_INC_PATH=$withval
1625     ])
1626
1627     USER_TK_LIB_PATH=$USER_TCL_LIB_PATH
1628     USER_TK_INC_PATH=$USER_TCL_INC_PATH
1629
1630     AC_ARG_WITH(tk-library,
1631         AS_HELP_STRING([--with-tk-library=DIR],[Set the path to the TK library]),
1632         [  USER_TK_LIB_PATH=$withval
1633     ])
1634
1635     AC_ARG_WITH(tk-include,
1636         AS_HELP_STRING([--with-tk-include=DIR],[Set the path to the TK headers]),
1637         [  USER_TK_INC_PATH=$withval
1638     ])
1639
1640 ###########################
1641 ########## X11 checks
1642 ###########################
1643         ## This check is mandatory since tk needs Xlib headers and libs
1644         AC_PATH_XTRA
1645         ##
1646
1647     saved_cflags="$CFLAGS"
1648     saved_ldflags="$LDFLAGS"
1649     saved_cppflags="$CXXFLAGS"
1650
1651     AC_CHECK_LIB([dl], [main], [TCLTK_LIBS=" -ldl"])
1652     AC_CHECK_TCLTK
1653
1654     # set variables
1655     if test "$WITH_TKSCI" = yes; then
1656         AC_DEFINE([WITH_TK], [], [With TK])
1657     else
1658         AC_MSG_ERROR([TCL/TK not found. Use --without-tk or specify the librairies and include paths manually])
1659     fi
1660
1661     AC_SUBST(TCLTK_LIBS)
1662     AC_SUBST(TCL_INC_PATH)
1663     AC_SUBST(TK_INC_PATH)
1664
1665 fi
1666 AC_SUBST(WITH_TKSCI)
1667 AM_CONDITIONAL(TCLTK, test "$WITH_TKSCI" = yes)
1668
1669 #################
1670 ## MATIO LIBRARY (MAT File I/O Library)
1671 #################
1672
1673
1674 AC_ARG_WITH(matio,
1675     AS_HELP_STRING([--without-matio],[Disable the interface to Matio (MAT File I/O library)]))
1676
1677 AC_ARG_WITH(matio_include,
1678         AS_HELP_STRING([--with-matio-include=DIR],[Set the path to the MATIO headers]),
1679         [with_matio_include="-I$withval"], [])
1680
1681 AC_ARG_WITH(matio_library,
1682         AS_HELP_STRING([--with-matio-library=DIR],[Set the path to the MATIO libraries]),
1683         [with_matio_library="-L$withval"], [])
1684
1685 MATIO_ENABLE=no
1686
1687 if test "$with_matio" != no; then
1688    if test -n "$with_matio_include" -o -n "$with_matio_library" ; then
1689       MATIO_CFLAGS="$with_matio_include"
1690       MATIO_LIBS="$with_matio_library -lm -lz -lmatio -lhdf5"
1691    else
1692       if $WITH_DEVTOOLS; then # Scilab thirdparties
1693          MATIO_CFLAGS="-I$DEVTOOLS_INCDIR"
1694          MATIO_LIBS="-L$DEVTOOLS_LIBDIR -lm -lz -lmatio -lhdf5"
1695       else
1696          PKG_CHECK_MODULES(MATIO, [matio >= 1.5.0])
1697       fi
1698    fi
1699
1700    save_CFLAGS="$CFLAGS"
1701    save_LIBS="$LIBS"
1702
1703    CFLAGS="$CFLAGS $MATIO_CFLAGS"
1704    LIBS="$LIBS $MATIO_LIBS"
1705
1706    AC_CHECK_HEADERS([matio.h], [],
1707      [AC_MSG_ERROR([Invalid MATIO_CFLAGS returned by pkg-config. Try to define MATIO_CFLAGS.])])
1708    AC_CHECK_LIB([matio], [Mat_Open], [],
1709      [AC_MSG_ERROR([Invalid MATIO_LIBS returned by pkg-config. Try to define MATIO_LIBS.])])
1710
1711    LIBS="$save_LIBS"
1712    CFLAGS="$save_CFLAGS"
1713
1714    AC_DEFINE([WITH_MATIO], [], [With the MATIO library])
1715    MATIO_ENABLE=yes
1716
1717    AC_SUBST(MATIO_LIBS)
1718    AC_SUBST(MATIO_CFLAGS)
1719 fi
1720
1721
1722 AC_SUBST(MATIO_ENABLE)
1723 AM_CONDITIONAL(MATIO, test "$with_matio" != no)
1724
1725 #############################
1726 ## Documentation management #
1727 #############################
1728
1729 HELP_ENABLE=yes
1730
1731 AC_ARG_ENABLE(build-help,
1732         AS_HELP_STRING([--disable-build-help],[Disable the help build])
1733         )
1734
1735 if test "$enable_build_help" != no; then
1736     AC_DOCBOOK()
1737 else
1738     HELP_ENABLE=no
1739 fi
1740
1741 if test "$JAVA_ENABLE" = no; then
1742     HELP_ENABLE=no
1743 fi
1744
1745 AC_SUBST(HELP_ENABLE)
1746
1747 AM_CONDITIONAL(BUILD_HELP, test $HELP_ENABLE = yes)
1748
1749 ## Install XML help files ###
1750
1751 AC_ARG_WITH(install-help-xml,
1752         AS_HELP_STRING([--with-install-help-xml],[make install will install XML files])
1753         )
1754 HELP_INSTALL_ENABLE=no
1755 if test "$with_install_help_xml" != no -a "$with_install_help_xml" != ""; then
1756    HELP_INSTALL_ENABLE=yes
1757 fi
1758 AM_CONDITIONAL(INSTALL_HELP_XML, test "$HELP_INSTALL_ENABLE" != "")
1759
1760 ## Doxygen help generation
1761 AC_ARG_ENABLE(build-doxygen,
1762     AS_HELP_STRING([--enable-build-doxygen],[Generate doxygen C/C++ documentation]))
1763
1764 DOXYGEN_ENABLE=yes
1765 if test "$enable_build_doxygen" != no -a "$enable_build_doxygen" != ""; then
1766     AC_DOXYGEN()
1767 else
1768     DOXYGEN_ENABLE=no
1769 fi
1770 AM_CONDITIONAL(DOXYGEN, test $DOXYGEN_ENABLE = yes)
1771
1772 ## Valgrind specific code
1773 PKG_CHECK_EXISTS([valgrind], [PKG_CHECK_MODULES([VALGRIND], [valgrind], [AC_DEFINE([VALGRIND_ENABLE], [], [Enable valgrind specific tweaks])])], [])
1774
1775 ##############################################################
1776 ## Javasci module
1777 ##############################################################
1778
1779 JAVASCI_ENABLE=yes
1780
1781 if test "$JAVA_ENABLE" = no -o "$JAVASCI" = no; then
1782    JAVASCI_ENABLE=no
1783 fi
1784
1785 AC_SUBST(JAVASCI_ENABLE)
1786
1787
1788 ##############################################################
1789 ## Enable test at compilation time
1790 ##############################################################
1791
1792 COMPILATION_TESTS=no
1793 if test "$enable_compilation_tests" != no -a "$enable_compilation_tests" != ""; then
1794    COMPILATION_TESTS=yes
1795 fi
1796
1797 if test COMPILATION_TESTS=yes -a "$JUNIT4" == ""; then
1798    AC_MSG_WARN([--enable-compilation-tests deactivated: Could not find Junit4"])
1799    COMPILATION_TESTS=no
1800 fi
1801
1802 AM_CONDITIONAL(COMPILATION_TESTS, test "$COMPILATION_TESTS" != "no")
1803
1804 ##############################################################
1805 ## Enable the global force link
1806 ##############################################################
1807
1808 AC_ARG_ENABLE(force-full-link,
1809     AS_HELP_STRING([--enable-force-full-link],[Forces the explicit link between libscilab and some "on-the-fly" loaded libraries. NOT USE IN PRODUCTION.]))
1810
1811 FORCE_FULL_LINK="no"
1812 if test "$enable_force_full_link" == "yes"; then
1813     FORCE_FULL_LINK="yes"
1814 fi
1815
1816 AM_CONDITIONAL(FORCE_LINK, test "$FORCE_FULL_LINK" == "yes")
1817
1818 ##############################################################
1819 ## demo_tools module
1820 ##############################################################
1821
1822 DEMOTOOLS_ENABLE=yes
1823
1824 if test "$GUI_ENABLE" = no; then
1825    DEMOTOOLS_ENABLE=no
1826 fi
1827
1828 AC_SUBST(DEMOTOOLS_ENABLE)
1829
1830 ##############################################################
1831 ## graphics/renderer/graphic_export module
1832 ##############################################################
1833
1834 GRAPHICS_ENABLE=yes
1835
1836 if test "$GUI_ENABLE" = no; then
1837    GRAPHICS_ENABLE=no
1838 fi
1839
1840 AC_SUBST(GRAPHICS_ENABLE)
1841
1842 #########################
1843 ## libtool
1844 #########################
1845
1846 LT_PREREQ([2.2.7])
1847 LT_INIT([shared dlopen disable-static])
1848
1849 # Avoid to link all the dep from others libraries (*.la included by LIBADD)
1850 link_all_deplibs=no
1851
1852 # Check to see if building shared libraries
1853 libtool_build_shared_libs=no
1854 if test "$enable_shared" = "yes"; then
1855   libtool_build_shared_libs=yes
1856 fi
1857
1858 # Check to see if building static libraries
1859 libtool_build_static_libs=no
1860 if test "$enable_static" = "yes"; then
1861   libtool_build_static_libs=yes
1862 fi
1863
1864 # AM_CONDITIONAL(ENABLE_STATIC, test "$libtool_build_static_libs" = yes)
1865 # Fake to disable the static build
1866 AM_CONDITIONAL(ENABLE_STATIC, test "$libtool_build_static_libs" = xxxx)
1867
1868 AC_C_CONST()
1869 AC_C_INLINE()
1870
1871 AC_BACKTRACE()
1872
1873 ##########
1874 ##### Code quality
1875 ##########
1876 AC_PATH_PROG(SPLINT, splint, no)
1877
1878 ##########
1879 ##### Detect ccache and use it by default if available
1880 ##########
1881
1882 AC_ARG_ENABLE(ccache,
1883         AS_HELP_STRING([--disable-ccache],[Disable the use of ccache])
1884         )
1885 AC_PATH_PROG(CCACHE, ccache)
1886 if test x"$CCACHE" != x -a "$enable_ccache" != no; then
1887   CC="$CCACHE $CC"
1888   CXX="$CCACHE $CXX"
1889 fi
1890
1891 #######################
1892 ###### Creation of the header file (machine.h)
1893 #######################
1894
1895 AC_DEFINE_UNQUOTED([PATH_SEPARATOR], ["$PATH_SEPARATOR"],
1896 [The default path separator character.])
1897
1898 AH_TOP([#ifndef MACHINE_H
1899 #define MACHINE_H
1900 /* This file defines global element configuration of the build host */
1901 ])
1902
1903 AH_BOTTOM([
1904
1905 #ifdef DIR_SEPARATOR
1906        #undef DIR_SEPARATOR
1907 #endif
1908 #define DIR_SEPARATOR "/"
1909
1910 #ifdef DIR_SEPARATORW
1911            #undef DIR_SEPARATORW
1912 #endif
1913 #define DIR_SEPARATORW L"/"
1914
1915 #define bsiz 4096
1916
1917 #endif /* MACHINE_H  */
1918 ])
1919
1920 # Define the standard extension of a dynamic library
1921 AC_DEFINE_UNQUOTED([SHARED_LIB_EXT],["$shrext_cmds"],[Extension of a shared library])
1922 AC_DEFINE_UNQUOTED([SHARED_LIB_EXTW],[L"$shrext_cmds"],[Extension of a shared library ( wide string )])
1923
1924
1925
1926 #################
1927 ## Update the years in the various part of the code.
1928 #################
1929
1930 if test ! -f modules/core/src/cpp/banner.cpp; then
1931    AC_MSG_ERROR([Could not find the Scilab banner file.])
1932 fi
1933
1934 CURRENT_YEAR=`date "+%Y"`
1935 DETECTED_YEAR=`grep "Copyright (c) 2011-" modules/core/src/cpp/banner.cpp|sed -e "s/.*Copyright (c) 2011-\([[0-9]]*\).*/\1/g"`
1936
1937 if test "$CURRENT_YEAR" != "$DETECTED_YEAR"; then
1938    sed -i -e "s| 2011-$DETECTED_YEAR | 2011-$CURRENT_YEAR |g" modules/core/src/cpp/banner.cpp modules/windows_tools/src/c/scilab_windows/console.c
1939    sed -i -e "s| 2011-$DETECTED_YEAR Scilab Enterprises| 2011-$CURRENT_YEAR Scilab Enterprises|g" etc/Info.plist.in
1940    sed -i -e "s|VALUE \"LegalCopyright\", \"Copyright (C) $DETECTED_YEAR|VALUE \"LegalCopyright\", \"Copyright (C) $CURRENT_YEAR|" $(find . -iname '*.rc')
1941    AC_MSG_WARN([New year ($CURRENT_YEAR) detected. Copyright files updated. Please commit them ASAP.])
1942 fi
1943
1944
1945 #########
1946 ## Make sure that the libstdc++ libgcc and libgfortran can be compiled as 
1947 ## static if requested
1948 #########
1949 AC_CHECK_STDCPP_STATIC()
1950
1951 #################
1952 ## stop on warning
1953 #################
1954
1955 # Stop to compile scilab when a warning is found ...
1956 # This stuff is at the end of the configure.ac because it causes some
1957 # problem with AC_COMPILE (the -Werror is added to the test)
1958 #
1959 if test "$enable_stop_on_warning" = yes; then
1960     WARNING_CFLAGS="-Werror=implicit-function-declaration -Werror=declaration-after-statement "
1961     WARNING_CXXFLAGS="-Werror=implicit-function-declaration "
1962 fi
1963
1964 # SCI_*FLAGS contains all defaults values detected on configure
1965 SCI_CFLAGS=$(echo                                             \
1966              $LARGEFILE_CFLAGS                                \
1967              $CODECOVERAGE_CFLAGS                             \
1968              $DEBUG_CFLAGS                                    \
1969              $ARCH_CFLAGS                                     \
1970              $COMPILER_CFLAGS                                 \
1971              $SCILIBS_CFLAGS                                  \
1972              $SSE_CFLAGS                                      \
1973              $BACKTRACE_CFLAGS                                \
1974              $WARNING_CFLAGS                                  )
1975 SCI_CXXFLAGS=$(echo                                           \
1976                $STDCXX_11_CXXFLAGS                            \
1977                $LARGEFILE_CXXFLAGS                            \
1978                $CODECOVERAGE_CXXFLAGS                         \
1979                $DEBUG_CXXFLAGS                                \
1980                $ARCH_CXXFLAGS                                 \
1981                $COMPILER_CXXFLAGS                             \
1982                $SCILIBS_CXXFLAGS                              \
1983                $SSE_CXXFLAGS                                  \
1984                $BACKTRACE_CXXFLAGS                            \
1985                $WARNING_CXXFLAGS                              )
1986 SCI_FFLAGS=$(echo                                             \
1987              $LARGEFILE_FFLAGS                                \
1988              $CODECOVERAGE_FFLAGS                             \
1989              $DEBUG_FFLAGS                                    \
1990              $ARCH_FFLAGS                                     \
1991              $COMPILER_FFLAGS                                 \
1992              $SCILIBS_FFLAGS                                  \
1993              $SSE_FFLAGS                                      \
1994              $BACKTRACE_FFLAGS                                \
1995              $WARNING_FFLAGS                                  )
1996 SCI_LDFLAGS=$(echo                                            \
1997               $LARGEFILE_LDFLAGS                              \
1998               $CODECOVERAGE_LDFLAGS                           \
1999               $DEBUG_LDFLAGS                                  \
2000               $ARCH_LDFLAGS                                   \
2001               $COMPILER_LDFLAGS                               \
2002               $SCILIBS_LDFLAGS                                \
2003               $SSE_LDFLAGS                                    \
2004               $BACKTRACE_LDFLAGS                              \
2005               $WARNING_LDFLAGS                                )
2006 AC_SUBST(SCI_CFLAGS)
2007 AC_SUBST(SCI_CXXFLAGS)
2008 AC_SUBST(SCI_FFLAGS)
2009 AC_SUBST(SCI_LDFLAGS)
2010
2011 AC_CONFIG_FILES([
2012 contrib/Makefile
2013 desktop/images/icons/Makefile
2014 desktop/Makefile
2015 modules/threads/Makefile
2016 modules/ast/Makefile
2017 modules/functions_manager/Makefile
2018 modules/helptools/Makefile
2019 modules/data_structures/Makefile
2020 modules/differential_equations/Makefile
2021 modules/optimization/Makefile
2022 modules/elementary_functions/Makefile
2023 modules/special_functions/Makefile
2024 modules/io/Makefile
2025 modules/completion/Makefile
2026 modules/history_manager/Makefile
2027 modules/jvm/Makefile
2028 modules/commons/Makefile
2029 modules/sound/Makefile
2030 modules/statistics/Makefile
2031 modules/mexlib/Makefile
2032 modules/sparse/Makefile
2033 modules/linear_algebra/Makefile
2034 modules/polynomials/Makefile
2035 modules/signal_processing/Makefile
2036 modules/arnoldi/Makefile
2037 modules/interpolation/Makefile
2038 modules/localization/Makefile
2039 modules/cacsd/Makefile
2040 modules/boolean/Makefile
2041 modules/integer/Makefile
2042 modules/fileio/Makefile
2043 modules/spreadsheet/Makefile
2044 modules/string/Makefile
2045 modules/time/Makefile
2046 modules/graphics/Makefile
2047 modules/graphic_export/Makefile
2048 modules/graphic_objects/Makefile
2049 modules/renderer/Makefile
2050 modules/action_binding/Makefile
2051 modules/gui/Makefile
2052 modules/mpi/Makefile
2053 modules/randlib/Makefile
2054 modules/tclsci/Makefile
2055 modules/windows_tools/Makefile
2056 modules/core/Makefile
2057 modules/prebuildjava/Makefile
2058 modules/api_scilab/Makefile
2059 modules/call_scilab/Makefile
2060 modules/types/Makefile
2061 modules/hdf5/Makefile
2062 modules/fftw/Makefile
2063 modules/umfpack/Makefile
2064 modules/scicos/Makefile
2065 modules/scicos_blocks/Makefile
2066 modules/functions/Makefile
2067 modules/dynamic_link/Makefile
2068 modules/overloading/Makefile
2069 modules/javasci/Makefile
2070 modules/m2sci/Makefile
2071 modules/compatibility_functions/Makefile
2072 modules/development_tools/Makefile
2073 modules/output_stream/Makefile
2074 modules/console/Makefile
2075 modules/demo_tools/Makefile
2076 modules/genetic_algorithms/Makefile
2077 modules/simulated_annealing/Makefile
2078 modules/parameters/Makefile
2079 modules/matio/Makefile
2080 modules/atoms/Makefile
2081 modules/xcos/Makefile
2082 modules/scinotes/Makefile
2083 modules/ui_data/Makefile
2084 modules/graph/Makefile
2085 modules/parallel/Makefile
2086 modules/modules_manager/Makefile
2087 modules/history_browser/Makefile
2088 modules/preferences/Makefile
2089 modules/xml/Makefile
2090 modules/external_objects/Makefile
2091 modules/external_objects_java/Makefile
2092 modules/slint/Makefile
2093 modules/coverage/Makefile
2094 modules/Makefile
2095 Makefile
2096 scilab.pc
2097 etc/modules.xml
2098 etc/classpath.xml
2099 etc/Info.plist
2100 etc/logging.properties
2101 scilab.properties
2102 scilab-lib.properties
2103 scilab-lib-doc.properties
2104 modules/helptools/etc/SciDocConf.xml
2105 modules/core/includes/version.h
2106 modules/atoms/etc/repositories
2107 modules/atoms/tests/unit_tests/repositories.orig
2108 ])
2109
2110 # Detection of the module for the future version of Scilab 6
2111 # ie we detect module which ends with _yasp
2112
2113 if test "$enable_yasp" = yes; then
2114    AC_CONFIG_FILES([
2115    modules/development_tools/src/fake/Makefile
2116   ])
2117 fi
2118
2119 # This script is used by Xcos in order to regenerate the function/block list
2120 AC_CONFIG_COMMANDS_POST([chmod +x $SCI_SRCDIR_FULL/modules/scicos_blocks/src/scripts/GenBlocks.sh $SCI_SRCDIR_FULL/modules/dynamic_link/src/scripts/scicompile.sh $SCI_SRCDIR_FULL/modules/dynamic_link/src/scripts/compilerDetection.sh $SCI_SRCDIR_FULL/modules/dynamic_link/src/scripts/configure])
2121
2122 AC_OUTPUT
2123
2124 # To distribution packager, you can uncomment this stuff is you want to
2125 # disable the rpath issue
2126 # However, you will have to set all the LD_LIBRARY_PATH to .libs/ directory
2127 # since scilab is compiling macros and help into the source tree (ie before
2128 # the "make install")
2129 # You should consider using chrpath:
2130 # http://directory.fsf.org/project/chrpath/
2131 # to remove it before the make install
2132
2133 #case ${host} in
2134 #  *-pc-linux-gnu)
2135 #    AC_MSG_RESULT([Fixing libtool for -rpath problems.])
2136 #    sed < libtool > libtool-2 \
2137 #    's/^hardcode_libdir_flag_spec.*$/hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
2138 #    mv libtool-2 libtool
2139 #    chmod 755 libtool
2140 #  ;;
2141 #esac
2142 #
2143
2144 echo ""
2145
2146 echo "Scilab is configured as follows. Please verify that this configuration"
2147 echo "matches your expectations."
2148 echo ""
2149 echo "Host system type : $host"
2150 echo ""
2151 echo "                  Option                        Value"
2152 echo "-------------------------------------------------------------------------"
2153 echo "Shared libraries.......      --enable-shared=$libtool_build_shared_libs"
2154 echo "Static libraries.......      --enable-static=$libtool_build_static_libs"
2155 echo "GNU ld.................      --with-gnu-ld=$with_gnu_ld"
2156 echo "Enable debug ..........      --enable-debug=$enable_debug"
2157 echo "Enable debug C.........      --enable-debug-C=$enable_debug_C"
2158 echo "Enable debug C++.......      --enable-debug-CXX=$enable_debug_CXX"
2159 echo "Enable debug Java......      --enable-debug-java=$enable_debug_java"
2160 echo "Enable debug Fortran...      --enable-debug-fortran=$enable_debug_fortran"
2161 echo "Enable stop on warning.      --enable-stop-on-warning=$enable_stop_on_warning"
2162
2163 echo ""
2164 echo "Compiler Configuration:"
2165 echo "  Intel (--with-intelcompilers) .... =        $with_intelcompilers"
2166 echo "  GNU gcc (--with-gcc) ............. =        $with_gcc"
2167 echo "  GNU Fortran 95 (--with-gfortran) . =        $with_gfortran"
2168 echo ""
2169 echo "Options:"
2170 echo "  Do not use TCL/TK (--without-tk) ................. = $with_tk"
2171 echo "  TCL include (--with-tcl-include) ................. = $USER_TCL_INC_PATH"
2172 echo "  TCL library (--with-tcl-library) ................. = $USER_TCL_LIB_PATH"
2173 echo "  TK include (--with-tk-include) ................... = $USER_TK_INC_PATH"
2174 echo "  TK library (--with-tk-library) ................... = $USER_TK_LIB_PATH"
2175 echo "  Install XML Help (--with-install-help-xml) ....... = $with_install_help_xml"
2176 echo "  Compilation tests (--enable-compilation-tests) ... = $COMPILATION_TESTS"
2177 echo "  Make the package relocatable (--enable-relocatable)= $RELOCATABLE"
2178 echo "  Use FFTW (--without-fftw) ........................ = $with_fftw"
2179 echo "  Use MATIO (--without-matio) ...................... = $with_matio"
2180 echo ""
2181 echo "  Compile with Scilab thirdparties ................. = $WITH_DEVTOOLS"
2182
2183 echo ""
2184 if test "$with_gui" = no; then
2185    echo "Not using Xcos because of the option --without-gui"
2186 else
2187 if test $XCOS_ENABLE = yes; then
2188    echo "Xcos enable"
2189    echo "Build modelica compiler (--without-modelica) ....... = $with_modelica"
2190    echo ""
2191    if test "$with_modelica" != no -a "$OCAMLC" != no -a "$OCAMLOPT" != no; then
2192      echo "Ocaml Configuration (for Modelica compiler):"
2193      echo "  OCAMLC ............. = $OCAMLC"
2194      echo "  OCAMLOPT ........... = $OCAMLOPT"
2195      echo "  OCAMLDEP ........... = $OCAMLDEP"
2196    else
2197      echo "Will not build Modelica compiler"
2198    fi
2199 else
2200    echo "Not using Xcos"
2201 fi
2202 fi
2203
2204 echo ""
2205 if test "$enable_code_coverage" = yes;  then
2206    echo "Code coverage configuration:"
2207    echo "  LCOV .............. = $LCOV"
2208    echo "  GENHTML ........... = $GENHTML"
2209 else
2210    echo "Not using code coverage"
2211 fi
2212
2213 echo ""
2214 if test $OPENMP_ENABLE = yes; then
2215    echo "OpenMP Configuration:"
2216    echo "OpenMP CFLAGS ...... = $OPENMP_CFLAGS"
2217    echo "OpenMP CXXFLAGS .... = $OPENMP_CXXFLAGS"
2218    echo "OpenMP LIBS ........ = $OPENMP_LIBS"
2219    echo "OpenMP LDFLAGS ..... = $OPENMP_LDFLAGS"
2220 else
2221    echo "Not using OpenMP"
2222 fi
2223
2224 echo ""
2225 if test $FFTW_ENABLE = yes;  then
2226    echo "FFTW Configuration:"
2227    echo "  FFTW LIBS .......... = $FFTW3_LIB"
2228    echo "  FFTW CFLAGS ........ = $FFTW3_CFLAGS"
2229 else
2230    echo "Not using FFTW"
2231 fi
2232
2233 echo ""
2234 echo "Eigen3 Configuration:"
2235 echo "  EIGEN CPPFLAGS ...... = $EIGEN_CPPFLAGS"
2236
2237 echo ""
2238 if test $MATIO_ENABLE = yes;  then
2239    echo "MATIO Configuration:"
2240    echo "  MATIO LIBS .......... = $MATIO_LIBS"
2241    echo "  MATIO CFLAGS ........ = $MATIO_CFLAGS"
2242 else
2243    echo "Not using MATIO"
2244 fi
2245
2246 echo ""
2247 if test $UMFPACK_ENABLE = yes;  then
2248    echo "UMFPACK Configuration:"
2249    echo "  UMFPACK LIBS ....... = $UMFPACK_LIB"
2250    echo "  UMFPACK CFLAGS ..... = $UMFPACK_CFLAGS"
2251    if test $SUITESPARSE = yes; then
2252       echo "  UMFPACK SUITESPARSE  = Yes"
2253    else
2254       echo "  UMFPACK SUITESPARSE  = No"
2255    fi
2256 else
2257    echo "Not using UMFPACK"
2258 fi
2259
2260
2261 echo ""
2262 echo "BLAS/LAPACK/ATLAS Configuration:"
2263 echo "  BLAS LIBS ............. = $BLAS_LIBS"
2264 echo "  BLAS TYPE ............. = $BLAS_TYPE"
2265 echo "  LAPACK LIBS ........... = $LAPACK_LIBS"
2266 echo "  LAPACK TYPE ........... = $LAPACK_TYPE"
2267 echo "  ARPACK LIBS ........... = $ARPACK_LIBS"
2268 echo ""
2269
2270
2271 if test "$with_mpi" == yes; then
2272    echo "OpenMPI Configuration:"
2273    echo "OpenMPI LIBS ........... = $OPENMPI_LIBS"
2274    echo "OpenMPI C Compiler ..... = $OPENMPI_CC"
2275    echo "OpenMPI C++ Compiler ... = $OPENMPI_CXX"
2276    echo "OpenMPI F77 Compiler ... = $MPIF77"
2277 else
2278    echo "Not using MPI"
2279 fi
2280
2281 echo ""
2282 if test $BUILD_LOCALIZATION_ENABLE != no; then
2283    echo "Gettext/localization configuration:"
2284    echo "  xgettext ............... = $XGETTEXT"
2285    echo "  msgfmt  ................ = $MSGFMT"
2286    echo "  msgfmt_opts ............ = $MSGFMT_OPTS"
2287    echo "  msgcat  ................ = $MSGCAT"
2288 else
2289    echo "Won't generate localization files"
2290 fi
2291
2292 echo ""
2293 if test $HELP_ENABLE = yes; then
2294    echo "Documentation building configuration:"
2295    echo "  Docbook XSL path ....... = $DOCBOOK_ROOT"
2296    echo "  Saxon XSLT ............. = $SAXON"
2297    echo "  XML commons external ... = $XML_APIS_EXT"
2298 else
2299    echo "No documentation generated"
2300 fi
2301
2302 echo ""
2303 echo "Java Configuration:"
2304 if test ! -z "$JAVAC"; then
2305 echo "  JAVA_HOME ........... = $JAVA_HOME"
2306 echo "  JAVAC ............... = $JAVAC"
2307 echo "  JAVA_CLASSPATH ...... = $JAVA_CLASSPATH"
2308 echo "  JAVA_VERSION ........ = $JAVA_VERSION"
2309 echo "  JAVAC_FLAGS ......... = $JAVAC_FLAGS"
2310 echo "  JAVA_JNI_INCLUDE .... = $JAVA_JNI_INCLUDE"
2311 echo "  JAVA_JNI_LIBS ....... = $JAVA_JNI_LIBS"
2312 echo "  JAVA_JNI_LIBS_PRELOAD = $JAVA_JNI_LIBS_PRELOAD"
2313 echo "  JAVA ................ = $JAVA"
2314 echo "  JAVADOC ............. = $JAVADOC"
2315 echo "  JAR ................. = $JAR"
2316 echo "  ANT ................. = $ANT"
2317 else
2318 echo "  JAVA disabled"
2319 fi
2320
2321
2322 echo ""
2323 echo "Java dependencies:"
2324 if test ! -z "$JAVAC"; then
2325 echo "  Flexdock ............ = $FLEXDOCK"
2326 echo "  JOGL 2............... = $JOGL2"
2327 echo "  JOGL 2 LIBS (JNI) ... = $JOGL2_LIBS"
2328 echo "  Gluegen 2 ........... = $GLUEGEN2_RT"
2329 echo "  Gluegen 2 LIBS (JNI)  = $GLUEGEN2_RT_LIBS"
2330 echo "  Jeuclid (MathML) .... = $JEUCLID_CORE"
2331 echo "  Jhall  .............. = $JHALL"
2332 echo "  Jrosetta (API) ...... = $JROSETTA_API"
2333 echo "  Jrosetta (Engine) ... = $JROSETTA_ENGINE"
2334 echo "  Commons Logging ..... = $COMMONS_LOGGING"
2335 echo "  JGraph X ............ = $JGRAPHX"
2336 echo "  SciRenderer ......... = $SCIRENDERER"
2337 echo "  JLaTeXMath .......... = $JLATEXMATH"
2338 echo "  ECJ ................. = $ECJ"
2339 fi
2340
2341 echo ""
2342 if test ! -z "$JAVAC"; then
2343 echo "Documentation, graphic export:"
2344 echo "  FOP (XML => PDF) .... = $FOP"
2345 echo "  JLaTeXMath Fop ...... = $JLATEXMATH_FOP"
2346 echo "  Batik (SVG) ......... = $BATIK"
2347 echo "  Avalon Framework .... = $AVALON_FRAMEWORK"
2348 echo "  Commons I/O ......... = $COMMONS_IO"
2349 echo "  XML graphics commons  = $XMLGRAPHICS_COMMONS"
2350 fi
2351
2352
2353 echo ""
2354 echo "Code quality (optional):"
2355 echo "  Checkstyle .......... = $CHECKSTYLE"
2356 echo "  Commons-beanutils ... = $COMMONS_BEANUTILS"
2357 echo "  Antlr ............... = $ANTLR"
2358 echo "  Junit4 .............. = $JUNIT4"
2359 echo "  Hamcrest ............ = $HAMCREST"
2360 echo "  Cobertura ........... = $COBERTURA"
2361 echo "  splint .............. = $SPLINT"
2362
2363 echo ""
2364 echo "TCL/TK configuration:"
2365 echo "  TK_INC_PATH ........ = $TK_INC_PATH"
2366 echo "  TCL_INC_PATH ....... = $TCL_INC_PATH"
2367 echo "  TCLTK_LIBS ......... = $TCLTK_LIBS"
2368 echo "  TCL_SERIAL_VERSION . = $TCL_SERIAL_VERSION"
2369 echo "  TK_SERIAL_VERSION .. = $TK_SERIAL_VERSION"
2370
2371 echo ""
2372 echo "XML configuration:"
2373 echo "  XML_FLAGS .......... = $XML_FLAGS"
2374 echo "  XML_LIBS ........... = $XML_LIBS"
2375 echo "  XML_VERSION ........ = $XML_VERSION"
2376
2377 echo ""
2378 echo "HDF5 configuration:"
2379 echo "  HDF5 CFLAGS ......... = $HDF5_CFLAGS"
2380 echo "  HDF5 LIBS ........... = $HDF5_LIBS"
2381
2382 echo ""
2383 echo "PCRE configuration:"
2384 echo "  PCRE_CFLAGS ........ = $PCRE_CFLAGS"
2385 echo "  PCRE_LIBS .......... = $PCRE_LIBS"
2386 echo "  PCRE_VERSION ....... = $PCRE_VERSION"
2387
2388 echo ""
2389 echo "Regenerate Scilab's parser"
2390 if test "$enable_build_parser" != no; then
2391 echo "  YACC ............... = $YACC"
2392 echo "  LEX ................ = $LEX"
2393 echo "  YFLAGS ............. = $YFLAGS"
2394 else
2395 echo "  Regenerate parser disabled (will use embedded sources)"
2396 fi
2397
2398 echo ""
2399 echo "CURL configuration:"
2400 echo "  CURL_CFLAGS ........ = $CURL_CFLAGS"
2401 echo "  CURL_LIBS .......... = $CURL_LIBS"
2402 echo "  CURL_VERSION ....... = $CURL_VERSION"
2403
2404 echo ""
2405 echo "SWIG Configuration:"
2406 if test ! -z "$SWIG_BIN"; then
2407 echo "  SWIG_BIN ........... = $SWIG_BIN"
2408 echo "  SWIG_JAVA .......... = $SWIG_JAVA"
2409 else
2410 echo "  SWIG generation disabled"
2411 fi
2412
2413 echo ""
2414 echo "GIWS Configuration:"
2415 if test ! -z "$GIWS_BIN"; then
2416 echo "  GIWS_BIN ........... = $GIWS_BIN"
2417 else
2418 echo "  GIWS generation disabled"
2419 fi
2420
2421 echo ""
2422 echo "LLVM configuration:"
2423 echo "  LLVM_VERSION ....... = $LLVM_VERSION"
2424 echo "  LLVM_CONFIG_BIN .... = $LLVM_CONFIG_BIN"
2425 echo "  LLVM_INCLUDE ....... = $LLVM_INCLUDE"
2426 echo "  LLVM_CPPFLAGS ...... = $LLVM_CPPFLAGS"
2427 echo "  LLVM_LDFLAGS ....... = $LLVM_LDFLAGS"
2428 echo "  LLVM_LIBS .......... = $LLVM_LIBS"
2429
2430 echo "Valgrind configuration:"
2431 echo "  VALGRIND_CFLAGS .... = $VALGRIND_CFLAGS"
2432 echo "  VALGRIND_LIBS ...... = $VALGRIND_LIBS"
2433 echo ""
2434
2435 echo ""
2436 echo "Libtool config:"
2437 echo "  objext .............. = $objext"
2438 echo "  libext (static) ..... = $libext"
2439 echo "  shrext_cmds ......... = $shrext_cmds"
2440 echo "  exeext .............. = $exeext"
2441
2442 echo ""
2443
2444 echo "Compilation paths:"
2445 echo "  srcdir .............. = $SCI_SRCDIR"
2446 echo "  srcdir_full ......... = $SCI_SRCDIR_FULL"
2447 echo "  builddir ............ = $SCI_BUILDDIR"
2448 if test "$SCI_SRCDIR_FULL" != "$SCI_BUILDDIR"; then
2449 echo "  VPATH build ......... = Activated"
2450 fi
2451
2452 echo ""
2453 echo "Platform information:"
2454 echo "  host ........... = $host"
2455 echo "  host_cpu ....... = $host_cpu"
2456 echo "  host_vendor .... = $host_vendor"
2457 echo "  host_os ... .... = $host_os"
2458 echo "  hostname ....... = $ac_hostname"
2459 echo "  CPU 64 bits .... = $IS_64_BITS_CPU"
2460 if test -n "$MAC_DETECTED_ARCH"; then
2461 echo "  Mac OS X arch .. = $MAC_DETECTED_ARCH"
2462 echo "  Mac OS X version = $macosx_version"
2463 fi
2464
2465 echo ""
2466 echo "Options used to compile and link:"
2467 echo "  prefix ......... = $prefix"
2468 echo "  localedir ...... = $localedir"
2469 echo "  VERSION ........ = $PACKAGE_VERSION"
2470 echo "  CC ............. = $CC"
2471 echo "  CFLAGS ......... = $CFLAGS"
2472 echo "  SCI_CFLAGS ..... = $SCI_CFLAGS"
2473 echo "  DEFS ........... = $DEFS"
2474 echo "  LD ............. = $LD"
2475 echo "  LDFLAGS ........ = $LDFLAGS"
2476 echo "  SCI_LDFLAGS .... = $SCI_LDFLAGS"
2477 echo "  LIBS ........... = $LIBS"
2478 echo "  CXX ............ = $CXX"
2479 echo "  CXXFLAGS ....... = $CXXFLAGS"
2480 echo "  SCI_CXXFLAGS ... = $SCI_CXXFLAGS"
2481 echo "  F77 ............ = $F77"
2482 echo "  FFLAGS ......... = $FFLAGS"
2483 echo "  SCI_FFLAGS ..... = $SCI_FFLAGS"
2484 echo "  F77_LDFLAGS .... = $F77_LDFLAGS"
2485 echo "  FLIBS...... .... = $FLIBS"
2486 echo "  TERMCAP_LIB .... = $TERMCAP_LIB"
2487 echo ""