Do not default to static linking for libstdc++
[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_PACKAGE([jgraphx],[com.mxgraph.model.mxCell],[Diagram design])
900                    JGRAPHX=$PACKAGE_JAR_FILE
901                    AC_SUBST(JGRAPHX)
902
903                    AC_JAVA_CHECK_VERSION_PACKAGE([jgraphx],[import com.mxgraph.view.mxGraph;],$JGRAPHX,[2.0.0.1],[mxGraph.VERSION],[],[])
904
905                 fi
906
907                 if test "$with_external_scirenderer" = yes; then
908                    # scirenderer
909                    AC_JAVA_CHECK_PACKAGE([scirenderer],[org.scilab.forge.scirenderer.PackageInfo],[Scilab Renderer])
910                    SCIRENDERER=$PACKAGE_JAR_FILE
911                    SCIRENDERER_CP=$PACKAGE_JAR_FILE
912
913                    AC_JAVA_CHECK_VERSION_PACKAGE([scirenderer],[import org.scilab.forge.scirenderer.PackageInfo;],$SCIRENDERER,[1.1.0],[PackageInfo.VERSION])
914                  else
915                    echo "Use external version of scirenderer"
916                    # Use the scirenderer in Scilab sources
917                    SCIRENDERER="\${modules.dir}/scirenderer/\${build.jar.dir}/scirenderer.jar"
918                    SCIRENDERER_CP="\$SCILAB/modules/scirenderer/jar/scirenderer.jar"
919                 fi
920                 AC_SUBST(SCIRENDERER)
921                 AC_SUBST(SCIRENDERER_CP)
922
923                # Docking system
924                 AC_JAVA_CHECK_PACKAGE([flexdock],[org.flexdock.docking.DockingManager],[Scilab Gui])
925                 FLEXDOCK=$PACKAGE_JAR_FILE
926                 AC_SUBST(FLEXDOCK)
927
928                 AC_JAVA_CHECK_VERSION_PACKAGE([flexdock],[import org.flexdock.util.Utilities;],$FLEXDOCK,[1.2.4],[Utilities.VERSION])
929
930                 # Swing look&feel implementations
931                 AC_JAVA_CHECK_PACKAGE([looks],[com.jgoodies.looks.common.MenuItemRenderer],[Scilab Gui - Look and feel],"yes")
932                 LOOKS=$PACKAGE_JAR_FILE
933
934                 # Named differently under ArchLinux or Fedora
935                 if test -z "$LOOKS"; then
936                     AC_JAVA_CHECK_PACKAGE([jgoodies-looks],[com.jgoodies.looks.common.MenuItemRenderer],[Scilab Gui - Look and feel])
937                     LOOKS=$PACKAGE_JAR_FILE
938                 fi
939                 AC_SUBST(LOOKS)
940
941                 #  Skin Look and Feel
942                 AC_JAVA_CHECK_PACKAGE([skinlf],[com.l2fprod.util.AccessUtils],[Scilab Gui - Skin Look and Feel])
943                 SKINLF=$PACKAGE_JAR_FILE
944                 AC_SUBST(SKINLF)
945
946                 # JOGL 2
947                 AC_JAVA_CHECK_PACKAGE([jogl2],[javax.media.opengl.glu.GLUnurbs],[Scilab 3D rendering - Version 2.0])
948                 JOGL2=$PACKAGE_JAR_FILE
949                 AC_SUBST(JOGL2)
950
951                 AC_JAVA_CHECK_VERSION_MANIFEST([jogl2],$JOGL2,[2.2],[Specification-Version])
952
953                 if test "$MACOSX" = 1; then
954                    echo "Check of the presence of libjogl.jnilib and libjogl_awt.jnilib disabled under Mac OS X"
955                 else
956                    LDFLAGS_save=$LDFLAGS
957                    # Provide known paths where distribs/OS can store JNI libs
958                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
959                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
960                    LDFLAGS="$LDFLAGS -L/usr/lib/jogl2 -L/usr/lib64/jogl2"               # RedHat
961                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/lib/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
962                    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])])
963                    if test -z "$JOGL2_LIBS"; then # The previous test failed add more options to the LDFLAGS
964                        # the space after "jogl" in the following line is on
965                        # purpose to disable the cache
966                           AC_CHECK_LIB([jogl_desktop ], [glTexParameterf],
967                        [JOGL2_LIBS="-ljogl_desktop -lGL"],
968                        [AC_MSG_ERROR(["libjogl: Library
969 missing (Cannot find symbol glTexParameterf). Check if libjogl - C/Java (JNI)
970 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."])],
971                        [-lGL])
972                    fi
973
974                    LDFLAGS=$LDFLAGS_save
975                 fi
976
977                 # JoGL Native <=> Java connector
978                 AC_JAVA_CHECK_PACKAGE([gluegen2-rt],[jogamp.common.os.MachineDescriptionRuntime],[Scilab 3D rendering])
979                 GLUEGEN2_RT=$PACKAGE_JAR_FILE
980                 AC_SUBST(GLUEGEN2_RT)
981
982                 if test "$MACOSX" = 1; then
983                    echo "Check of the presence of libgluegen-rt.jnilib disabled under Mac OS X"
984                 else
985                    LDFLAGS_save=$LDFLAGS
986                    # Provide known paths where distribs/OS can store JNI libs
987                    LDFLAGS="$LDFLAGS -L/usr/lib/jni -L/usr/lib64/jni"                   # Debian
988                    LDFLAGS="$LDFLAGS -L/usr/lib/java -L/usr/lib64/java"                 # jpackage.org
989                    LDFLAGS="$LDFLAGS -L/usr/lib/gluegen2 -L/usr/lib64/gluegen2"         # RedHat
990                    LDFLAGS="$LDFLAGS -L$SCI_SRCDIR/thirdparty -L$SCI_SRCDIR/lib/thirdparty -L$SCI_SRCDIR/bin"        # Scilab thirdparties
991                    symbol="Java_jogamp_common_jvm_JVMUtil_initialize"
992                    AC_CHECK_LIB([gluegen2-rt], [$symbol], [GLUEGEN2_RT_LIBS="-lgluegen2-rt"],
993                    [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.])],
994                    [-ldl])
995                    LDFLAGS=$LDFLAGS_save
996                 fi
997
998                 # Jhall
999                 AC_JAVA_CHECK_PACKAGE([jhall],[javax.help.JHelp],[Scilab Help Browser],"yes")
1000                 # Named differently under Mandriva or Fedora
1001                 if test -z "$PACKAGE_JAR_FILE"; then
1002                     AC_JAVA_CHECK_PACKAGE([javahelp2],[javax.help.JHelp],[Scilab Help Browser])
1003                 fi
1004                 JHALL=$PACKAGE_JAR_FILE
1005                 AC_SUBST(JHALL)
1006
1007                 # Console API
1008                 AC_JAVA_CHECK_PACKAGE([jrosetta-API],[com.artenum.rosetta.interfaces.core.ConsoleConfiguration],[JRosetta : Console API Artenum / Scilab],"yes")
1009                 if test -z "$PACKAGE_JAR_FILE"; then
1010                     AC_JAVA_CHECK_PACKAGE([jrosetta-api],[com.artenum.rosetta.interfaces.core.ConsoleConfiguration],[JRosetta : Console API Artenum / Scilab])
1011                 fi
1012                 JROSETTA_API=$PACKAGE_JAR_FILE
1013                 AC_SUBST(JROSETTA_API)
1014
1015                 # Console Core
1016                 AC_JAVA_CHECK_PACKAGE([jrosetta-engine],[com.artenum.rosetta.core.action.AbstractConsoleAction],[JRosetta : Console Core Artenum / Scilab])
1017                 JROSETTA_ENGINE=$PACKAGE_JAR_FILE
1018                 AC_SUBST(JROSETTA_ENGINE)
1019                 AC_JAVA_CHECK_VERSION_PACKAGE([jrosetta-engine],[import com.artenum.rosetta.util.ConfigurationBuilder;],$JROSETTA_ENGINE,[1.0.4],[ConfigurationBuilder.getVersion()])
1020
1021
1022                 # MathML rendering solution
1023                 # Used in both graphic & help
1024                 AC_JAVA_CHECK_PACKAGE([jeuclid-core],[net.sourceforge.jeuclid.LayoutContext],[MathML rendering solution (at least version 3.1.X)])
1025                 JEUCLID_CORE=$PACKAGE_JAR_FILE
1026                 AC_SUBST(JEUCLID_CORE)
1027
1028
1029                 ################ Mandatory for graphic_export features #####
1030                 # XML to PDF/other Translator
1031                 AC_JAVA_CHECK_PACKAGE([fop],[org.apache.fop.pdf.PDFInfo],[XML to PDF Translator (fop)])
1032                 FOP=$PACKAGE_JAR_FILE
1033                 AC_SUBST(FOP)
1034
1035                 AC_ARG_WITH(emf, [AS_HELP_STRING([--without-emf],
1036                     [disable support for EMF (Windows Metafile) export])])
1037                 if test "x$with_emf" != xno; then
1038                     # Freehep Graphics2D
1039                     AC_JAVA_CHECK_PACKAGE([freehep-graphics2d],[org.freehep.graphics2d.VectorGraphics],[Freehep Graphics2D])
1040                     FREEHEP_GRAPHICS2D=$PACKAGE_JAR_FILE
1041                     AC_SUBST(FREEHEP_GRAPHICS2D)
1042
1043                     # Freehep GraphicsIO EMF
1044                     AC_JAVA_CHECK_PACKAGE([freehep-graphicsio-emf],[org.freehep.graphicsio.emf.EMFGraphics2D],[Freehep GraphicsIO EMF])
1045                     FREEHEP_GRAPHICSIO_EMF=$PACKAGE_JAR_FILE
1046                     AC_SUBST(FREEHEP_GRAPHICSIO_EMF)
1047
1048                     # Freehep GraphicsIO
1049                     AC_JAVA_CHECK_PACKAGE([freehep-graphicsio],[org.freehep.graphicsio.VectorGraphicsIO],[Freehep GraphicsIO])
1050                     FREEHEP_GRAPHICSIO=$PACKAGE_JAR_FILE
1051                     AC_SUBST(FREEHEP_GRAPHICSIO)
1052
1053                     # Freehep IO
1054                     AC_JAVA_CHECK_PACKAGE([freehep-io],[org.freehep.util.io.XMLSequence],[Freehep IO])
1055                     FREEHEP_IO=$PACKAGE_JAR_FILE
1056                     AC_SUBST(FREEHEP_IO)
1057
1058                     # Freehep Util
1059                     AC_JAVA_CHECK_PACKAGE([freehep-util],[org.freehep.util.StringUtilities],[Freehep Util])
1060                     FREEHEP_UTIL=$PACKAGE_JAR_FILE
1061                     AC_SUBST(FREEHEP_UTIL)
1062                 fi
1063
1064                 # xml.apache.org SVG Library (under mandriva for example)
1065                 AC_JAVA_CHECK_PACKAGE([batik-all],[org.apache.batik.parser.Parser],[Apache SVG Library],"yes")
1066                 BATIK=$PACKAGE_JAR_FILE
1067
1068                 if test -z "$BATIK"; then
1069                    # Other other distribs
1070                    AC_JAVA_CHECK_PACKAGE([batik],[org.apache.batik.parser.Parser],[Apache SVG Library])
1071                    BATIK=$PACKAGE_JAR_FILE
1072                 fi
1073                 AC_SUBST(BATIK)
1074                 AC_JAVA_CHECK_VERSION_PACKAGE([batik],[import org.apache.batik.Version;],$BATIK,[1.7],[Version.getVersion()])
1075
1076                 # Commons I/O library
1077                 AC_JAVA_CHECK_PACKAGE([commons-io],[org.apache.commons.io.output.CountingOutputStream],[Commons I/O library])
1078                 COMMONS_IO=$PACKAGE_JAR_FILE
1079                 AC_SUBST(COMMONS_IO)
1080
1081                 # XML graphics common
1082                 AC_JAVA_CHECK_PACKAGE([xmlgraphics-commons],[org.apache.xmlgraphics.util.Service],[Commons graphics library])
1083                 XMLGRAPHICS_COMMONS=$PACKAGE_JAR_FILE
1084                 AC_SUBST(XMLGRAPHICS_COMMONS)
1085
1086                 # Avalon Framework (PDF)
1087                 AC_JAVA_CHECK_PACKAGE([avalon-framework],[org.apache.avalon.framework.configuration.ConfigurationException],[Common framework for Java server application])
1088                 AVALON_FRAMEWORK=$PACKAGE_JAR_FILE
1089                 AC_SUBST(AVALON_FRAMEWORK)
1090
1091                 # XML API EXT (conversion of a SVG => PNG)
1092                 AC_JAVA_CHECK_PACKAGE([xml-apis-ext],[org.w3c.dom.svg.SVGDocument],[XML Commons external code],"yes")
1093                 XML_APIS_EXT=$PACKAGE_JAR_FILE
1094
1095                 if test -z "$XML_APIS_EXT"; then
1096                     # Other other distribs (Ex: Fedora/Redhat)
1097                     AC_JAVA_CHECK_PACKAGE([xml-commons-apis-ext],[org.w3c.dom.svg.SVGDocument],[XML Commons external code])
1098                     XML_APIS_EXT=$PACKAGE_JAR_FILE
1099                 fi
1100                 AC_SUBST(XML_APIS_EXT)
1101
1102                 ################ END Mandatory for graphic_export features #####
1103
1104
1105                 # Logging (flexdock dep)
1106                 AC_JAVA_CHECK_PACKAGE([commons-logging],[org.apache.commons.logging.LogFactory],[Apache logging])
1107                 COMMONS_LOGGING=$PACKAGE_JAR_FILE
1108                 AC_SUBST(COMMONS_LOGGING)
1109
1110                 # JLaTeXMath
1111                 AC_JAVA_CHECK_PACKAGE([jlatexmath],[org.scilab.forge.jlatexmath.TeXFormula],[LaTex Rendering])
1112                 JLATEXMATH=$PACKAGE_JAR_FILE
1113                 AC_SUBST(JLATEXMATH)
1114
1115                 AC_JAVA_CHECK_VERSION_PACKAGE([jlatexmath],[import org.scilab.forge.jlatexmath.TeXFormula;],$JLATEXMATH,[1.0.3],[TeXFormula.VERSION])
1116
1117                 # JLaTeXMath FOP
1118                 AC_JAVA_CHECK_PACKAGE([jlatexmath-fop],[org.scilab.forge.jlatexmath.fop.JLaTeXMathObj],[LaTex Rendering - FOP plugin])
1119                 JLATEXMATH_FOP=$PACKAGE_JAR_FILE
1120                 AC_SUBST(JLATEXMATH_FOP)
1121
1122                 AC_DEFINE([WITH_GUI],[],[With the JAVA stuff (GUI, Console, JOGL...)])
1123
1124         fi
1125
1126         # Checkstyle (code checking)
1127         AC_JAVA_CHECK_PACKAGE([checkstyle],[com.puppycrawl.tools.checkstyle.CheckStyleTask],[Checkstyle - code checking],"yes")
1128         CHECKSTYLE=$PACKAGE_JAR_FILE
1129         AC_SUBST(CHECKSTYLE)
1130
1131         # Commons beanutils (dependency of checkstyle)
1132         AC_JAVA_CHECK_PACKAGE([commons-beanutils],[org.apache.commons.beanutils.Converter],[Bean utility],"yes")
1133         COMMONS_BEANUTILS=$PACKAGE_JAR_FILE
1134         AC_SUBST(COMMONS_BEANUTILS)
1135
1136         # antlr (dependency of checkstyle)
1137         AC_JAVA_CHECK_PACKAGE([antlr],[antlr.TokenStreamException],[language tool for constructing recognizers],"yes")
1138         ANTLR=$PACKAGE_JAR_FILE
1139         AC_SUBST(ANTLR)
1140
1141         # Junit 4 (java unitary test)
1142         AC_JAVA_CHECK_PACKAGE([junit4],[org.junit.Assert],[Junit4 - Unit tests],"yes")
1143         if test -z "$PACKAGE_JAR_FILE"; then
1144                 AC_JAVA_CHECK_PACKAGE([junit],[org.junit.Assert],[Junit4 -
1145 Unit tests],"yes")
1146         fi
1147         JUNIT4=$PACKAGE_JAR_FILE
1148         AC_SUBST(JUNIT4)
1149         
1150         # hamcrest (junit4 dependency)
1151         AC_JAVA_CHECK_PACKAGE([hamcrest-all],[org.hamcrest.core.IsNull],[Hamcrest- library matchers],"yes")
1152         if test -z "$PACKAGE_JAR_FILE"; then
1153             AC_JAVA_CHECK_PACKAGE([hamcrest/all],[org.hamcrest.core.IsNull],[Hamcrest- library matchers],"yes")
1154         fi
1155         HAMCREST=$PACKAGE_JAR_FILE
1156         AC_SUBST(HAMCREST)
1157
1158         # Cobertura (java code coverage)
1159         AC_JAVA_CHECK_PACKAGE([cobertura],[net.sourceforge.cobertura.merge.Main],[cobertura - Java code coverage],"yes")
1160         COBERTURA=$PACKAGE_JAR_FILE
1161         AC_SUBST(COBERTURA)
1162
1163         # ASM (a dependency of Cobertura)
1164         AC_JAVA_CHECK_PACKAGE([asm3],[org.objectweb.asm.Type],[Java bytecode manipulation (dep of cobertura)],"yes")
1165         if test -z "$ASM3"; then
1166                 AC_JAVA_CHECK_PACKAGE([asm],[org.objectweb.asm.Type],[Java bytecode manipulation (dep of cobertura)],"yes")
1167         fi
1168         ASM3=$PACKAGE_JAR_FILE
1169         AC_SUBST(ASM3)
1170
1171         AC_JAVA_CHECK_PACKAGE([ecj],[org.eclipse.jdt.core.compiler.batch.BatchCompiler],[Eclipse Java compiler],"yes")
1172         ECJ=$PACKAGE_JAR_FILE
1173         if test -z "$ECJ"; then
1174            ECJ='$SCILAB/thirdparty/ecj.jar'
1175         fi
1176         AC_SUBST(ECJ)
1177
1178     else
1179         AC_MSG_WARN([Sun javac not found: I will not build the java interface])
1180         if test "$ac_java_jvm_name" != ""; then
1181             AC_MSG_WARN([We do not support $ac_java_jvm_name yet])
1182         fi
1183     fi
1184     AC_SUBST(JAVA_JNI_INCLUDE)
1185     AC_SUBST(JAVA_JNI_LIBS)
1186     AC_SUBST(JAVA_HOME)
1187
1188
1189     if test "$enable_debug_java" = yes; then
1190         JAVAC_DEBUG="on"
1191     else
1192         JAVAC_DEBUG="off"
1193     fi
1194     AC_SUBST(JAVAC_DEBUG)
1195
1196     if test "$enable_build_swig" != no -a "$enable_build_swig" != ""; then
1197         SWIG_PROG()
1198         SWIG_ENABLE_JAVA()
1199         SWIG_ENABLE_SCILAB()
1200         AC_SUBST(SWIG_BIN)
1201         AC_SUBST(SWIG_JAVA)
1202         AC_SUBST(SWIG_SCILAB)
1203
1204     fi
1205
1206     # Giws is the equivalent of Swig developed by the Scilab team
1207     # in order to provide a wrapper to Java from C/C++
1208     if test "$enable_build_giws" != no -a "$enable_build_giws" != ""; then
1209         AC_GIWS([1.3.0])
1210     fi
1211
1212     fi # "$with_jdk" != no;
1213 fi
1214
1215 JAVA_ENABLE=yes
1216 if test -z "$JAVAC"; then
1217     JAVA_ENABLE=no
1218 fi
1219
1220 AC_SUBST(JAVA_ENABLE)
1221
1222 # Xcos is not checked here because gui=no disables it
1223 AM_CONDITIONAL(NEED_JAVA, [test "$with_jdk" != no -a \( "$with_javasci" != no -o "$with_gui" != no -o "$enable_build_help" != no \)])
1224 AM_CONDITIONAL(GUI, [test "$with_jdk" != no -a "$with_gui" != no])
1225 AM_CONDITIONAL(JAVASCI, [test "$with_jdk" != no -a "$with_javasci" != no])
1226 AM_CONDITIONAL(SWIG, [test "$with_jdk" != no -a "$enable_build_swig" != no -a "$enable_build_swig" != ""])
1227 AM_CONDITIONAL(GIWS, [test "$with_jdk" != no -a "$enable_build_giws" != no -a "$enable_build_giws" != ""])
1228
1229 ##############################################################
1230 ## GUI module
1231 ##############################################################
1232
1233 GUI_ENABLE=no
1234
1235 if test "$JAVA_ENABLE" != no; then
1236    GUI_ENABLE=yes
1237 fi
1238
1239 if test "$with_gui" != no; then
1240    GUI_ENABLE=yes
1241 fi
1242
1243 AC_SUBST(GUI_ENABLE)
1244
1245 ##############################################################
1246 ## test for functions in standard C library and C math library
1247 ##############################################################
1248
1249 # Provided by unistd.h
1250 AC_CHECK_FUNCS([sleep] [usleep] [dup2] [getcwd] [getpagesize] [getpass])
1251 AC_CHECK_FUNCS([rmdir])
1252
1253 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])])
1254
1255 # Provided by <regex.h>
1256 AC_CHECK_FUNCS([regcomp])
1257
1258 # Provided by stdlib.h
1259 AC_CHECK_FUNCS([atexit] [putenv] [setenv])
1260
1261 # Provided by String.h
1262 AC_CHECK_FUNCS([bzero] [memmove] [memset] [strcasecmp] [strerror] [strchr] [strdup] [strpbrk] [strrchr] [strstr] [strtol])
1263
1264 # Provided by select.h
1265 AC_CHECK_FUNCS([select])
1266
1267 # Provided by pwd.h
1268 AC_CHECK_FUNCS([endpwent])
1269
1270 # Provided by netdb.h
1271 AC_CHECK_FUNCS([gethostbyaddr] [gethostbyname] [gethostname])
1272
1273 # Provided by time.h
1274 AC_CHECK_FUNCS([gettimeofday])
1275
1276 # Provided by ctype.h
1277 AC_CHECK_FUNCS([isascii])
1278
1279 # Provided by wctype.h
1280 AC_CHECK_FUNCS([iswprint])
1281
1282 # Provided by types.h
1283 AC_CHECK_FUNCS([mkdir])
1284
1285 # Provided by mman.h
1286 AC_CHECK_FUNCS([munmap])
1287
1288 # Provided by signal.h
1289 AC_CHECK_FUNCS([strsignal])
1290
1291
1292 # Check of the libm (lib math). Macro provided by libtool.
1293 save_LDFLAGS="$LDFLAGS"
1294 LT_LIB_M()
1295
1296 # Provided by math.h
1297
1298 LDFLAGS="$LDFLAGS $LIBM"
1299 AC_CHECK_FUNCS([pow] [sqrt] [finite] [floor] [exp10] [erf] [erfc] [isnan])
1300
1301 ### If isinf exists or not (used to not be the case under Solaris)
1302 ### See bug #4164
1303 AC_DEFINE([HAVE_ISINF],[1],[Have isinf function or macro equivalent])
1304 AC_CHECK_FUNC([isinf],,[
1305         AC_DEFINE([isinf(x)],[(!finite(x) && x==x)],[Provide a macro to do isinf])
1306 ])
1307 LIBS="$LIBS $LIBM"
1308 LDFLAGS="$save_LDFLAGS"
1309
1310 # Provided by regex.h
1311 AC_CHECK_FUNCS([re_comp])
1312
1313 # Provided by socket.h
1314 AC_CHECK_FUNCS([socket])
1315
1316 # Provided by utsname.h
1317 AC_CHECK_FUNCS([uname])
1318
1319 # Provided by wtloop.c
1320 AC_CHECK_FUNCS([setlocale])
1321
1322 # Function memcmp used in modules/fileio/src/c/xls.c
1323 AC_FUNC_MEMCMP
1324
1325 # function stat used in modules/core/src/c/link_std.c
1326 AC_FUNC_STAT
1327
1328 # function strtod used in modules/core/src/c/getval.c
1329 AC_FUNC_STRTOD
1330
1331 ########################
1332 ## test for header files
1333 ########################
1334
1335 AC_CHECK_HEADERS([limits.h values.h])
1336
1337 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])
1338
1339 # check header dirent
1340 AC_HEADER_DIRENT
1341
1342 # static struct timeval defined or not | used in modules/core/src/c/timer.c
1343 AC_HEADER_TIME
1344
1345 # check if the specific header is available or not | used in modules/core/src/c/link_SYSV.c
1346 AC_HEADER_SYS_WAIT
1347
1348
1349 #######################
1350 ## Test for structures ##
1351 #######################
1352 AC_CHECK_MEMBERS([struct stat.st_blksize])
1353 AC_CHECK_MEMBERS([struct stat.st_rdev])
1354
1355
1356 #######################
1357 ## MISC Test
1358 #######################
1359
1360 # gettext.  See http://www.gnu.org/software/hello/manual/gettext/AM_005fGNU_005fGETTEXT.html
1361 AM_GNU_GETTEXT([external])
1362 AM_GNU_GETTEXT_VERSION([0.16])
1363
1364 # function closedir used in modules/metanet/src/c/files.c
1365 AC_FUNC_CLOSEDIR_VOID
1366
1367 # Signals used in modules/core/src/c/realmain.c
1368 AC_TYPE_SIGNAL
1369
1370 # struct tm used in modules/core/src/c/history.c
1371 AC_STRUCT_TM
1372
1373 # st_blocks in the struct in modules/io/sci_gateway/c/intfilestat.c
1374 AC_STRUCT_ST_BLOCKS
1375
1376
1377 ##################
1378 ## termcap library
1379 ##################
1380
1381 # some systems may have a system curses implementation as well as ncurses
1382 # installed.  We need to be consistent in making sure we get the correct
1383 # library to go with the correct header and also provide a way for the user
1384 # to have some control over which is picked when both are available.
1385 #
1386 # For now, just check for -lcurses and then -lncurses.  The user control
1387 # may need to be revisited
1388
1389 TERMCAP_LIB=no
1390
1391 # Various observations:
1392 #
1393 #  ncurses
1394 #    - installs ncurses.h and possibly curses.h as a link to ncurses.h
1395 #    - installs -lncurses.
1396 #    - need to include term.h for tgetent() but tgetent() is in -lncurses.a
1397 #
1398 # curses as found in NetBSD-4 and NetBSD-5
1399 #    - installs curses.h
1400 #    - need to include termcap.h and link with -ltermcap for tgetent()
1401 #
1402
1403 AC_CHECK_LIB([curses],[main])
1404 if test $ac_cv_lib_curses_main = no ; then
1405     AC_CHECK_LIB([ncurses],[main])
1406 fi
1407
1408 # make sure we have what we need for tgetent
1409 AC_SEARCH_LIBS([tgetent],[termcap])
1410
1411 AC_CHECK_HEADERS([ncurses.h curses.h])
1412
1413 if test "x$ac_cv_lib_curses_main" = "xyes" -o "x$ac_cv_lib_ncurses_main" = "xyes" ; then
1414   AC_DEFINE([HAVE_TERMCAP],[],[Have Term Cap])
1415 else
1416  AC_MSG_ERROR([No termcap library detected. Please install ncurses dev library (or termcap library)])
1417 fi
1418
1419 ##################
1420 ## other libraries
1421 ##################
1422
1423 AC_CHECK_LIB(dl, dlopen)
1424
1425 AC_SEARCH_LIBS([pthread_join],[pthread])
1426
1427 #################
1428 ## FFTW
1429 #################
1430
1431 AC_ARG_WITH(fftw,
1432     AS_HELP_STRING([--without-fftw],[Disable the interface to the FFTW 3 library]))
1433
1434 FFTW_ENABLE=no
1435 if test "$with_fftw" != no; then
1436    AC_FFTW()
1437    FFTW_ENABLE=yes
1438 fi
1439
1440 AC_SUBST(FFTW_ENABLE)
1441 AM_CONDITIONAL(FFTW, test "$with_fftw" != no)
1442
1443
1444 #################
1445 ## EIGEN
1446 #################
1447
1448 AC_EIGEN()
1449
1450
1451 #################
1452 ## MPI
1453 #################
1454
1455 # Disable by default the build of MPI:
1456 # * It is hard to package
1457 # * People are administrating cluster know about rebuilding packages
1458 # * They use their own MPI library
1459 AC_ARG_WITH(mpi,
1460     AS_HELP_STRING([--with-mpi],[compile with MPI library]))
1461
1462 MPI_ENABLE=no
1463 if test "$with_mpi" == yes; then
1464    AC_OPENMPI()
1465    # We will have to detect other implementation of OpenMPI
1466    MPI_ENABLE=yes
1467 fi
1468 AC_SUBST(MPI_ENABLE)
1469
1470 AM_CONDITIONAL(MPI, test "$with_mpi" == yes)
1471
1472 #################
1473 ## OpenMP
1474 #################
1475
1476 AC_ARG_WITH(openmp,
1477     AS_HELP_STRING([--without-openmp],[Disable the usage of OpenMP (parallelization of some algoritms)]))
1478
1479 OPENMP_ENABLE=no
1480 if test "$with_openmp" != no; then
1481 #   AC_OPENMP
1482     OPENMP_CFLAGS="-fopenmp"
1483     OPENMP_CXXFLAGS="-fopenmp"
1484     OPENMP_LIBS="-lgomp" 
1485
1486     AC_CHECK_HEADERS([omp.h], [],
1487      [AC_MSG_ERROR([Could not find omp.h])])
1488
1489     OPENMP_ENABLE=yes
1490 fi
1491 AC_SUBST(OPENMP_ENABLE)
1492 AC_SUBST(OPENMP_CFLAGS)
1493 AC_SUBST(OPENMP_CXXFLAGS)
1494 AC_SUBST(OPENMP_LIBS)
1495
1496 AM_CONDITIONAL(OPENMP, test "$with_openmp" != no)
1497
1498
1499 #######################
1500 ## Test for libxml
1501 #######################
1502
1503 AC_LIBXML2()
1504
1505 #######################
1506 ## Test for gettext
1507 #######################
1508
1509 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"
1510 ALL_LINGUAS_DOC="en_US fr_FR pt_BR ja_JP ru_RU"
1511
1512 AC_ARG_ENABLE(build-localization,
1513         AS_HELP_STRING([--disable-build-localization],[Disable the localization build])
1514         )
1515 BUILD_LOCALIZATION_ENABLE=no
1516
1517 if test "$enable_build_localization" != no; then
1518
1519    AC_SUBST(ALL_LINGUAS)
1520    AC_SUBST(ALL_LINGUAS_DOC)
1521    AC_CHECK_FUNCS([bind_textdomain_codeset])
1522
1523    AC_PATH_PROG(MSGCAT, msgcat, no)
1524 #   AC_PATH_PROG(MSGFMT, msgfmt, no)
1525 #   AC_PATH_PROG(XGETTEXT, xgettext, no)
1526
1527    if test x$MSGFMT = xno; then
1528       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 ])
1529       fi
1530     if test x$MSGCAT = xno; then
1531       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 ])
1532     fi
1533     BUILD_LOCALIZATION_ENABLE=yes
1534 fi
1535 AM_CONDITIONAL(GENERATE_LOCALIZATION_FILES, test "$BUILD_LOCALIZATION_ENABLE" = yes)
1536
1537 #######################
1538 ## Test for blas/Atlas and lapack
1539 #######################
1540 AC_MSG_CHECKING([if BLAS, ATLAS or MKL is available])
1541 echo ""
1542 ACX_BLAS(
1543         [AC_MSG_RESULT([$BLAS_TYPE found])]
1544         ,
1545         AC_MSG_ERROR([Impossible to find a BLAS compatible library (see BLAS or ATLAS).])
1546         )
1547
1548 AC_MSG_CHECKING([if LAPACK is available])
1549 echo ""
1550 ACX_LAPACK(
1551         [AC_MSG_RESULT([$LAPACK_TYPE found])],
1552         AC_MSG_ERROR([Impossible to find the LAPACK library.])
1553         )
1554
1555
1556 AC_ARG_WITH(arpack-ng,
1557     AS_HELP_STRING([--without-arpack-ng],[Disable the interface to ARPACK-NG]))
1558
1559 ARPACK_NG=no
1560 if test "$with_arpack_ng" != no; then
1561    ARPACK_NG=yes
1562    AC_MSG_CHECKING([if ARPACK-NG is available])
1563 echo ""
1564 ACX_ARPACK(
1565         [AC_MSG_RESULT([ARPACK-NG library found])],
1566         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/ ).])
1567         )
1568
1569 CHECK_ARPACK_OK(
1570 [AC_MSG_RESULT([Working ARPACK-NG library found (probably ARPACK-NG or a patched version of ARPACK)])],
1571 [AC_MSG_ERROR([ARPACK library found, but seems not to work properly. Please make sure you are using arpack-ng])
1572 ])
1573 else
1574    AC_MSG_CHECKING([Skip ARPACK-NG detection])
1575 fi
1576
1577 AM_CONDITIONAL(ARPACK_NG, test "$ARPACK_NG" != "no")
1578
1579
1580 #################
1581 ## UMFPACK
1582 #################
1583
1584 AC_ARG_WITH(umfpack,
1585     AS_HELP_STRING([--without-umfpack],[Disable the interface to the UMFPACK library]))
1586
1587 UMFPACK_ENABLE=no
1588 if test "$with_umfpack" != no; then
1589    AC_UMFPACK([$BLAS_LIBS])
1590    UMFPACK_ENABLE=yes
1591 fi
1592
1593 AC_SUBST(UMFPACK_ENABLE)
1594 AM_CONDITIONAL(UMFPACK, test "$with_umfpack" != no)
1595
1596 #######################
1597 ## Test for PCRE
1598 #######################
1599
1600 AC_PCRE()
1601
1602 #######################
1603 ## Test for CURL
1604 #######################
1605
1606 AC_CURL()
1607
1608 #################
1609 ## Tcl/Tk library
1610 #################
1611
1612 WITH_TKSCI=no
1613 if test "$with_tk" != no; then
1614    if test "$MACOSX" = "1"; then
1615       AC_MSG_ERROR([Due to technical constraints, Tcl/Tk must be disabled under Mac OS X (--without-tk)])
1616    fi
1617
1618     # check user arguments
1619     USER_TCL_LIB_PATH=""
1620     USER_TCL_INC_PATH=""
1621     AC_ARG_WITH(tcl-library,
1622         AS_HELP_STRING([--with-tcl-library=DIR],[Set the path to the TCL library]),
1623         [  USER_TCL_LIB_PATH=$withval
1624     ])
1625     AC_ARG_WITH(tcl-include,
1626         AS_HELP_STRING([--with-tcl-include=DIR],[Set the path to the TCL headers]),
1627         [  USER_TCL_INC_PATH=$withval
1628     ])
1629
1630     USER_TK_LIB_PATH=$USER_TCL_LIB_PATH
1631     USER_TK_INC_PATH=$USER_TCL_INC_PATH
1632
1633     AC_ARG_WITH(tk-library,
1634         AS_HELP_STRING([--with-tk-library=DIR],[Set the path to the TK library]),
1635         [  USER_TK_LIB_PATH=$withval
1636     ])
1637
1638     AC_ARG_WITH(tk-include,
1639         AS_HELP_STRING([--with-tk-include=DIR],[Set the path to the TK headers]),
1640         [  USER_TK_INC_PATH=$withval
1641     ])
1642
1643 ###########################
1644 ########## X11 checks
1645 ###########################
1646         ## This check is mandatory since tk needs Xlib headers and libs
1647         AC_PATH_XTRA
1648         ##
1649
1650     saved_cflags="$CFLAGS"
1651     saved_ldflags="$LDFLAGS"
1652     saved_cppflags="$CXXFLAGS"
1653
1654     AC_CHECK_LIB([dl], [main], [TCLTK_LIBS=" -ldl"])
1655     AC_CHECK_TCLTK
1656
1657     # set variables
1658     if test "$WITH_TKSCI" = yes; then
1659         AC_DEFINE([WITH_TK], [], [With TK])
1660     else
1661         AC_MSG_ERROR([TCL/TK not found. Use --without-tk or specify the librairies and include paths manually])
1662     fi
1663
1664     AC_SUBST(TCLTK_LIBS)
1665     AC_SUBST(TCL_INC_PATH)
1666     AC_SUBST(TK_INC_PATH)
1667
1668 fi
1669 AC_SUBST(WITH_TKSCI)
1670 AM_CONDITIONAL(TCLTK, test "$WITH_TKSCI" = yes)
1671
1672 #################
1673 ## MATIO LIBRARY (MAT File I/O Library)
1674 #################
1675
1676
1677 AC_ARG_WITH(matio,
1678     AS_HELP_STRING([--without-matio],[Disable the interface to Matio (MAT File I/O library)]))
1679
1680 AC_ARG_WITH(matio_include,
1681         AS_HELP_STRING([--with-matio-include=DIR],[Set the path to the MATIO headers]),
1682         [with_matio_include="-I$withval"], [])
1683
1684 AC_ARG_WITH(matio_library,
1685         AS_HELP_STRING([--with-matio-library=DIR],[Set the path to the MATIO libraries]),
1686         [with_matio_library="-L$withval"], [])
1687
1688 MATIO_ENABLE=no
1689
1690 if test "$with_matio" != no; then
1691    if test -n "$with_matio_include" -o -n "$with_matio_library" ; then
1692       MATIO_CFLAGS="$with_matio_include"
1693       MATIO_LIBS="$with_matio_library -lm -lz -lmatio -lhdf5"
1694    else
1695       if $WITH_DEVTOOLS; then # Scilab thirdparties
1696          MATIO_CFLAGS="-I$DEVTOOLS_INCDIR"
1697          MATIO_LIBS="-L$DEVTOOLS_LIBDIR -lm -lz -lmatio -lhdf5"
1698       else
1699          PKG_CHECK_MODULES(MATIO, [matio >= 1.5.0])
1700       fi
1701    fi
1702
1703    save_CFLAGS="$CFLAGS"
1704    save_LIBS="$LIBS"
1705
1706    CFLAGS="$CFLAGS $MATIO_CFLAGS"
1707    LIBS="$LIBS $MATIO_LIBS"
1708
1709    AC_CHECK_HEADERS([matio.h], [],
1710      [AC_MSG_ERROR([Invalid MATIO_CFLAGS returned by pkg-config. Try to define MATIO_CFLAGS.])])
1711    AC_CHECK_LIB([matio], [Mat_Open], [],
1712      [AC_MSG_ERROR([Invalid MATIO_LIBS returned by pkg-config. Try to define MATIO_LIBS.])])
1713
1714    LIBS="$save_LIBS"
1715    CFLAGS="$save_CFLAGS"
1716
1717    AC_DEFINE([WITH_MATIO], [], [With the MATIO library])
1718    MATIO_ENABLE=yes
1719
1720    AC_SUBST(MATIO_LIBS)
1721    AC_SUBST(MATIO_CFLAGS)
1722 fi
1723
1724
1725 AC_SUBST(MATIO_ENABLE)
1726 AM_CONDITIONAL(MATIO, test "$with_matio" != no)
1727
1728 #############################
1729 ## Documentation management #
1730 #############################
1731
1732 HELP_ENABLE=yes
1733
1734 AC_ARG_ENABLE(build-help,
1735         AS_HELP_STRING([--disable-build-help],[Disable the help build])
1736         )
1737
1738 if test "$enable_build_help" != no; then
1739     AC_DOCBOOK()
1740 else
1741     HELP_ENABLE=no
1742 fi
1743
1744 if test "$JAVA_ENABLE" = no; then
1745     HELP_ENABLE=no
1746 fi
1747
1748 AC_SUBST(HELP_ENABLE)
1749
1750 AM_CONDITIONAL(BUILD_HELP, test $HELP_ENABLE = yes)
1751
1752 ## Install XML help files ###
1753
1754 AC_ARG_WITH(install-help-xml,
1755         AS_HELP_STRING([--with-install-help-xml],[make install will install XML files])
1756         )
1757 HELP_INSTALL_ENABLE=no
1758 if test "$with_install_help_xml" != no -a "$with_install_help_xml" != ""; then
1759    HELP_INSTALL_ENABLE=yes
1760 fi
1761 AM_CONDITIONAL(INSTALL_HELP_XML, test "$HELP_INSTALL_ENABLE" != "")
1762
1763 ## Doxygen help generation
1764 AC_ARG_ENABLE(build-doxygen,
1765     AS_HELP_STRING([--enable-build-doxygen],[Generate doxygen C/C++ documentation]))
1766
1767 DOXYGEN_ENABLE=yes
1768 if test "$enable_build_doxygen" != no -a "$enable_build_doxygen" != ""; then
1769     AC_DOXYGEN()
1770 else
1771     DOXYGEN_ENABLE=no
1772 fi
1773 AM_CONDITIONAL(DOXYGEN, test $DOXYGEN_ENABLE = yes)
1774
1775 ## Valgrind specific code
1776 PKG_CHECK_EXISTS([valgrind], [PKG_CHECK_MODULES([VALGRIND], [valgrind], [AC_DEFINE([VALGRIND_ENABLE], [], [Enable valgrind specific tweaks])])], [])
1777
1778 ##############################################################
1779 ## Javasci module
1780 ##############################################################
1781
1782 JAVASCI_ENABLE=yes
1783
1784 if test "$JAVA_ENABLE" = no -o "$JAVASCI" = no; then
1785    JAVASCI_ENABLE=no
1786 fi
1787
1788 AC_SUBST(JAVASCI_ENABLE)
1789
1790
1791 ##############################################################
1792 ## Enable test at compilation time
1793 ##############################################################
1794
1795 COMPILATION_TESTS=no
1796 if test "$enable_compilation_tests" != no -a "$enable_compilation_tests" != ""; then
1797    COMPILATION_TESTS=yes
1798 fi
1799
1800 if test COMPILATION_TESTS=yes -a "$JUNIT4" == ""; then
1801    AC_MSG_WARN([--enable-compilation-tests deactivated: Could not find Junit4"])
1802    COMPILATION_TESTS=no
1803 fi
1804
1805 AM_CONDITIONAL(COMPILATION_TESTS, test "$COMPILATION_TESTS" != "no")
1806
1807 ##############################################################
1808 ## Enable the global force link
1809 ##############################################################
1810
1811 AC_ARG_ENABLE(force-full-link,
1812     AS_HELP_STRING([--enable-force-full-link],[Forces the explicit link between libscilab and some "on-the-fly" loaded libraries. NOT USE IN PRODUCTION.]))
1813
1814 FORCE_FULL_LINK="no"
1815 if test "$enable_force_full_link" == "yes"; then
1816     FORCE_FULL_LINK="yes"
1817 fi
1818
1819 AM_CONDITIONAL(FORCE_LINK, test "$FORCE_FULL_LINK" == "yes")
1820
1821 ##############################################################
1822 ## demo_tools module
1823 ##############################################################
1824
1825 DEMOTOOLS_ENABLE=yes
1826
1827 if test "$GUI_ENABLE" = no; then
1828    DEMOTOOLS_ENABLE=no
1829 fi
1830
1831 AC_SUBST(DEMOTOOLS_ENABLE)
1832
1833 ##############################################################
1834 ## graphics/renderer/graphic_export module
1835 ##############################################################
1836
1837 GRAPHICS_ENABLE=yes
1838
1839 if test "$GUI_ENABLE" = no; then
1840    GRAPHICS_ENABLE=no
1841 fi
1842
1843 AC_SUBST(GRAPHICS_ENABLE)
1844
1845 #########################
1846 ## libtool
1847 #########################
1848
1849 LT_PREREQ([2.2.7])
1850 LT_INIT([shared dlopen disable-static])
1851
1852 # Avoid to link all the dep from others libraries (*.la included by LIBADD)
1853 link_all_deplibs=no
1854
1855 # Check to see if building shared libraries
1856 libtool_build_shared_libs=no
1857 if test "$enable_shared" = "yes"; then
1858   libtool_build_shared_libs=yes
1859 fi
1860
1861 # Check to see if building static libraries
1862 libtool_build_static_libs=no
1863 if test "$enable_static" = "yes"; then
1864   libtool_build_static_libs=yes
1865 fi
1866
1867 # AM_CONDITIONAL(ENABLE_STATIC, test "$libtool_build_static_libs" = yes)
1868 # Fake to disable the static build
1869 AM_CONDITIONAL(ENABLE_STATIC, test "$libtool_build_static_libs" = xxxx)
1870
1871 AC_C_CONST()
1872 AC_C_INLINE()
1873
1874 AC_BACKTRACE()
1875
1876 ##########
1877 ##### Code quality
1878 ##########
1879 AC_PATH_PROG(SPLINT, splint, no)
1880
1881 ##########
1882 ##### Detect ccache and use it by default if available
1883 ##########
1884
1885 AC_ARG_ENABLE(ccache,
1886         AS_HELP_STRING([--disable-ccache],[Disable the use of ccache])
1887         )
1888 AC_PATH_PROG(CCACHE, ccache)
1889 if test x"$CCACHE" != x -a "$enable_ccache" != no; then
1890   CC="$CCACHE $CC"
1891   CXX="$CCACHE $CXX"
1892 fi
1893
1894 #######################
1895 ###### Creation of the header file (machine.h)
1896 #######################
1897
1898 AC_DEFINE_UNQUOTED([PATH_SEPARATOR], ["$PATH_SEPARATOR"],
1899 [The default path separator character.])
1900
1901 AH_TOP([#ifndef MACHINE_H
1902 #define MACHINE_H
1903 /* This file defines global element configuration of the build host */
1904 ])
1905
1906 AH_BOTTOM([
1907
1908 #ifdef DIR_SEPARATOR
1909        #undef DIR_SEPARATOR
1910 #endif
1911 #define DIR_SEPARATOR "/"
1912
1913 #ifdef DIR_SEPARATORW
1914            #undef DIR_SEPARATORW
1915 #endif
1916 #define DIR_SEPARATORW L"/"
1917
1918 #define bsiz 4096
1919
1920 #endif /* MACHINE_H  */
1921 ])
1922
1923 # Define the standard extension of a dynamic library
1924 AC_DEFINE_UNQUOTED([SHARED_LIB_EXT],["$shrext_cmds"],[Extension of a shared library])
1925 AC_DEFINE_UNQUOTED([SHARED_LIB_EXTW],[L"$shrext_cmds"],[Extension of a shared library ( wide string )])
1926
1927
1928
1929 #################
1930 ## Update the years in the various part of the code.
1931 #################
1932
1933 if test ! -f modules/core/src/cpp/banner.cpp; then
1934    AC_MSG_ERROR([Could not find the Scilab banner file.])
1935 fi
1936
1937 CURRENT_YEAR=`date "+%Y"`
1938 DETECTED_YEAR=`grep "Copyright (c) 2011-" modules/core/src/cpp/banner.cpp|sed -e "s/.*Copyright (c) 2011-\([[0-9]]*\).*/\1/g"`
1939
1940 if test "$CURRENT_YEAR" != "$DETECTED_YEAR"; then
1941    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
1942    sed -i -e "s| 2011-$DETECTED_YEAR Scilab Enterprises| 2011-$CURRENT_YEAR Scilab Enterprises|g" etc/Info.plist.in
1943    sed -i -e "s|VALUE \"LegalCopyright\", \"Copyright (C) $DETECTED_YEAR|VALUE \"LegalCopyright\", \"Copyright (C) $CURRENT_YEAR|" $(find . -iname '*.rc')
1944    AC_MSG_WARN([New year ($CURRENT_YEAR) detected. Copyright files updated. Please commit them ASAP.])
1945 fi
1946
1947
1948 #########
1949 ## Make sure that the libstdc++ libgcc and libgfortran can be compiled as 
1950 ## static if requested
1951 #########
1952 AC_CHECK_STDCPP_STATIC()
1953
1954 #################
1955 ## stop on warning
1956 #################
1957
1958 # Stop to compile scilab when a warning is found ...
1959 # This stuff is at the end of the configure.ac because it causes some
1960 # problem with AC_COMPILE (the -Werror is added to the test)
1961 #
1962 if test "$enable_stop_on_warning" = yes; then
1963     WARNING_CFLAGS="-Werror=implicit-function-declaration -Werror=declaration-after-statement "
1964     WARNING_CXXFLAGS="-Werror=implicit-function-declaration "
1965 fi
1966
1967 # SCI_*FLAGS contains all defaults values detected on configure
1968 SCI_CFLAGS=$(echo                                             \
1969              $LARGEFILE_CFLAGS                                \
1970              $CODECOVERAGE_CFLAGS                             \
1971              $DEBUG_CFLAGS                                    \
1972              $ARCH_CFLAGS                                     \
1973              $COMPILER_CFLAGS                                 \
1974              $SCILIBS_CFLAGS                                  \
1975              $SSE_CFLAGS                                      \
1976              $BACKTRACE_CFLAGS                                \
1977              $WARNING_CFLAGS                                  )
1978 SCI_CXXFLAGS=$(echo                                           \
1979                $STDCXX_11_CXXFLAGS                            \
1980                $LARGEFILE_CXXFLAGS                            \
1981                $CODECOVERAGE_CXXFLAGS                         \
1982                $DEBUG_CXXFLAGS                                \
1983                $ARCH_CXXFLAGS                                 \
1984                $COMPILER_CXXFLAGS                             \
1985                $SCILIBS_CXXFLAGS                              \
1986                $SSE_CXXFLAGS                                  \
1987                $BACKTRACE_CXXFLAGS                            \
1988                $WARNING_CXXFLAGS                              )
1989 SCI_FFLAGS=$(echo                                             \
1990              $LARGEFILE_FFLAGS                                \
1991              $CODECOVERAGE_FFLAGS                             \
1992              $DEBUG_FFLAGS                                    \
1993              $ARCH_FFLAGS                                     \
1994              $COMPILER_FFLAGS                                 \
1995              $SCILIBS_FFLAGS                                  \
1996              $SSE_FFLAGS                                      \
1997              $BACKTRACE_FFLAGS                                \
1998              $WARNING_FFLAGS                                  )
1999 SCI_LDFLAGS=$(echo                                            \
2000               $LARGEFILE_LDFLAGS                              \
2001               $CODECOVERAGE_LDFLAGS                           \
2002               $DEBUG_LDFLAGS                                  \
2003               $ARCH_LDFLAGS                                   \
2004               $COMPILER_LDFLAGS                               \
2005               $SCILIBS_LDFLAGS                                \
2006               $SSE_LDFLAGS                                    \
2007               $BACKTRACE_LDFLAGS                              \
2008               $WARNING_LDFLAGS                                )
2009 AC_SUBST(SCI_CFLAGS)
2010 AC_SUBST(SCI_CXXFLAGS)
2011 AC_SUBST(SCI_FFLAGS)
2012 AC_SUBST(SCI_LDFLAGS)
2013
2014 AC_CONFIG_FILES([
2015 contrib/Makefile
2016 desktop/images/icons/Makefile
2017 desktop/Makefile
2018 modules/threads/Makefile
2019 modules/ast/Makefile
2020 modules/functions_manager/Makefile
2021 modules/helptools/Makefile
2022 modules/data_structures/Makefile
2023 modules/differential_equations/Makefile
2024 modules/optimization/Makefile
2025 modules/elementary_functions/Makefile
2026 modules/special_functions/Makefile
2027 modules/io/Makefile
2028 modules/completion/Makefile
2029 modules/history_manager/Makefile
2030 modules/jvm/Makefile
2031 modules/commons/Makefile
2032 modules/sound/Makefile
2033 modules/statistics/Makefile
2034 modules/mexlib/Makefile
2035 modules/sparse/Makefile
2036 modules/linear_algebra/Makefile
2037 modules/polynomials/Makefile
2038 modules/signal_processing/Makefile
2039 modules/arnoldi/Makefile
2040 modules/interpolation/Makefile
2041 modules/localization/Makefile
2042 modules/cacsd/Makefile
2043 modules/boolean/Makefile
2044 modules/integer/Makefile
2045 modules/fileio/Makefile
2046 modules/spreadsheet/Makefile
2047 modules/string/Makefile
2048 modules/time/Makefile
2049 modules/graphics/Makefile
2050 modules/graphic_export/Makefile
2051 modules/graphic_objects/Makefile
2052 modules/renderer/Makefile
2053 modules/action_binding/Makefile
2054 modules/gui/Makefile
2055 modules/mpi/Makefile
2056 modules/randlib/Makefile
2057 modules/tclsci/Makefile
2058 modules/windows_tools/Makefile
2059 modules/core/Makefile
2060 modules/prebuildjava/Makefile
2061 modules/api_scilab/Makefile
2062 modules/call_scilab/Makefile
2063 modules/types/Makefile
2064 modules/hdf5/Makefile
2065 modules/fftw/Makefile
2066 modules/umfpack/Makefile
2067 modules/scicos/Makefile
2068 modules/scicos_blocks/Makefile
2069 modules/functions/Makefile
2070 modules/dynamic_link/Makefile
2071 modules/overloading/Makefile
2072 modules/javasci/Makefile
2073 modules/m2sci/Makefile
2074 modules/compatibility_functions/Makefile
2075 modules/development_tools/Makefile
2076 modules/output_stream/Makefile
2077 modules/console/Makefile
2078 modules/demo_tools/Makefile
2079 modules/genetic_algorithms/Makefile
2080 modules/simulated_annealing/Makefile
2081 modules/parameters/Makefile
2082 modules/matio/Makefile
2083 modules/atoms/Makefile
2084 modules/xcos/Makefile
2085 modules/scinotes/Makefile
2086 modules/ui_data/Makefile
2087 modules/graph/Makefile
2088 modules/parallel/Makefile
2089 modules/modules_manager/Makefile
2090 modules/history_browser/Makefile
2091 modules/preferences/Makefile
2092 modules/xml/Makefile
2093 modules/external_objects/Makefile
2094 modules/external_objects_java/Makefile
2095 modules/slint/Makefile
2096 modules/coverage/Makefile
2097 modules/Makefile
2098 Makefile
2099 scilab.pc
2100 etc/modules.xml
2101 etc/classpath.xml
2102 etc/Info.plist
2103 etc/logging.properties
2104 scilab.properties
2105 scilab-lib.properties
2106 scilab-lib-doc.properties
2107 modules/helptools/etc/SciDocConf.xml
2108 modules/core/includes/version.h
2109 modules/atoms/etc/repositories
2110 modules/atoms/tests/unit_tests/repositories.orig
2111 ])
2112
2113 # Detection of the module for the future version of Scilab 6
2114 # ie we detect module which ends with _yasp
2115
2116 if test "$enable_yasp" = yes; then
2117    AC_CONFIG_FILES([
2118    modules/development_tools/src/fake/Makefile
2119   ])
2120 fi
2121
2122 # This script is used by Xcos in order to regenerate the function/block list
2123 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])
2124
2125 AC_OUTPUT
2126
2127 # To distribution packager, you can uncomment this stuff is you want to
2128 # disable the rpath issue
2129 # However, you will have to set all the LD_LIBRARY_PATH to .libs/ directory
2130 # since scilab is compiling macros and help into the source tree (ie before
2131 # the "make install")
2132 # You should consider using chrpath:
2133 # http://directory.fsf.org/project/chrpath/
2134 # to remove it before the make install
2135
2136 #case ${host} in
2137 #  *-pc-linux-gnu)
2138 #    AC_MSG_RESULT([Fixing libtool for -rpath problems.])
2139 #    sed < libtool > libtool-2 \
2140 #    's/^hardcode_libdir_flag_spec.*$/hardcode_libdir_flag_spec=" -D__LIBTOOL_IS_A_FOOL__ "/'
2141 #    mv libtool-2 libtool
2142 #    chmod 755 libtool
2143 #  ;;
2144 #esac
2145 #
2146
2147 echo ""
2148
2149 echo "Scilab is configured as follows. Please verify that this configuration"
2150 echo "matches your expectations."
2151 echo ""
2152 echo "Host system type : $host"
2153 echo ""
2154 echo "                  Option                        Value"
2155 echo "-------------------------------------------------------------------------"
2156 echo "Shared libraries.......      --enable-shared=$libtool_build_shared_libs"
2157 echo "Static libraries.......      --enable-static=$libtool_build_static_libs"
2158 echo "GNU ld.................      --with-gnu-ld=$with_gnu_ld"
2159 echo "Enable debug ..........      --enable-debug=$enable_debug"
2160 echo "Enable debug C.........      --enable-debug-C=$enable_debug_C"
2161 echo "Enable debug C++.......      --enable-debug-CXX=$enable_debug_CXX"
2162 echo "Enable debug Java......      --enable-debug-java=$enable_debug_java"
2163 echo "Enable debug Fortran...      --enable-debug-fortran=$enable_debug_fortran"
2164 echo "Enable stop on warning.      --enable-stop-on-warning=$enable_stop_on_warning"
2165
2166 echo ""
2167 echo "Compiler Configuration:"
2168 echo "  Intel (--with-intelcompilers) .... =        $with_intelcompilers"
2169 echo "  GNU gcc (--with-gcc) ............. =        $with_gcc"
2170 echo "  GNU Fortran 95 (--with-gfortran) . =        $with_gfortran"
2171 echo ""
2172 echo "Options:"
2173 echo "  Do not use TCL/TK (--without-tk) ................. = $with_tk"
2174 echo "  TCL include (--with-tcl-include) ................. = $USER_TCL_INC_PATH"
2175 echo "  TCL library (--with-tcl-library) ................. = $USER_TCL_LIB_PATH"
2176 echo "  TK include (--with-tk-include) ................... = $USER_TK_INC_PATH"
2177 echo "  TK library (--with-tk-library) ................... = $USER_TK_LIB_PATH"
2178 echo "  Install XML Help (--with-install-help-xml) ....... = $with_install_help_xml"
2179 echo "  Compilation tests (--enable-compilation-tests) ... = $COMPILATION_TESTS"
2180 echo "  Make the package relocatable (--enable-relocatable)= $RELOCATABLE"
2181 echo "  Use FFTW (--without-fftw) ........................ = $with_fftw"
2182 echo "  Use MATIO (--without-matio) ...................... = $with_matio"
2183 echo ""
2184 echo "  Compile with Scilab thirdparties ................. = $WITH_DEVTOOLS"
2185
2186 echo ""
2187 if test "$with_gui" = no; then
2188    echo "Not using Xcos because of the option --without-gui"
2189 else
2190 if test $XCOS_ENABLE = yes; then
2191    echo "Xcos enable"
2192    echo "Build modelica compiler (--without-modelica) ....... = $with_modelica"
2193    echo ""
2194    if test "$with_modelica" != no -a "$OCAMLC" != no -a "$OCAMLOPT" != no; then
2195      echo "Ocaml Configuration (for Modelica compiler):"
2196      echo "  OCAMLC ............. = $OCAMLC"
2197      echo "  OCAMLOPT ........... = $OCAMLOPT"
2198      echo "  OCAMLDEP ........... = $OCAMLDEP"
2199    else
2200      echo "Will not build Modelica compiler"
2201    fi
2202 else
2203    echo "Not using Xcos"
2204 fi
2205 fi
2206
2207 echo ""
2208 if test "$enable_code_coverage" = yes;  then
2209    echo "Code coverage configuration:"
2210    echo "  LCOV .............. = $LCOV"
2211    echo "  GENHTML ........... = $GENHTML"
2212 else
2213    echo "Not using code coverage"
2214 fi
2215
2216 echo ""
2217 if test $OPENMP_ENABLE = yes; then
2218    echo "OpenMP Configuration:"
2219    echo "OpenMP CFLAGS ...... = $OPENMP_CFLAGS"
2220    echo "OpenMP CXXFLAGS .... = $OPENMP_CXXFLAGS"
2221    echo "OpenMP LIBS ........ = $OPENMP_LIBS"
2222    echo "OpenMP LDFLAGS ..... = $OPENMP_LDFLAGS"
2223 else
2224    echo "Not using OpenMP"
2225 fi
2226
2227 echo ""
2228 if test $FFTW_ENABLE = yes;  then
2229    echo "FFTW Configuration:"
2230    echo "  FFTW LIBS .......... = $FFTW3_LIB"
2231    echo "  FFTW CFLAGS ........ = $FFTW3_CFLAGS"
2232 else
2233    echo "Not using FFTW"
2234 fi
2235
2236 echo ""
2237 echo "Eigen3 Configuration:"
2238 echo "  EIGEN CPPFLAGS ...... = $EIGEN_CPPFLAGS"
2239
2240 echo ""
2241 if test $MATIO_ENABLE = yes;  then
2242    echo "MATIO Configuration:"
2243    echo "  MATIO LIBS .......... = $MATIO_LIBS"
2244    echo "  MATIO CFLAGS ........ = $MATIO_CFLAGS"
2245 else
2246    echo "Not using MATIO"
2247 fi
2248
2249 echo ""
2250 if test $UMFPACK_ENABLE = yes;  then
2251    echo "UMFPACK Configuration:"
2252    echo "  UMFPACK LIBS ....... = $UMFPACK_LIB"
2253    echo "  UMFPACK CFLAGS ..... = $UMFPACK_CFLAGS"
2254    if test $SUITESPARSE = yes; then
2255       echo "  UMFPACK SUITESPARSE  = Yes"
2256    else
2257       echo "  UMFPACK SUITESPARSE  = No"
2258    fi
2259 else
2260    echo "Not using UMFPACK"
2261 fi
2262
2263
2264 echo ""
2265 echo "BLAS/LAPACK/ATLAS Configuration:"
2266 echo "  BLAS LIBS ............. = $BLAS_LIBS"
2267 echo "  BLAS TYPE ............. = $BLAS_TYPE"
2268 echo "  LAPACK LIBS ........... = $LAPACK_LIBS"
2269 echo "  LAPACK TYPE ........... = $LAPACK_TYPE"
2270 echo "  ARPACK LIBS ........... = $ARPACK_LIBS"
2271 echo ""
2272
2273
2274 if test "$with_mpi" == yes; then
2275    echo "OpenMPI Configuration:"
2276    echo "OpenMPI LIBS ........... = $OPENMPI_LIBS"
2277    echo "OpenMPI C Compiler ..... = $OPENMPI_CC"
2278    echo "OpenMPI C++ Compiler ... = $OPENMPI_CXX"
2279    echo "OpenMPI F77 Compiler ... = $MPIF77"
2280 else
2281    echo "Not using MPI"
2282 fi
2283
2284 echo ""
2285 if test $BUILD_LOCALIZATION_ENABLE != no; then
2286    echo "Gettext/localization configuration:"
2287    echo "  xgettext ............... = $XGETTEXT"
2288    echo "  msgfmt  ................ = $MSGFMT"
2289    echo "  msgfmt_opts ............ = $MSGFMT_OPTS"
2290    echo "  msgcat  ................ = $MSGCAT"
2291 else
2292    echo "Won't generate localization files"
2293 fi
2294
2295 echo ""
2296 if test $HELP_ENABLE = yes; then
2297    echo "Documentation building configuration:"
2298    echo "  Docbook XSL path ....... = $DOCBOOK_ROOT"
2299    echo "  Saxon XSLT ............. = $SAXON"
2300    echo "  XML commons external ... = $XML_APIS_EXT"
2301 else
2302    echo "No documentation generated"
2303 fi
2304
2305 echo ""
2306 echo "Java Configuration:"
2307 if test ! -z "$JAVAC"; then
2308 echo "  JAVA_HOME ........... = $JAVA_HOME"
2309 echo "  JAVAC ............... = $JAVAC"
2310 echo "  JAVA_CLASSPATH ...... = $JAVA_CLASSPATH"
2311 echo "  JAVA_VERSION ........ = $JAVA_VERSION"
2312 echo "  JAVAC_FLAGS ......... = $JAVAC_FLAGS"
2313 echo "  JAVA_JNI_INCLUDE .... = $JAVA_JNI_INCLUDE"
2314 echo "  JAVA_JNI_LIBS ....... = $JAVA_JNI_LIBS"
2315 echo "  JAVA_JNI_LIBS_PRELOAD = $JAVA_JNI_LIBS_PRELOAD"
2316 echo "  JAVA ................ = $JAVA"
2317 echo "  JAVADOC ............. = $JAVADOC"
2318 echo "  JAR ................. = $JAR"
2319 echo "  ANT ................. = $ANT"
2320 else
2321 echo "  JAVA disabled"
2322 fi
2323
2324
2325 echo ""
2326 echo "Java dependencies:"
2327 if test ! -z "$JAVAC"; then
2328 echo "  Flexdock ............ = $FLEXDOCK"
2329 echo "  JOGL 2............... = $JOGL2"
2330 echo "  JOGL 2 LIBS (JNI) ... = $JOGL2_LIBS"
2331 echo "  Gluegen 2 ........... = $GLUEGEN2_RT"
2332 echo "  Gluegen 2 LIBS (JNI)  = $GLUEGEN2_RT_LIBS"
2333 echo "  Jeuclid (MathML) .... = $JEUCLID_CORE"
2334 echo "  Jhall  .............. = $JHALL"
2335 echo "  Jrosetta (API) ...... = $JROSETTA_API"
2336 echo "  Jrosetta (Engine) ... = $JROSETTA_ENGINE"
2337 echo "  Commons Logging ..... = $COMMONS_LOGGING"
2338 echo "  JGraph X ............ = $JGRAPHX"
2339 echo "  SciRenderer ......... = $SCIRENDERER"
2340 echo "  JLaTeXMath .......... = $JLATEXMATH"
2341 echo "  ECJ ................. = $ECJ"
2342 fi
2343
2344 echo ""
2345 if test ! -z "$JAVAC"; then
2346 echo "Documentation, graphic export:"
2347 echo "  FOP (XML => PDF) .... = $FOP"
2348 echo "  JLaTeXMath Fop ...... = $JLATEXMATH_FOP"
2349 echo "  Batik (SVG) ......... = $BATIK"
2350 echo "  Avalon Framework .... = $AVALON_FRAMEWORK"
2351 echo "  Commons I/O ......... = $COMMONS_IO"
2352 echo "  XML graphics commons  = $XMLGRAPHICS_COMMONS"
2353 fi
2354
2355
2356 echo ""
2357 echo "Code quality (optional):"
2358 echo "  Checkstyle .......... = $CHECKSTYLE"
2359 echo "  Commons-beanutils ... = $COMMONS_BEANUTILS"
2360 echo "  Antlr ............... = $ANTLR"
2361 echo "  Junit4 .............. = $JUNIT4"
2362 echo "  Hamcrest ............ = $HAMCREST"
2363 echo "  Cobertura ........... = $COBERTURA"
2364 echo "  splint .............. = $SPLINT"
2365
2366 echo ""
2367 echo "TCL/TK configuration:"
2368 echo "  TK_INC_PATH ........ = $TK_INC_PATH"
2369 echo "  TCL_INC_PATH ....... = $TCL_INC_PATH"
2370 echo "  TCLTK_LIBS ......... = $TCLTK_LIBS"
2371 echo "  TCL_SERIAL_VERSION . = $TCL_SERIAL_VERSION"
2372 echo "  TK_SERIAL_VERSION .. = $TK_SERIAL_VERSION"
2373
2374 echo ""
2375 echo "XML configuration:"
2376 echo "  XML_FLAGS .......... = $XML_FLAGS"
2377 echo "  XML_LIBS ........... = $XML_LIBS"
2378 echo "  XML_VERSION ........ = $XML_VERSION"
2379
2380 echo ""
2381 echo "HDF5 configuration:"
2382 echo "  HDF5 CFLAGS ......... = $HDF5_CFLAGS"
2383 echo "  HDF5 LIBS ........... = $HDF5_LIBS"
2384
2385 echo ""
2386 echo "PCRE configuration:"
2387 echo "  PCRE_CFLAGS ........ = $PCRE_CFLAGS"
2388 echo "  PCRE_LIBS .......... = $PCRE_LIBS"
2389 echo "  PCRE_VERSION ....... = $PCRE_VERSION"
2390
2391 echo ""
2392 echo "Regenerate Scilab's parser"
2393 if test "$enable_build_parser" != no; then
2394 echo "  YACC ............... = $YACC"
2395 echo "  LEX ................ = $LEX"
2396 echo "  YFLAGS ............. = $YFLAGS"
2397 else
2398 echo "  Regenerate parser disabled (will use embedded sources)"
2399 fi
2400
2401 echo ""
2402 echo "CURL configuration:"
2403 echo "  CURL_CFLAGS ........ = $CURL_CFLAGS"
2404 echo "  CURL_LIBS .......... = $CURL_LIBS"
2405 echo "  CURL_VERSION ....... = $CURL_VERSION"
2406
2407 echo ""
2408 echo "SWIG Configuration:"
2409 if test ! -z "$SWIG_BIN"; then
2410 echo "  SWIG_BIN ........... = $SWIG_BIN"
2411 echo "  SWIG_JAVA .......... = $SWIG_JAVA"
2412 else
2413 echo "  SWIG generation disabled"
2414 fi
2415
2416 echo ""
2417 echo "GIWS Configuration:"
2418 if test ! -z "$GIWS_BIN"; then
2419 echo "  GIWS_BIN ........... = $GIWS_BIN"
2420 else
2421 echo "  GIWS generation disabled"
2422 fi
2423
2424 echo ""
2425 echo "Valgrind configuration:"
2426 echo "  VALGRIND_CFLAGS .... = $VALGRIND_CFLAGS"
2427 echo "  VALGRIND_LIBS ...... = $VALGRIND_LIBS"
2428 echo ""
2429
2430 echo ""
2431 echo "Libtool config:"
2432 echo "  objext .............. = $objext"
2433 echo "  libext (static) ..... = $libext"
2434 echo "  shrext_cmds ......... = $shrext_cmds"
2435 echo "  exeext .............. = $exeext"
2436
2437 echo ""
2438
2439 echo "Compilation paths:"
2440 echo "  srcdir .............. = $SCI_SRCDIR"
2441 echo "  srcdir_full ......... = $SCI_SRCDIR_FULL"
2442 echo "  builddir ............ = $SCI_BUILDDIR"
2443 if test "$SCI_SRCDIR_FULL" != "$SCI_BUILDDIR"; then
2444 echo "  VPATH build ......... = Activated"
2445 fi
2446
2447 echo ""
2448 echo "Platform information:"
2449 echo "  host ........... = $host"
2450 echo "  host_cpu ....... = $host_cpu"
2451 echo "  host_vendor .... = $host_vendor"
2452 echo "  host_os ... .... = $host_os"
2453 echo "  hostname ....... = $ac_hostname"
2454 echo "  CPU 64 bits .... = $IS_64_BITS_CPU"
2455 if test -n "$MAC_DETECTED_ARCH"; then
2456 echo "  Mac OS X arch .. = $MAC_DETECTED_ARCH"
2457 echo "  Mac OS X version = $macosx_version"
2458 fi
2459
2460 echo ""
2461 echo "Options used to compile and link:"
2462 echo "  prefix ......... = $prefix"
2463 echo "  localedir ...... = $localedir"
2464 echo "  VERSION ........ = $PACKAGE_VERSION"
2465 echo "  CC ............. = $CC"
2466 echo "  CFLAGS ......... = $CFLAGS"
2467 echo "  SCI_CFLAGS ..... = $SCI_CFLAGS"
2468 echo "  DEFS ........... = $DEFS"
2469 echo "  LD ............. = $LD"
2470 echo "  LDFLAGS ........ = $LDFLAGS"
2471 echo "  SCI_LDFLAGS .... = $SCI_LDFLAGS"
2472 echo "  LIBS ........... = $LIBS"
2473 echo "  CXX ............ = $CXX"
2474 echo "  CXXFLAGS ....... = $CXXFLAGS"
2475 echo "  SCI_CXXFLAGS ... = $SCI_CXXFLAGS"
2476 echo "  F77 ............ = $F77"
2477 echo "  FFLAGS ......... = $FFLAGS"
2478 echo "  SCI_FFLAGS ..... = $SCI_FFLAGS"
2479 echo "  F77_LDFLAGS .... = $F77_LDFLAGS"
2480 echo "  FLIBS...... .... = $FLIBS"
2481 echo "  TERMCAP_LIB .... = $TERMCAP_LIB"
2482 echo ""