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