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