Webtools module added.
[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=1
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     ;;
550
551 esac
552
553 #### 64 bits detection
554 IS_64_BITS_CPU=false
555 case "$host" in
556          x86_64-*-linux-gnu | x86_64-linux-gnu | ia64-*-linux-gnu | alpha-*-linux-gnu | alpha-*-netbsd* | x86_64-*-netbsd* | sparc64-*-netbsd*)
557                 IS_64_BITS_CPU=true
558     ;;
559 esac
560
561 ##########"
562
563 case "$CC" in
564      gcc-* | gcc | ccache*gcc | ccache*gcc-* )
565    ## With GNU Compiler
566
567    # enable the code coverage
568    if test "$enable_code_coverage" = yes; then
569     CODECOVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage"
570    fi
571
572    if test "$enable_debug_C" = yes; then
573       DEBUG_CFLAGS="-Wall -Wextra -O0 -g3"
574       # used to be -O0
575       case "$host" in
576       *-linux-gnu )
577       # Only doing that under Linux
578         if test "$enable_debug_linker" = yes; then
579             LDFLAGS="$LDFLAGS -Wl,--warn-common,-x"
580         fi
581           DEBUG_CFLAGS="$DEBUG_CFLAGS -fdiagnostics-show-option -Werror=format-security"
582           ;;
583           esac
584    else
585       DEBUG_CFLAGS="-DNDEBUG"
586    fi
587
588    COMPILER_CFLAGS="$COMPILER_CFLAGS -fno-stack-protector " # bug 3131
589    # Explictly disable the as needed. It was disable by default but Ubuntu
590    # activated it by default since release 11.04. See bug #8961.
591    # Once all cyclic dependencies have been dropped, this line could be removed.
592    # Check if linker supports --as-needed and --no-as-needed options
593    if $LD --help 2>/dev/null | grep no-as-needed > /dev/null; then
594       LDFLAGS="$LDFLAGS -Wl,--no-as-needed"
595    fi
596
597
598    case "$host" in
599      x86_64-*-linux-gnu | x86_64-linux-gnu)
600         ARCH_CFLAGS="-m64"
601     ;;
602      alpha-*-linux-gnu)
603         ARCH_CFLAGS="-mieee-with-inexact"
604         ARCH_LDFLAGS="-mieee-with-inexact"
605     ;;
606      powerpc-*-linux-gnu)
607         ARCH_CFLAGS="-D_GNU_SOURCE"
608     ;;
609      *-*-solaris*)
610         ARCH_CFLAGS="-DSVR4 -DSYSV -Dsolaris"
611     ;;
612    *-*-freebsd*)
613      ARCH_CFLAGS="-Dfreebsd"
614      ARCH_LDFLAGS="-lm"
615      ;;
616
617   alpha-*-netbsd*)
618     ARCH_CFLAGS="-Dnetbsd -mieee"
619     ARCH_FFLAGS="-Dnetbsd -mieee"
620     ;;
621
622   *-*-netbsd*)
623     ARCH_CFLAGS="-Dnetbsd"
624     ;;
625
626   *-*-darwin*)
627     # Flag no more added since :
628     #  - No more supported in recent gcc versions (> 4.6)
629     #  - only needed when compiling with flag -mmacosx-min-version=10.5
630     #ARCH_CFLAGS="$ARCH_CFLAGS -no_compact_linkedit"
631     #ARCH_CXXFLAGS="$ARCH_CXXFLAGS -no_compact_linkedit"
632     #ARCH_LDFLAGS="$ARCH_LDFLAGS -no_compact_linkedit"
633     # We need this to be passed to all linker commands
634     #LDFLAGS="$LDFLAGS -no_compact_linkedit"
635
636     case "$F77" in
637          gfortran-*|gfortran)
638              # Extract from gfortran -v the version it has been built for
639                MAC_DETECTED_ARCH="`$F77 -v 2>&1|grep "Target:"|sed -e "s/Target: \([[a-z0-9A-Z_]]*\).*/\1/g"`"
640          ;;
641          *)
642         AC_MSG_WARN([gfortran not used. Could not detect the architecture. Switch to the default case: x86_64])
643         MAC_DETECTED_ARCH="x86_64"
644          ;;
645     esac
646     CC="$CC -arch $MAC_DETECTED_ARCH"
647     CXX="$CXX -arch $MAC_DETECTED_ARCH"
648     ;;
649 esac
650 ;; # end of the gcc case on the $CC
651    *)
652
653         ## CC compiler (not GCC)
654         if test "$enable_debug_C" != yes; then
655              ARCH_CFLAGS="-DNDEBUG"
656         fi
657
658 case "$host" in
659 # Dec Alpha OSF 4
660   alpha*-dec-osf4.*)
661       ARCH_CFLAGS="-std -ieee_with_inexact"
662       ARCH_LDFLAGS="-ieee_with_inexact"
663       ;;
664   alpha*-dec-osf*)
665       ARCH_CFLAGS="-ieee_with_inexact"
666       ARCH_LDFLAGS="-ieee_with_inexact"
667       ;;
668   rs6000-*-*) # IBM AIX RS 6000 (NO LONGER SUPPORTED)
669     ARCH_CFLAGS="-Daix -DSYSV"
670   ;;
671   mips-sgi-irix*) # SGI
672     ARCH_CFLAGS="-DSYSV -DSVR4"
673   ;;
674   *-*-hpux9.*)
675     ARCH_CFLAGS="-DSYSV -Dhpux"
676   ;;
677   *-*-hpux10.*) # HP 10
678     if test "$enable_debug_C" = yes; then
679       ARCH_CFLAGS="-DSYSV -Dhpux"
680     else
681       ARCH_CFLAGS="-DSYSV -Dhpux +Z +DAportable"
682     fi
683   ;;
684
685   *-*-hpux11.*) # HP 11
686     ARCH_CFLAGS="-DSYSV -Dhpux -Dhppa +Z +DAportable"
687   ;;
688   *-*-solaris*) # SUN SOLARIS
689     ARCH_CFLAGS="-DSVR4 -DSYSV -Dsolaris -I/usr/local/include/"
690     ARCH_LDFLAGS="-L/usr/local/lib/"
691   ;;
692 esac
693 ;; # end of not a gcc compiler
694 esac
695
696
697 # enable the code coverage
698 if test "$enable_code_coverage" = yes; then
699    AC_PATH_PROG(LCOV, lcov)
700    if test -z "$LCOV" ; then
701         AC_MSG_ERROR([Cannot find lcov. Please install it (package lcov under Debian) or remove the option --enable-code-coverage])
702    fi
703    AC_PATH_PROG(GENHTML, genhtml)
704    if test -z "$GENHTML" ; then
705         AC_MSG_ERROR([Cannot find genhtml. Please install it (package lcov under Debian) or remove the option --enable-code-coverage])
706    fi
707    CODECOVERAGE_LDFLAGS="-coverage -lgcov"
708 fi
709 AM_CONDITIONAL(CODE_COVERAGE, test "$enable_code_coverage" = yes)
710 AM_CONDITIONAL(ENABLE_DEBUG, test "$enable_debug" = yes)
711
712 # flag for possible compilations in configure
713 SCILIBS_CFLAGS=''
714 SCILIBS_CXXFLAGS=''
715 SCILIBS_FFLAGS=''
716
717 if test $IS_64_BITS_CPU = true -o "$MACOSX" = "1"; then
718    if test $f90compatible = false; then
719       AC_MSG_ERROR([64 bits support needs a fortran 90 compiler (try --with-gfortran).])
720    fi
721 fi
722
723 AM_CONDITIONAL(IS_64_BITS_CPU, test $IS_64_BITS_CPU = true)
724
725 # check if the compiler supports c++11
726 saved_cppflags="$CXXFLAGS"
727 CXXFLAGS=""
728 AX_CXX_COMPILE_STDCXX_11(noext,mandatory)
729 STDCXX_11_CXXFLAGS="$CXXFLAGS"
730 CXXFLAGS="$saved_cppflags"
731
732 ################
733 ## SSE
734 ## By default, for x86 CPU, enable the SSE2.
735 ## Note that it is already the case with 64 bits CPU
736 ## (these extensions are enabled by default by gcc)
737 ################
738
739 case "$host" in
740      i*86-linux-gnu|i*86-*-linux-gnu)
741         SSE_CFLAGS="-msse2"
742         SSE_FFLAGS="-msse2"
743         SSE_CXXFLAGS="-msse2"
744      ;;
745 esac
746
747 #######################
748 ## test for underscores (name mangling issues between C and fortran)
749 #######################
750 AC_CHECK_UNDERSCORE_FORTRAN()
751
752 ###############################
753 ### Regenerate the parser files
754 ### Flex & Yacc
755 ###############################
756
757 if test "$enable_build_parser" = yes; then
758
759    AC_PROG_LEX
760    if test -z "$LEX" -o "$LEX" = ":"; then
761           AC_MSG_ERROR([No implementation of Lex (flex, lex) detected. Please install it (package flex)])
762    fi
763
764    AC_PROG_YACC
765    if test -z "$YACC"; then
766           AC_MSG_ERROR([No implementation of Yacc (bison, yacc) detected. Please install it (package bison)])
767   fi
768 # Actually, AC_PROG_YACC is lying. It sometimes put yacc into $YACC even it
769 # hasn't been able to find it.
770 #  AC_CHECK_PROG(YACC_PRESENT, $YACC, AC_MSG_ERROR([No implementation of Yacc (bison, yacc) detected. Please install it (package bison)]) )
771
772    AC_CHECK_PROG(yacc_present, $YACC, "yes","no")
773    if test "x$yacc_present" != "xyes"; then
774       AC_MSG_ERROR([No implementation of Yacc (bison, yacc) detected. Please install it (package bison)])
775    fi
776
777 fi
778 AM_CONDITIONAL(BUILD_PARSER, test "$enable_build_parser" = yes)
779
780 #################
781 ## HDF5
782 #################
783
784 AC_HDF5()
785 # The Java detection is done after in this file.
786
787
788 #################
789 ## scirenderer
790 #################
791
792 AC_ARG_WITH(external-scirenderer,
793     AS_HELP_STRING([--with-external-scirenderer],[Disable the usage of the internal copy of scirenderer. Intended for packaging of Scilab]))
794
795 AM_CONDITIONAL(EXTERNAL_SCIRENDERER, test "$with_external_scirenderer" = yes)
796
797
798 #################
799 ## XCOS
800 #################
801
802 AC_ARG_WITH(xcos,
803     AS_HELP_STRING([--without-xcos], [Disable Xcos]))
804
805 AC_ARG_WITH(modelica,
806     AS_HELP_STRING([--without-modelica],[Disable the OCaml module (modelica)]))
807
808
809 if test "$with_gui" = no; then
810    AC_MSG_WARN([GUI is disabled. Disabling then Xcos GUI])
811 fi
812
813 XCOS_ENABLE=no
814
815 if test "$with_xcos" != no; then
816    AC_DEFINE([WITH_XCOS], [], [with XCos])
817
818    save_LIBS="$LIBS"
819
820    AC_CHECK_LIB([rt], [clock_gettime],
821               [RT_LIB="-lrt";
822               AC_DEFINE([HAVE_CLOCK_GETTIME], [1],[Whether clock_gettime is available]) ],
823         [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])]
824    )
825    LIBS="$save_LIBS"
826    AC_SUBST(RT_LIB)
827
828
829 #################
830 ## ocaml which only called when using Xcos
831 #################
832
833    if test "$with_modelica" != no; then
834       AC_CHECK_PROG_OCAML()
835    fi
836    XCOS_ENABLE=yes
837
838 fi
839
840 AC_SUBST(XCOS_ENABLE)
841
842 AM_CONDITIONAL(OCAML, test "$with_modelica" != no -a "$OCAMLC" != no -a "$OCAMLOPT" != no)
843 AM_CONDITIONAL(XCOS, test "$XCOS_ENABLE" != no)
844
845 ###########################
846 ## test for JAVA compiler
847 ###########################
848 if test "$with_javasci" != no -o "$with_gui" != no -o "$enable_build_help" != no; then
849
850      # See if --with-jdk command line argument is given
851      # Try to detect the installed JVM, this could be controlled
852      # by the above --with options
853      AC_JAVA_WITH_JDK
854      if test "$with_jdk" != no; then
855
856      AC_JAVA_DETECT_JVM
857      case "$ac_java_jvm_version" in
858         1.8)
859         ;;
860         *)
861             AC_MSG_ERROR([Wrong version of Java. Expected at least 1.8. Found $ac_java_jvm_version])
862         ;;
863      esac
864
865    if test "$ac_java_jvm_name" = "jdk"; then
866         JAVA_HOME=$ac_java_jvm_dir
867         JAVA_VERSION=$ac_java_jvm_version
868 #     AC_JAVA_TOOLS
869
870         AC_JAVA_JNI_INCLUDE
871         JAVA_JNI_INCLUDE=$ac_java_jvm_jni_include_flags
872
873         case "$host_os" in
874              *Darwin* | *darwin*)
875                # Mac OS X does not link against the lib but uses -framework
876                JAVA_JNI_LIBS="-framework JavaVM"
877              ;;
878              *)
879                AC_JAVA_JNI_LIBS
880                JAVA_JNI_LIBS=$ac_java_jvm_jni_lib_flags
881                JAVA_JNI_LIBS_PRELOAD=$ac_java_jvm_ld_preload
882              ;;
883         esac
884
885         AC_JAVA_CLASSPATH
886         JAVA_CLASSPATH=$ac_java_classpath
887         AC_JAVA_TOOLS
888         AC_JAVA_ANT
889
890         case "$host_os" in
891              *Darwin* | *darwin*)
892                   JAVA_HOME=""
893              ;;
894         esac
895
896
897         if test "$with_gui" != no; then
898
899                 if test "$with_xcos" != no; then
900                    # jgraphx
901                    AC_JAVA_CHECK_JAR([jgraphx],[com.mxgraph.view.mxGraph],[Diagram design],[],[VERSION],[2.0.0.1])
902                    JGRAPHX=$PACKAGE_JAR_FILE
903                    AC_SUBST(JGRAPHX)
904                 fi
905
906                 if test "$with_external_scirenderer" = yes; then
907                    # scirenderer
908                    AC_JAVA_CHECK_JAR([scirenderer],[org.scilab.forge.scirenderer.PackageInfo],[Scilab Renderer],[],[VERSION],[1.1.0])
909                    SCIRENDERER=$PACKAGE_JAR_FILE
910                    SCIRENDERER_CP=$PACKAGE_JAR_FILE
911                  else
912                    echo "Use external version of scirenderer"
913                    # Use the scirenderer in Scilab sources
914                    SCIRENDERER="\${modules.dir}/scirenderer/\${build.jar.dir}/scirenderer.jar"
915                    SCIRENDERER_CP="\$SCILAB/modules/scirenderer/jar/scirenderer.jar"
916                 fi
917                 AC_SUBST(SCIRENDERER)
918                 AC_SUBST(SCIRENDERER_CP)
919
920                # Docking system
921                 AC_JAVA_CHECK_JAR([flexdock],[org.flexdock.util.Utilities],[Scilab Gui],[],[VERSION],[1.2.4])
922                 FLEXDOCK=$PACKAGE_JAR_FILE
923                 AC_SUBST(FLEXDOCK)
924
925                 # Swing look&feel implementations
926                 AC_JAVA_CHECK_JAR([looks],[com.jgoodies.looks.common.MenuItemRenderer],[Scilab Gui - Look and feel],"yes")
927                 LOOKS=$PACKAGE_JAR_FILE
928
929                 # Named differently under ArchLinux or Fedora
930                 if test -z "$LOOKS"; then
931                     AC_JAVA_CHECK_JAR([jgoodies-looks],[com.jgoodies.looks.common.MenuItemRenderer],[Scilab Gui - Look and feel])
932                     LOOKS=$PACKAGE_JAR_FILE
933                 fi
934                 AC_SUBST(LOOKS)
935
936                 #  Skin Look and Feel
937                 AC_JAVA_CHECK_JAR([skinlf],[com.l2fprod.util.AccessUtils],[Scilab Gui - Skin Look and Feel])
938                 SKINLF=$PACKAGE_JAR_FILE
939                 AC_SUBST(SKINLF)
940
941                 # JOGL 2
942                 AC_JAVA_CHECK_JAR([jogl2],[javax.media.opengl.glu.GLUnurbs],[Scilab 3D rendering - Version 2.0])
943                 JOGL2=$PACKAGE_JAR_FILE
944                 AC_SUBST(JOGL2)
945
946                 AC_JAVA_CHECK_VERSION_MANIFEST([jogl2],$JOGL2,[2.2],[Specification-Version])
947
948                 if test "$MACOSX" = 1; then
949                    echo "Check of the presence of libjogl.jnilib and libjogl_awt.jnilib disabled under Mac OS X"
950                 else
951                    LDFLAGS_save=$LDFLAGS
952                    # Provide known paths where distribs/OS can store JNI libs
953                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
954                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
955                    LDFLAGS="$LDFLAGS -L/usr/lib/jogl2 -L/usr/lib64/jogl2"               # RedHat
956                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/lib/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
957                    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])])
958                    if test -z "$JOGL2_LIBS"; then # The previous test failed add more options to the LDFLAGS
959                        # the space after "jogl" in the following line is on
960                        # purpose to disable the cache
961                           AC_CHECK_LIB([jogl_desktop ], [glTexParameterf],
962                        [JOGL2_LIBS="-ljogl_desktop -lGL"],
963                        [AC_MSG_ERROR(["libjogl: Library
964 missing (Cannot find symbol glTexParameterf). Check if libjogl - C/Java (JNI)
965 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."])],
966                        [-lGL])
967                    fi
968
969                    LDFLAGS=$LDFLAGS_save
970                 fi
971
972                 # JoGL Native <=> Java connector
973                 AC_JAVA_CHECK_JAR([gluegen2-rt],[jogamp.common.os.MachineDescriptionRuntime],[Scilab 3D rendering])
974                 GLUEGEN2_RT=$PACKAGE_JAR_FILE
975                 AC_SUBST(GLUEGEN2_RT)
976
977                 if test "$MACOSX" = 1; then
978                    echo "Check of the presence of libgluegen-rt.jnilib disabled under Mac OS X"
979                 else
980                    LDFLAGS_save=$LDFLAGS
981                    # Provide known paths where distribs/OS can store JNI libs
982                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
983                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
984                    LDFLAGS="$LDFLAGS -L/usr/lib/gluegen2 -L/usr/lib64/gluegen2"         # RedHat
985                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/lib/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
986                    symbol="Java_jogamp_common_jvm_JVMUtil_initialize"
987                    AC_CHECK_LIB([gluegen2-rt], [$symbol], [GLUEGEN2_RT_LIBS="-lgluegen2-rt"],
988                    [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.])],
989                    [-ldl])
990                    LDFLAGS=$LDFLAGS_save
991                 fi
992
993                 # Jhall
994                 AC_JAVA_CHECK_JAR([jhall],[javax.help.JHelp],[Scilab Help Browser],"yes")
995                 # Named differently under Mandriva or Fedora
996                 if test -z "$PACKAGE_JAR_FILE"; then
997                     AC_JAVA_CHECK_JAR([javahelp2],[javax.help.JHelp],[Scilab Help Browser])
998                 fi
999                 JHALL=$PACKAGE_JAR_FILE
1000                 AC_SUBST(JHALL)
1001
1002                 # Lucene Apache - core
1003                 AC_JAVA_CHECK_JAR([lucene-core],[org.apache.lucene.LucenePackage],[Lucene])
1004                 LUCENE=$PACKAGE_JAR_FILE
1005                 AC_SUBST(LUCENE)
1006
1007                 # Lucene Apache - analyzers-common
1008                 AC_JAVA_CHECK_JAR([lucene-analyzers-common],[org.apache.lucene.analysis.standard.StandardAnalyzer],[StandardAnalyzer])
1009                 LUCENE_ANALYZER=$PACKAGE_JAR_FILE
1010                 AC_SUBST(LUCENE_ANALYZER)
1011
1012                 # Lucene Apache - lucene-queryparser
1013                 AC_JAVA_CHECK_JAR([lucene-queryparser],[org.apache.lucene.queryparser.classic.QueryParser],[QueryParser])
1014                 LUCENE_PARSER=$PACKAGE_JAR_FILE
1015                 AC_SUBST(LUCENE_PARSER)
1016
1017                 # Console API
1018                 AC_JAVA_CHECK_JAR([jrosetta-API],[com.artenum.rosetta.interfaces.core.ConsoleConfiguration],[JRosetta : Console API Artenum / Scilab],"yes")
1019                 if test -z "$PACKAGE_JAR_FILE"; then
1020                     AC_JAVA_CHECK_JAR([jrosetta-api],[com.artenum.rosetta.interfaces.core.ConsoleConfiguration],[JRosetta : Console API Artenum / Scilab])
1021                 fi
1022                 JROSETTA_API=$PACKAGE_JAR_FILE
1023                 AC_SUBST(JROSETTA_API)
1024
1025                 # Console Core
1026                 AC_JAVA_CHECK_JAR([jrosetta-engine],[com.artenum.rosetta.util.ConfigurationBuilder],[JRosetta : Console Core Artenum / Scilab],[],[getVersion],[1.0.4])
1027                 JROSETTA_ENGINE=$PACKAGE_JAR_FILE
1028                 AC_SUBST(JROSETTA_ENGINE)
1029
1030
1031                 # MathML rendering solution
1032                 # Used in both graphic & help
1033                 AC_JAVA_CHECK_JAR([jeuclid-core],[net.sourceforge.jeuclid.LayoutContext],[MathML rendering solution (at least version 3.1.X)])
1034                 JEUCLID_CORE=$PACKAGE_JAR_FILE
1035                 AC_SUBST(JEUCLID_CORE)
1036
1037
1038                 ################ Mandatory for graphic_export features #####
1039                 # XML to PDF/other Translator
1040                 AC_JAVA_CHECK_JAR([fop],[org.apache.fop.pdf.PDFInfo],[XML to PDF Translator (fop)])
1041                 FOP=$PACKAGE_JAR_FILE
1042                 AC_SUBST(FOP)
1043
1044                 AC_ARG_WITH(emf, [AS_HELP_STRING([--without-emf],
1045                     [disable support for EMF (Windows Metafile) export])])
1046                 if test "x$with_emf" != xno; then
1047                     # Freehep Graphics2D
1048                     AC_JAVA_CHECK_JAR([freehep-graphics2d],[org.freehep.graphics2d.VectorGraphics],[Freehep Graphics2D])
1049                     FREEHEP_GRAPHICS2D=$PACKAGE_JAR_FILE
1050                     AC_SUBST(FREEHEP_GRAPHICS2D)
1051
1052                     # Freehep GraphicsIO
1053                     AC_JAVA_CHECK_JAR([freehep-graphicsio],[org.freehep.graphicsio.VectorGraphicsIO],[Freehep GraphicsIO])
1054                     FREEHEP_GRAPHICSIO=$PACKAGE_JAR_FILE
1055                     AC_SUBST(FREEHEP_GRAPHICSIO)
1056
1057                     # Freehep GraphicsIO EMF
1058                     AC_JAVA_CHECK_JAR([freehep-graphicsio-emf],[org.freehep.graphicsio.emf.EMFGraphics2D],[Freehep GraphicsIO EMF])
1059                     FREEHEP_GRAPHICSIO_EMF=$PACKAGE_JAR_FILE
1060                     AC_SUBST(FREEHEP_GRAPHICSIO_EMF)
1061
1062                     # Freehep IO
1063                     AC_JAVA_CHECK_JAR([freehep-io],[org.freehep.util.io.XMLSequence],[Freehep IO])
1064                     FREEHEP_IO=$PACKAGE_JAR_FILE
1065                     AC_SUBST(FREEHEP_IO)
1066
1067                     # Freehep Util
1068                     AC_JAVA_CHECK_JAR([freehep-util],[org.freehep.util.StringUtilities],[Freehep Util])
1069                     FREEHEP_UTIL=$PACKAGE_JAR_FILE
1070                     AC_SUBST(FREEHEP_UTIL)
1071                 fi
1072
1073                 # xml.apache.org SVG Library (under mandriva for example)
1074                 AC_JAVA_CHECK_JAR([batik-all],[org.apache.batik.Version],
1075                                   [Apache SVG Library],"yes",[getVersion],[1.8])
1076                 BATIK=$PACKAGE_JAR_FILE
1077
1078                 if test -z "$BATIK"; then
1079                    # Other other distribs
1080                    AC_JAVA_CHECK_JAR([batik],[org.apache.batik.Version],
1081                                      [Apache SVG Library],[],[getVersion],[1.8])
1082                    BATIK=$PACKAGE_JAR_FILE
1083                 fi
1084                 AC_SUBST(BATIK)
1085
1086                 # Commons I/O library
1087                 AC_JAVA_CHECK_JAR([commons-io],[org.apache.commons.io.output.CountingOutputStream],[Commons I/O library])
1088                 COMMONS_IO=$PACKAGE_JAR_FILE
1089                 AC_SUBST(COMMONS_IO)
1090
1091                 # XML graphics common
1092                 AC_JAVA_CHECK_JAR([xmlgraphics-commons],[org.apache.xmlgraphics.util.Service],[Commons graphics library])
1093                 XMLGRAPHICS_COMMONS=$PACKAGE_JAR_FILE
1094                 AC_SUBST(XMLGRAPHICS_COMMONS)
1095
1096                 # Avalon Framework (PDF)
1097                 AC_JAVA_CHECK_JAR([avalon-framework],[org.apache.avalon.framework.configuration.ConfigurationException],[Common framework for Java server application])
1098                 AVALON_FRAMEWORK=$PACKAGE_JAR_FILE
1099                 AC_SUBST(AVALON_FRAMEWORK)
1100
1101                 # XML API EXT (conversion of a SVG => PNG)
1102                 AC_JAVA_CHECK_JAR([xml-apis-ext],[org.w3c.dom.svg.SVGDocument],[XML Commons external code],"yes")
1103                 XML_APIS_EXT=$PACKAGE_JAR_FILE
1104
1105                 if test -z "$XML_APIS_EXT"; then
1106                     # Other other distribs (Ex: Fedora/Redhat)
1107                     AC_JAVA_CHECK_JAR([xml-commons-apis-ext],[org.w3c.dom.svg.SVGDocument],[XML Commons external code])
1108                     XML_APIS_EXT=$PACKAGE_JAR_FILE
1109                 fi
1110                 AC_SUBST(XML_APIS_EXT)
1111
1112                 ################ END Mandatory for graphic_export features #####
1113
1114
1115                 # Logging (flexdock dep)
1116                 AC_JAVA_CHECK_JAR([commons-logging],[org.apache.commons.logging.LogFactory],[Apache logging])
1117                 COMMONS_LOGGING=$PACKAGE_JAR_FILE
1118                 AC_SUBST(COMMONS_LOGGING)
1119
1120                 # JLaTeXMath
1121                 AC_JAVA_CHECK_JAR([jlatexmath],[org.scilab.forge.jlatexmath.TeXFormula],[LaTex Rendering],[],[VERSION],[1.0.3])
1122                 JLATEXMATH=$PACKAGE_JAR_FILE
1123                 AC_SUBST(JLATEXMATH)
1124
1125                 # JLaTeXMath FOP
1126                 AC_JAVA_CHECK_JAR([jlatexmath-fop],[org.scilab.forge.jlatexmath.fop.JLaTeXMathObj],[LaTex Rendering - FOP plugin])
1127                 JLATEXMATH_FOP=$PACKAGE_JAR_FILE
1128                 AC_SUBST(JLATEXMATH_FOP)
1129
1130                 AC_DEFINE([WITH_GUI],[],[With the JAVA stuff (GUI, Console, JOGL...)])
1131
1132         fi
1133
1134         # Checkstyle (code checking)
1135         AC_JAVA_CHECK_JAR([checkstyle],[com.puppycrawl.tools.checkstyle.CheckStyleTask],[Checkstyle - code checking],"yes")
1136         CHECKSTYLE=$PACKAGE_JAR_FILE
1137         AC_SUBST(CHECKSTYLE)
1138
1139         # Commons beanutils (dependency of checkstyle)
1140         AC_JAVA_CHECK_JAR([commons-beanutils],[org.apache.commons.beanutils.Converter],[Bean utility],"yes")
1141         COMMONS_BEANUTILS=$PACKAGE_JAR_FILE
1142         AC_SUBST(COMMONS_BEANUTILS)
1143
1144         # antlr (dependency of checkstyle)
1145         AC_JAVA_CHECK_JAR([antlr],[antlr.TokenStreamException],[language tool for constructing recognizers],"yes")
1146         ANTLR=$PACKAGE_JAR_FILE
1147         AC_SUBST(ANTLR)
1148
1149         # Junit 4 (java unitary test)
1150         AC_JAVA_CHECK_JAR([junit4],[org.junit.Assert],[Junit4 - Unit tests],"yes")
1151         if test -z "$PACKAGE_JAR_FILE"; then
1152                 AC_JAVA_CHECK_JAR([junit],[org.junit.Assert],[Junit4 -
1153 Unit tests],"yes")
1154         fi
1155         JUNIT4=$PACKAGE_JAR_FILE
1156         AC_SUBST(JUNIT4)
1157
1158         # hamcrest (junit4 dependency)
1159         AC_JAVA_CHECK_JAR([hamcrest-all],[org.hamcrest.core.IsNull],[Hamcrest- library matchers],"yes")
1160         if test -z "$PACKAGE_JAR_FILE"; then
1161             AC_JAVA_CHECK_JAR([hamcrest/all],[org.hamcrest.core.IsNull],[Hamcrest- library matchers],"yes")
1162         fi
1163         HAMCREST=$PACKAGE_JAR_FILE
1164         AC_SUBST(HAMCREST)
1165
1166         # Cobertura (java code coverage)
1167         AC_JAVA_CHECK_JAR([cobertura],[net.sourceforge.cobertura.merge.Main],[cobertura - Java code coverage],"yes")
1168         COBERTURA=$PACKAGE_JAR_FILE
1169         AC_SUBST(COBERTURA)
1170
1171         # ASM (a dependency of Cobertura)
1172         AC_JAVA_CHECK_JAR([asm3],[org.objectweb.asm.Type],[Java bytecode manipulation (dep of cobertura)],"yes")
1173         if test -z "$ASM3"; then
1174                 AC_JAVA_CHECK_JAR([asm],[org.objectweb.asm.Type],[Java bytecode manipulation (dep of cobertura)],"yes")
1175         fi
1176         ASM3=$PACKAGE_JAR_FILE
1177         AC_SUBST(ASM3)
1178
1179         AC_JAVA_CHECK_JAR([ecj],[org.eclipse.jdt.core.compiler.batch.BatchCompiler],[Eclipse Java compiler],"yes")
1180         ECJ=$PACKAGE_JAR_FILE
1181         if test -z "$ECJ"; then
1182            ECJ='$SCILAB/thirdparty/ecj.jar'
1183         fi
1184         AC_SUBST(ECJ)
1185
1186     else
1187         AC_MSG_WARN([Sun javac not found: I will not build the java interface])
1188         if test "$ac_java_jvm_name" != ""; then
1189             AC_MSG_WARN([We do not support $ac_java_jvm_name yet])
1190         fi
1191     fi
1192     AC_SUBST(JAVA_JNI_INCLUDE)
1193     AC_SUBST(JAVA_JNI_LIBS)
1194     AC_SUBST(JAVA_HOME)
1195
1196
1197     if test "$enable_debug_java" = yes; then
1198         JAVAC_DEBUG="on"
1199     else
1200         JAVAC_DEBUG="off"
1201     fi
1202     AC_SUBST(JAVAC_DEBUG)
1203
1204     if test "$enable_build_swig" != no -a "$enable_build_swig" != ""; then
1205         SWIG_PROG()
1206         SWIG_ENABLE_JAVA()
1207         SWIG_ENABLE_SCILAB()
1208         AC_SUBST(SWIG_BIN)
1209         AC_SUBST(SWIG_JAVA)
1210         AC_SUBST(SWIG_SCILAB)
1211
1212     fi
1213
1214     # Giws is the equivalent of Swig developed by the Scilab team
1215     # in order to provide a wrapper to Java from C/C++
1216     if test "$enable_build_giws" != no -a "$enable_build_giws" != ""; then
1217         AC_GIWS([1.3.0])
1218     fi
1219
1220     fi # "$with_jdk" != no;
1221 fi
1222
1223 JAVA_ENABLE=yes
1224 if test -z "$JAVAC"; then
1225     JAVA_ENABLE=no
1226 fi
1227
1228 AC_SUBST(JAVA_ENABLE)
1229
1230 # Xcos is not checked here because gui=no disables it
1231 AM_CONDITIONAL(NEED_JAVA, [test "$with_jdk" != no -a \( "$with_javasci" != no -o "$with_gui" != no -o "$enable_build_help" != no \)])
1232 AM_CONDITIONAL(GUI, [test "$with_jdk" != no -a "$with_gui" != no])
1233 AM_CONDITIONAL(JAVASCI, [test "$with_jdk" != no -a "$with_javasci" != no])
1234 AM_CONDITIONAL(SWIG, [test "$with_jdk" != no -a "$enable_build_swig" != no -a "$enable_build_swig" != ""])
1235 AM_CONDITIONAL(GIWS, [test "$with_jdk" != no -a "$enable_build_giws" != no -a "$enable_build_giws" != ""])
1236
1237 ##############################################################
1238 ## GUI module
1239 ##############################################################
1240
1241 GUI_ENABLE=no
1242
1243 if test "$JAVA_ENABLE" != no; then
1244    GUI_ENABLE=yes
1245 fi
1246
1247 if test "$with_gui" != no; then
1248    GUI_ENABLE=yes
1249 fi
1250
1251 AC_SUBST(GUI_ENABLE)
1252
1253 ##############################################################
1254 ## test for functions in standard C library and C math library
1255 ##############################################################
1256
1257 # Provided by unistd.h
1258 AC_CHECK_FUNCS([sleep] [usleep] [dup2] [getcwd] [getpagesize] [getpass])
1259 AC_CHECK_FUNCS([rmdir])
1260
1261 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])])
1262
1263 # Provided by <regex.h>
1264 AC_CHECK_FUNCS([regcomp])
1265
1266 # Provided by stdlib.h
1267 AC_CHECK_FUNCS([atexit] [putenv] [setenv])
1268
1269 # Provided by String.h
1270 AC_CHECK_FUNCS([bzero] [memmove] [memset] [strcasecmp] [strerror] [strchr] [strdup] [strpbrk] [strrchr] [strstr] [strtol])
1271
1272 # Provided by select.h
1273 AC_CHECK_FUNCS([select])
1274
1275 # Provided by pwd.h
1276 AC_CHECK_FUNCS([endpwent])
1277
1278 # Provided by netdb.h
1279 AC_CHECK_FUNCS([gethostbyaddr] [gethostbyname] [gethostname])
1280
1281 # Provided by time.h
1282 AC_CHECK_FUNCS([gettimeofday])
1283
1284 # Provided by ctype.h
1285 AC_CHECK_FUNCS([isascii])
1286
1287 # Provided by wctype.h
1288 AC_CHECK_FUNCS([iswprint])
1289
1290 # Provided by types.h
1291 AC_CHECK_FUNCS([mkdir])
1292
1293 # Provided by mman.h
1294 AC_CHECK_FUNCS([munmap])
1295
1296 # Provided by signal.h
1297 AC_CHECK_FUNCS([strsignal])
1298
1299
1300 # Check of the libm (lib math). Macro provided by libtool.
1301 save_LDFLAGS="$LDFLAGS"
1302 LT_LIB_M()
1303
1304 # Provided by math.h
1305
1306 LDFLAGS="$LDFLAGS $LIBM"
1307 AC_CHECK_FUNCS([pow] [sqrt] [finite] [floor] [exp10] [erf] [erfc] [isnan])
1308
1309 ### If isinf exists or not (used to not be the case under Solaris)
1310 ### See bug #4164
1311 AC_DEFINE([HAVE_ISINF],[1],[Have isinf function or macro equivalent])
1312 AC_CHECK_FUNC([isinf],,[
1313         AC_DEFINE([isinf(x)],[(!finite(x) && x==x)],[Provide a macro to do isinf])
1314 ])
1315 LIBS="$LIBS $LIBM"
1316 LDFLAGS="$save_LDFLAGS"
1317
1318 # Provided by regex.h
1319 AC_CHECK_FUNCS([re_comp])
1320
1321 # Provided by socket.h
1322 AC_CHECK_FUNCS([socket])
1323
1324 # Provided by utsname.h
1325 AC_CHECK_FUNCS([uname])
1326
1327 # Provided by wtloop.c
1328 AC_CHECK_FUNCS([setlocale])
1329
1330 # Function memcmp used in modules/fileio/src/c/xls.c
1331 AC_FUNC_MEMCMP
1332
1333 # function stat used in modules/core/src/c/link_std.c
1334 AC_FUNC_STAT
1335
1336 # function strtod used in modules/core/src/c/getval.c
1337 AC_FUNC_STRTOD
1338
1339 ########################
1340 ## test for header files
1341 ########################
1342
1343 AC_CHECK_HEADERS([limits.h values.h])
1344
1345 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])
1346
1347 # check header dirent
1348 AC_HEADER_DIRENT
1349
1350 # static struct timeval defined or not | used in modules/core/src/c/timer.c
1351 AC_HEADER_TIME
1352
1353 # check if the specific header is available or not | used in modules/core/src/c/link_SYSV.c
1354 AC_HEADER_SYS_WAIT
1355
1356
1357 #######################
1358 ## Test for structures ##
1359 #######################
1360 AC_CHECK_MEMBERS([struct stat.st_blksize])
1361 AC_CHECK_MEMBERS([struct stat.st_rdev])
1362
1363
1364 #######################
1365 ## MISC Test
1366 #######################
1367
1368 # gettext.  See http://www.gnu.org/software/hello/manual/gettext/AM_005fGNU_005fGETTEXT.html
1369 AM_GNU_GETTEXT([external])
1370 AM_GNU_GETTEXT_VERSION([0.16])
1371
1372 # function closedir used in modules/metanet/src/c/files.c
1373 AC_FUNC_CLOSEDIR_VOID
1374
1375 # Signals used in modules/core/src/c/realmain.c
1376 AC_TYPE_SIGNAL
1377
1378 # struct tm used in modules/core/src/c/history.c
1379 AC_STRUCT_TM
1380
1381 # st_blocks in the struct in modules/io/sci_gateway/c/intfilestat.c
1382 AC_STRUCT_ST_BLOCKS
1383
1384
1385 ##################
1386 ## termcap library
1387 ##################
1388
1389 # some systems may have a system curses implementation as well as ncurses
1390 # installed.  We need to be consistent in making sure we get the correct
1391 # library to go with the correct header and also provide a way for the user
1392 # to have some control over which is picked when both are available.
1393 #
1394 # For now, just check for -lcurses and then -lncurses.  The user control
1395 # may need to be revisited
1396
1397 TERMCAP_LIB=no
1398
1399 # Various observations:
1400 #
1401 #  ncurses
1402 #    - installs ncurses.h and possibly curses.h as a link to ncurses.h
1403 #    - installs -lncurses.
1404 #    - need to include term.h for tgetent() but tgetent() is in -lncurses.a
1405 #
1406 # curses as found in NetBSD-4 and NetBSD-5
1407 #    - installs curses.h
1408 #    - need to include termcap.h and link with -ltermcap for tgetent()
1409 #
1410
1411 AC_CHECK_LIB([curses],[main])
1412 if test $ac_cv_lib_curses_main = no ; then
1413     AC_CHECK_LIB([ncurses],[main])
1414 fi
1415
1416 # make sure we have what we need for tgetent
1417 AC_SEARCH_LIBS([tgetent],[termcap])
1418
1419 AC_CHECK_HEADERS([ncurses.h curses.h])
1420
1421 if test "x$ac_cv_lib_curses_main" = "xyes" -o "x$ac_cv_lib_ncurses_main" = "xyes" ; then
1422   AC_DEFINE([HAVE_TERMCAP],[],[Have Term Cap])
1423 else
1424  AC_MSG_ERROR([No termcap library detected. Please install ncurses dev library (or termcap library)])
1425 fi
1426
1427 ##################
1428 ## other libraries
1429 ##################
1430
1431 AC_CHECK_LIB(dl, dlopen)
1432
1433 AC_SEARCH_LIBS([pthread_join],[pthread])
1434
1435 #################
1436 ## FFTW
1437 #################
1438
1439 AC_ARG_WITH(fftw,
1440     AS_HELP_STRING([--without-fftw],[Disable the interface to the FFTW 3 library]))
1441
1442 FFTW_ENABLE=no
1443 if test "$with_fftw" != no; then
1444    AC_FFTW()
1445    FFTW_ENABLE=yes
1446 fi
1447
1448 AC_SUBST(FFTW_ENABLE)
1449 AM_CONDITIONAL(FFTW, test "$with_fftw" != no)
1450
1451
1452 #################
1453 ## EIGEN
1454 #################
1455
1456 AC_EIGEN()
1457
1458
1459 #################
1460 ## MPI
1461 #################
1462
1463 # Disable by default the build of MPI:
1464 # * It is hard to package
1465 # * People are administrating cluster know about rebuilding packages
1466 # * They use their own MPI library
1467 AC_ARG_WITH(mpi,
1468     AS_HELP_STRING([--with-mpi],[compile with MPI library]))
1469
1470 MPI_ENABLE=no
1471 if test "$with_mpi" == yes; then
1472    AC_OPENMPI()
1473    # We will have to detect other implementation of OpenMPI
1474    MPI_ENABLE=yes
1475 fi
1476 AC_SUBST(MPI_ENABLE)
1477
1478 AM_CONDITIONAL(MPI, test "$with_mpi" == yes)
1479
1480 #################
1481 ## OpenMP
1482 #################
1483
1484 AC_ARG_WITH(openmp,
1485     AS_HELP_STRING([--without-openmp],[Disable the usage of OpenMP (parallelization of some algoritms)]))
1486
1487 OPENMP_ENABLE=no
1488 if test "$with_openmp" != no; then
1489 #   AC_OPENMP
1490     OPENMP_CFLAGS="-fopenmp"
1491     OPENMP_CXXFLAGS="-fopenmp"
1492     OPENMP_LIBS="-lgomp"
1493
1494     AC_CHECK_HEADERS([omp.h], [],
1495      [AC_MSG_ERROR([Could not find omp.h])])
1496
1497     OPENMP_ENABLE=yes
1498 fi
1499 AC_SUBST(OPENMP_ENABLE)
1500 AC_SUBST(OPENMP_CFLAGS)
1501 AC_SUBST(OPENMP_CXXFLAGS)
1502 AC_SUBST(OPENMP_LIBS)
1503
1504 AM_CONDITIONAL(OPENMP, test "$with_openmp" != no)
1505
1506
1507 #######################
1508 ## Test for libxml
1509 #######################
1510
1511 AC_LIBXML2()
1512
1513 #######################
1514 ## Test for gettext
1515 #######################
1516
1517 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"
1518 ALL_LINGUAS_DOC="en_US fr_FR pt_BR ja_JP ru_RU"
1519
1520 AC_ARG_ENABLE(build-localization,
1521         AS_HELP_STRING([--disable-build-localization],[Disable the localization build])
1522         )
1523 BUILD_LOCALIZATION_ENABLE=no
1524
1525 if test "$enable_build_localization" != no; then
1526
1527    AC_SUBST(ALL_LINGUAS)
1528    AC_SUBST(ALL_LINGUAS_DOC)
1529    AC_CHECK_FUNCS([bind_textdomain_codeset])
1530
1531    AC_PATH_PROG(MSGCAT, msgcat, no)
1532 #   AC_PATH_PROG(MSGFMT, msgfmt, no)
1533 #   AC_PATH_PROG(XGETTEXT, xgettext, no)
1534
1535    if test x$MSGFMT = xno; then
1536       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 ])
1537       fi
1538     if test x$MSGCAT = xno; then
1539       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 ])
1540     fi
1541     BUILD_LOCALIZATION_ENABLE=yes
1542 fi
1543 AM_CONDITIONAL(GENERATE_LOCALIZATION_FILES, test "$BUILD_LOCALIZATION_ENABLE" = yes)
1544
1545 #######################
1546 ## Test for blas/Atlas and lapack
1547 #######################
1548 AC_MSG_CHECKING([if BLAS, ATLAS or MKL is available])
1549 echo ""
1550 ACX_BLAS(
1551         [AC_MSG_RESULT([$BLAS_TYPE found])]
1552         ,
1553         AC_MSG_ERROR([Impossible to find a BLAS compatible library (see BLAS or ATLAS).])
1554         )
1555
1556 AC_MSG_CHECKING([if LAPACK is available])
1557 echo ""
1558 ACX_LAPACK(
1559         [AC_MSG_RESULT([$LAPACK_TYPE found])],
1560         AC_MSG_ERROR([Impossible to find the LAPACK library.])
1561         )
1562
1563
1564 AC_ARG_WITH(arpack-ng,
1565     AS_HELP_STRING([--without-arpack-ng],[Disable the interface to ARPACK-NG]))
1566
1567 ARPACK_NG=no
1568 if test "$with_arpack_ng" != no; then
1569    ARPACK_NG=yes
1570    AC_MSG_CHECKING([if ARPACK-NG is available])
1571 echo ""
1572 ACX_ARPACK(
1573         [AC_MSG_RESULT([ARPACK-NG library found])],
1574         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/ ).])
1575         )
1576
1577 CHECK_ARPACK_OK(
1578 [AC_MSG_RESULT([Working ARPACK-NG library found (probably ARPACK-NG or a patched version of ARPACK)])],
1579 [AC_MSG_ERROR([ARPACK library found, but seems not to work properly. Please make sure you are using arpack-ng])
1580 ])
1581 else
1582    AC_MSG_CHECKING([Skip ARPACK-NG detection])
1583 fi
1584
1585 AM_CONDITIONAL(ARPACK_NG, test "$ARPACK_NG" != "no")
1586
1587
1588 #################
1589 ## UMFPACK
1590 #################
1591
1592 AC_ARG_WITH(umfpack,
1593     AS_HELP_STRING([--without-umfpack],[Disable the interface to the UMFPACK library]))
1594
1595 UMFPACK_ENABLE=no
1596 if test "$with_umfpack" != no; then
1597    AC_UMFPACK([$BLAS_LIBS])
1598    UMFPACK_ENABLE=yes
1599 fi
1600
1601 AC_SUBST(UMFPACK_ENABLE)
1602 AM_CONDITIONAL(UMFPACK, test "$with_umfpack" != no)
1603
1604 #######################
1605 ## Test for PCRE
1606 #######################
1607
1608 AC_PCRE()
1609
1610 #######################
1611 ## Test for CURL
1612 #######################
1613
1614 AC_CURL()
1615
1616 #################
1617 ## Tcl/Tk library
1618 #################
1619
1620 WITH_TKSCI=no
1621 if test "$with_tk" != no; then
1622    if test "$MACOSX" = "1"; then
1623       AC_MSG_ERROR([Due to technical constraints, Tcl/Tk must be disabled under Mac OS X (--without-tk)])
1624    fi
1625
1626     # check user arguments
1627     USER_TCL_LIB_PATH=""
1628     USER_TCL_INC_PATH=""
1629     AC_ARG_WITH(tcl-library,
1630         AS_HELP_STRING([--with-tcl-library=DIR],[Set the path to the TCL library]),
1631         [  USER_TCL_LIB_PATH=$withval
1632     ])
1633     AC_ARG_WITH(tcl-include,
1634         AS_HELP_STRING([--with-tcl-include=DIR],[Set the path to the TCL headers]),
1635         [  USER_TCL_INC_PATH=$withval
1636     ])
1637
1638     USER_TK_LIB_PATH=$USER_TCL_LIB_PATH
1639     USER_TK_INC_PATH=$USER_TCL_INC_PATH
1640
1641     AC_ARG_WITH(tk-library,
1642         AS_HELP_STRING([--with-tk-library=DIR],[Set the path to the TK library]),
1643         [  USER_TK_LIB_PATH=$withval
1644     ])
1645
1646     AC_ARG_WITH(tk-include,
1647         AS_HELP_STRING([--with-tk-include=DIR],[Set the path to the TK headers]),
1648         [  USER_TK_INC_PATH=$withval
1649     ])
1650
1651 ###########################
1652 ########## X11 checks
1653 ###########################
1654         ## This check is mandatory since tk needs Xlib headers and libs
1655         AC_PATH_XTRA
1656         ##
1657
1658     saved_cflags="$CFLAGS"
1659     saved_ldflags="$LDFLAGS"
1660     saved_cppflags="$CXXFLAGS"
1661
1662     AC_CHECK_LIB([dl], [main], [TCLTK_LIBS=" -ldl"])
1663     AC_CHECK_TCLTK
1664
1665     # set variables
1666     if test "$WITH_TKSCI" = yes; then
1667         AC_DEFINE([WITH_TK], [], [With TK])
1668     else
1669         AC_MSG_ERROR([TCL/TK not found. Use --without-tk or specify the librairies and include paths manually])
1670     fi
1671
1672     AC_SUBST(TCLTK_LIBS)
1673     AC_SUBST(TCL_INC_PATH)
1674     AC_SUBST(TK_INC_PATH)
1675
1676 fi
1677 AC_SUBST(WITH_TKSCI)
1678 AM_CONDITIONAL(TCLTK, test "$WITH_TKSCI" = yes)
1679
1680 #################
1681 ## MATIO LIBRARY (MAT File I/O Library)
1682 #################
1683
1684
1685 AC_ARG_WITH(matio,
1686     AS_HELP_STRING([--without-matio],[Disable the interface to Matio (MAT File I/O library)]))
1687
1688 AC_ARG_WITH(matio_include,
1689         AS_HELP_STRING([--with-matio-include=DIR],[Set the path to the MATIO headers]),
1690         [with_matio_include="-I$withval"], [])
1691
1692 AC_ARG_WITH(matio_library,
1693         AS_HELP_STRING([--with-matio-library=DIR],[Set the path to the MATIO libraries]),
1694         [with_matio_library="-L$withval"], [])
1695
1696 MATIO_ENABLE=no
1697
1698 if test "$with_matio" != no; then
1699    if test -n "$with_matio_include" -o -n "$with_matio_library" ; then
1700       MATIO_CFLAGS="$with_matio_include"
1701       MATIO_LIBS="$with_matio_library -lm -lz -lmatio -lhdf5"
1702    else
1703       if $WITH_DEVTOOLS; then # Scilab thirdparties
1704          MATIO_CFLAGS="-I$DEVTOOLS_INCDIR"
1705          MATIO_LIBS="-L$DEVTOOLS_LIBDIR -lm -lz -lmatio -lhdf5"
1706       else
1707          PKG_CHECK_MODULES(MATIO, [matio >= 1.5.0])
1708       fi
1709    fi
1710
1711    save_CFLAGS="$CFLAGS"
1712    save_LIBS="$LIBS"
1713
1714    CFLAGS="$CFLAGS $MATIO_CFLAGS"
1715    LIBS="$LIBS $MATIO_LIBS"
1716
1717    AC_CHECK_HEADERS([matio.h], [],
1718      [AC_MSG_ERROR([Invalid MATIO_CFLAGS returned by pkg-config. Try to define MATIO_CFLAGS.])])
1719    AC_CHECK_LIB([matio], [Mat_Open], [],
1720      [AC_MSG_ERROR([Invalid MATIO_LIBS returned by pkg-config. Try to define MATIO_LIBS.])])
1721
1722    LIBS="$save_LIBS"
1723    CFLAGS="$save_CFLAGS"
1724
1725    AC_DEFINE([WITH_MATIO], [], [With the MATIO library])
1726    MATIO_ENABLE=yes
1727
1728    AC_SUBST(MATIO_LIBS)
1729    AC_SUBST(MATIO_CFLAGS)
1730 fi
1731
1732
1733 AC_SUBST(MATIO_ENABLE)
1734 AM_CONDITIONAL(MATIO, test "$with_matio" != no)
1735
1736 #############################
1737 ## Documentation management #
1738 #############################
1739
1740 HELP_ENABLE=yes
1741
1742 AC_ARG_ENABLE(build-help,
1743         AS_HELP_STRING([--disable-build-help],[Disable the help build])
1744         )
1745
1746 if test "$enable_build_help" != no; then
1747     AC_DOCBOOK()
1748 else
1749     HELP_ENABLE=no
1750 fi
1751
1752 if test "$JAVA_ENABLE" = no; then
1753     HELP_ENABLE=no
1754 fi
1755
1756 AC_SUBST(HELP_ENABLE)
1757
1758 AM_CONDITIONAL(BUILD_HELP, test $HELP_ENABLE = yes)
1759
1760 ## Install XML help files ###
1761
1762 AC_ARG_WITH(install-help-xml,
1763         AS_HELP_STRING([--with-install-help-xml],[make install will install XML files])
1764         )
1765 HELP_INSTALL_ENABLE=no
1766 if test "$with_install_help_xml" != no -a "$with_install_help_xml" != ""; then
1767    HELP_INSTALL_ENABLE=yes
1768 fi
1769 AM_CONDITIONAL(INSTALL_HELP_XML, test "$HELP_INSTALL_ENABLE" != "")
1770
1771 ## Doxygen help generation
1772 AC_ARG_ENABLE(build-doxygen,
1773     AS_HELP_STRING([--enable-build-doxygen],[Generate doxygen C/C++ documentation]))
1774
1775 DOXYGEN_ENABLE=yes
1776 if test "$enable_build_doxygen" != no -a "$enable_build_doxygen" != ""; then
1777     AC_DOXYGEN()
1778 else
1779     DOXYGEN_ENABLE=no
1780 fi
1781 AM_CONDITIONAL(DOXYGEN, test $DOXYGEN_ENABLE = yes)
1782
1783 ## Valgrind specific code
1784 PKG_CHECK_EXISTS([valgrind], [PKG_CHECK_MODULES([VALGRIND], [valgrind], [AC_DEFINE([VALGRIND_ENABLE], [], [Enable valgrind specific tweaks])])], [])
1785
1786 ##############################################################
1787 ## Javasci module
1788 ##############################################################
1789
1790 JAVASCI_ENABLE=yes
1791
1792 if test "$JAVA_ENABLE" = no -o "$JAVASCI" = no; then
1793    JAVASCI_ENABLE=no
1794 fi
1795
1796 AC_SUBST(JAVASCI_ENABLE)
1797
1798
1799 ##############################################################
1800 ## Enable test at compilation time
1801 ##############################################################
1802
1803 COMPILATION_TESTS=no
1804 if test "$enable_compilation_tests" != no -a "$enable_compilation_tests" != ""; then
1805    COMPILATION_TESTS=yes
1806 fi
1807
1808 if test COMPILATION_TESTS=yes -a "$JUNIT4" == ""; then
1809    AC_MSG_WARN([--enable-compilation-tests deactivated: Could not find Junit4"])
1810    COMPILATION_TESTS=no
1811 fi
1812
1813 AM_CONDITIONAL(COMPILATION_TESTS, test "$COMPILATION_TESTS" != "no")
1814
1815 ##############################################################
1816 ## Enable the global force link
1817 ##############################################################
1818
1819 AC_ARG_ENABLE(force-full-link,
1820     AS_HELP_STRING([--enable-force-full-link],[Forces the explicit link between libscilab and some "on-the-fly" loaded libraries. NOT USE IN PRODUCTION.]))
1821
1822 FORCE_FULL_LINK="no"
1823 if test "$enable_force_full_link" == "yes"; then
1824     FORCE_FULL_LINK="yes"
1825 fi
1826
1827 AM_CONDITIONAL(FORCE_LINK, test "$FORCE_FULL_LINK" == "yes")
1828
1829 ##############################################################
1830 ## demo_tools module
1831 ##############################################################
1832
1833 DEMOTOOLS_ENABLE=yes
1834
1835 if test "$GUI_ENABLE" = no; then
1836    DEMOTOOLS_ENABLE=no
1837 fi
1838
1839 AC_SUBST(DEMOTOOLS_ENABLE)
1840
1841 ##############################################################
1842 ## graphics/renderer/graphic_export module
1843 ##############################################################
1844
1845 GRAPHICS_ENABLE=yes
1846
1847 if test "$GUI_ENABLE" = no; then
1848    GRAPHICS_ENABLE=no
1849 fi
1850
1851 AC_SUBST(GRAPHICS_ENABLE)
1852
1853 #########################
1854 ## libtool
1855 #########################
1856
1857 LT_PREREQ([2.2.7])
1858 LT_INIT([shared dlopen disable-static])
1859
1860 # Avoid to link all the dep from others libraries (*.la included by LIBADD)
1861 link_all_deplibs=no
1862
1863 # Check to see if building shared libraries
1864 libtool_build_shared_libs=no
1865 if test "$enable_shared" = "yes"; then
1866   libtool_build_shared_libs=yes
1867 fi
1868
1869 # Check to see if building static libraries
1870 libtool_build_static_libs=no
1871 if test "$enable_static" = "yes"; then
1872   libtool_build_static_libs=yes
1873 fi
1874
1875 # AM_CONDITIONAL(ENABLE_STATIC, test "$libtool_build_static_libs" = yes)
1876 # Fake to disable the static build
1877 AM_CONDITIONAL(ENABLE_STATIC, test "$libtool_build_static_libs" = xxxx)
1878
1879 AC_C_CONST()
1880 AC_C_INLINE()
1881
1882 AC_BACKTRACE()
1883
1884 ##########
1885 ##### Code quality
1886 ##########
1887 AC_PATH_PROG(SPLINT, splint, no)
1888
1889 ##########
1890 ##### Detect ccache and use it by default if available
1891 ##########
1892
1893 AC_ARG_ENABLE(ccache,
1894         AS_HELP_STRING([--disable-ccache],[Disable the use of ccache])
1895         )
1896 AC_PATH_PROG(CCACHE, ccache)
1897 if test x"$CCACHE" != x -a "$enable_ccache" != no; then
1898   CC="$CCACHE $CC"
1899   CXX="$CCACHE $CXX"
1900 fi
1901
1902 #######################
1903 ###### Creation of the header file (machine.h)
1904 #######################
1905
1906 AC_DEFINE_UNQUOTED([PATH_SEPARATOR], ["$PATH_SEPARATOR"],
1907 [The default path separator character.])
1908
1909 AH_TOP([#ifndef MACHINE_H
1910 #define MACHINE_H
1911 /* This file defines global element configuration of the build host */
1912 ])
1913
1914 AH_BOTTOM([
1915
1916 #ifdef DIR_SEPARATOR
1917        #undef DIR_SEPARATOR
1918 #endif
1919 #define DIR_SEPARATOR "/"
1920
1921 #ifdef DIR_SEPARATORW
1922            #undef DIR_SEPARATORW
1923 #endif
1924 #define DIR_SEPARATORW L"/"
1925
1926 #define bsiz 4096
1927
1928 #endif /* MACHINE_H  */
1929 ])
1930
1931 # Define the standard extension of a dynamic library
1932 AC_DEFINE_UNQUOTED([SHARED_LIB_EXT],["$shrext_cmds"],[Extension of a shared library])
1933 AC_DEFINE_UNQUOTED([SHARED_LIB_EXTW],[L"$shrext_cmds"],[Extension of a shared library ( wide string )])
1934
1935
1936
1937 #################
1938 ## Update the years in the various part of the code.
1939 #################
1940
1941 if test ! -f modules/core/src/cpp/banner.cpp; then
1942    AC_MSG_ERROR([Could not find the Scilab banner file.])
1943 fi
1944
1945 CURRENT_YEAR=`date "+%Y"`
1946 DETECTED_YEAR=`grep "Copyright (c) 2011-" modules/core/src/cpp/banner.cpp|sed -e "s/.*Copyright (c) 2011-\([[0-9]]*\).*/\1/g"`
1947
1948 if test "$CURRENT_YEAR" != "$DETECTED_YEAR"; then
1949    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
1950    sed -i -e "s| 2011-$DETECTED_YEAR Scilab Enterprises| 2011-$CURRENT_YEAR Scilab Enterprises|g" etc/Info.plist.in
1951    sed -i -e "s|VALUE \"LegalCopyright\", \"Copyright (C) $DETECTED_YEAR|VALUE \"LegalCopyright\", \"Copyright (C) $CURRENT_YEAR|" $(find . -iname '*.rc')
1952    AC_MSG_WARN([New year ($CURRENT_YEAR) detected. Copyright files updated. Please commit them ASAP.])
1953 fi
1954
1955
1956 #########
1957 ## Make sure that the libstdc++ libgcc and libgfortran can be compiled as
1958 ## static if requested
1959 #########
1960 AC_CHECK_STDCPP_STATIC()
1961
1962 #################
1963 ## stop on warning
1964 #################
1965
1966 # Stop to compile scilab when a warning is found ...
1967 # This stuff is at the end of the configure.ac because it causes some
1968 # problem with AC_COMPILE (the -Werror is added to the test)
1969 #
1970 if test "$enable_stop_on_warning" = yes; then
1971     WARNING_CFLAGS="-Werror=implicit-function-declaration -Werror=declaration-after-statement "
1972     WARNING_CXXFLAGS="-Werror=implicit-function-declaration "
1973 fi
1974
1975 # SCI_*FLAGS contains all defaults values detected on configure
1976 SCI_CFLAGS=$(echo                                             \
1977              $LARGEFILE_CFLAGS                                \
1978              $CODECOVERAGE_CFLAGS                             \
1979              $DEBUG_CFLAGS                                    \
1980              $ARCH_CFLAGS                                     \
1981              $COMPILER_CFLAGS                                 \
1982              $SCILIBS_CFLAGS                                  \
1983              $SSE_CFLAGS                                      \
1984              $BACKTRACE_CFLAGS                                \
1985              $WARNING_CFLAGS                                  )
1986 SCI_CXXFLAGS=$(echo                                           \
1987                $STDCXX_11_CXXFLAGS                            \
1988                $LARGEFILE_CXXFLAGS                            \
1989                $CODECOVERAGE_CXXFLAGS                         \
1990                $DEBUG_CXXFLAGS                                \
1991                $ARCH_CXXFLAGS                                 \
1992                $COMPILER_CXXFLAGS                             \
1993                $SCILIBS_CXXFLAGS                              \
1994                $SSE_CXXFLAGS                                  \
1995                $BACKTRACE_CXXFLAGS                            \
1996                $WARNING_CXXFLAGS                              )
1997 SCI_FFLAGS=$(echo                                             \
1998              $LARGEFILE_FFLAGS                                \
1999              $CODECOVERAGE_FFLAGS                             \
2000              $DEBUG_FFLAGS                                    \
2001              $ARCH_FFLAGS                                     \
2002              $COMPILER_FFLAGS                                 \
2003              $SCILIBS_FFLAGS                                  \
2004              $SSE_FFLAGS                                      \
2005              $BACKTRACE_FFLAGS                                \
2006              $WARNING_FFLAGS                                  )
2007 SCI_LDFLAGS=$(echo                                            \
2008               $LARGEFILE_LDFLAGS                              \
2009               $CODECOVERAGE_LDFLAGS                           \
2010               $DEBUG_LDFLAGS                                  \
2011               $ARCH_LDFLAGS                                   \
2012               $COMPILER_LDFLAGS                               \
2013               $SCILIBS_LDFLAGS                                \
2014               $SSE_LDFLAGS                                    \
2015               $BACKTRACE_LDFLAGS                              \
2016               $WARNING_LDFLAGS                                )
2017 AC_SUBST(SCI_CFLAGS)
2018 AC_SUBST(SCI_CXXFLAGS)
2019 AC_SUBST(SCI_FFLAGS)
2020 AC_SUBST(SCI_LDFLAGS)
2021
2022 AC_CONFIG_FILES([
2023 contrib/Makefile
2024 desktop/images/icons/Makefile
2025 desktop/Makefile
2026 modules/threads/Makefile
2027 modules/ast/Makefile
2028 modules/functions_manager/Makefile
2029 modules/helptools/Makefile
2030 modules/data_structures/Makefile
2031 modules/differential_equations/Makefile
2032 modules/optimization/Makefile
2033 modules/elementary_functions/Makefile
2034 modules/special_functions/Makefile
2035 modules/io/Makefile
2036 modules/completion/Makefile
2037 modules/history_manager/Makefile
2038 modules/jvm/Makefile
2039 modules/commons/Makefile
2040 modules/sound/Makefile
2041 modules/statistics/Makefile
2042 modules/mexlib/Makefile
2043 modules/sparse/Makefile
2044 modules/linear_algebra/Makefile
2045 modules/polynomials/Makefile
2046 modules/signal_processing/Makefile
2047 modules/arnoldi/Makefile
2048 modules/interpolation/Makefile
2049 modules/localization/Makefile
2050 modules/cacsd/Makefile
2051 modules/boolean/Makefile
2052 modules/integer/Makefile
2053 modules/fileio/Makefile
2054 modules/spreadsheet/Makefile
2055 modules/string/Makefile
2056 modules/time/Makefile
2057 modules/graphics/Makefile
2058 modules/graphic_export/Makefile
2059 modules/graphic_objects/Makefile
2060 modules/renderer/Makefile
2061 modules/action_binding/Makefile
2062 modules/gui/Makefile
2063 modules/mpi/Makefile
2064 modules/randlib/Makefile
2065 modules/tclsci/Makefile
2066 modules/windows_tools/Makefile
2067 modules/core/Makefile
2068 modules/prebuildjava/Makefile
2069 modules/api_scilab/Makefile
2070 modules/call_scilab/Makefile
2071 modules/types/Makefile
2072 modules/hdf5/Makefile
2073 modules/fftw/Makefile
2074 modules/umfpack/Makefile
2075 modules/scicos/Makefile
2076 modules/scicos_blocks/Makefile
2077 modules/functions/Makefile
2078 modules/dynamic_link/Makefile
2079 modules/overloading/Makefile
2080 modules/javasci/Makefile
2081 modules/m2sci/Makefile
2082 modules/compatibility_functions/Makefile
2083 modules/development_tools/Makefile
2084 modules/output_stream/Makefile
2085 modules/console/Makefile
2086 modules/demo_tools/Makefile
2087 modules/genetic_algorithms/Makefile
2088 modules/simulated_annealing/Makefile
2089 modules/parameters/Makefile
2090 modules/matio/Makefile
2091 modules/atoms/Makefile
2092 modules/xcos/Makefile
2093 modules/scinotes/Makefile
2094 modules/ui_data/Makefile
2095 modules/graph/Makefile
2096 modules/parallel/Makefile
2097 modules/modules_manager/Makefile
2098 modules/history_browser/Makefile
2099 modules/preferences/Makefile
2100 modules/xml/Makefile
2101 modules/external_objects/Makefile
2102 modules/external_objects_java/Makefile
2103 modules/slint/Makefile
2104 modules/coverage/Makefile
2105 modules/webtools/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 ""