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