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