Merge remote-tracking branch 'origin/master' into YaSp 20/8420/2
Vincent COUVERT [Mon, 30 Jul 2012 15:14:30 +0000 (17:14 +0200)]
Conflicts:
scilab/configure
scilab/modules/api_scilab/src/cpp/api_common.cpp
scilab/modules/api_scilab/src/cpp/api_string.cpp
scilab/modules/core/Makefile.am
scilab/modules/core/Makefile.in
scilab/modules/core/core.iss
scilab/modules/elementary_functions/sci_gateway/c/sci_gsort.c
scilab/modules/fftw/sci_gateway/c/sci_fftw.c
scilab/modules/fileio/macros/listfiles.sci

Change-Id: Iebf4e893e38dbbdaa4bcbee2410b3c88682561be

23 files changed:
1  2 
scilab/Makefile.am
scilab/Makefile.in
scilab/bin/scilab
scilab/configure
scilab/configure.ac
scilab/modules/api_scilab/includes/api_common.h
scilab/modules/api_scilab/src/cpp/api_common.cpp
scilab/modules/api_scilab/src/cpp/api_string.cpp
scilab/modules/core/Makefile.am
scilab/modules/core/Makefile.in
scilab/modules/core/core.iss
scilab/modules/core/includes/stack-c.h
scilab/modules/development_tools/macros/test_run.sci
scilab/modules/dynamic_link/macros/ilib_gen_cleaner.sci
scilab/modules/external_objects/Makefile.am
scilab/modules/external_objects/Makefile.in
scilab/modules/external_objects/external_objects.iss
scilab/modules/fftw/sci_gateway/c/sci_fftw.c
scilab/modules/renderer/renderer.iss
scilab/modules/system_env/Makefile.am
scilab/modules/system_env/Makefile.in
scilab/modules/threads/Makefile.am
scilab/modules/threads/Makefile.in

Simple merge
Simple merge
Simple merge
@@@ -10943,7 -10553,7 +10952,7 @@@ $as_echo "$ac_java_classpath" >&6; 
  $as_echo_n "checking to see if the java compiler works... " >&6; }
  
      cat << \EOF > conftest.java
- // #line 10946 "configure"
 -// #line 10556 "configure"
++// #line 10955 "configure"
  import java.util.regex.Pattern;
  
  
@@@ -11030,7 -10640,7 +11039,7 @@@ $as_echo_n "checking type of jvm... " >
      if test "x$ac_java_jvm_name" = "x" ; then
  
      cat << \EOF > conftest.java
- // #line 11033 "configure"
 -// #line 10643 "configure"
++// #line 11042 "configure"
  import java.util.regex.Pattern;
  
  import gnu.java.io.EncodingManager;
@@@ -11114,7 -10724,7 +11123,7 @@@ $as_echo_n "checking java API version..
      # The class java.nio.charset.Charset is new to 1.4
  
      cat << \EOF > conftest.java
- // #line 11117 "configure"
 -// #line 10727 "configure"
++// #line 11126 "configure"
  import java.util.regex.Pattern;
  
  import java.nio.charset.Charset;
      # The class java.lang.StringBuilder is new to 1.5
  
      cat << \EOF > conftest.java
- // #line 11182 "configure"
 -// #line 10792 "configure"
++// #line 11191 "configure"
  import java.util.regex.Pattern;
  
  import java.lang.StringBuilder;
      # The class java.util.ArrayDeque is new to 1.6
  
      cat << \EOF > conftest.java
- // #line 11247 "configure"
 -// #line 10857 "configure"
++// #line 11256 "configure"
  import java.util.regex.Pattern;
  
  import java.util.ArrayDeque;
      # The class java.nio.file.Path is new to 1.7
  
      cat << \EOF > conftest.java
- // #line 11312 "configure"
 -// #line 10922 "configure"
++// #line 11321 "configure"
  import java.util.regex.Pattern;
  
  import java.nio.file.Path;
@@@ -12693,7 -12303,7 +12702,7 @@@ $as_echo_n "checking jgraphx... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 12696 "configure"
 -// #line 12306 "configure"
++// #line 12705 "configure"
  import java.util.regex.Pattern;
  
  import com.mxgraph.model.mxCell;
@@@ -12800,7 -12410,7 +12809,7 @@@ $as_echo_n "checking minimal version (1
     if test "x" == "x"; then
  
      cat << \EOF > conftest.java
- // #line 12803 "configure"
 -// #line 12413 "configure"
++// #line 12812 "configure"
  import java.util.regex.Pattern;
  
  import com.mxgraph.view.mxGraph;
     else
  
      cat << \EOF > conftest.java
- // #line 12875 "configure"
 -// #line 12485 "configure"
++// #line 12884 "configure"
  import java.util.regex.Pattern;
  
  import com.mxgraph.view.mxGraph;
@@@ -12967,7 -12577,7 +12976,7 @@@ $as_echo_n "checking jhdf5... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 12970 "configure"
 -// #line 12580 "configure"
++// #line 12979 "configure"
  import java.util.regex.Pattern;
  
  import ncsa.hdf.hdf5lib.HDF5Constants;
@@@ -13135,7 -12745,7 +13144,7 @@@ $as_echo_n "checking minimal version (1
     if test "x" == "x"; then
  
      cat << \EOF > conftest.java
- // #line 13138 "configure"
 -// #line 12748 "configure"
++// #line 13147 "configure"
  import java.util.regex.Pattern;
  
  import ncsa.hdf.hdf5lib.H5;
     else
  
      cat << \EOF > conftest.java
- // #line 13214 "configure"
 -// #line 12824 "configure"
++// #line 13223 "configure"
  import java.util.regex.Pattern;
  
  import ncsa.hdf.hdf5lib.H5;
@@@ -13314,7 -12924,7 +13323,7 @@@ $as_echo_n "checking scirenderer... " >
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 13317 "configure"
 -// #line 12927 "configure"
++// #line 13326 "configure"
  import java.util.regex.Pattern;
  
  import org.scilab.forge.scirenderer.PackageInfo;
@@@ -13421,7 -13031,7 +13430,7 @@@ $as_echo_n "checking minimal version (0
     if test "x" == "x"; then
  
      cat << \EOF > conftest.java
- // #line 13424 "configure"
 -// #line 13034 "configure"
++// #line 13433 "configure"
  import java.util.regex.Pattern;
  
  import org.scilab.forge.scirenderer.PackageInfo;
     else
  
      cat << \EOF > conftest.java
- // #line 13496 "configure"
 -// #line 13106 "configure"
++// #line 13505 "configure"
  import java.util.regex.Pattern;
  
  import org.scilab.forge.scirenderer.PackageInfo;
@@@ -13584,7 -13194,7 +13593,7 @@@ $as_echo_n "checking flexdock... " >&6
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 13587 "configure"
 -// #line 13197 "configure"
++// #line 13596 "configure"
  import java.util.regex.Pattern;
  
  import org.flexdock.docking.DockingManager;
@@@ -13691,7 -13301,7 +13700,7 @@@ $as_echo_n "checking minimal version (1
     if test "x" == "x"; then
  
      cat << \EOF > conftest.java
- // #line 13694 "configure"
 -// #line 13304 "configure"
++// #line 13703 "configure"
  import java.util.regex.Pattern;
  
  import org.flexdock.util.Utilities;
     else
  
      cat << \EOF > conftest.java
- // #line 13766 "configure"
 -// #line 13376 "configure"
++// #line 13775 "configure"
  import java.util.regex.Pattern;
  
  import org.flexdock.util.Utilities;
@@@ -13854,7 -13464,7 +13863,7 @@@ $as_echo_n "checking looks... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 13857 "configure"
 -// #line 13467 "configure"
++// #line 13866 "configure"
  import java.util.regex.Pattern;
  
  import com.jgoodies.looks.common.MenuItemRenderer;
@@@ -13971,7 -13581,7 +13980,7 @@@ $as_echo_n "checking jgoodies-looks... 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 13974 "configure"
 -// #line 13584 "configure"
++// #line 13983 "configure"
  import java.util.regex.Pattern;
  
  import com.jgoodies.looks.common.MenuItemRenderer;
@@@ -14089,7 -13699,7 +14098,7 @@@ $as_echo_n "checking skinlf... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 14092 "configure"
 -// #line 13702 "configure"
++// #line 14101 "configure"
  import java.util.regex.Pattern;
  
  import com.l2fprod.util.AccessUtils;
@@@ -14206,7 -13816,7 +14215,7 @@@ $as_echo_n "checking jogl2... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 14209 "configure"
 -// #line 13819 "configure"
++// #line 14218 "configure"
  import java.util.regex.Pattern;
  
  import javax.media.opengl.glu.GLUnurbs;
@@@ -14431,7 -14041,7 +14440,7 @@@ $as_echo_n "checking gluegen2-rt... " >
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 14434 "configure"
 -// #line 14044 "configure"
++// #line 14443 "configure"
  import java.util.regex.Pattern;
  
  import jogamp.common.os.MachineDescriptionRuntime;
@@@ -14605,7 -14215,7 +14614,7 @@@ $as_echo_n "checking jhall... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 14608 "configure"
 -// #line 14218 "configure"
++// #line 14617 "configure"
  import java.util.regex.Pattern;
  
  import javax.help.JHelp;
@@@ -14722,7 -14332,7 +14731,7 @@@ $as_echo_n "checking javahelp2... " >&6
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 14725 "configure"
 -// #line 14335 "configure"
++// #line 14734 "configure"
  import java.util.regex.Pattern;
  
  import javax.help.JHelp;
@@@ -14840,7 -14450,7 +14849,7 @@@ $as_echo_n "checking jrosetta-API... " 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 14843 "configure"
 -// #line 14453 "configure"
++// #line 14852 "configure"
  import java.util.regex.Pattern;
  
  import com.artenum.rosetta.interfaces.core.ConsoleConfiguration;
@@@ -14955,7 -14565,7 +14964,7 @@@ $as_echo_n "checking jrosetta-api... " 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 14958 "configure"
 -// #line 14568 "configure"
++// #line 14967 "configure"
  import java.util.regex.Pattern;
  
  import com.artenum.rosetta.interfaces.core.ConsoleConfiguration;
@@@ -15073,7 -14683,7 +15082,7 @@@ $as_echo_n "checking jrosetta-engine..
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 15076 "configure"
 -// #line 14686 "configure"
++// #line 15085 "configure"
  import java.util.regex.Pattern;
  
  import com.artenum.rosetta.core.action.AbstractConsoleAction;
@@@ -15179,7 -14789,7 +15188,7 @@@ $as_echo_n "checking minimal version (1
     if test "x" == "x"; then
  
      cat << \EOF > conftest.java
- // #line 15182 "configure"
 -// #line 14792 "configure"
++// #line 15191 "configure"
  import java.util.regex.Pattern;
  
  import com.artenum.rosetta.util.ConfigurationBuilder;
     else
  
      cat << \EOF > conftest.java
- // #line 15254 "configure"
 -// #line 14864 "configure"
++// #line 15263 "configure"
  import java.util.regex.Pattern;
  
  import com.artenum.rosetta.util.ConfigurationBuilder;
@@@ -15344,7 -14954,7 +15353,7 @@@ $as_echo_n "checking jeuclid-core... " 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 15347 "configure"
 -// #line 14957 "configure"
++// #line 15356 "configure"
  import java.util.regex.Pattern;
  
  import net.sourceforge.jeuclid.LayoutContext;
@@@ -15463,7 -15073,7 +15472,7 @@@ $as_echo_n "checking fop... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 15466 "configure"
 -// #line 15076 "configure"
++// #line 15475 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.fop.pdf.PDFInfo;
@@@ -15580,7 -15190,7 +15589,7 @@@ $as_echo_n "checking batik-all... " >&6
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 15583 "configure"
 -// #line 15193 "configure"
++// #line 15592 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.batik.parser.Parser;
@@@ -15697,7 -15307,7 +15706,7 @@@ $as_echo_n "checking batik... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 15700 "configure"
 -// #line 15310 "configure"
++// #line 15709 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.batik.parser.Parser;
@@@ -15804,7 -15414,7 +15813,7 @@@ $as_echo_n "checking minimal version (1
     if test "x" == "x"; then
  
      cat << \EOF > conftest.java
- // #line 15807 "configure"
 -// #line 15417 "configure"
++// #line 15816 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.batik.Version;
     else
  
      cat << \EOF > conftest.java
- // #line 15879 "configure"
 -// #line 15489 "configure"
++// #line 15888 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.batik.Version;
@@@ -15967,7 -15577,7 +15976,7 @@@ $as_echo_n "checking commons-io... " >&
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 15970 "configure"
 -// #line 15580 "configure"
++// #line 15979 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.commons.io.output.CountingOutputStream;
@@@ -16084,7 -15694,7 +16093,7 @@@ $as_echo_n "checking xmlgraphics-common
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 16087 "configure"
 -// #line 15697 "configure"
++// #line 16096 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.xmlgraphics.util.Service;
@@@ -16201,7 -15811,7 +16210,7 @@@ $as_echo_n "checking avalon-framework..
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 16204 "configure"
 -// #line 15814 "configure"
++// #line 16213 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.avalon.framework.configuration.ConfigurationException;
@@@ -16318,7 -15928,7 +16327,7 @@@ $as_echo_n "checking xml-apis-ext... " 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 16321 "configure"
 -// #line 15931 "configure"
++// #line 16330 "configure"
  import java.util.regex.Pattern;
  
  import org.w3c.dom.svg.SVGDocument;
@@@ -16435,7 -16045,7 +16444,7 @@@ $as_echo_n "checking xml-commons-apis-e
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 16438 "configure"
 -// #line 16048 "configure"
++// #line 16447 "configure"
  import java.util.regex.Pattern;
  
  import org.w3c.dom.svg.SVGDocument;
@@@ -16556,7 -16166,7 +16565,7 @@@ $as_echo_n "checking commons-logging..
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 16559 "configure"
 -// #line 16169 "configure"
++// #line 16568 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.commons.logging.LogFactory;
@@@ -16673,7 -16283,7 +16682,7 @@@ $as_echo_n "checking jlatexmath... " >&
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 16676 "configure"
 -// #line 16286 "configure"
++// #line 16685 "configure"
  import java.util.regex.Pattern;
  
  import org.scilab.forge.jlatexmath.TeXFormula;
@@@ -16780,7 -16390,7 +16789,7 @@@ $as_echo_n "checking minimal version (0
     if test "x" == "x"; then
  
      cat << \EOF > conftest.java
- // #line 16783 "configure"
 -// #line 16393 "configure"
++// #line 16792 "configure"
  import java.util.regex.Pattern;
  
  import org.scilab.forge.jlatexmath.TeXFormula;
     else
  
      cat << \EOF > conftest.java
- // #line 16855 "configure"
 -// #line 16465 "configure"
++// #line 16864 "configure"
  import java.util.regex.Pattern;
  
  import org.scilab.forge.jlatexmath.TeXFormula;
@@@ -16949,7 -16559,7 +16958,7 @@@ $as_echo_n "checking checkstyle... " >&
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 16952 "configure"
 -// #line 16562 "configure"
++// #line 16961 "configure"
  import java.util.regex.Pattern;
  
  import com.puppycrawl.tools.checkstyle.CheckStyleTask;
@@@ -17066,7 -16676,7 +17075,7 @@@ $as_echo_n "checking commons-beanutils.
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 17069 "configure"
 -// #line 16679 "configure"
++// #line 17078 "configure"
  import java.util.regex.Pattern;
  
  import org.apache.commons.beanutils.Converter;
@@@ -17183,7 -16793,7 +17192,7 @@@ $as_echo_n "checking antlr... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 17186 "configure"
 -// #line 16796 "configure"
++// #line 17195 "configure"
  import java.util.regex.Pattern;
  
  import antlr.TokenStreamException;
@@@ -17300,7 -16910,7 +17309,7 @@@ $as_echo_n "checking junit4... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 17303 "configure"
 -// #line 16913 "configure"
++// #line 17312 "configure"
  import java.util.regex.Pattern;
  
  import org.junit.Assert;
@@@ -17417,7 -17027,7 +17426,7 @@@ $as_echo_n "checking cobertura... " >&6
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 17420 "configure"
 -// #line 17030 "configure"
++// #line 17429 "configure"
  import java.util.regex.Pattern;
  
  import net.sourceforge.cobertura.merge.Main;
@@@ -17534,7 -17144,7 +17543,7 @@@ $as_echo_n "checking asm3... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 17537 "configure"
 -// #line 17147 "configure"
++// #line 17546 "configure"
  import java.util.regex.Pattern;
  
  import org.objectweb.asm.Type;
@@@ -17650,7 -17260,7 +17659,7 @@@ $as_echo_n "checking asm... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 17653 "configure"
 -// #line 17263 "configure"
++// #line 17662 "configure"
  import java.util.regex.Pattern;
  
  import org.objectweb.asm.Type;
  
  
  #################
 +## EIGEN
 +#################
 +
 +
 +ac_ext=cpp
 +ac_cpp='$CXXCPP $CPPFLAGS'
 +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
 +if test -z "$CXXCPP"; then
 +  if ${ac_cv_prog_CXXCPP+:} false; then :
 +  $as_echo_n "(cached) " >&6
 +else
 +      # Double quotes because CXXCPP needs to be expanded
 +    for CXXCPP in "$CXX -E" "/lib/cpp"
 +    do
 +      ac_preproc_ok=false
 +for ac_cxx_preproc_warn_flag in '' yes
 +do
 +  # Use a header file that comes with gcc, so configuring glibc
 +  # with a fresh cross-compiler works.
 +  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 +  # <limits.h> exists even on freestanding compilers.
 +  # On the NeXT, cc -E runs the code through the compiler's parser,
 +  # not just through cpp. "Syntax error" is here to catch this case.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef __STDC__
 +# include <limits.h>
 +#else
 +# include <assert.h>
 +#endif
 +                   Syntax error
 +_ACEOF
 +if ac_fn_cxx_try_cpp "$LINENO"; then :
 +
 +else
 +  # Broken: fails on valid input.
 +continue
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +  # OK, works on sane cases.  Now check whether nonexistent headers
 +  # can be detected and how.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <ac_nonexistent.h>
 +_ACEOF
 +if ac_fn_cxx_try_cpp "$LINENO"; then :
 +  # Broken: success on invalid input.
 +continue
 +else
 +  # Passes both tests.
 +ac_preproc_ok=:
 +break
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +done
 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 +rm -f conftest.i conftest.err conftest.$ac_ext
 +if $ac_preproc_ok; then :
 +  break
 +fi
 +
 +    done
 +    ac_cv_prog_CXXCPP=$CXXCPP
 +
 +fi
 +  CXXCPP=$ac_cv_prog_CXXCPP
 +else
 +  ac_cv_prog_CXXCPP=$CXXCPP
 +fi
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
 +$as_echo "$CXXCPP" >&6; }
 +ac_preproc_ok=false
 +for ac_cxx_preproc_warn_flag in '' yes
 +do
 +  # Use a header file that comes with gcc, so configuring glibc
 +  # with a fresh cross-compiler works.
 +  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
 +  # <limits.h> exists even on freestanding compilers.
 +  # On the NeXT, cc -E runs the code through the compiler's parser,
 +  # not just through cpp. "Syntax error" is here to catch this case.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#ifdef __STDC__
 +# include <limits.h>
 +#else
 +# include <assert.h>
 +#endif
 +                   Syntax error
 +_ACEOF
 +if ac_fn_cxx_try_cpp "$LINENO"; then :
 +
 +else
 +  # Broken: fails on valid input.
 +continue
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +  # OK, works on sane cases.  Now check whether nonexistent headers
 +  # can be detected and how.
 +  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 +/* end confdefs.h.  */
 +#include <ac_nonexistent.h>
 +_ACEOF
 +if ac_fn_cxx_try_cpp "$LINENO"; then :
 +  # Broken: success on invalid input.
 +continue
 +else
 +  # Passes both tests.
 +ac_preproc_ok=:
 +break
 +fi
 +rm -f conftest.err conftest.i conftest.$ac_ext
 +
 +done
 +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 +rm -f conftest.i conftest.err conftest.$ac_ext
 +if $ac_preproc_ok; then :
 +
 +else
 +  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
 +See \`config.log' for more details" "$LINENO" 5; }
 +fi
 +
 +ac_ext=cpp
 +ac_cpp='$CXXCPP $CPPFLAGS'
 +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 +
 +
 +
 +ac_ext=cpp
 +ac_cpp='$CXXCPP $CPPFLAGS'
 +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 +
 +
 +
 +# Check whether --with-eigen_include was given.
 +if test "${with_eigen_include+set}" = set; then :
 +  withval=$with_eigen_include; with_eigen_include=$withval
 +else
 +  with_eigen_include='yes'
 +
 +fi
 +
 +
 +
 +save_CPPFLAGS="$CPPFLAGS"
 +
 +if test "x$with_eigen_include" != "xyes"; then
 +      CPPFLAGS="-I$with_eigen_include"
 +      ac_fn_cxx_check_header_mongrel "$LINENO" "Eigen/Sparse" "ac_cv_header_Eigen_Sparse" "$ac_includes_default"
 +if test "x$ac_cv_header_Eigen_Sparse" = xyes; then :
 +  EIGEN_CPPFLAGS="$CPPFLAGS"
 +else
 +  as_fn_error $? "Cannot find headers (Eigen/Sparse) of the library EIGEN in $with_eigen_include. Please install the dev package (Debian : libeigen3-dev)" "$LINENO" 5
 +
 +fi
 +
 +
 +    PATH_TO_EIGEN=$with_eigen_include
 +else
 +      ac_fn_cxx_check_header_mongrel "$LINENO" "Eigen/Sparse" "ac_cv_header_Eigen_Sparse" "$ac_includes_default"
 +if test "x$ac_cv_header_Eigen_Sparse" = xyes; then :
 +  EIGEN_CPPFLAGS=""
 +else
 +         $as_unset ac_cv_header_Eigen_Sparse
 +                CPPFLAGS="-I/usr/include/eigen3/"
 +                ac_fn_cxx_check_header_mongrel "$LINENO" "Eigen/Sparse" "ac_cv_header_Eigen_Sparse" "$ac_includes_default"
 +if test "x$ac_cv_header_Eigen_Sparse" = xyes; then :
 +  EIGEN_CPPFLAGS=$CPPFLAGS
 +else
 +  as_fn_error $? "Cannot find headers (Eigen/Sparse) of the library eigen. Please install the dev package (Debian : libeigen3-dev)" "$LINENO" 5
 +
 +fi
 +
 +
 +
 +fi
 +
 +
 +    PATH_TO_EIGEN="/usr/include/eigen3/"
 +fi
 +CPPFLAGS="$save_CPPFLAGS"
 +
 +CHK_EIGEN_WORLD=3
 +CHK_EIGEN_MAJOR=1
 +CHK_EIGEN_MINOR=0
 +
 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Eigen is version $CHK_EIGEN_WORLD.$CHK_EIGEN_MAJOR.$CHK_EIGEN_MINOR or later" >&5
 +$as_echo_n "checking if Eigen is version $CHK_EIGEN_WORLD.$CHK_EIGEN_MAJOR.$CHK_EIGEN_MINOR or later... " >&6; }
 +cat > conftest.$ac_ext <<EOF
- #line 21764 "configure"
++#line 21773 "configure"
 +#include "confdefs.h"
 +
 +#include "$PATH_TO_EIGEN/Eigen/Sparse"
 +#if EIGEN_VERSION_AT_LEAST(3,1,0)
 +EIGEN_VERSION_OK
 +#endif
 +
 +EOF
 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
 +  grep "EIGEN_VERSION_OK" >/dev/null 2>&1; then
 +  rm -rf conftest*
 +  \
 +EIGEN_VERSION_OK=1
 +else
 +  rm -rf conftest*
 +  \
 +EIGEN_VERSION_OK=0
 +fi
 +rm -f conftest*
 +
 +if test $EIGEN_VERSION_OK = 0; then
 +   as_fn_error $? "Version $CHK_EIGEN_WORLD.$CHK_EIGEN_MAJOR.$CHK_EIGEN_MINOR of Eigen expected (at least)" "$LINENO" 5
 +else
 +   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 +$as_echo "yes" >&6; }
 +fi
 +
 +
 +
 +$as_echo "#define WITH_EIGEN /**/" >>confdefs.h
 +
 +ac_ext=c
 +ac_cpp='$CPP $CPPFLAGS'
 +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 +ac_compiler_gnu=$ac_cv_c_compiler_gnu
 +
 +
 +
 +
 +#################
  ## MPI
  #################
  
@@@ -25793,7 -25160,7 +25802,7 @@@ CPPFLAGS="$CPPFLAGS -I$CHK_TCL_INCLUDE_
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later" >&5
  $as_echo_n "checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later... " >&6; }
  cat > conftest.$ac_ext <<EOF
- #line 25796 "configure"
 -#line 25163 "configure"
++#line 25805 "configure"
  #include "confdefs.h"
  
  #include "$CHK_TCL_INCLUDE_PATH/$CHK_TCL_INC_NAME"
@@@ -26103,7 -25470,7 +26112,7 @@@ CPPFLAGS="$CPPFLAGS $TCL_INC_PATH -I$CH
  $as_echo_n "checking if tk is version $CHK_TK_MAJOR.$CHK_TK_MINOR or later... " >&6; }
  
  cat > conftest.$ac_ext <<EOF
- #line 26106 "configure"
 -#line 25473 "configure"
++#line 26115 "configure"
  #include "confdefs.h"
  
  #include "$CHK_TK_INCLUDE_PATH/$CHK_TK_INC_NAME"
@@@ -26681,7 -26048,7 +26690,7 @@@ $as_echo_n "checking saxon... " >&6; 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 26684 "configure"
 -// #line 26051 "configure"
++// #line 26693 "configure"
  import java.util.regex.Pattern;
  
  import com.icl.saxon.Loader;
@@@ -26798,7 -26165,7 +26807,7 @@@ $as_echo_n "checking jlatexmath-fop... 
              export ac_java_classpath="$jar_resolved:$ac_java_classpath"
  
      cat << \EOF > conftest.java
- // #line 26801 "configure"
 -// #line 26168 "configure"
++// #line 26810 "configure"
  import java.util.regex.Pattern;
  
  import org.scilab.forge.jlatexmath.fop.JLaTeXMathObj;
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
- #line 33121 "configure"
 -#line 32488 "configure"
++#line 33130 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
- #line 33227 "configure"
 -#line 32594 "configure"
++#line 33236 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
Simple merge
@@@ -61,6 -62,16 +62,7 @@@ extern "C" 
  #endif
  #define Rhs (*getNbInputArgument(pvApiCtx))
  
 -/*Top*/
 -    int* getNbArgumentOnStack(void* _pvCtx);
 -#define nbArgumentOnStack (*getNbArgumentOnStack(pvApiCtx))
 -
 -#ifdef Top
 -#undef Top
 -#endif
 -#define Top (*getNbArgumentOnStack(pvApiCtx))
 -
+ /*Lhs*/
      int* getNbOutputArgument(void* _pvCtx);
  #define nbOutputArgument (*getNbOutputArgument(pvApiCtx))
  #ifdef Lhs
@@@ -239,33 -197,13 +239,33 @@@ int checkOutputArgumentAtMost(void* _pv
  /*--------------------------------------------------------------------------*/
  int callOverloadFunction(void* _pvCtx, int _iVar, char* _pstName, unsigned int _iNameLen)
  {
 -    int iVar = 0;
 -    if(_iVar != 0)
 +    GatewayStruct* pStr = (GatewayStruct*)_pvCtx;
 +    Function::ReturnValue callResult;
 +    typed_list tlReturnedValues;
 +
 +    std::wstring wsFunName;
 +
 +    if(_iVar == 0)
 +    {
 +        wsFunName = std::wstring(L"%_") + std::wstring(pStr->m_pstName);
 +    }
 +    else
      {
 -        iVar = _iVar + Top - Rhs;
 +        wsFunName = std::wstring(L"%") + (*pStr->m_pIn)[_iVar - 1]->getShortTypeStr() + L"_" + std::wstring(pStr->m_pstName);
      }
  
 -    return C2F(overload)(&iVar, _pstName, _iNameLen);
 +    callResult = Overload::call(wsFunName, *(pStr->m_pIn), *(pStr->m_piRetCount), tlReturnedValues, pStr->m_pVisitor);
 +    if (callResult == Function::OK)
 +    {
 +        int i = 0;
 +        typed_list::iterator it;
 +        for (it = tlReturnedValues.begin() ; it != tlReturnedValues.end() ; ++it, ++i)
 +        {
 +            (pStr->m_pOut)[i] = *it;
-             pStr->m_pOutOrder[i] = pStr->m_pIn->size() + i + 1;
++            pStr->m_pOutOrder[i] = (int)pStr->m_pIn->size() + i + 1;
 +        }
 +    }
 +    return 0;
  }
  
  /*--------------------------------------------------------------------------*/
@@@ -1418,11 -1344,12 +1418,11 @@@ int deleteNamedVariable(void* _pvCtx, c
      SciErr sciErr;
      sciErr.iErr = 0;
      sciErr.iMsgCount = 0;
 -    int iVarID[nsiz];
      int iZero = 0;
--    int il;
 -    int sRhs = Rhs;
 -    int sLhs = Lhs;
 -    int sTop = Top;
++    //int il;
 +    //int sRhs = Rhs;
 +    //int sLhs = Lhs;
 +    //int sTop = Top;
  
      if (isNamedVarExist(_pvCtx, _pstName) == 0)
      {
@@@ -291,40 -298,116 +291,40 @@@ SciErr getMatrixOfWideString(void* _pvC
                return sciErr;
        }
  
--      sciErr = getVarDimension(_pvCtx, _piAddress, _piRows, _piCols);
--      if(sciErr.iErr)
--      {
--              addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
--              return sciErr;
--      }
 -
 -      if (_piwLength == NULL)
 -      {
 -              return sciErr;
 -      }
 -
 -      strSize = (*_piRows * *_piCols);
 -      piLenStrings    = (int*)MALLOC(sizeof(int) * strSize);
 -
 -      // get length UTF size
 -      sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLenStrings, pstStrings);
 -      if(sciErr.iErr)
 -      {
 -              addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
 -              if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
 -              return sciErr;
 -      }
++    sciErr = getVarDimension(_pvCtx, _piAddress, _piRows, _piCols);
++    if(sciErr.iErr)
++    {
++        addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
++        return sciErr;
++    }
  
-       if (_piwLength == NULL)
-       {
-               return sciErr;
-       }
 -      pstStrings = (char**)MALLOC(sizeof(char*) * strSize);
++    if (_piwLength == NULL)
++    {
++        return sciErr;
++    }
  
-       String *pS = ((InternalType*)_piAddress)->getAs<types::String>();
 -      for(int i = 0; i < strSize; i++)
 -      {
 -              pstStrings[i] = (char*)MALLOC(sizeof(char)*(piLenStrings[i] + 1));
 -      }
++    String *pS = ((InternalType*)_piAddress)->getAs<types::String>();
 +    for(int i = 0 ; i < pS->getSize() ; i++)
 +    {
 +        _piwLength[i] = (int)wcslen(pS->get(i));
 +    }
  
 -      // get strings UTF format
 -      sciErr = getMatrixOfString(_pvCtx, _piAddress, _piRows, _piCols, piLenStrings, pstStrings);
 -      if(sciErr.iErr)
 -      {
 -              addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to get argument #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
 -              if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
 -              freeArrayOfString(pstStrings,strSize);
 -              return sciErr;
 -      }
 +    if(_pwstStrings == NULL || *_pwstStrings == NULL)
 +    {
 +        return sciErr;
 +    }
  
 -      for(int i = 0; i < (*_piRows * *_piCols); i++)
 -      {
 -              wchar_t* wString = to_wide_string(pstStrings[i]);
 -              if (wString)
 -              {
 -                      _piwLength[i] = (int)wcslen(wString);
 -                      FREE(wString);
 -                      wString = NULL;
 -              }
 -              else
 -              {
 -            _piwLength[i] = 0;
 -            addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to convert to wide string #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
 -            if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
 -            freeArrayOfString(pstStrings,strSize);
 +    for(int i = 0 ; i < pS->getSize() ; i++)
 +    {
-               if(_pwstStrings[i] == NULL)
-               {
-                       addErrorMessage(&sciErr, API_ERROR_INVALID_SUBSTRING_POINTER, _("%s: Invalid argument address"), "getMatrixOfString");
-                       return sciErr;
++        if(_pwstStrings[i] == NULL)
++        {
++            addErrorMessage(&sciErr, API_ERROR_INVALID_SUBSTRING_POINTER, _("%s: Invalid argument address"), "getMatrixOfString");
+             return sciErr;
 -              }
 -      }
 -
 -      if ( (_pwstStrings == NULL) || (*_pwstStrings == NULL) )
 -      {
 -              if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
 -              freeArrayOfString(pstStrings,strSize);
 -              return sciErr;
 -      }
 -      
 -      for (int i = 0; i < (*_piRows * *_piCols); i++)
 -      {
 -              if (pstStrings[i])
 -              {
 -                      wchar_t *wcstring = to_wide_string(pstStrings[i]);
 -                      if (wcstring)
 -                      {
 -                              if (_pwstStrings[i])
 -                              {
 -                                      wcscpy(_pwstStrings[i], wcstring);
 -                                      _piwLength[i] = (int)wcslen(_pwstStrings[i]);
 -                              }
 -                              else
 -                              {
 -                                      _pwstStrings[i] = NULL;
 -                                      _piwLength[i] = 0;
 -                              }
 -                              FREE(wcstring);
 -                              wcstring = NULL;
 -                      }
 -                      else
 -                      {
 -                              // case to_wide_string fails
 -                              _pwstStrings[i] = NULL;
 -                              _piwLength[i] = 0;
 -                addErrorMessage(&sciErr, API_ERROR_GET_WIDE_STRING, _("%s: Unable to convert to wide string #%d"), "getMatrixOfWideString", getRhsFromAddress(_pvCtx, _piAddress));
 -                if (piLenStrings) {FREE(piLenStrings);piLenStrings = NULL;}
 -                freeArrayOfString(pstStrings,strSize);
 -                return sciErr;
 -                      }
 -              }
 -              else
 -              {
 -                      // case to_wide_string fails
 -                      _pwstStrings[i] = NULL;
 -                      _piwLength[i] = 0;
 -              }
 -      }
 -
 -      freeArrayOfString(pstStrings, strSize);
 -      if (piLenStrings) {FREE(piLenStrings); piLenStrings = NULL;}
 +        }
 +        wcscpy( _pwstStrings[i], pS->get(i));
 +    }
  
--      return sciErr;
++    return sciErr;
  }
  /*--------------------------------------------------------------------------*/
  SciErr createMatrixOfWideString(void* _pvCtx, int _iVar, int _iRows, int _iCols, const wchar_t* const* _pstwStrings)
@@@ -360,7 -377,10 +360,8 @@@ includes/stack3.h 
  includes/stackinfo.h \
  includes/stackTypeVariable.h \
  includes/version.h \
- includes/getversion.h
+ includes/getversion.h \
 -includes/warningmode.h \
 -includes/Thread_Wrapper.h \
+ includes/backtrace_print.h
  
  if GUI
  USEANT=1
@@@ -858,7 -871,10 +858,8 @@@ includes/stack3.h 
  includes/stackinfo.h \
  includes/stackTypeVariable.h \
  includes/version.h \
- includes/getversion.h
+ includes/getversion.h \
 -includes/warningmode.h \
 -includes/Thread_Wrapper.h \
+ includes/backtrace_print.h
  
  @GUI_TRUE@USEANT = 1
  
@@@ -58,7 -60,11 +58,9 @@@ Source: modules\{#CORE}\includes\stack.
  Source: modules\{#CORE}\includes\stackinfo.h; DestDir: {app}\modules\{#CORE}\includes; Components: {#COMPN_SCILAB}
  Source: modules\{#CORE}\includes\stackTypeVariable.h; DestDir: {app}\modules\{#CORE}\includes; Components: {#COMPN_SCILAB}
  Source: modules\{#CORE}\includes\version.h; DestDir: {app}\modules\{#CORE}\includes; Components: {#COMPN_SCILAB}
 -Source: modules\{#CORE}\includes\warningmode.h; DestDir: {app}\modules\{#CORE}\includes; Components: {#COMPN_SCILAB}
  Source: modules\{#CORE}\includes\getversion.h; DestDir: {app}\modules\{#CORE}\includes; Components: {#COMPN_SCILAB}
+ Source: modules\{#CORE}\includes\Thread_Wrapper.h; DestDir: {app}\modules\{#CORE}\includes; Components: {#COMPN_SCILAB}
+ Source: modules\{#CORE}\includes\backtrace_print.h; DestDir: {app}\modules\{#CORE}\includes; Components: {#COMPN_SCILAB}
 -
  ;
  Source: modules\{#CORE}\macros\buildmacros.sce; DestDir: {app}\modules\{#CORE}\macros; Components: {#COMPN_SCILAB}
  Source: modules\{#CORE}\macros\buildmacros.bat; DestDir: {app}\modules\{#CORE}\macros; Components: {#COMPN_SCILAB}
@@@ -40,14 -40,25 +40,25 @@@ function ilib_gen_cleaner(makename,load
    mfprintf(fd,"// ------------------------------------------------------\n");
  
    if getos() == 'Windows' then
 -    // Load dynamic_link Internal lib if it"s not already loaded
 -    if ~ exists("dynamic_linkwindowslib") then
 -      load("SCI/modules/dynamic_link/macros/windows/lib");
 -    end
 -
 -    dlwGenerateCleaner(fd, makename);
 +    make_command = get_make_command(makename);
 +    mfprintf(fd,"if fileinfo(''%s%s'') <> [] then\n",makename,get_makefile_ext());
 +    mfprintf(fd,"  unix_s(''%s'');\n",make_command);
 +    mfprintf(fd,"  mdelete(''%s%s'');\n",makename,get_makefile_ext());
 +    mfprintf(fd,"end\n");
 +    mfprintf(fd,"// ------------------------------------------------------\n");
    end
  
+   if getos() == 'Windows' then
+     mfprintf(fd,"if isdir(''Debug'') then\n");
+     mfprintf(fd,"  rmdir(''Debug'',''s'');\n");
+     mfprintf(fd,"end\n");
+     mfprintf(fd,"// ------------------------------------------------------\n");
+     mfprintf(fd,"if isdir(''Release'') then\n");
+     mfprintf(fd,"  rmdir(''Release'',''s'');\n");
+     mfprintf(fd,"end\n");
+     mfprintf(fd,"// ------------------------------------------------------\n");
+   end
    if files <> [] then
      for i = 1:size(files,'*')
        if ( files(i) <> '' ) then
  Source: bin\external_objects.dll; DestDir: {app}\bin; Components: {#COMPN_EXTERNAL_OBJECTS}
  Source: bin\external_objects.lib; DestDir: {app}\bin; Components: {#COMPN_EXTERNAL_OBJECTS}
  ;
 -Source: modules\{#EXTERNAL_OBJECTS}\sci_gateway\{#EXTERNAL_OBJECTS}_gateway.xml; DestDir: {app}\modules\{#EXTERNAL_OBJECTS}\sci_gateway; Components: {#COMPN_EXTERNAL_OBJECTS}
 +;Source: modules\{#EXTERNAL_OBJECTS}\sci_gateway\{#EXTERNAL_OBJECTS}_gateway.xml; DestDir: {app}\modules\{#EXTERNAL_OBJECTS}\sci_gateway; Components: {#COMPN_EXTERNAL_OBJECTS}
  ;
- ;Source: modules\{#EXTERNAL_OBJECTS}\includes\*.h; DestDir: {app}\modules\{#EXTERNAL_OBJECTS}\includes; Components: {#COMPN_EXTERNAL_OBJECTS}
+ Source: modules\{#EXTERNAL_OBJECTS}\includes\*.h; DestDir: {app}\modules\{#EXTERNAL_OBJECTS}\includes; Components: {#COMPN_EXTERNAL_OBJECTS}
+ Source: modules\{#EXTERNAL_OBJECTS}\includes\*.hxx; DestDir: {app}\modules\{#EXTERNAL_OBJECTS}\includes; Components: {#COMPN_EXTERNAL_OBJECTS}
  ;
  Source: modules\{#EXTERNAL_OBJECTS}\etc\{#EXTERNAL_OBJECTS}.quit; DestDir: {app}\modules\{#EXTERNAL_OBJECTS}\etc; Components: {#COMPN_EXTERNAL_OBJECTS}
  Source: modules\{#EXTERNAL_OBJECTS}\etc\{#EXTERNAL_OBJECTS}.start; DestDir: {app}\modules\{#EXTERNAL_OBJECTS}\etc; Components: {#COMPN_EXTERNAL_OBJECTS}
  #include "Scierror.h"
  #include "BOOL.h"
  /*--------------------------------------------------------------------------*/
- enum Scaling {
-   Divide = -1,
-   None = 0,
-   Multiply = 1,
+ enum Scaling
+ {
+     Divide = -1,
+     None = 0,
+     Multiply = 1,
  };
  /*--------------------------------------------------------------------------*/
- extern void C2F(dscal)(int *n,double *da,double *dx,int *incx); /* blas routine */
+ extern void C2F(dscal)(int *n, double *da, double *dx, int *incx); /* blas routine */
 -extern void C2F(dset)(int *n, double *da, double *dx, int *incx); /* blas routine */
  /*--------------------------------------------------------------------------*/
- static int getArrayOfDouble(void* _pvApiCtx, int *piAddr, int *ndims, int **dims, double **Ar, double **Ai);
- static SciErr allocArrayOfDouble(void* _pvApiCtx, int _iVar, int ndims, int *dims, double **Ar);
- static SciErr allocComplexArrayOfDouble(void* _pvApiCtx, int _iVar, int ndims, int *dims, double **Ar, double **Ai);
- static SciErr getScalarIntArg(void* _pvApiCtx, int _iVar, char *fname, int *value);
- static SciErr getVectorIntArg(void* _pvApiCtx, int _iVar, char *fname, int *pndims, int **pDim);
- static BOOL isHyperMatrixMlist(void* _pvApiCtx, int *piAddressVar);
- static int sci_fft_gen(void* _pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt, guru_dim_struct gdim);
- static int sci_fft_2args(void* _pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt);
- static int sci_fft_3args(void* _pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt);
- static int sci_fft_4args(void* _pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt);
+ static int getArrayOfDouble(void* pvApiCtx, int *piAddr, int *ndims, int **dims, double **Ar, double **Ai);
+ static SciErr allocArrayOfDouble(void* _pvCtx, int _iVar, int ndims, int *dims, double **Ar);
+ static SciErr allocComplexArrayOfDouble(void* _pvCtx, int _iVar, int ndims, int *dims, double **Ar, double **Ai);
+ static SciErr getScalarIntArg(void* _pvCtx, int _iVar, char *fname, int *value);
+ static SciErr getVectorIntArg(void* _pvCtx, int _iVar, char *fname, int *pndims, int **pDim);
+ static BOOL isHyperMatrixMlist(void* _pvCtx, int *piAddressVar);
 -static int sci_fft_gen(char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt, guru_dim_struct gdim);
 -static int sci_fft_2args(char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt);
 -static int sci_fft_3args(char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt);
 -static int sci_fft_4args(char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt);
++static int sci_fft_gen(void* pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt, guru_dim_struct gdim);
++static int sci_fft_2args(void* pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt);
++static int sci_fft_3args(void* pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt);
++static int sci_fft_4args(void* pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt);
  /*--------------------------------------------------------------------------*/
  
- int WITHMKL=0;
+ int WITHMKL = 0;
  /* fftw function.
   *
   * Scilab Calling sequence :
   *          gives the result of the transform.
   *
   */
 -int sci_fftw(char *fname, unsigned long fname_len)
 +int sci_fftw(char *fname, void* pvApiCtx)
  {
-   SciErr sciErr;
-   int *piAddr = NULL;
-   char *option = NULL;
-   int iopt = 0; /* automatic r2c or c2r transform use decision */
-   int rhs = Rhs;
-   int iTypeOne = 0;
-   int ndimsA = 0;
-   int *dimsA = NULL;
-   double *Ar = NULL,*Ai = NULL;
-   int isn = FFTW_FORWARD;
-   WITHMKL=withMKL();
-   /****************************************
-    * Basic constraints on rhs arguments  *
-    ****************************************/
-   /* check min/max lhs/rhs arguments of scilab function */
-   CheckRhs(1, 5);
-   CheckLhs(1, 1);
-   sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
-   if(sciErr.iErr) {
-     printError(&sciErr, 0);
-     Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
-     return 0;
-   }
+     SciErr sciErr;
+     int *piAddr = NULL;
+     char *option = NULL;
+     int iopt = 0; /* automatic r2c or c2r transform use decision */
+     int rhs = Rhs;
+     int iTypeOne = 0;
+     int ndimsA = 0;
+     int *dimsA = NULL;
+     double *Ar = NULL, *Ai = NULL;
+     int isn = FFTW_FORWARD;
+     WITHMKL = withMKL();
+     /****************************************
+      * Basic constraints on rhs arguments  *
+      ****************************************/
+     /* check min/max lhs/rhs arguments of scilab function */
+     CheckRhs(1, 5);
+     CheckLhs(1, 1);
+     sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
+     if (sciErr.iErr)
+     {
+         printError(&sciErr, 0);
+         Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+         return 0;
+     }
  
-   sciErr = getVarType(pvApiCtx, piAddr, &iTypeOne);
-   if(sciErr.iErr) {
-     printError(&sciErr, 0);
-     Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
-     return 0;
-   }
+     sciErr = getVarType(pvApiCtx, piAddr, &iTypeOne);
+     if (sciErr.iErr)
+     {
+         printError(&sciErr, 0);
+         Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+         return 0;
+     }
  
-   if ((iTypeOne == sci_list) ||
-       (iTypeOne == sci_tlist)) {
-     OverLoad(1);
-     return 0;
-   }
+     if ((iTypeOne == sci_list) ||
+             (iTypeOne == sci_tlist))
+     {
+         OverLoad(1);
+         return 0;
+     }
  
-   if (iTypeOne == sci_mlist) {
-     /* We allow overload for not hypermatrix type */
-     if (!isHyperMatrixMlist(pvApiCtx, piAddr)) {
-       OverLoad(1);
-       return 0;
+     if (iTypeOne == sci_mlist)
+     {
+         /* We allow overload for not hypermatrix type */
+         if (!isHyperMatrixMlist(pvApiCtx, piAddr))
+         {
+             OverLoad(1);
+             return 0;
+         }
      }
-   }
  
-   /* checking if last argument is a potential option argument (character string) */
-   sciErr = getVarAddressFromPosition(pvApiCtx, Rhs, &piAddr);
-   if(sciErr.iErr) {
-     printError(&sciErr, 0);
-     Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, Rhs);
-     return 0;
-   }
-   if (isStringType(pvApiCtx, piAddr)) { /*  fftw(...,option); */
-     if(isScalar(pvApiCtx, piAddr)) {
-       if (getAllocatedSingleString(pvApiCtx, piAddr, &option)==0) {
-         if (strcmp("symmetric", option) == 0)  iopt=1; /*user assumes symmetry */
-         else if (strcmp("nonsymmetric", option) == 0) iopt=2; /*user claims full transform */
-         else {
-           Scierror(999,_("%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"),
-                    fname, Rhs, "\"symmetric\"", "\"nonsymmetric\"");
-           freeAllocatedSingleString(option);
-           option = NULL;
-           return 0;
+     /* checking if last argument is a potential option argument (character string) */
+     sciErr = getVarAddressFromPosition(pvApiCtx, Rhs, &piAddr);
+     if (sciErr.iErr)
+     {
+         printError(&sciErr, 0);
+         Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, Rhs);
+         return 0;
+     }
+     if (isStringType(pvApiCtx, piAddr))   /*  fftw(...,option); */
+     {
+         if (isScalar(pvApiCtx, piAddr))
+         {
+             if (getAllocatedSingleString(pvApiCtx, piAddr, &option) == 0)
+             {
+                 if (strcmp("symmetric", option) == 0)  iopt = 1; /*user assumes symmetry */
+                 else if (strcmp("nonsymmetric", option) == 0) iopt = 2; /*user claims full transform */
+                 else
+                 {
+                     Scierror(999, _("%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"),
+                              fname, Rhs, "\"symmetric\"", "\"nonsymmetric\"");
+                     freeAllocatedSingleString(option);
+                     option = NULL;
+                     return 0;
+                 }
+                 freeAllocatedSingleString(option);
+                 option = NULL;
+                 rhs = Rhs - 1;
+             }
+             else
+             {
+                 Scierror(999, _("%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"),
+                          fname, Rhs, "\"full\", \"same\"", "\"valid\"");
+                 return 0;
+             }
          }
-         freeAllocatedSingleString(option);
-         option = NULL;
-         rhs=Rhs-1;
-       }
-       else {
-         Scierror(999,_("%s: Wrong value for input argument #%d: '%s' or '%s' expected.\n"),
-                  fname, Rhs, "\"full\", \"same\"","\"valid\"");
+     }
+     /********************  Checking if isn is given  ************************************************/
+     if (rhs == 1)  /*only one rhs argument: forward fft*/
+     {
+         isn = FFTW_FORWARD; /* default value */
+     }
+     else   /*get isn out of second argument*/
+     {
+         sciErr = getScalarIntArg(pvApiCtx, 2, fname, &isn);
+         if (sciErr.iErr)
+         {
+             Scierror(sciErr.iErr, getErrorMessage(sciErr));
+             return 0;
+         }
+         /* check value of second rhs argument */
+         if ((isn !=  FFTW_FORWARD) && (isn !=  FFTW_BACKWARD))
+         {
+             Scierror(53, _("%s: Wrong value for input argument #%d: %d or %d expected.\n"),
+                      fname, 2, FFTW_FORWARD, FFTW_BACKWARD);
+             return(0);
+         }
+     }
+     /********************  getting the array A      ************************************************/
+     getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
+     if (!getArrayOfDouble(pvApiCtx, piAddr, &ndimsA, &dimsA, &Ar, &Ai))
+     {
+         Scierror(999, _("%s: Wrong type for argument #%d: Array of floating point numbers expected.\n"),
+                  fname, 1);
          return 0;
-       }
-     }
-   }
-   /********************  Checking if isn is given  ************************************************/
-   if (rhs==1) {  /*only one rhs argument: forward fft*/
-     isn=FFTW_FORWARD;/* default value */
-   }
-   else { /*get isn out of second argument*/
-     sciErr = getScalarIntArg(pvApiCtx, 2,fname, &isn);
-     if(sciErr.iErr) {
-       Scierror(sciErr.iErr, getErrorMessage(sciErr));
-       return 0;
-     }
-     /* check value of second rhs argument */
-     if ((isn !=  FFTW_FORWARD) && (isn !=  FFTW_BACKWARD)) {
-       Scierror(53,_("%s: Wrong value for input argument #%d: %d or %d expected.\n"),
-                fname,2,FFTW_FORWARD,FFTW_BACKWARD);
-       return(0);
-     }
-   }
-   /********************  getting the array A      ************************************************/
-   getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
-   if (!getArrayOfDouble(pvApiCtx, piAddr, &ndimsA, &dimsA, &Ar, &Ai)) {
-     Scierror(999,_("%s: Wrong type for argument %d: Array of floating point numbers expected.\n"),
-              fname, 1);
+     }
+     /********************  Select proper method     ************************************************/
+     if (rhs < 3)
+     {
+         /* fftw(A ,sign [,option])*/
 -        sci_fft_2args(fname, ndimsA, dimsA, Ar, Ai, isn, iopt);
++        sci_fft_2args(pvApiCtx, fname, ndimsA, dimsA, Ar, Ai, isn, iopt);
+     }
+     else if (rhs == 3)
+     {
+         /* fftw(A ,sign ,sel [,option])*/
 -        sci_fft_3args(fname, ndimsA, dimsA, Ar, Ai, isn, iopt);
++        sci_fft_3args(pvApiCtx, fname, ndimsA, dimsA, Ar, Ai, isn, iopt);
+     }
+     else if (rhs == 4)
+     {
+         /* fftw(A ,sign ,dim,incr [option])*/
 -        sci_fft_4args(fname, ndimsA, dimsA, Ar, Ai, isn, iopt);
++        sci_fft_4args(pvApiCtx, fname, ndimsA, dimsA, Ar, Ai, isn, iopt);
+     }
      return 0;
  }
  
  /*--------------------------------------------------------------------------*/
- int getArrayOfDouble(void* _pvApiCtx, int *piAddr, int *ndims, int **dims, double **Ar, double **Ai)
+ int getArrayOfDouble(void* _pvCtx, int *piAddr, int *ndims, int **dims, double **Ar, double **Ai)
  {
-   SciErr sciErr;
-   int *piAddrChild = NULL;
-   int *piOffset = NULL;
-   int *piData = NULL;
-   int nItems = 0;
-   int iRows = 0;
-   int iCols = 0;
-   int iType = 0;
-   sciErr = getVarType(_pvApiCtx, piAddr, &iType);
-   if (iType == sci_matrix) {
-     *ndims=2;
-     *dims=&(piAddr[1]);
-     if(isVarComplex(_pvApiCtx, piAddr)) {
-       getComplexMatrixOfDouble(_pvApiCtx, piAddr, &iRows, &iCols, Ar, Ai);
-     }
-     else {
-       getMatrixOfDouble(_pvApiCtx, piAddr, &iRows, &iCols, Ar);
-       *Ai=NULL;
-     }
-     return 1;
-   }
-   else if(iType == sci_mlist) {
-     sciErr = getListItemNumber(_pvApiCtx, piAddr, &nItems);
-     if (nItems != 3) return 0;
-     /*Check if first item is ["hm","dims","entries"] */
-     sciErr = getListItemAddress(_pvApiCtx, piAddr, 1, &piAddrChild);
-     sciErr = getVarType(_pvApiCtx, piAddrChild, &iType);
-     if (iType != sci_strings) return 0;
-     sciErr = getVarDimension(_pvApiCtx, piAddrChild, &iRows, &iCols);
-     if (iRows*iCols != 3) return 0;
-     /* Check if first entry of the first item is "hm" */
-     piOffset = piAddrChild+4;
-     if (piOffset[1]-piOffset[0] != 2)  return 0;
-     piData = piOffset + iRows * iCols + 1;
-     if (piData[0]!=17||piData[1]!=22) return 0; /* check "hm" */
-     /* Get second item dims */
-     sciErr = getListItemAddress(_pvApiCtx, piAddr, 2, &piAddrChild);
-     sciErr = getVarType(_pvApiCtx, piAddrChild,&iType);
-     if (iType != sci_ints) return 0;
-     sciErr = getMatrixOfInteger32(_pvApiCtx, piAddrChild, &iRows, &iCols, dims);
-     if(sciErr.iErr)  return 0;
-     *ndims=iRows*iCols;
-     /* Get thirds item entries */
-     sciErr = getListItemAddress(_pvApiCtx, piAddr, 3, &piAddrChild);
-     sciErr = getVarType(_pvApiCtx, piAddrChild,&iType);
-     if (iType != sci_matrix) return 0;
-     if(isVarComplex(_pvApiCtx, piAddrChild)) {
-       getComplexMatrixOfDouble(_pvApiCtx, piAddrChild, &iRows, &iCols, Ar, Ai);
-     }
-     else {
-       getMatrixOfDouble(_pvApiCtx, piAddrChild, &iRows, &iCols, Ar);
-       *Ai=NULL;
-     }
-     return 1;
-   }
-   else {
-     return 0;
-   }
+     SciErr sciErr;
+     int *piAddrChild = NULL;
+     int *piOffset = NULL;
+     int *piData = NULL;
+     int nItems = 0;
+     int iRows = 0;
+     int iCols = 0;
+     int iType = 0;
+     sciErr = getVarType(_pvCtx, piAddr, &iType);
+     if (iType == sci_matrix)
+     {
+         *ndims = 2;
+         *dims = &(piAddr[1]);
+         if (isVarComplex(_pvCtx, piAddr))
+         {
+             getComplexMatrixOfDouble(_pvCtx, piAddr, &iRows, &iCols, Ar, Ai);
+         }
+         else
+         {
+             getMatrixOfDouble(_pvCtx, piAddr, &iRows, &iCols, Ar);
+             *Ai = NULL;
+         }
+         return 1;
+     }
+     else if (iType == sci_mlist)
+     {
+         sciErr = getListItemNumber(_pvCtx, piAddr, &nItems);
+         if (nItems != 3) return 0;
+         /*Check if first item is ["hm","dims","entries"] */
+         sciErr = getListItemAddress(_pvCtx, piAddr, 1, &piAddrChild);
+         sciErr = getVarType(_pvCtx, piAddrChild, &iType);
+         if (iType != sci_strings) return 0;
+         sciErr = getVarDimension(_pvCtx, piAddrChild, &iRows, &iCols);
+         if (iRows*iCols != 3) return 0;
+         /* Check if first entry of the first item is "hm" */
+         piOffset = piAddrChild + 4;
+         if (piOffset[1] - piOffset[0] != 2)  return 0;
+         piData = piOffset + iRows * iCols + 1;
+         if (piData[0] != 17 || piData[1] != 22) return 0; /* check "hm" */
+         /* Get second item dims */
+         sciErr = getListItemAddress(_pvCtx, piAddr, 2, &piAddrChild);
+         sciErr = getVarType(_pvCtx, piAddrChild, &iType);
+         if (iType != sci_ints) return 0;
+         sciErr = getMatrixOfInteger32(_pvCtx, piAddrChild, &iRows, &iCols, dims);
+         if (sciErr.iErr)  return 0;
+         *ndims = iRows * iCols;
+         /* Get thirds item entries */
+         sciErr = getListItemAddress(_pvCtx, piAddr, 3, &piAddrChild);
+         sciErr = getVarType(_pvCtx, piAddrChild, &iType);
+         if (iType != sci_matrix) return 0;
+         if (isVarComplex(_pvCtx, piAddrChild))
+         {
+             getComplexMatrixOfDouble(_pvCtx, piAddrChild, &iRows, &iCols, Ar, Ai);
+         }
+         else
+         {
+             getMatrixOfDouble(_pvCtx, piAddrChild, &iRows, &iCols, Ar);
+             *Ai = NULL;
+         }
+         return 1;
+     }
+     else
+     {
+         return 0;
+     }
  }
  
- SciErr allocComplexArrayOfDouble(void* _pvApiCtx, int _iVar, int ndims, int *dims, double **Ar, double **Ai)
+ SciErr allocComplexArrayOfDouble(void* _pvCtx, int _iVar, int ndims, int *dims, double **Ar, double **Ai)
  {
-   SciErr sciErr;
-   int *piAddr= NULL;
-   if (ndims==2) {
-     sciErr = allocComplexMatrixOfDouble( _pvApiCtx,_iVar, dims[0], dims[1], Ar,Ai);
-     if (sciErr.iErr) return sciErr;
-   }
-   else {
-     int i = 0;
-     int n = 1;
-     const char * hmType[]={"hm","dims","entries"};
+     SciErr sciErr;
+     int *piAddr = NULL;
  
-     for (i=0;i<ndims;i++)   n *= dims[i];
+     if (ndims == 2)
+     {
+         sciErr = allocComplexMatrixOfDouble( _pvCtx, _iVar, dims[0], dims[1], Ar, Ai);
+         if (sciErr.iErr) return sciErr;
+     }
+     else
+     {
+         int i = 0;
+         int n = 1;
+         const char * hmType[] = {"hm", "dims", "entries"};
+         for (i = 0; i < ndims; i++)   n *= dims[i];
  
-     sciErr = createMList(_pvApiCtx, _iVar, 3, &piAddr);
-     if (sciErr.iErr) return sciErr;
+         sciErr = createMList(_pvCtx, _iVar, 3, &piAddr);
+         if (sciErr.iErr) return sciErr;
  
-     sciErr = createMatrixOfStringInList(_pvApiCtx, _iVar, piAddr, 1, 1, 3, hmType);
-     if (sciErr.iErr) return sciErr;
-     sciErr = createMatrixOfInteger32InList(_pvApiCtx, _iVar, piAddr, 2, 1, ndims, dims);
-     if (sciErr.iErr) return sciErr;
+         sciErr = createMatrixOfStringInList(_pvCtx, _iVar, piAddr, 1, 1, 3, hmType);
+         if (sciErr.iErr) return sciErr;
+         sciErr = createMatrixOfInteger32InList(_pvCtx, _iVar, piAddr, 2, 1, ndims, dims);
+         if (sciErr.iErr) return sciErr;
  
-     sciErr = allocComplexMatrixOfDoubleInList(_pvApiCtx, _iVar, piAddr, 3, n, 1, Ar, Ai);
-     if (sciErr.iErr) return sciErr;
-   }
-   return sciErr;
+         sciErr = allocComplexMatrixOfDoubleInList(_pvCtx, _iVar, piAddr, 3, n, 1, Ar, Ai);
+         if (sciErr.iErr) return sciErr;
+     }
+     return sciErr;
  }
  
- SciErr allocArrayOfDouble(void* _pvApiCtx, int _iVar,  int ndims, int *dims, double **Ar)
+ SciErr allocArrayOfDouble(void* _pvCtx, int _iVar,  int ndims, int *dims, double **Ar)
  {
-   SciErr sciErr;
-   int *piAddr      = NULL;
+     SciErr sciErr;
+     int *piAddr      = NULL;
  
  
-   if (ndims==2) {
-     sciErr = allocMatrixOfDouble( _pvApiCtx,_iVar, dims[0], dims[1], Ar);
-     if (sciErr.iErr) return sciErr;
-   }
-   else {
-     int i = 0;
-     int n = 1;
-     const char * hmType[]={"hm","dims","entries"};
-     for (i=0;i<ndims;i++) n *= dims[i];
-     sciErr = createMList(_pvApiCtx,  _iVar, 3, &piAddr);
-     if (sciErr.iErr) return sciErr;
-     sciErr = createMatrixOfStringInList(_pvApiCtx, _iVar, piAddr, 1, 1, 3, hmType);
-     if (sciErr.iErr) return sciErr;
-     sciErr = createMatrixOfInteger32InList(_pvApiCtx, _iVar, piAddr, 2, 1, ndims, dims);
-     if (sciErr.iErr) return sciErr;
-     sciErr = allocMatrixOfDoubleInList(_pvApiCtx, _iVar, piAddr, 3, n, 1, Ar);
-     if (sciErr.iErr) return sciErr;
-   }
-   return sciErr;
+     if (ndims == 2)
+     {
+         sciErr = allocMatrixOfDouble( _pvCtx, _iVar, dims[0], dims[1], Ar);
+         if (sciErr.iErr) return sciErr;
+     }
+     else
+     {
+         int i = 0;
+         int n = 1;
+         const char * hmType[] = {"hm", "dims", "entries"};
+         for (i = 0; i < ndims; i++) n *= dims[i];
+         sciErr = createMList(_pvCtx,  _iVar, 3, &piAddr);
+         if (sciErr.iErr) return sciErr;
+         sciErr = createMatrixOfStringInList(_pvCtx, _iVar, piAddr, 1, 1, 3, hmType);
+         if (sciErr.iErr) return sciErr;
+         sciErr = createMatrixOfInteger32InList(_pvCtx, _iVar, piAddr, 2, 1, ndims, dims);
+         if (sciErr.iErr) return sciErr;
+         sciErr = allocMatrixOfDoubleInList(_pvCtx, _iVar, piAddr, 3, n, 1, Ar);
+         if (sciErr.iErr) return sciErr;
+     }
+     return sciErr;
  }
  
- SciErr getScalarIntArg(void* _pvApiCtx, int _iVar, char *fname, int *value)
+ SciErr getScalarIntArg(void* _pvCtx, int _iVar, char *fname, int *value)
  {
-   SciErr sciErr;
-   int *piAddr = NULL;
-   int iType = 0;
-   int iPrec = 0;
-   double t_d=0.0;
-   char t_c=0;
-   unsigned char t_uc=0;
-   short t_s=0;
-   unsigned short t_us=0;
-   int t_i=0;
-   unsigned int  t_ui=0;
-   sciErr.iErr = 0; sciErr.iMsgCount = 0;
-   sciErr = getVarAddressFromPosition(_pvApiCtx, _iVar, &piAddr);
-   if(sciErr.iErr) {
-     addErrorMessage(&sciErr,API_ERROR_GET_STRING,  _("%s: Can not read input argument #%d.\n"),fname,_iVar);
-     return sciErr;
-   }
+     SciErr sciErr;
+     int *piAddr = NULL;
+     int iType = 0;
+     int iPrec = 0;
+     double t_d = 0.0;
+     char t_c = 0;
+     unsigned char t_uc = 0;
+     short t_s = 0;
+     unsigned short t_us = 0;
+     int t_i = 0;
+     unsigned int  t_ui = 0;
+     sciErr.iErr = 0;
+     sciErr.iMsgCount = 0;
+     sciErr = getVarAddressFromPosition(_pvCtx, _iVar, &piAddr);
+     if (sciErr.iErr)
+     {
+         addErrorMessage(&sciErr, API_ERROR_GET_STRING,  _("%s: Can not read input argument #%d.\n"), fname, _iVar);
+         return sciErr;
+     }
  
-   //check type
-   sciErr = getVarType(_pvApiCtx, piAddr, &iType);
-   if(sciErr.iErr) {
-     addErrorMessage(&sciErr,API_ERROR_GET_INT,  _("%s: Can not read input argument #%d.\n"),fname,_iVar);
-     return sciErr;
-   }
+     //check type
+     sciErr = getVarType(_pvCtx, piAddr, &iType);
+     if (sciErr.iErr)
+     {
+         addErrorMessage(&sciErr, API_ERROR_GET_INT,  _("%s: Can not read input argument #%d.\n"), fname, _iVar);
+         return sciErr;
+     }
  
-   if(!isScalar(_pvApiCtx, piAddr)) {
-     addErrorMessage(&sciErr,API_ERROR_GET_INT, _("%s: Wrong size for input argument #%d: A scalar expected.\n"), fname, _iVar);
-     return sciErr;
-   }
-   if(iType == sci_matrix) {
-     getScalarDouble(_pvApiCtx, piAddr, &t_d);
-     *value=(int)t_d;
-   }
-   else if (iType == sci_ints) {
-     sciErr = getMatrixOfIntegerPrecision(_pvApiCtx, piAddr, &iPrec);
-     if(sciErr.iErr) {
-       addErrorMessage(&sciErr,API_ERROR_GET_INT,_("%s: Can not read input argument #%d.\n"), fname, _iVar);
-       return sciErr;
-     }
-     switch(iPrec) {
-     case SCI_INT8 : {
-       getScalarInteger8(_pvApiCtx, piAddr, &t_c);
-       *value= (int)t_c;
-     }
-     case SCI_INT16 : {
-       getScalarInteger16(_pvApiCtx, piAddr, &t_s);
-       *value= (int)t_s;
-     }
-     case SCI_INT32 : {
-       getScalarInteger32(_pvApiCtx, piAddr, &t_i);
-       *value= (int)t_i;
-     }
-     case SCI_UINT8 : {
-       getScalarUnsignedInteger8(_pvApiCtx, piAddr, &t_uc);
-       *value= (int)t_uc;
-     }
-     case SCI_UINT16 : {
-       getScalarUnsignedInteger16(_pvApiCtx, piAddr, &t_us);
-       *value= (int)t_us;
-     }
-     case SCI_UINT32 : {
-       getScalarUnsignedInteger32(_pvApiCtx, piAddr, &t_ui);
-       *value= (int)t_ui;
-     }
-     }
-   }
-   else {
-     addErrorMessage(&sciErr,API_ERROR_GET_INT,
-                     _("%s: Wrong type for argument %d: An integer or a floating point number expected.\n"),
-                     fname, _iVar);
+     if (!isScalar(_pvCtx, piAddr))
+     {
+         addErrorMessage(&sciErr, API_ERROR_GET_INT, _("%s: Wrong size for input argument #%d: A scalar expected.\n"), fname, _iVar);
+         return sciErr;
+     }
+     if (iType == sci_matrix)
+     {
+         getScalarDouble(_pvCtx, piAddr, &t_d);
+         *value = (int)t_d;
+     }
+     else if (iType == sci_ints)
+     {
+         sciErr = getMatrixOfIntegerPrecision(_pvCtx, piAddr, &iPrec);
+         if (sciErr.iErr)
+         {
+             addErrorMessage(&sciErr, API_ERROR_GET_INT, _("%s: Can not read input argument #%d.\n"), fname, _iVar);
+             return sciErr;
+         }
+         switch (iPrec)
+         {
+             case SCI_INT8 :
+             {
+                 getScalarInteger8(_pvCtx, piAddr, &t_c);
+                 *value = (int)t_c;
+             }
+             case SCI_INT16 :
+             {
+                 getScalarInteger16(_pvCtx, piAddr, &t_s);
+                 *value = (int)t_s;
+             }
+             case SCI_INT32 :
+             {
+                 getScalarInteger32(_pvCtx, piAddr, &t_i);
+                 *value = (int)t_i;
+             }
+             case SCI_UINT8 :
+             {
+                 getScalarUnsignedInteger8(_pvCtx, piAddr, &t_uc);
+                 *value = (int)t_uc;
+             }
+             case SCI_UINT16 :
+             {
+                 getScalarUnsignedInteger16(_pvCtx, piAddr, &t_us);
+                 *value = (int)t_us;
+             }
+             case SCI_UINT32 :
+             {
+                 getScalarUnsignedInteger32(_pvCtx, piAddr, &t_ui);
+                 *value = (int)t_ui;
+             }
+         }
+     }
+     else
+     {
+         addErrorMessage(&sciErr, API_ERROR_GET_INT,
+                         _("%s: Wrong type for argument #%d: An integer or a floating point number expected.\n"),
+                         fname, _iVar);
+         return sciErr;
+     }
      return sciErr;
-   }
-   return sciErr;
  }
  
- SciErr getVectorIntArg(void* _pvApiCtx, int _iVar, char *fname,int *pndims, int **pDim)
+ SciErr getVectorIntArg(void* _pvCtx, int _iVar, char *fname, int *pndims, int **pDim)
  {
-   SciErr sciErr;
-   int *piAddr = NULL;
-   int iType = 0;
-   int iPrec = 0;
-   int mDim = 0;
-   int nDim = 0;
-   int *Dim=NULL;
-   int ndims=0;
-   double* p_d=NULL;
-   char* p_c=NULL;
-   unsigned char* p_uc=NULL;
-   short* p_s=NULL;
-   unsigned short* p_us=NULL;
-   int* p_i=NULL;
-   unsigned int*  p_ui=NULL;
-   int i = 0;
-   sciErr.iErr = 0; sciErr.iMsgCount = 0;
-   getVarAddressFromPosition(_pvApiCtx, _iVar, &piAddr);
-   //check type
-   getVarType(_pvApiCtx, piAddr, &iType);
-   if (isVarMatrixType(_pvApiCtx, piAddr) == 0) {
-     addErrorMessage(&sciErr,API_ERROR_GET_INT, _("%s: Wrong type for input argument #%d.\n"), fname, _iVar);
-     return sciErr;
-   }
+     SciErr sciErr;
+     int *piAddr = NULL;
+     int iType = 0;
+     int iPrec = 0;
+     int mDim = 0;
+     int nDim = 0;
+     int *Dim = NULL;
+     int ndims = 0;
+     double* p_d = NULL;
+     char* p_c = NULL;
+     unsigned char* p_uc = NULL;
+     short* p_s = NULL;
+     unsigned short* p_us = NULL;
+     int* p_i = NULL;
+     unsigned int*  p_ui = NULL;
+     int i = 0;
  
-   getVarDimension(_pvApiCtx, piAddr, &mDim, &nDim);
+     sciErr.iErr = 0;
+     sciErr.iMsgCount = 0;
  
-   ndims = mDim * nDim;
-   *pndims=ndims;
-   if (ndims <= 0) {
-     addErrorMessage(&sciErr,API_ERROR_GET_INT,
-                     _("%s: Wrong size for input argument #%d.\n"), fname, _iVar);
-     return sciErr;
-   }
-   if ((Dim=(int *)MALLOC(ndims*sizeof(int)))==NULL) {
-     addErrorMessage(&sciErr,API_ERROR_GET_INT,
-                     _("%s: Cannot allocate more memory.\n"), fname);
-     return sciErr;
-   }
-   *pDim=Dim;
-   if(iType == sci_matrix) {
-     sciErr = getMatrixOfDouble(_pvApiCtx, piAddr, &mDim, &nDim, &p_d);
-     for (i=0;i<ndims;i++)  Dim[i] = (int)(p_d[i]);
-   }
-   else if (iType == sci_ints) {
-     getMatrixOfIntegerPrecision(_pvApiCtx, piAddr, &iPrec);
-     switch(iPrec) {
-     case SCI_INT8 :
-       getMatrixOfInteger8(_pvApiCtx, piAddr, &mDim, &nDim, &p_c);
-       for (i=0;i<ndims;i++) Dim[i]  = (int)(p_c[i]);
-       break;
-     case SCI_INT16 :
-       getMatrixOfInteger16(_pvApiCtx, piAddr, &mDim, &nDim, &p_s);
-       for (i=0;i<ndims;i++) Dim[i]  = (int)(p_s[i]);
-       break;
-     case SCI_INT32 :
-       getMatrixOfInteger32(_pvApiCtx, piAddr, &mDim, &nDim, &p_i);
-       for (i=0;i<ndims;i++)  Dim[i]  = (int)(p_i[i]);
-       break;
-     case SCI_UINT8 :
-       getMatrixOfUnsignedInteger8(_pvApiCtx, piAddr, &mDim, &nDim, &p_uc);
-       for (i=0;i<ndims;i++) Dim[i]  = (int)(p_uc[i]);
-       break;
-     case SCI_UINT16 :
-       getMatrixOfUnsignedInteger16(_pvApiCtx, piAddr, &mDim, &nDim, &p_us);
-       for (i=0;i<ndims;i++) Dim[i]  = (int) p_us[i];
-       break;
-     case SCI_UINT32 :
-       getMatrixOfUnsignedInteger32(_pvApiCtx, piAddr, &mDim, &nDim, &p_ui);
-       for (i=0;i<ndims;i++) Dim[i]  = (int)(p_ui[i]);
-       break;
-     }
-   }
-   else {
-     FREE(Dim);
-     Dim=NULL;
-     addErrorMessage(&sciErr,API_ERROR_GET_INT,
-                     _("%s: Wrong type for argument %d: An array of floating point or integer numbers expected.\n"), fname, _iVar);
+     getVarAddressFromPosition(_pvCtx, _iVar, &piAddr);
+     //check type
+     getVarType(_pvCtx, piAddr, &iType);
+     if (isVarMatrixType(_pvCtx, piAddr) == 0)
+     {
+         addErrorMessage(&sciErr, API_ERROR_GET_INT, _("%s: Wrong type for input argument #%d.\n"), fname, _iVar);
+         return sciErr;
+     }
+     getVarDimension(_pvCtx, piAddr, &mDim, &nDim);
+     ndims = mDim * nDim;
+     *pndims = ndims;
+     if (ndims <= 0)
+     {
+         addErrorMessage(&sciErr, API_ERROR_GET_INT,
+                         _("%s: Wrong size for input argument #%d.\n"), fname, _iVar);
+         return sciErr;
+     }
+     if ((Dim = (int *)MALLOC(ndims * sizeof(int))) == NULL)
+     {
+         addErrorMessage(&sciErr, API_ERROR_GET_INT,
+                         _("%s: Cannot allocate more memory.\n"), fname);
+         return sciErr;
+     }
+     *pDim = Dim;
+     if (iType == sci_matrix)
+     {
+         sciErr = getMatrixOfDouble(_pvCtx, piAddr, &mDim, &nDim, &p_d);
+         for (i = 0; i < ndims; i++)  Dim[i] = (int)(p_d[i]);
+     }
+     else if (iType == sci_ints)
+     {
+         getMatrixOfIntegerPrecision(_pvCtx, piAddr, &iPrec);
+         switch (iPrec)
+         {
+             case SCI_INT8 :
+                 getMatrixOfInteger8(_pvCtx, piAddr, &mDim, &nDim, &p_c);
+                 for (i = 0; i < ndims; i++) Dim[i]  = (int)(p_c[i]);
+                 break;
+             case SCI_INT16 :
+                 getMatrixOfInteger16(_pvCtx, piAddr, &mDim, &nDim, &p_s);
+                 for (i = 0; i < ndims; i++) Dim[i]  = (int)(p_s[i]);
+                 break;
+             case SCI_INT32 :
+                 getMatrixOfInteger32(_pvCtx, piAddr, &mDim, &nDim, &p_i);
+                 for (i = 0; i < ndims; i++)  Dim[i]  = (int)(p_i[i]);
+                 break;
+             case SCI_UINT8 :
+                 getMatrixOfUnsignedInteger8(_pvCtx, piAddr, &mDim, &nDim, &p_uc);
+                 for (i = 0; i < ndims; i++) Dim[i]  = (int)(p_uc[i]);
+                 break;
+             case SCI_UINT16 :
+                 getMatrixOfUnsignedInteger16(_pvCtx, piAddr, &mDim, &nDim, &p_us);
+                 for (i = 0; i < ndims; i++) Dim[i]  = (int) p_us[i];
+                 break;
+             case SCI_UINT32 :
+                 getMatrixOfUnsignedInteger32(_pvCtx, piAddr, &mDim, &nDim, &p_ui);
+                 for (i = 0; i < ndims; i++) Dim[i]  = (int)(p_ui[i]);
+                 break;
+         }
+     }
+     else
+     {
+         FREE(Dim);
+         Dim = NULL;
+         addErrorMessage(&sciErr, API_ERROR_GET_INT,
+                         _("%s: Wrong type for argument #%d: An array of floating point or integer numbers expected.\n"), fname, _iVar);
+         return sciErr;
+     }
      return sciErr;
-   }
-   return sciErr;
  }
  
- int sci_fft_2args(void *pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt)
 -int sci_fft_2args(char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt)
++int sci_fft_2args(void* pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt)
  {
-   /*FFTW specific library variable */
-   guru_dim_struct gdim={0,NULL,0,NULL};
-   /* local variable */
-   int ndims = 0; /* number of non singleton dimensions */
-   int first_nonsingleton = -1;
-   int i = 0,j = 0;
-   int prd = 1;
-   /* ignore singleton dimensions */
-   first_nonsingleton = -1;
-   ndims = 0;
-   for (i=0;i<ndimsA;i++) {
-     if (dimsA[i]>1) {
-       ndims++;
-       if (first_nonsingleton<0) first_nonsingleton = i;
-     }
-   }
-   /* void or scalar input gives void output or scalar*/
-   if (ndims ==0 ) {
-     LhsVar(1) =  1;
-     PutLhsVar();
-     return(0);
-   }
+     /*FFTW specific library variable */
+     guru_dim_struct gdim = {0, NULL, 0, NULL};
+     /* local variable */
+     int ndims = 0; /* number of non singleton dimensions */
+     int first_nonsingleton = -1;
+     int i = 0, j = 0;
+     int prd = 1;
+     /* ignore singleton dimensions */
+     first_nonsingleton = -1;
+     ndims = 0;
+     for (i = 0; i < ndimsA; i++)
+     {
+         if (dimsA[i] > 1)
+         {
+             ndims++;
+             if (first_nonsingleton < 0) first_nonsingleton = i;
+         }
+     }
  
-   gdim.rank=ndims;
-   if ((gdim.dims=(fftw_iodim *)MALLOC(sizeof(fftw_iodim)*gdim.rank))==NULL) {
-     Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-     goto ERR;
-   }
+     /* void or scalar input gives void output or scalar*/
+     if (ndims == 0 )
+     {
+         LhsVar(1) =  1;
+         PutLhsVar();
+         return(0);
+     }
+     gdim.rank = ndims;
+     if ((gdim.dims = (fftw_iodim *)MALLOC(sizeof(fftw_iodim) * gdim.rank)) == NULL)
+     {
+         Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+         goto ERR;
+     }
  
-   j = 0;
-   prd = 1;
-   for (i=(first_nonsingleton);i<ndimsA;i++) {
-     if (dimsA[i]>1) {
-       gdim.dims[j].n = dimsA[i];
-       gdim.dims[j].is = prd;
-       gdim.dims[j].os = prd;
-       prd *= dimsA[i];
-       j++;
+     j = 0;
+     prd = 1;
+     for (i = (first_nonsingleton); i < ndimsA; i++)
+     {
+         if (dimsA[i] > 1)
+         {
+             gdim.dims[j].n = dimsA[i];
+             gdim.dims[j].is = prd;
+             gdim.dims[j].os = prd;
+             prd *= dimsA[i];
+             j++;
+         }
      }
-   }
-   gdim.howmany_rank=0;
-   gdim.howmany_dims=NULL;
+     gdim.howmany_rank = 0;
+     gdim.howmany_dims = NULL;
  
  
-   if (!sci_fft_gen(pvApiCtx, fname, ndimsA, dimsA,  Ar,  Ai, isn,iopt,gdim))  goto ERR;
 -    if (!sci_fft_gen(fname, ndimsA, dimsA,  Ar,  Ai, isn, iopt, gdim))  goto ERR;
++    if (!sci_fft_gen(pvApiCtx, fname, ndimsA, dimsA,  Ar,  Ai, isn, iopt, gdim))  goto ERR;
  
  
-   /***********************************
-    * Return results in lhs argument *
-    ***********************************/
+     /***********************************
+      * Return results in lhs argument *
+      ***********************************/
  
-   PutLhsVar();
-  ERR:
-   FREE(gdim.dims);
-   FREE(gdim.howmany_dims);
-   return(0);
+     PutLhsVar();
+ ERR:
+     FREE(gdim.dims);
+     FREE(gdim.howmany_dims);
+     return(0);
  }
  
  
- int  sci_fft_3args(void *pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt)
 -int  sci_fft_3args(char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt)
++int  sci_fft_3args(void* pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt)
  {
-   /* API variables */
-   SciErr sciErr;
-   int *piAddr = NULL;
-   int *Sel=NULL;
-   int rank=0;
-   /*FFTW specific library variable */
-   guru_dim_struct gdim={0,NULL,0,NULL};
-    /* local variable */
-   int ndims = 0;
-   int first_nonsingleton = -1;
-   int ih = 0;
-   int pd = 1; /* used to store prod(Dims(1:sel(k-1)))*/
-   int pds = 1; /* used to store prod(Dims(sel(k-1):sel(k)))*/
-   int i = 0,j = 0;
-   /* ignore singleton dimensions */
-   first_nonsingleton = -1;
-   ndims = 0;
-   for (i=0;i<ndimsA;i++) {
-     if (dimsA[i]>1) {
-       ndims++;
-       if (first_nonsingleton<0) first_nonsingleton = i;
-     }
-   }
-   /* void or scalar input gives void output or scalar*/
-   if (ndims ==0 ) {
-     LhsVar(1) =  1;
+     /* API variables */
+     SciErr sciErr;
+     int *piAddr = NULL;
+     int *Sel = NULL;
+     int rank = 0;
+     /*FFTW specific library variable */
+     guru_dim_struct gdim = {0, NULL, 0, NULL};
+     /* local variable */
+     int ndims = 0;
+     int first_nonsingleton = -1;
+     int ih = 0;
+     int pd = 1; /* used to store prod(Dims(1:sel(k-1)))*/
+     int pds = 1; /* used to store prod(Dims(sel(k-1):sel(k)))*/
+     int i = 0, j = 0;
+     /* ignore singleton dimensions */
+     first_nonsingleton = -1;
+     ndims = 0;
+     for (i = 0; i < ndimsA; i++)
+     {
+         if (dimsA[i] > 1)
+         {
+             ndims++;
+             if (first_nonsingleton < 0) first_nonsingleton = i;
+         }
+     }
+     /* void or scalar input gives void output or scalar*/
+     if (ndims == 0 )
+     {
+         LhsVar(1) =  1;
+         PutLhsVar();
+         return(0);
+     }
+     /******************** get and check third argument (sel) ****************************************/
+     getVarAddressFromPosition(pvApiCtx, 3, &piAddr);
+     if (isVarMatrixType(pvApiCtx, piAddr) == 0)
+     {
+         Scierror(999, _("%s: Wrong type for input argument #%d.\n"), fname, 3);
+         goto ERR;
+     }
+     sciErr = getVectorIntArg(pvApiCtx, 3, fname, &rank, &Sel);
+     if (sciErr.iErr)
+     {
+         Scierror(sciErr.iErr, getErrorMessage(sciErr));
+         goto ERR;
+     }
+     /* size of Sel must be less than ndimsA */
+     if (rank <= 0 || rank >= ndimsA)
+     {
+         Scierror(999, _("%s: Wrong size for input argument #%d: Must be between %d and %d.\n"), fname, 3, 1, ndimsA - 1);
+         goto ERR;
+     }
+     /* check values of Sel[i] */
+     for (i = 0; i < rank; i++)
+     {
+         if (Sel[i] <= 0)
+         {
+             Scierror(999, _("%s: Wrong values for input argument #%d: Positive integers expected.\n"), fname, 3);
+             goto ERR;
+         }
+         if (Sel[i] > ndimsA)
+         {
+             Scierror(999, _("%s: Wrong values for input argument #%d: Elements must be less than %d.\n"), fname, 3, ndimsA);
+             goto ERR;
+         }
+         if (i > 0 && Sel[i] <= Sel[i - 1])
+         {
+             Scierror(999, _("%s: Wrong values for input argument #%d: Elements must be in increasing order.\n"), fname, 3);
+             goto ERR;
+         }
+     }
+     /* Create  gdim struct */
+     gdim.rank = rank;
+     if ((gdim.dims = (fftw_iodim *)MALLOC(sizeof(fftw_iodim) * gdim.rank)) == NULL)
+     {
+         Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+         goto ERR;
+     }
+     pd = 1; /* used to store prod(Dims(1:sel(k-1)))*/
+     pds = 1; /* used to store prod(Dims(sel(k-1):sel(k)))*/
+     j = 0;
+     for (i = 0; i < ndimsA; i++)
+     {
+         if (j >= gdim.rank) break;
+         if (Sel[j] == i + 1)
+         {
+             gdim.dims[j].n = dimsA[i];
+             gdim.dims[j].is = pd;
+             gdim.dims[j].os = pd;
+             j++;
+         }
+         pd *= dimsA[i];
+     }
+     /* Compute howmany_rank based on jumps in the Sel sequence */
+     gdim.howmany_rank = 0;
+     if ((Sel[0] != 1) && (Sel[0] != ndimsA)) gdim.howmany_rank++;
+     for (i = 1; i <= rank - 1; i++)
+         if (Sel[i] != Sel[i - 1] + 1) gdim.howmany_rank++;
+     if ((Sel[rank - 1] != ndimsA) || (rank == 1)) gdim.howmany_rank++;
+     /* Fill the howmany_dims struct */
+     if (gdim.howmany_rank > 0)
+     {
+         /* it must be the case */
+         if ((gdim.howmany_dims = (fftw_iodim *)MALLOC(gdim.howmany_rank * sizeof(fftw_iodim))) == NULL)
+         {
+             Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+             goto ERR;
+         }
+         pd = 1;
+         for (j = 1; j <= (Sel[0] - 1); j++) pd *= dimsA[j - 1]; /*prod(Dims(1:(sel(1)-1)))*/
+         ih = 0;
+         if ((Sel[0] != 1) && (Sel[0] != ndimsA))
+         {
+             /* First seleted dimension */
+             gdim.howmany_dims[ih].is = 1;
+             gdim.howmany_dims[ih].os = 1;
+             gdim.howmany_dims[ih].n = pd;
+             ih++;
+         }
+         pd *= dimsA[Sel[0] - 1]; /*prod(Dims(1:sel(1)))*/
+         for (i = 2; i <= rank; i++)
+         {
+             /* intermediate selected dimensions */
+             if (Sel[i - 1] != Sel[i - 2] + 1)
+             {
+                 pds = 1;
+                 for (j = (Sel[i - 2] + 1); j <= (Sel[i - 1] - 1); j++) pds *= dimsA[j - 1]; /*prod(Dims(sel(i-1)+1:(sel(i)-1)))*/
+                 gdim.howmany_dims[ih].is = pd;
+                 gdim.howmany_dims[ih].os = pd;
+                 gdim.howmany_dims[ih].n = pds;
+                 ih++;
+             }
+             pd *= pds * dimsA[Sel[i - 1] - 1]; /*prod(Dims(1:sel(i)))*/
+         }
+         if (Sel[rank - 1] != ndimsA)
+         {
+             /* last selected dimension*/
+             pds = 1;
+             for (j = (Sel[rank - 1] + 1); j <= ndimsA; j++) pds *= dimsA[j - 1]; /*prod(Dims(sel(i-1)+1:(sel(i)-1)))*/
+             gdim.howmany_dims[ih].is = pd;
+             gdim.howmany_dims[ih].os = pd;
+             gdim.howmany_dims[ih].n = pds;
+             ih++;
+         }
+         else if (rank == 1)
+         {
+             /* the only selected dimension is the last one */
+             gdim.howmany_dims[ih].is = 1;
+             gdim.howmany_dims[ih].os = 1;
+             gdim.howmany_dims[ih].n = pd / dimsA[Sel[0] - 1];
+             ih++;
+         }
+     }
 -    if (!sci_fft_gen(fname, ndimsA, dimsA, Ar,  Ai, isn, iopt, gdim))  goto ERR;
++    if (!sci_fft_gen(pvApiCtx, fname, ndimsA, dimsA, Ar,  Ai, isn, iopt, gdim))  goto ERR;
+     /***********************************
+      * Return results in lhs argument *
+      ***********************************/
      PutLhsVar();
+ ERR:
+     FREE(gdim.dims);
+     FREE(gdim.howmany_dims);
      return(0);
-   }
-   /******************** get and check third argument (sel) ****************************************/
-   getVarAddressFromPosition(pvApiCtx, 3, &piAddr);
-   if (isVarMatrixType(pvApiCtx, piAddr) == 0) {
-     Scierror(999, _("%s: Wrong type for input argument #%d.\n"), fname, 3);
-     goto ERR;
-   }
-   sciErr = getVectorIntArg(pvApiCtx, 3,fname, &rank,&Sel);
-   if(sciErr.iErr) {
-     Scierror(sciErr.iErr, getErrorMessage(sciErr));
-     goto ERR;
-   }
-   /* size of Sel must be less than ndimsA */
-   if (rank<=0||rank>=ndimsA) {
-     Scierror(999,_("%s: Wrong size for input argument #%d: Must be between %d and %d.\n"),fname,3,1,ndimsA-1);
-     goto ERR;
-   }
-   /* check values of Sel[i] */
-   for (i=0;i<rank;i++) {
-     if (Sel[i]<=0) {
-       Scierror(999,_("%s: Wrong values for input argument #%d:Positive integers expected.\n"),fname,3);
-       goto ERR;
-     }
-     if (Sel[i]>ndimsA) {
-       Scierror(999,_("%s: Wrong values for input argument #%d: Elements must be less than %d.\n"),fname,3,ndimsA);
-       goto ERR;
-     }
-     if (i>0&&Sel[i]<=Sel[i-1]) {
-       Scierror(999,_("%s: Wrong values for input argument #%d: Elements must be in increasing order.\n"),fname,3);
-       goto ERR;
-     }
-   }
-   /* Create  gdim struct */
-   gdim.rank=rank;
-   if ((gdim.dims=(fftw_iodim *)MALLOC(sizeof(fftw_iodim)*gdim.rank))==NULL) {
-     Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-     goto ERR;
-   }
-   pd = 1; /* used to store prod(Dims(1:sel(k-1)))*/
-   pds = 1; /* used to store prod(Dims(sel(k-1):sel(k)))*/
-   j = 0;
-   for (i=0;i<ndimsA;i++) {
-     if (j>=gdim.rank) break;
-     if (Sel[j]==i+1) {
-       gdim.dims[j].n = dimsA[i];
-       gdim.dims[j].is = pd;
-       gdim.dims[j].os = pd;
-       j++;
-     }
-     pd *= dimsA[i];
-   }
-   /* Compute howmany_rank based on jumps in the Sel sequence */
-   gdim.howmany_rank=0;
-   if ((Sel[0]!=1)&&(Sel[0]!=ndimsA)) gdim.howmany_rank++;
-   for (i=1;i<=rank-1;i++)
-     if (Sel[i] != Sel[i-1]+1) gdim.howmany_rank++;
-   if ((Sel[rank-1] != ndimsA)||(rank==1)) gdim.howmany_rank++;
-   /* Fill the howmany_dims struct */
-   if (gdim.howmany_rank>0) {
-     /* it must be the case */
-     if ((gdim.howmany_dims=(fftw_iodim *)MALLOC(gdim.howmany_rank*sizeof(fftw_iodim)))==NULL) {
-       Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-       goto ERR;
-     }
-     pd = 1;
-     for (j=1;j<=(Sel[0]-1);j++) pd *=dimsA[j-1];/*prod(Dims(1:(sel(1)-1)))*/
-     ih = 0;
-     if ((Sel[0]!=1)&&(Sel[0]!=ndimsA)) {
-       /* First seleted dimension */
-       gdim.howmany_dims[ih].is = 1;
-       gdim.howmany_dims[ih].os = 1;
-       gdim.howmany_dims[ih].n = pd;
-       ih++;
-     }
-     pd *= dimsA[Sel[0]-1];/*prod(Dims(1:sel(1)))*/
-     for (i=2;i<=rank;i++) {
-       /* intermediate selected dimensions */
-       if (Sel[i-1]!=Sel[i-2]+1) {
-         pds = 1;
-         for (j=(Sel[i-2]+1);j<=(Sel[i-1]-1);j++) pds *= dimsA[j-1]; /*prod(Dims(sel(i-1)+1:(sel(i)-1)))*/
-         gdim.howmany_dims[ih].is = pd;
-         gdim.howmany_dims[ih].os = pd;
-         gdim.howmany_dims[ih].n = pds;
-         ih++;
-       }
-       pd *= pds*dimsA[Sel[i-1]-1]; /*prod(Dims(1:sel(i)))*/
-     }
-     if (Sel[rank-1]!=ndimsA) {
-       /* last selected dimension*/
-       pds = 1;
-       for (j=(Sel[rank-1]+1);j<=ndimsA;j++) pds *= dimsA[j-1]; /*prod(Dims(sel(i-1)+1:(sel(i)-1)))*/
-       gdim.howmany_dims[ih].is = pd;
-       gdim.howmany_dims[ih].os = pd;
-       gdim.howmany_dims[ih].n = pds;
-       ih++;
-     }
-     else if (rank==1) {
-       /* the only selected dimension is the last one */
-       gdim.howmany_dims[ih].is = 1;
-       gdim.howmany_dims[ih].os = 1;
-       gdim.howmany_dims[ih].n = pd/dimsA[Sel[0]-1];
-       ih++;
-     }
-   }
-   if (!sci_fft_gen(pvApiCtx, fname, ndimsA, dimsA, Ar,  Ai, isn,iopt,gdim))  goto ERR;
-   /***********************************
-    * Return results in lhs argument *
-    ***********************************/
-   PutLhsVar();
-  ERR:
-   FREE(gdim.dims);
-   FREE(gdim.howmany_dims);
-   return(0);
  }
  
- int sci_fft_4args(void *pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt)
 -int sci_fft_4args(char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt)
++int sci_fft_4args(void* pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt)
  {
-   /* API variables */
-   SciErr sciErr;
-   int *piAddr = NULL;
-   /* Input  array variables */
-   int *Dim1 = NULL;
-   int ndims = 0;
-   int *Incr = NULL;
-   int nincr = 0;
-   /*FFTW specific library variable */
-   guru_dim_struct gdim={0,NULL,0,NULL};
-   /* input/output address for transform variables */
-   /* local variable */
-   int *Dim = NULL,*Sel = NULL;
-   int pd = 1;
-   int pds = 1;
-   int nd = 0;
-   int rank = 0;
-   int i = 0,j = 0,k = 0, lA = 1;
-   for (i=0;i<ndimsA;i++) {
-     lA *= dimsA[i];
-   }
-   /* void or scalar input gives void output or scalar*/
-   if (lA <= 1 ) {
-     LhsVar(1) =  1;
-     PutLhsVar();
-     return(0);
-   }
-   /******************** get and check third argument (dim) ****************************************/
-   getVarAddressFromPosition(pvApiCtx, 3, &piAddr);
-   if (isVarMatrixType(pvApiCtx, piAddr) == 0) {
-     Scierror(999, _("%s: Wrong type for input argument #%d.\n"), fname, 3);
-     goto ERR;
-   }
-   sciErr = getVectorIntArg(pvApiCtx, 3,fname, &ndims,&Dim1);
-   if(sciErr.iErr) {
-     Scierror(sciErr.iErr, getErrorMessage(sciErr));
-     goto ERR;
-   }
-   /* check values of Dim1[i} */
-   pd = 1;
-   for (i=0;i<ndims;i++) {
-     if (Dim1[i] <= 1) {
-       Scierror(999,_("%s: Wrong values for input argument #%d: Elements must be greater than %d.\n"),fname,3,1);
-       goto ERR;
-     }
-     pd *= Dim1[i];
-   }
-   if ( pd>lA) {
-     Scierror(999,_("%s: Wrong values for input argument #%d: Must be less than %d.\n"),fname,3,lA);
-     goto ERR;
-   }
-   if (lA%pd) {
-     Scierror(999,_("%s: Wrong values for input argument #%d: Must be a divisor of %d.\n"),fname,3,lA);
-     goto ERR;
-   }
-   /******************** get and check fourth argument (incr) ****************************************/
-   sciErr = getVectorIntArg(pvApiCtx, 4,fname, &nincr,&Incr);
-   if(sciErr.iErr) {
-     Scierror(sciErr.iErr, getErrorMessage(sciErr));
-     goto ERR;
-   }
-   if (nincr!=ndims) {
-     Scierror(999,_("%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"),fname,3,4);
-     goto ERR;
-   }
-   /* check values of Incr[i] */
-   if (Incr[0]<=0) {
-     Scierror(999,_("%s: Wrong values for input argument #%d: Positive integers expected.\n"),fname,4);
-     goto ERR;
-   }
-   for (i=0;i<ndims;i++) {
-     if (lA%Incr[i]) {
-       Scierror(999,_("%s: Wrong values for input argument #%d: Elements must be divisors of %d.\n"),fname,3,lA);
-       goto ERR;
-     }
-     if (i>0&&(Incr[i]<=Incr[i-1])) {
-       Scierror(999,_("%s: Wrong values for input argument #%d: Elements must be in increasing ""order.\n"),fname,4);
-       goto ERR;
-     }
-   }
-   if ((Dim=(int *)MALLOC((2*ndims+1)*sizeof(int)))==NULL) {
-     Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-     goto ERR;
-   }
-   if ((Sel=(int *)MALLOC((ndims)*sizeof(int)))==NULL) {
-     Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-     goto ERR;
-   }
-   /*Transform  Dim1 and Incr into Dim and Sel and check validity*/
-   nd = 0;
-   pd = 1;
-   if (Incr[0] != 1) {
-     Dim[nd++] = Incr[0];
-     pd *= Incr[0];
-   }
-   Dim[nd++] = Dim1[0];
-   pd *= Dim1[0];
-   Sel[0] = nd;
-   for (k=1;k<ndims;k++) {
-     if (Incr[k]%pd != 0) {
-       Scierror(999,_("%s: Incompatible input arguments #%d and #%d.\n"),fname,3,4);
-       goto ERR;
-     }
-     if (Incr[k] != pd) {
-       Dim[nd++] = (int)(Incr[k]/pd);
-       pd = Incr[k];
-     }
-     Dim[nd++] = Dim1[k];
-     pd *= Dim1[k];
-     Sel[k] = nd;
-   }
-   if (pd<lA) {
-     if (lA%pd != 0) {
-       Scierror(999,_("%s: Incompatible input arguments #%d and #%d.\n"),fname,3,4);
-       goto ERR;
-     }
-     Dim[nd++] = (int)(lA/pd);
-   }
-   rank = ndims;
-   ndims = nd;
-   /* now one  same algorithm than sci_fft_3args applies */
-   /* Create  gdim struct */
-   gdim.rank=rank;
-   if ((gdim.dims=(fftw_iodim *)MALLOC(sizeof(fftw_iodim)*gdim.rank))==NULL) {
-     Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-     goto ERR;
-   }
-   pd = 1; /* used to store prod(Dims(1:sel(k-1)))*/
-   pds = 1; /* used to store prod(Dims(sel(k-1):sel(k)))*/
-   j = 0;
-   for (i=0;i<ndims;i++) {
-     if (j>=gdim.rank) break;
-     if (Sel[j]==i+1) {
-       gdim.dims[j].n = Dim[i];
-       gdim.dims[j].is = pd;
-       gdim.dims[j].os = pd;
-       j++;
-     }
-     pd *= Dim[i];
-   }
-   /* Compute howmany_rank based on jumps in the Sel sequence */
-   gdim.howmany_rank=0;
-   if ((Sel[0]!=1)&&(Sel[0]!=ndims)) gdim.howmany_rank++;
-   for (i=1;i<=rank-1;i++) {
-     if (Sel[i]!=Sel[i-1]+1) gdim.howmany_rank++;
-   }
-   if ((Sel[rank-1]!=ndims)||(rank==1)) gdim.howmany_rank++;
-   /* Fill the howmany_dims struct */
-   if (gdim.howmany_rank>0) {
-     /* it must be the case */
-     int ih = 0;
+     /* API variables */
+     SciErr sciErr;
+     int *piAddr = NULL;
+     /* Input  array variables */
+     int *Dim1 = NULL;
+     int ndims = 0;
+     int *Incr = NULL;
+     int nincr = 0;
+     /*FFTW specific library variable */
+     guru_dim_struct gdim = {0, NULL, 0, NULL};
+     /* input/output address for transform variables */
+     /* local variable */
+     int *Dim = NULL, *Sel = NULL;
+     int pd = 1;
+     int pds = 1;
+     int nd = 0;
+     int rank = 0;
+     int i = 0, j = 0, k = 0, lA = 1;
+     for (i = 0; i < ndimsA; i++)
+     {
+         lA *= dimsA[i];
+     }
  
-     if ((gdim.howmany_dims=(fftw_iodim *)MALLOC(gdim.howmany_rank*sizeof(fftw_iodim)))==NULL) {
-       Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-       goto ERR;
+     /* void or scalar input gives void output or scalar*/
+     if (lA <= 1 )
+     {
+         LhsVar(1) =  1;
+         PutLhsVar();
+         return(0);
      }
+     /******************** get and check third argument (dim) ****************************************/
+     getVarAddressFromPosition(pvApiCtx, 3, &piAddr);
+     if (isVarMatrixType(pvApiCtx, piAddr) == 0)
+     {
+         Scierror(999, _("%s: Wrong type for input argument #%d.\n"), fname, 3);
+         goto ERR;
+     }
+     sciErr = getVectorIntArg(pvApiCtx, 3, fname, &ndims, &Dim1);
+     if (sciErr.iErr)
+     {
+         Scierror(sciErr.iErr, getErrorMessage(sciErr));
+         goto ERR;
+     }
+     /* check values of Dim1[i} */
      pd = 1;
-     for (j=1;j<=(Sel[0]-1);j++) pd *=Dim[j-1];/*prod(Dims(1:(sel(1)-1)))*/
-     ih = 0;
-     if ((Sel[0]!=1)&&(Sel[0]!=ndims)) {
-       /* First seleted dimension */
-       gdim.howmany_dims[ih].is = 1;
-       gdim.howmany_dims[ih].os = 1;
-       gdim.howmany_dims[ih].n = pd;
-       ih++;
-     }
-     pd *= Dim[Sel[0]-1];/*prod(Dims(1:sel(1)))*/
-     for (i=2;i<=rank;i++) {
-       /* intermediate selected dimensions */
-       if (Sel[i-1]!=Sel[i-2]+1) {
-         pds = 1;
-         for (j=(Sel[i-2]+1);j<=(Sel[i-1]-1);j++) pds *= Dim[j-1]; /*prod(Dims(sel(i-1)+1:(sel(i)-1)))*/
-         gdim.howmany_dims[ih].is = pd;
-         gdim.howmany_dims[ih].os = pd;
-         gdim.howmany_dims[ih].n = pds;
-         ih++;
-       }
-       pd *= pds*Dim[Sel[i-1]-1]; /*prod(Dims(1:sel(i)))*/
-     }
-     if (Sel[rank-1]!=ndims) {
-       /* last selected dimension*/
-       pds = 1;
-       for (j=(Sel[rank-1]+1);j<=ndims;j++) pds *= Dim[j-1]; /*prod(Dims(sel(i-1)+1:(sel(i)-1)))*/
-       gdim.howmany_dims[ih].is = pd;
-       gdim.howmany_dims[ih].os = pd;
-       gdim.howmany_dims[ih].n = pds;
-       ih++;
-     }
-     else if (rank==1) { /* the only selected dimension is the last one */
-       gdim.howmany_dims[ih].is = 1;
-       gdim.howmany_dims[ih].os = 1;
-       gdim.howmany_dims[ih].n = pd/Dim[Sel[0]-1];
-       ih++;
-     }
-   }
-   if (!sci_fft_gen(pvApiCtx, fname, ndimsA, dimsA, Ar,  Ai, isn,iopt,gdim))  goto ERR;
-   /***********************************
-    * Return results in lhs argument *
-    ***********************************/
-   PutLhsVar();
-  ERR:
-   FREE(Dim1);
-   FREE(Incr);
-   FREE(Dim);
-   FREE(Sel);
-   FREE(gdim.dims);
-   FREE(gdim.howmany_dims);
-   return(0);
- }
- /*--------------------------------------------------------------------------*/
- BOOL isHyperMatrixMlist(void* _pvApiCtx, int *piAddressVar)
- {
-   char **fields = NULL;
-   SciErr sciErr;
-   int iType = 0;
-   int m = 0, n = 0;
+     for (i = 0; i < ndims; i++)
+     {
+         if (Dim1[i] <= 1)
+         {
+             Scierror(999, _("%s: Wrong values for input argument #%d: Elements must be greater than %d.\n"), fname, 3, 1);
+             goto ERR;
+         }
+         pd *= Dim1[i];
+     }
+     if ( pd > lA)
+     {
+         Scierror(999, _("%s: Wrong values for input argument #%d: Must be less than %d.\n"), fname, 3, lA);
+         goto ERR;
+     }
+     if (lA % pd)
+     {
+         Scierror(999, _("%s: Wrong values for input argument #%d: Must be a divisor of %d.\n"), fname, 3, lA);
+         goto ERR;
+     }
+     /******************** get and check fourth argument (incr) ****************************************/
+     sciErr = getVectorIntArg(pvApiCtx, 4, fname, &nincr, &Incr);
+     if (sciErr.iErr)
+     {
+         Scierror(sciErr.iErr, getErrorMessage(sciErr));
+         goto ERR;
+     }
+     if (nincr != ndims)
+     {
+         Scierror(999, _("%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"), fname, 3, 4);
+         goto ERR;
+     }
  
-   if (piAddressVar == NULL) {
-     return FALSE;
-   }
+     /* check values of Incr[i] */
+     if (Incr[0] <= 0)
+     {
+         Scierror(999, _("%s: Wrong values for input argument #%d: Positive integers expected.\n"), fname, 4);
+         goto ERR;
+     }
+     for (i = 0; i < ndims; i++)
+     {
+         if (lA % Incr[i])
+         {
+             Scierror(999, _("%s: Wrong values for input argument #%d: Elements must be divisors of %d.\n"), fname, 3, lA);
+             goto ERR;
+         }
+         if (i > 0 && (Incr[i] <= Incr[i - 1]))
+         {
+             Scierror(999, _("%s: Wrong values for input argument #%d: Elements must be in increasing ""order.\n"), fname, 4);
+             goto ERR;
+         }
+     }
+     if ((Dim = (int *)MALLOC((2 * ndims + 1) * sizeof(int))) == NULL)
+     {
+         Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+         goto ERR;
+     }
+     if ((Sel = (int *)MALLOC((ndims) * sizeof(int))) == NULL)
+     {
+         Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+         goto ERR;
+     }
  
-   sciErr = getVarType(_pvApiCtx, piAddressVar, &iType);
-   if (sciErr.iErr) {
-     return FALSE;
-   }
  
-   if (iType == sci_mlist) {
-     int* piAddrChild  = NULL;
-     int iItem   = 0;
+     /*Transform  Dim1 and Incr into Dim and Sel and check validity*/
+     nd = 0;
+     pd = 1;
+     if (Incr[0] != 1)
+     {
+         Dim[nd++] = Incr[0];
+         pd *= Incr[0];
+     }
+     Dim[nd++] = Dim1[0];
+     pd *= Dim1[0];
+     Sel[0] = nd;
+     for (k = 1; k < ndims; k++)
+     {
+         if (Incr[k] % pd != 0)
+         {
+             Scierror(999, _("%s: Incompatible input arguments #%d and #%d.\n"), fname, 3, 4);
+             goto ERR;
+         }
+         if (Incr[k] != pd)
+         {
+             Dim[nd++] = (int)(Incr[k] / pd);
+             pd = Incr[k];
+         }
+         Dim[nd++] = Dim1[k];
+         pd *= Dim1[k];
+         Sel[k] = nd;
+     }
+     if (pd < lA)
+     {
+         if (lA % pd != 0)
+         {
+             Scierror(999, _("%s: Incompatible input arguments #%d and #%d.\n"), fname, 3, 4);
+             goto ERR;
+         }
+         Dim[nd++] = (int)(lA / pd);
+     }
  
-     sciErr = getListItemNumber(_pvApiCtx, piAddressVar, &iItem);
-     if(sciErr.iErr) {
-       return FALSE;
+     rank = ndims;
+     ndims = nd;
+     /* now one  same algorithm than sci_fft_3args applies */
+     /* Create  gdim struct */
+     gdim.rank = rank;
+     if ((gdim.dims = (fftw_iodim *)MALLOC(sizeof(fftw_iodim) * gdim.rank)) == NULL)
+     {
+         Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+         goto ERR;
      }
  
-     sciErr = getListItemAddress(_pvApiCtx, piAddressVar, 1, &piAddrChild);
-     if(sciErr.iErr) {
-       return FALSE;
+     pd = 1; /* used to store prod(Dims(1:sel(k-1)))*/
+     pds = 1; /* used to store prod(Dims(sel(k-1):sel(k)))*/
+     j = 0;
+     for (i = 0; i < ndims; i++)
+     {
+         if (j >= gdim.rank) break;
+         if (Sel[j] == i + 1)
+         {
+             gdim.dims[j].n = Dim[i];
+             gdim.dims[j].is = pd;
+             gdim.dims[j].os = pd;
+             j++;
+         }
+         pd *= Dim[i];
      }
+     /* Compute howmany_rank based on jumps in the Sel sequence */
+     gdim.howmany_rank = 0;
+     if ((Sel[0] != 1) && (Sel[0] != ndims)) gdim.howmany_rank++;
  
-     if (!isStringType(_pvApiCtx, piAddrChild)) {
-       return FALSE;
+     for (i = 1; i <= rank - 1; i++)
+     {
+         if (Sel[i] != Sel[i - 1] + 1) gdim.howmany_rank++;
      }
+     if ((Sel[rank - 1] != ndims) || (rank == 1)) gdim.howmany_rank++;
+     /* Fill the howmany_dims struct */
+     if (gdim.howmany_rank > 0)
+     {
+         /* it must be the case */
+         int ih = 0;
+         if ((gdim.howmany_dims = (fftw_iodim *)MALLOC(gdim.howmany_rank * sizeof(fftw_iodim))) == NULL)
+         {
+             Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+             goto ERR;
+         }
+         pd = 1;
+         for (j = 1; j <= (Sel[0] - 1); j++) pd *= Dim[j - 1]; /*prod(Dims(1:(sel(1)-1)))*/
+         ih = 0;
+         if ((Sel[0] != 1) && (Sel[0] != ndims))
+         {
+             /* First seleted dimension */
+             gdim.howmany_dims[ih].is = 1;
+             gdim.howmany_dims[ih].os = 1;
+             gdim.howmany_dims[ih].n = pd;
+             ih++;
+         }
+         pd *= Dim[Sel[0] - 1]; /*prod(Dims(1:sel(1)))*/
+         for (i = 2; i <= rank; i++)
+         {
+             /* intermediate selected dimensions */
+             if (Sel[i - 1] != Sel[i - 2] + 1)
+             {
+                 pds = 1;
+                 for (j = (Sel[i - 2] + 1); j <= (Sel[i - 1] - 1); j++) pds *= Dim[j - 1]; /*prod(Dims(sel(i-1)+1:(sel(i)-1)))*/
+                 gdim.howmany_dims[ih].is = pd;
+                 gdim.howmany_dims[ih].os = pd;
+                 gdim.howmany_dims[ih].n = pds;
+                 ih++;
+             }
+             pd *= pds * Dim[Sel[i - 1] - 1]; /*prod(Dims(1:sel(i)))*/
+         }
  
-     if (getAllocatedMatrixOfString(_pvApiCtx, piAddrChild, &m, &n , &fields) == 0) {
-       if (strcmp(fields[0], "hm") != 0) {
-         freeAllocatedMatrixOfString(m, n, fields);
-         fields = NULL;
+         if (Sel[rank - 1] != ndims)
+         {
+             /* last selected dimension*/
+             pds = 1;
+             for (j = (Sel[rank - 1] + 1); j <= ndims; j++) pds *= Dim[j - 1]; /*prod(Dims(sel(i-1)+1:(sel(i)-1)))*/
+             gdim.howmany_dims[ih].is = pd;
+             gdim.howmany_dims[ih].os = pd;
+             gdim.howmany_dims[ih].n = pds;
+             ih++;
+         }
+         else if (rank == 1) /* the only selected dimension is the last one */
+         {
+             gdim.howmany_dims[ih].is = 1;
+             gdim.howmany_dims[ih].os = 1;
+             gdim.howmany_dims[ih].n = pd / Dim[Sel[0] - 1];
+             ih++;
+         }
+     }
 -    if (!sci_fft_gen(fname, ndimsA, dimsA, Ar,  Ai, isn, iopt, gdim))  goto ERR;
++    if (!sci_fft_gen(pvApiCtx, fname, ndimsA, dimsA, Ar,  Ai, isn, iopt, gdim))  goto ERR;
+     /***********************************
+      * Return results in lhs argument *
+      ***********************************/
+     PutLhsVar();
+ ERR:
+     FREE(Dim1);
+     FREE(Incr);
+     FREE(Dim);
+     FREE(Sel);
+     FREE(gdim.dims);
+     FREE(gdim.howmany_dims);
+     return(0);
+ }
+ /*--------------------------------------------------------------------------*/
+ BOOL isHyperMatrixMlist(void* _pvCtx, int *piAddressVar)
+ {
+     char **fields = NULL;
+     SciErr sciErr;
+     int iType = 0;
+     int m = 0, n = 0;
+     if (piAddressVar == NULL)
+     {
+         return FALSE;
+     }
+     sciErr = getVarType(_pvCtx, piAddressVar, &iType);
+     if (sciErr.iErr)
+     {
          return FALSE;
-       }
-       freeAllocatedMatrixOfString(m, n, fields);
-       fields = NULL;
      }
-     else {
-       return FALSE;
+     if (iType == sci_mlist)
+     {
+         int* piAddrChild  = NULL;
+         int iItem   = 0;
 -        sciErr = getListItemNumber(pvApiCtx, piAddressVar, &iItem);
++        sciErr = getListItemNumber(_pvCtx, piAddressVar, &iItem);
+         if (sciErr.iErr)
+         {
+             return FALSE;
+         }
 -        sciErr = getListItemAddress(pvApiCtx, piAddressVar, 1, &piAddrChild);
++        sciErr = getListItemAddress(_pvCtx, piAddressVar, 1, &piAddrChild);
+         if (sciErr.iErr)
+         {
+             return FALSE;
+         }
+         if (!isStringType(_pvCtx, piAddrChild))
+         {
+             return FALSE;
+         }
+         if (getAllocatedMatrixOfString(_pvCtx, piAddrChild, &m, &n , &fields) == 0)
+         {
+             if (strcmp(fields[0], "hm") != 0)
+             {
+                 freeAllocatedMatrixOfString(m, n, fields);
+                 fields = NULL;
+                 return FALSE;
+             }
+             freeAllocatedMatrixOfString(m, n, fields);
+             fields = NULL;
+         }
+         else
+         {
+             return FALSE;
+         }
+         return TRUE;
      }
-     return TRUE;
-   }
-   return FALSE;
+     return FALSE;
  }
  /*--------------------------------------------------------------------------*/
 -int sci_fft_gen(char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt, guru_dim_struct gdim)
 +int sci_fft_gen(void* pvApiCtx, char *fname, int ndimsA, int *dimsA, double *Ar,  double *Ai, int isn, int iopt, guru_dim_struct gdim)
  {
-   /* API variables */
-   SciErr sciErr;
-   /* Input  array variables */
-   int  isrealA = (Ai==NULL), issymA = 1, lA = 1;
-   /*for MKL*/
-   int isrealA_save=isrealA ;
-   /*FFTW specific library variable */
-   enum Scaling scale = None;
-   enum Plan_Type type;
-   fftw_plan p;
-   /* input/output address for transform variables */
-   double *ri = NULL,*ii = NULL,*ro = NULL,*io = NULL;
-   /* local variable */
-   int one = 1;
-   int i = 0;
-   for (i=0;i<ndimsA;i++) {
-     lA *= dimsA[i];
-   }
-   if (iopt==0) {
-     /* automatically selected algorithm*/
-     issymA =  check_array_symmetry(Ar,Ai, gdim);
-     if (issymA<0 ) {
-       Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-       goto ERR;
-     }
-   }
-   else if (iopt==1) {
-     issymA = 1; /* user forces symmetry */
-   }
-   else {
-     issymA = 0;
-   }
-   LhsVar(1) = 1; /* assume inplace transform*/
-   if (WITHMKL) {
-     double dzero=0.0;
-     if (isrealA) {
-       /*MKL does not implement the r2c nor r2r guru split methods, make A complex */
-       if (issymA) {
-         /* result will be real, the imaginary part of A can be allocated alone */
-         sciErr = allocMatrixOfDouble(pvApiCtx, Rhs + 1, 1, lA, &Ai);
-         if(sciErr.iErr) {
-           Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-           goto ERR;
+     /* API variables */
+     SciErr sciErr;
+     /* Input  array variables */
+     int  isrealA = (Ai == NULL), issymA = 1, lA = 1;
+     /*for MKL*/
+     int isrealA_save = isrealA ;
+     /*FFTW specific library variable */
+     enum Scaling scale = None;
+     enum Plan_Type type;
+     fftw_plan p;
+     /* input/output address for transform variables */
+     double *ri = NULL, *ii = NULL, *ro = NULL, *io = NULL;
+     /* local variable */
+     int one = 1;
+     int i = 0;
+     for (i = 0; i < ndimsA; i++)
+     {
+         lA *= dimsA[i];
+     }
+     if (iopt == 0)
+     {
+         /* automatically selected algorithm*/
+         issymA =  check_array_symmetry(Ar, Ai, gdim);
+         if (issymA < 0 )
+         {
+             Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+             goto ERR;
          }
-         C2F(dset)(&lA,&dzero,Ai,&one);
-       }
-       else {
-         /* result will be complex, realloc A for inplace computation */
-         sciErr = allocComplexArrayOfDouble(pvApiCtx, Rhs + 1, ndimsA,dimsA, &ri, &Ai);
-         if(sciErr.iErr) {
-           Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-           goto ERR;
+     }
+     else if (iopt == 1)
+     {
+         issymA = 1; /* user forces symmetry */
+     }
+     else
+     {
+         issymA = 0;
+     }
+     LhsVar(1) = 1; /* assume inplace transform*/
+     if (WITHMKL)
+     {
+         double dzero = 0.0;
+         if (isrealA)
+         {
+             /*MKL does not implement the r2c nor r2r guru split methods, make A complex */
+             if (issymA)
+             {
+                 /* result will be real, the imaginary part of A can be allocated alone */
+                 sciErr = allocMatrixOfDouble(pvApiCtx, Rhs + 1, 1, lA, &Ai);
+                 if (sciErr.iErr)
+                 {
+                     Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+                     goto ERR;
+                 }
+                 C2F(dset)(&lA, &dzero, Ai, &one);
+             }
+             else
+             {
+                 /* result will be complex, realloc A for inplace computation */
+                 sciErr = allocComplexArrayOfDouble(pvApiCtx, Rhs + 1, ndimsA, dimsA, &ri, &Ai);
+                 if (sciErr.iErr)
+                 {
+                     Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+                     goto ERR;
+                 }
+                 C2F(dcopy)(&lA, Ar, &one, ri, &one);
+                 Ar = ri;
+                 C2F(dset)(&lA, &dzero, Ai, &one);
+                 LhsVar(1) = Rhs + 1;
+                 isrealA = 0;
+             }
+         }
+     }
+     if (!isrealA && issymA) /* A is complex but result is real */
+     {
+         /* result will be complex, realloc real part of A for real part inplace computation */
+         sciErr = allocArrayOfDouble(pvApiCtx, Rhs + 1, ndimsA, dimsA, &ri);
+         if (sciErr.iErr)
+         {
+             Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+             goto ERR;
          }
-         C2F(dcopy)(&lA,Ar,&one,ri,&one);
-         Ar=ri;
-         C2F(dset)(&lA,&dzero,Ai,&one);
+         C2F(dcopy)(&lA, Ar, &one, ri, &one);
+         Ar = ri;
          LhsVar(1) = Rhs + 1;
-         isrealA=0;
-       }
-     }
-   }
-   if (!isrealA&&issymA){ /* A is complex but result is real */
-     /* result will be complex, realloc real part of A for real part inplace computation */
-     sciErr = allocArrayOfDouble(pvApiCtx, Rhs + 1, ndimsA,dimsA, &ri);
-     if(sciErr.iErr) {
-       Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-       goto ERR;
-     }
-     C2F(dcopy)(&lA,Ar,&one,ri,&one);Ar=ri;
-     LhsVar(1) = Rhs + 1;
-   }
-   /* Set pointers on real and imaginary part of the input */
-   ri=Ar;
-   ii=Ai;
-   scale = None; /*no scaling needed */
-   if (isn== FFTW_BACKWARD) scale=Divide;
-   if (isrealA) {
-     /*A is real */
-     if (issymA) {
-       /*r2r =  isrealA &&  issymA*/
-       /* there is no general plan able to compute r2r transform so it is tranformed into
-          a R2c plan. The computed imaginary part will be zero*/
-       sciErr = allocMatrixOfDouble(pvApiCtx, Rhs + 1, 1, lA,  &io);
-       if(sciErr.iErr) {
-         Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-         goto ERR;
-       }
-       type=R2C_PLAN;
-       ro=Ar;
-     }
-     else {
-       /*r2c =  isrealA && ~issymA;*/
-       /* transform cannot be done in place */
-       sciErr = allocComplexArrayOfDouble(pvApiCtx, Rhs + 1, ndimsA,dimsA, &ro, &io);
-       if(sciErr.iErr) {
-         Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-         goto ERR;
-       }
-       LhsVar(1) = Rhs + 1;
-       type=R2C_PLAN; /* fftw_plan_guru_split_dft_r2c plans for an FFTW_FORWARD transform*/
-       if (isn== FFTW_BACKWARD) {
-         /*transform problem into a FORWARD fft*/
-         /*ifft(A)=conj(fft(A/N)) cas vect*/
-         /* pre traitement A must be  divided by N cas vect*/
-         /* post treatment result must conjugated */
-       }
-     }
-   }
-   else {
-     /* A is complex */
-     if (!WITHMKL&&issymA) { /*result is real*/
-       /*c2r =  ~isrealA &&  issymA*/
-       ro = ri;
-       io = NULL;
-       type=C2R_PLAN; /*fftw_plan_guru_split_dft_c2r plans for an FFTW_BACKWARD transform*/
-       if (isn== FFTW_FORWARD) {
-         /*transform problem into a BACKWARD fft : fft(A)=ifft(conj(A))*/
-         double minusone=-1.0;
-          C2F(dscal)(&lA,&minusone,ii,&one);
-       }
-     }
-     else {
-       /*c2c =  ~isrealA && ~issymA;*/
-       /* use inplace transform*/
-       type=C2C_PLAN; /*  fftw_plan_guru_split_dft plans for an FFTW_FORWARD transform*/
-       if (isn== FFTW_BACKWARD) {
-         /*transform problem into a FORWARD fft*/
-         /* ifft(A) = %i*conj(fft(%i*conj(A)/N) */
-         /* reverse input */
-         ri=Ai;
-         ii=Ar;
-         /* reverse output */
-         ro=Ai;
-         io=Ar;
-       }
-       else {
-         ro=ri;
-         io=ii;
-       }
-     }
-   }
-   /* Set Plan */
-   p = GetFFTWPlan(type, &gdim, ri, ii, ro, io, getCurrentFftwFlags(), isn);
-   if (p == NULL) {
-     Scierror(999,_("%s:Plan, No more memory.\n"),fname);
-     goto ERR;
-   }
-   /* pre-treatment */
-   if (scale != None) {
-     double ak = 1.0;
-     for(i=0;i<gdim.rank;i++) ak=ak*((double)(gdim.dims[i].n));
-     if (scale== Divide) ak=1.0/ak;
-     C2F(dscal)(&lA,&ak,ri,&one);
-     if (isrealA==0) C2F(dscal)(&lA,&ak,ii,&one);
-   }
-   /* execute FFTW plan */
-   ExecuteFFTWPlan(type, p, ri, ii, ro, io);
-   /* Post treatment */
-   switch (type) {
-   case R2R_PLAN:
-     if (complete_array(ro,NULL, gdim)==-1) {
-       Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-       goto ERR;
-     }
-     break;
-   case C2R_PLAN:
-     break;
-   case R2C_PLAN:
-     if (issymA) {
-       /*R2C has been used to solve an r2r problem*/
-       if (complete_array(ro,NULL, gdim)==-1) {
-         Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-         goto ERR;
-       }
      }
-     else {
-       if (complete_array(ro,io, gdim)==-1) {
-         Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-         goto ERR;
-       }
-       if (isn== FFTW_BACKWARD) {
-         /*conjugate result */
-         double ak = -1.0;
-         C2F(dscal)(&lA,&ak,io,&one);
-       }
-     }
-     break;
-   case C2C_PLAN:
-     if (WITHMKL&&isrealA_save) {
-       if (isn==FFTW_FORWARD) {
-         if (complete_array(ro,io, gdim)==-1) {
-           Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-           goto ERR;
+     /* Set pointers on real and imaginary part of the input */
+     ri = Ar;
+     ii = Ai;
+     scale = None; /*no scaling needed */
+     if (isn == FFTW_BACKWARD) scale = Divide;
+     if (isrealA)
+     {
+         /*A is real */
+         if (issymA)
+         {
+             /*r2r =  isrealA &&  issymA*/
+             /* there is no general plan able to compute r2r transform so it is tranformed into
+                a R2c plan. The computed imaginary part will be zero*/
+             sciErr = allocMatrixOfDouble(pvApiCtx, Rhs + 1, 1, lA,  &io);
+             if (sciErr.iErr)
+             {
+                 Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+                 goto ERR;
+             }
+             type = R2C_PLAN;
+             ro = Ar;
+         }
+         else
+         {
+             /*r2c =  isrealA && ~issymA;*/
+             /* transform cannot be done in place */
+             sciErr = allocComplexArrayOfDouble(pvApiCtx, Rhs + 1, ndimsA, dimsA, &ro, &io);
+             if (sciErr.iErr)
+             {
+                 Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+                 goto ERR;
+             }
+             LhsVar(1) = Rhs + 1;
+             type = R2C_PLAN; /* fftw_plan_guru_split_dft_r2c plans for an FFTW_FORWARD transform*/
+             if (isn == FFTW_BACKWARD)
+             {
+                 /*transform problem into a FORWARD fft*/
+                 /*ifft(A)=conj(fft(A/N)) cas vect*/
+                 /* pre traitement A must be  divided by N cas vect*/
+                 /* post treatment result must conjugated */
+             }
          }
-       }
-       else {
-         if (complete_array(io,ro, gdim)==-1) {
-           Scierror(999,_("%s: Cannot allocate more memory.\n"),fname);
-           goto ERR;
+     }
+     else
+     {
+         /* A is complex */
+         if (!WITHMKL && issymA) /*result is real*/
+         {
+             /*c2r =  ~isrealA &&  issymA*/
+             ro = ri;
+             io = NULL;
+             type = C2R_PLAN; /*fftw_plan_guru_split_dft_c2r plans for an FFTW_BACKWARD transform*/
+             if (isn == FFTW_FORWARD)
+             {
+                 /*transform problem into a BACKWARD fft : fft(A)=ifft(conj(A))*/
+                 double minusone = -1.0;
+                 C2F(dscal)(&lA, &minusone, ii, &one);
+             }
+         }
+         else
+         {
+             /*c2c =  ~isrealA && ~issymA;*/
+             /* use inplace transform*/
+             type = C2C_PLAN; /*  fftw_plan_guru_split_dft plans for an FFTW_FORWARD transform*/
+             if (isn == FFTW_BACKWARD)
+             {
+                 /*transform problem into a FORWARD fft*/
+                 /* ifft(A) = %i*conj(fft(%i*conj(A)/N) */
+                 /* reverse input */
+                 ri = Ai;
+                 ii = Ar;
+                 /* reverse output */
+                 ro = Ai;
+                 io = Ar;
+             }
+             else
+             {
+                 ro = ri;
+                 io = ii;
+             }
          }
-       }
      }
-     break;
-   }
+     /* Set Plan */
+     p = GetFFTWPlan(type, &gdim, ri, ii, ro, io, getCurrentFftwFlags(), isn);
+     if (p == NULL)
+     {
+         Scierror(999, _("%s: No more memory.\n"), fname);
+         goto ERR;
+     }
+     /* pre-treatment */
+     if (scale != None)
+     {
+         double ak = 1.0;
+         for (i = 0; i < gdim.rank; i++) ak = ak * ((double)(gdim.dims[i].n));
+         if (scale == Divide) ak = 1.0 / ak;
+         C2F(dscal)(&lA, &ak, ri, &one);
+         if (isrealA == 0) C2F(dscal)(&lA, &ak, ii, &one);
+     }
+     /* execute FFTW plan */
+     ExecuteFFTWPlan(type, p, ri, ii, ro, io);
+     /* Post treatment */
+     switch (type)
+     {
+         case R2R_PLAN:
+             if (complete_array(ro, NULL, gdim) == -1)
+             {
+                 Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+                 goto ERR;
+             }
+             break;
+         case C2R_PLAN:
+             break;
+         case R2C_PLAN:
+             if (issymA)
+             {
+                 /*R2C has been used to solve an r2r problem*/
+                 if (complete_array(ro, NULL, gdim) == -1)
+                 {
+                     Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+                     goto ERR;
+                 }
+             }
+             else
+             {
+                 if (complete_array(ro, io, gdim) == -1)
+                 {
+                     Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+                     goto ERR;
+                 }
+                 if (isn == FFTW_BACKWARD)
+                 {
+                     /*conjugate result */
+                     double ak = -1.0;
+                     C2F(dscal)(&lA, &ak, io, &one);
+                 }
+             }
+             break;
+         case C2C_PLAN:
+             if (WITHMKL && isrealA_save)
+             {
+                 if (isn == FFTW_FORWARD)
+                 {
+                     if (complete_array(ro, io, gdim) == -1)
+                     {
+                         Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+                         goto ERR;
+                     }
+                 }
+                 else
+                 {
+                     if (complete_array(io, ro, gdim) == -1)
+                     {
+                         Scierror(999, _("%s: Cannot allocate more memory.\n"), fname);
+                         goto ERR;
+                     }
+                 }
+             }
+             break;
+     }
  
-   return(1);
-  ERR:
-   return(0);
+     return(1);
+ ERR:
+     return(0);
  }
Simple merge
index 544bd96,0000000..94eb8fa
mode 100644,000000..100644
--- /dev/null
@@@ -1,53 -1,0 +1,54 @@@
 +##
 +##  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 +##  Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
 +##
 +##  This file must be used under the terms of the CeCILL.
 +##  This source file is licensed as described in the file COPYING, which
 +##  you should have received as part of this distribution.  The terms
 +##  are also available at
 +##  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 +##
 +##
 +
 +SYSTEM_ENV_CPP_SOURCES        = \
 +      src/cpp/setenvvar.cpp \
 +      src/cpp/sci_path.cpp \
 +      src/cpp/sci_home.cpp \
 +      src/cpp/home.cpp \
 +      src/cpp/sci_tmpdir.cpp \
 +      src/cpp/sci_warning.cpp \
 +      src/cpp/sci_mode.cpp \
 +      src/cpp/configvariable.cpp \
 +      src/cpp/lasterror.cpp \
 +      src/cpp/promptmode.cpp \
 +    src/cpp/formatmode.cpp
 +
 +pkglib_LTLIBRARIES = libscisystem_env.la
 +
 +libscisystem_env_la_SOURCES = $(SYSTEM_ENV_CPP_SOURCES)
 +
 +libscisystem_env_la_CPPFLAGS = \
 +      -I includes/ \
 +      -I src/cpp \
 +    -I $(top_srcdir)/libs/dynamiclibrary/includes/ \
 +    -I $(top_srcdir)/libs/MALLOC/includes/ \
 +      -I $(top_srcdir)/modules/api_scilab/includes/ \
 +      -I $(top_srcdir)/modules/ast/includes/ \
 +      -I $(top_srcdir)/modules/symbol/includes/ \
 +      -I $(top_srcdir)/modules/types/includes/ \
 +      -I $(top_srcdir)/modules/io/includes/ \
 +      -I $(top_srcdir)/modules/fileio/includes/ \
 +      -I $(top_srcdir)/modules/string/includes/ \
 +      -I $(top_srcdir)/modules/threads/includes/ \
 +      -I $(top_srcdir)/modules/operations/includes/ \
 +      -I $(top_srcdir)/modules/elementary_functions/includes/ \
 +      -I $(top_srcdir)/modules/differential_equations/includes/ \
 +      -I $(top_srcdir)/modules/output_stream/includes/ \
 +      -I $(top_srcdir)/modules/localization/includes/ \
 +      $(AM_CPPFLAGS)
 +
 +
 +libscisystem_env_la_includedir=$(pkgincludedir)/system_env
 +
- libscisystem_env_la_include_HEADERS = includes/setenvvar.hxx
++libscisystem_env_la_include_HEADERS = includes/setenvvar.hxx \
++includes/sci_warning.h
index 4d1960d,0000000..0dcea22
mode 100644,000000..100644
--- /dev/null
@@@ -1,844 -1,0 +1,846 @@@
 +# Makefile.in generated by automake 1.11.3 from Makefile.am.
 +# @configure_input@
 +
 +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
 +# Foundation, Inc.
 +# This Makefile.in is free software; the Free Software Foundation
 +# gives unlimited permission to copy and/or distribute it,
 +# with or without modifications, as long as this notice is preserved.
 +
 +# This program is distributed in the hope that it will be useful,
 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 +# PARTICULAR PURPOSE.
 +
 +@SET_MAKE@
 +
 +
 +VPATH = @srcdir@
 +pkgdatadir = $(datadir)/@PACKAGE@
 +pkgincludedir = $(includedir)/@PACKAGE@
 +pkglibdir = $(libdir)/@PACKAGE@
 +pkglibexecdir = $(libexecdir)/@PACKAGE@
 +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 +install_sh_DATA = $(install_sh) -c -m 644
 +install_sh_PROGRAM = $(install_sh) -c
 +install_sh_SCRIPT = $(install_sh) -c
 +INSTALL_HEADER = $(INSTALL_DATA)
 +transform = $(program_transform_name)
 +NORMAL_INSTALL = :
 +PRE_INSTALL = :
 +POST_INSTALL = :
 +NORMAL_UNINSTALL = :
 +PRE_UNINSTALL = :
 +POST_UNINSTALL = :
 +build_triplet = @build@
 +host_triplet = @host@
 +subdir = modules/system_env
 +DIST_COMMON = $(libscisystem_env_la_include_HEADERS) \
 +      $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 +am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \
 +      $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/docbook.m4 \
 +      $(top_srcdir)/m4/eigen.m4 $(top_srcdir)/m4/fftw.m4 \
 +      $(top_srcdir)/m4/fortran.m4 $(top_srcdir)/m4/giws.m4 \
 +      $(top_srcdir)/m4/hdf5.m4 $(top_srcdir)/m4/intel_compiler.m4 \
 +      $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \
 +      $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
 +      $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \
 +      $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \
 +      $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
 +      $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \
 +      $(top_srcdir)/m4/ocaml.m4 $(top_srcdir)/m4/pcre.m4 \
 +      $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/relocatable.m4 \
 +      $(top_srcdir)/m4/swig.m4 $(top_srcdir)/m4/symlinks.m4 \
 +      $(top_srcdir)/m4/tcltk.m4 $(top_srcdir)/m4/umfpack.m4 \
 +      $(top_srcdir)/configure.ac
 +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 +      $(ACLOCAL_M4)
 +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
 +CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h
 +CONFIG_CLEAN_FILES =
 +CONFIG_CLEAN_VPATH_FILES =
 +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 +am__vpath_adj = case $$p in \
 +    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
 +    *) f=$$p;; \
 +  esac;
 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
 +am__install_max = 40
 +am__nobase_strip_setup = \
 +  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
 +am__nobase_strip = \
 +  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
 +am__nobase_list = $(am__nobase_strip_setup); \
 +  for p in $$list; do echo "$$p $$p"; done | \
 +  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
 +  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
 +    if (++n[$$2] == $(am__install_max)) \
 +      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
 +    END { for (dir in files) print dir, files[dir] }'
 +am__base_list = \
 +  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
 +  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 +am__uninstall_files_from_dir = { \
 +  test -z "$$files" \
 +    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
 +    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
 +         $(am__cd) "$$dir" && rm -f $$files; }; \
 +  }
 +am__installdirs = "$(DESTDIR)$(pkglibdir)" \
 +      "$(DESTDIR)$(libscisystem_env_la_includedir)"
 +LTLIBRARIES = $(pkglib_LTLIBRARIES)
 +libscisystem_env_la_LIBADD =
 +am__objects_1 = libscisystem_env_la-setenvvar.lo \
 +      libscisystem_env_la-sci_path.lo \
 +      libscisystem_env_la-sci_home.lo libscisystem_env_la-home.lo \
 +      libscisystem_env_la-sci_tmpdir.lo \
 +      libscisystem_env_la-sci_warning.lo \
 +      libscisystem_env_la-sci_mode.lo \
 +      libscisystem_env_la-configvariable.lo \
 +      libscisystem_env_la-lasterror.lo \
 +      libscisystem_env_la-promptmode.lo \
 +      libscisystem_env_la-formatmode.lo
 +am_libscisystem_env_la_OBJECTS = $(am__objects_1)
 +libscisystem_env_la_OBJECTS = $(am_libscisystem_env_la_OBJECTS)
 +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/modules/core/includes
 +depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 +am__depfiles_maybe = depfiles
 +am__mv = mv -f
 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 +      $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 +      --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 +      $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 +CXXLD = $(CXX)
 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 +      --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
 +      $(LDFLAGS) -o $@
 +SOURCES = $(libscisystem_env_la_SOURCES)
 +DIST_SOURCES = $(libscisystem_env_la_SOURCES)
 +HEADERS = $(libscisystem_env_la_include_HEADERS)
 +ETAGS = etags
 +CTAGS = ctags
 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 +ACLOCAL = @ACLOCAL@
 +ALL_LINGUAS = @ALL_LINGUAS@
 +ALL_LINGUAS_DOC = @ALL_LINGUAS_DOC@
 +AMTAR = @AMTAR@
 +ANT = @ANT@
 +ANTLR = @ANTLR@
 +AR = @AR@
 +ARPACK_LIBS = @ARPACK_LIBS@
 +ASM3 = @ASM3@
 +AUTOCONF = @AUTOCONF@
 +AUTOHEADER = @AUTOHEADER@
 +AUTOMAKE = @AUTOMAKE@
 +AVALON_FRAMEWORK = @AVALON_FRAMEWORK@
 +AWK = @AWK@
 +BATIK = @BATIK@
 +BLAS_LIBS = @BLAS_LIBS@
 +CC = @CC@
 +CCACHE = @CCACHE@
 +CCDEPMODE = @CCDEPMODE@
 +CFLAGS = @CFLAGS@
 +CHECKSTYLE = @CHECKSTYLE@
 +COBERTURA = @COBERTURA@
 +COMMONS_BEANUTILS = @COMMONS_BEANUTILS@
 +COMMONS_IO = @COMMONS_IO@
 +COMMONS_LOGGING = @COMMONS_LOGGING@
 +CPP = @CPP@
 +CPPFLAGS = @CPPFLAGS@
 +CXX = @CXX@
 +CXXCPP = @CXXCPP@
 +CXXDEPMODE = @CXXDEPMODE@
 +CXXFLAGS = @CXXFLAGS@
 +CYGPATH_W = @CYGPATH_W@
 +DEFS = @DEFS@
 +DEMOTOOLS_ENABLE = @DEMOTOOLS_ENABLE@
 +DEPDIR = @DEPDIR@
 +DOCBOOK_ROOT = @DOCBOOK_ROOT@
 +DSYMUTIL = @DSYMUTIL@
 +DUMPBIN = @DUMPBIN@
 +ECHO_C = @ECHO_C@
 +ECHO_N = @ECHO_N@
 +ECHO_T = @ECHO_T@
 +EGREP = @EGREP@
 +EIGEN_CPPFLAGS = @EIGEN_CPPFLAGS@
 +EXEEXT = @EXEEXT@
 +F77 = @F77@
 +FFLAGS = @FFLAGS@
 +FFTW3_LIB = @FFTW3_LIB@
 +FFTW_ENABLE = @FFTW_ENABLE@
 +FGREP = @FGREP@
 +FLEXDOCK = @FLEXDOCK@
 +FLIBS = @FLIBS@
 +FOP = @FOP@
 +GENHTML = @GENHTML@
 +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 +GIWS_BIN = @GIWS_BIN@
 +GLUEGEN2_RT = @GLUEGEN2_RT@
 +GMSGFMT = @GMSGFMT@
 +GMSGFMT_015 = @GMSGFMT_015@
 +GRAPHICS_ENABLE = @GRAPHICS_ENABLE@
 +GREP = @GREP@
 +GUI_ENABLE = @GUI_ENABLE@
 +HDF5_CFLAGS = @HDF5_CFLAGS@
 +HDF5_LIBS = @HDF5_LIBS@
 +HELP_ENABLE = @HELP_ENABLE@
 +INSTALL = @INSTALL@
 +INSTALL_DATA = @INSTALL_DATA@
 +INSTALL_PROGRAM = @INSTALL_PROGRAM@
 +INSTALL_SCRIPT = @INSTALL_SCRIPT@
 +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 +INTLLIBS = @INTLLIBS@
 +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 +JAR = @JAR@
 +JAVA = @JAVA@
 +JAVAC = @JAVAC@
 +JAVAC_DEBUG = @JAVAC_DEBUG@
 +JAVADOC = @JAVADOC@
 +JAVAH = @JAVAH@
 +JAVASCI_ENABLE = @JAVASCI_ENABLE@
 +JAVA_ENABLE = @JAVA_ENABLE@
 +JAVA_G = @JAVA_G@
 +JAVA_HOME = @JAVA_HOME@
 +JAVA_JNI_INCLUDE = @JAVA_JNI_INCLUDE@
 +JAVA_JNI_LIBS = @JAVA_JNI_LIBS@
 +JDB = @JDB@
 +JEUCLID_CORE = @JEUCLID_CORE@
 +JGRAPHX = @JGRAPHX@
 +JHALL = @JHALL@
 +JHDF5 = @JHDF5@
 +JLATEXMATH = @JLATEXMATH@
 +JLATEXMATH_FOP = @JLATEXMATH_FOP@
 +JOGL2 = @JOGL2@
 +JROSETTA_API = @JROSETTA_API@
 +JROSETTA_ENGINE = @JROSETTA_ENGINE@
 +JUNIT4 = @JUNIT4@
 +LAPACK_LIBS = @LAPACK_LIBS@
 +LCOV = @LCOV@
 +LD = @LD@
 +LDFLAGS = @LDFLAGS@
 +LEX = @LEX@
 +LEXLIB = @LEXLIB@
 +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 +LIBICONV = @LIBICONV@
 +LIBINTL = @LIBINTL@
 +LIBM = @LIBM@
 +LIBOBJS = @LIBOBJS@
 +LIBS = @LIBS@
 +LIBTOOL = @LIBTOOL@
 +LIPO = @LIPO@
 +LN_S = @LN_S@
 +LOGGING_LEVEL = @LOGGING_LEVEL@
 +LOOKS = @LOOKS@
 +LTLIBICONV = @LTLIBICONV@
 +LTLIBINTL = @LTLIBINTL@
 +LTLIBOBJS = @LTLIBOBJS@
 +MAINT = @MAINT@
 +MAKEINFO = @MAKEINFO@
 +MATIO_CFLAGS = @MATIO_CFLAGS@
 +MATIO_ENABLE = @MATIO_ENABLE@
 +MATIO_LIBS = @MATIO_LIBS@
 +MKDIR_P = @MKDIR_P@
 +MSGCAT = @MSGCAT@
 +MSGFMT = @MSGFMT@
 +MSGFMT_015 = @MSGFMT_015@
 +MSGMERGE = @MSGMERGE@
 +NM = @NM@
 +NMEDIT = @NMEDIT@
 +OBJDUMP = @OBJDUMP@
 +OBJEXT = @OBJEXT@
 +OCAMLC = @OCAMLC@
 +OCAMLDEP = @OCAMLDEP@
 +OCAMLLEX = @OCAMLLEX@
 +OCAMLOPT = @OCAMLOPT@
 +OCAMLYACC = @OCAMLYACC@
 +OPENMP_CFLAGS = @OPENMP_CFLAGS@
 +OPENMP_CXXFLAGS = @OPENMP_CXXFLAGS@
 +OPENMP_ENABLE = @OPENMP_ENABLE@
 +OPENMP_LIBS = @OPENMP_LIBS@
 +OTOOL = @OTOOL@
 +OTOOL64 = @OTOOL64@
 +PACKAGE = @PACKAGE@
 +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 +PACKAGE_NAME = @PACKAGE_NAME@
 +PACKAGE_STRING = @PACKAGE_STRING@
 +PACKAGE_TARNAME = @PACKAGE_TARNAME@
 +PACKAGE_URL = @PACKAGE_URL@
 +PACKAGE_VERSION = @PACKAGE_VERSION@
 +PATH_SEPARATOR = @PATH_SEPARATOR@
 +PCRE_CFLAGS = @PCRE_CFLAGS@
 +PCRE_CONFIG = @PCRE_CONFIG@
 +PCRE_LIBS = @PCRE_LIBS@
 +PCRE_VERSION = @PCRE_VERSION@
 +PKG_CONFIG = @PKG_CONFIG@
 +POSUB = @POSUB@
 +POW_LIB = @POW_LIB@
 +PYTHON = @PYTHON@
 +RANLIB = @RANLIB@
 +RELOCATABLE = @RELOCATABLE@
 +RT_LIB = @RT_LIB@
 +SAXON = @SAXON@
 +SCILAB_BINARY_VERSION = @SCILAB_BINARY_VERSION@
 +SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
 +SCILAB_VERSION_MAINTENANCE = @SCILAB_VERSION_MAINTENANCE@
 +SCILAB_VERSION_MAJOR = @SCILAB_VERSION_MAJOR@
 +SCILAB_VERSION_MINOR = @SCILAB_VERSION_MINOR@
 +SCIRENDERER = @SCIRENDERER@
 +SCI_CFLAGS = @SCI_CFLAGS@
 +SCI_CXXFLAGS = @SCI_CXXFLAGS@
 +SCI_FFLAGS = @SCI_FFLAGS@
 +SCI_LDFLAGS = @SCI_LDFLAGS@
 +SED = @SED@
 +SET_MAKE = @SET_MAKE@
 +SET_RELOCATABLE = @SET_RELOCATABLE@
 +SHELL = @SHELL@
 +SKINLF = @SKINLF@
 +SPLINT = @SPLINT@
 +STRIP = @STRIP@
 +SWIG_BIN = @SWIG_BIN@
 +SWIG_JAVA = @SWIG_JAVA@
 +SWIG_RUNTIME_LIBS_DIR = @SWIG_RUNTIME_LIBS_DIR@
 +TCLTK_LIBS = @TCLTK_LIBS@
 +TCL_INC_PATH = @TCL_INC_PATH@
 +TK_INC_PATH = @TK_INC_PATH@
 +UMFPACK_ENABLE = @UMFPACK_ENABLE@
 +UMFPACK_LIB = @UMFPACK_LIB@
 +USE_NLS = @USE_NLS@
 +VERSION = @VERSION@
 +WITH_OCAML = @WITH_OCAML@
 +WITH_TKSCI = @WITH_TKSCI@
 +XCOS_ENABLE = @XCOS_ENABLE@
 +XGETTEXT = @XGETTEXT@
 +XGETTEXT_015 = @XGETTEXT_015@
 +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 +XMKMF = @XMKMF@
 +XMLGRAPHICS_COMMONS = @XMLGRAPHICS_COMMONS@
 +XML_APIS_EXT = @XML_APIS_EXT@
 +XML_CONFIG = @XML_CONFIG@
 +XML_FLAGS = @XML_FLAGS@
 +XML_LIBS = @XML_LIBS@
 +XML_VERSION = @XML_VERSION@
 +X_CFLAGS = @X_CFLAGS@
 +X_EXTRA_LIBS = @X_EXTRA_LIBS@
 +X_LIBS = @X_LIBS@
 +X_PRE_LIBS = @X_PRE_LIBS@
 +YACC = @YACC@
 +YFLAGS = @YFLAGS@
 +abs_builddir = @abs_builddir@
 +abs_srcdir = @abs_srcdir@
 +abs_top_builddir = @abs_top_builddir@
 +abs_top_srcdir = @abs_top_srcdir@
 +ac_ct_CC = @ac_ct_CC@
 +ac_ct_CXX = @ac_ct_CXX@
 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 +ac_ct_F77 = @ac_ct_F77@
 +am__include = @am__include@
 +am__leading_dot = @am__leading_dot@
 +am__quote = @am__quote@
 +am__tar = @am__tar@
 +am__untar = @am__untar@
 +bindir = @bindir@
 +build = @build@
 +build_alias = @build_alias@
 +build_cpu = @build_cpu@
 +build_os = @build_os@
 +build_vendor = @build_vendor@
 +builddir = @builddir@
 +cxx_present = @cxx_present@
 +datadir = @datadir@
 +datarootdir = @datarootdir@
 +docdir = @docdir@
 +dvidir = @dvidir@
 +exec_prefix = @exec_prefix@
 +host = @host@
 +host_alias = @host_alias@
 +host_cpu = @host_cpu@
 +host_os = @host_os@
 +host_vendor = @host_vendor@
 +htmldir = @htmldir@
 +includedir = @includedir@
 +infodir = @infodir@
 +install_sh = @install_sh@
 +libdir = @libdir@
 +libexecdir = @libexecdir@
 +localedir = @localedir@
 +localstatedir = @localstatedir@
 +mandir = @mandir@
 +mkdir_p = @mkdir_p@
 +oldincludedir = @oldincludedir@
 +pdfdir = @pdfdir@
 +prefix = @prefix@
 +program_transform_name = @program_transform_name@
 +psdir = @psdir@
 +sbindir = @sbindir@
 +sharedstatedir = @sharedstatedir@
 +srcdir = @srcdir@
 +sysconfdir = @sysconfdir@
 +target_alias = @target_alias@
 +top_build_prefix = @top_build_prefix@
 +top_builddir = @top_builddir@
 +top_srcdir = @top_srcdir@
 +yacc_present = @yacc_present@
 +SYSTEM_ENV_CPP_SOURCES = \
 +      src/cpp/setenvvar.cpp \
 +      src/cpp/sci_path.cpp \
 +      src/cpp/sci_home.cpp \
 +      src/cpp/home.cpp \
 +      src/cpp/sci_tmpdir.cpp \
 +      src/cpp/sci_warning.cpp \
 +      src/cpp/sci_mode.cpp \
 +      src/cpp/configvariable.cpp \
 +      src/cpp/lasterror.cpp \
 +      src/cpp/promptmode.cpp \
 +    src/cpp/formatmode.cpp
 +
 +pkglib_LTLIBRARIES = libscisystem_env.la
 +libscisystem_env_la_SOURCES = $(SYSTEM_ENV_CPP_SOURCES)
 +libscisystem_env_la_CPPFLAGS = \
 +      -I includes/ \
 +      -I src/cpp \
 +    -I $(top_srcdir)/libs/dynamiclibrary/includes/ \
 +    -I $(top_srcdir)/libs/MALLOC/includes/ \
 +      -I $(top_srcdir)/modules/api_scilab/includes/ \
 +      -I $(top_srcdir)/modules/ast/includes/ \
 +      -I $(top_srcdir)/modules/symbol/includes/ \
 +      -I $(top_srcdir)/modules/types/includes/ \
 +      -I $(top_srcdir)/modules/io/includes/ \
 +      -I $(top_srcdir)/modules/fileio/includes/ \
 +      -I $(top_srcdir)/modules/string/includes/ \
 +      -I $(top_srcdir)/modules/threads/includes/ \
 +      -I $(top_srcdir)/modules/operations/includes/ \
 +      -I $(top_srcdir)/modules/elementary_functions/includes/ \
 +      -I $(top_srcdir)/modules/differential_equations/includes/ \
 +      -I $(top_srcdir)/modules/output_stream/includes/ \
 +      -I $(top_srcdir)/modules/localization/includes/ \
 +      $(AM_CPPFLAGS)
 +
 +libscisystem_env_la_includedir = $(pkgincludedir)/system_env
- libscisystem_env_la_include_HEADERS = includes/setenvvar.hxx
++libscisystem_env_la_include_HEADERS = includes/setenvvar.hxx \
++includes/sci_warning.h
++
 +all: all-am
 +
 +.SUFFIXES:
 +.SUFFIXES: .cpp .lo .o .obj
 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
 +      @for dep in $?; do \
 +        case '$(am__configure_deps)' in \
 +          *$$dep*) \
 +            ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
 +              && { if test -f $@; then exit 0; else break; fi; }; \
 +            exit 1;; \
 +        esac; \
 +      done; \
 +      echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/system_env/Makefile'; \
 +      $(am__cd) $(top_srcdir) && \
 +        $(AUTOMAKE) --foreign modules/system_env/Makefile
 +.PRECIOUS: Makefile
 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 +      @case '$?' in \
 +        *config.status*) \
 +          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
 +        *) \
 +          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 +          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 +      esac;
 +
 +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 +      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 +
 +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 +      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 +      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 +$(am__aclocal_m4_deps):
 +install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
 +      @$(NORMAL_INSTALL)
 +      test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
 +      @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
 +      list2=; for p in $$list; do \
 +        if test -f $$p; then \
 +          list2="$$list2 $$p"; \
 +        else :; fi; \
 +      done; \
 +      test -z "$$list2" || { \
 +        echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
 +        $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
 +      }
 +
 +uninstall-pkglibLTLIBRARIES:
 +      @$(NORMAL_UNINSTALL)
 +      @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
 +      for p in $$list; do \
 +        $(am__strip_dir) \
 +        echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
 +        $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
 +      done
 +
 +clean-pkglibLTLIBRARIES:
 +      -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
 +      @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
 +        dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
 +        test "$$dir" != "$$p" || dir=.; \
 +        echo "rm -f \"$${dir}/so_locations\""; \
 +        rm -f "$${dir}/so_locations"; \
 +      done
 +libscisystem_env.la: $(libscisystem_env_la_OBJECTS) $(libscisystem_env_la_DEPENDENCIES) $(EXTRA_libscisystem_env_la_DEPENDENCIES) 
 +      $(CXXLINK) -rpath $(pkglibdir) $(libscisystem_env_la_OBJECTS) $(libscisystem_env_la_LIBADD) $(LIBS)
 +
 +mostlyclean-compile:
 +      -rm -f *.$(OBJEXT)
 +
 +distclean-compile:
 +      -rm -f *.tab.c
 +
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-configvariable.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-formatmode.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-home.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-lasterror.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-promptmode.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-sci_home.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-sci_mode.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-sci_path.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-sci_tmpdir.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-sci_warning.Plo@am__quote@
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscisystem_env_la-setenvvar.Plo@am__quote@
 +
 +.cpp.o:
 +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(CXXCOMPILE) -c -o $@ $<
 +
 +.cpp.obj:
 +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 +
 +.cpp.lo:
 +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LTCXXCOMPILE) -c -o $@ $<
 +
 +libscisystem_env_la-setenvvar.lo: src/cpp/setenvvar.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-setenvvar.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-setenvvar.Tpo -c -o libscisystem_env_la-setenvvar.lo `test -f 'src/cpp/setenvvar.cpp' || echo '$(srcdir)/'`src/cpp/setenvvar.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-setenvvar.Tpo $(DEPDIR)/libscisystem_env_la-setenvvar.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/setenvvar.cpp' object='libscisystem_env_la-setenvvar.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-setenvvar.lo `test -f 'src/cpp/setenvvar.cpp' || echo '$(srcdir)/'`src/cpp/setenvvar.cpp
 +
 +libscisystem_env_la-sci_path.lo: src/cpp/sci_path.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-sci_path.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-sci_path.Tpo -c -o libscisystem_env_la-sci_path.lo `test -f 'src/cpp/sci_path.cpp' || echo '$(srcdir)/'`src/cpp/sci_path.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-sci_path.Tpo $(DEPDIR)/libscisystem_env_la-sci_path.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/sci_path.cpp' object='libscisystem_env_la-sci_path.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-sci_path.lo `test -f 'src/cpp/sci_path.cpp' || echo '$(srcdir)/'`src/cpp/sci_path.cpp
 +
 +libscisystem_env_la-sci_home.lo: src/cpp/sci_home.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-sci_home.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-sci_home.Tpo -c -o libscisystem_env_la-sci_home.lo `test -f 'src/cpp/sci_home.cpp' || echo '$(srcdir)/'`src/cpp/sci_home.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-sci_home.Tpo $(DEPDIR)/libscisystem_env_la-sci_home.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/sci_home.cpp' object='libscisystem_env_la-sci_home.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-sci_home.lo `test -f 'src/cpp/sci_home.cpp' || echo '$(srcdir)/'`src/cpp/sci_home.cpp
 +
 +libscisystem_env_la-home.lo: src/cpp/home.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-home.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-home.Tpo -c -o libscisystem_env_la-home.lo `test -f 'src/cpp/home.cpp' || echo '$(srcdir)/'`src/cpp/home.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-home.Tpo $(DEPDIR)/libscisystem_env_la-home.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/home.cpp' object='libscisystem_env_la-home.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-home.lo `test -f 'src/cpp/home.cpp' || echo '$(srcdir)/'`src/cpp/home.cpp
 +
 +libscisystem_env_la-sci_tmpdir.lo: src/cpp/sci_tmpdir.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-sci_tmpdir.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-sci_tmpdir.Tpo -c -o libscisystem_env_la-sci_tmpdir.lo `test -f 'src/cpp/sci_tmpdir.cpp' || echo '$(srcdir)/'`src/cpp/sci_tmpdir.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-sci_tmpdir.Tpo $(DEPDIR)/libscisystem_env_la-sci_tmpdir.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/sci_tmpdir.cpp' object='libscisystem_env_la-sci_tmpdir.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-sci_tmpdir.lo `test -f 'src/cpp/sci_tmpdir.cpp' || echo '$(srcdir)/'`src/cpp/sci_tmpdir.cpp
 +
 +libscisystem_env_la-sci_warning.lo: src/cpp/sci_warning.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-sci_warning.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-sci_warning.Tpo -c -o libscisystem_env_la-sci_warning.lo `test -f 'src/cpp/sci_warning.cpp' || echo '$(srcdir)/'`src/cpp/sci_warning.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-sci_warning.Tpo $(DEPDIR)/libscisystem_env_la-sci_warning.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/sci_warning.cpp' object='libscisystem_env_la-sci_warning.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-sci_warning.lo `test -f 'src/cpp/sci_warning.cpp' || echo '$(srcdir)/'`src/cpp/sci_warning.cpp
 +
 +libscisystem_env_la-sci_mode.lo: src/cpp/sci_mode.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-sci_mode.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-sci_mode.Tpo -c -o libscisystem_env_la-sci_mode.lo `test -f 'src/cpp/sci_mode.cpp' || echo '$(srcdir)/'`src/cpp/sci_mode.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-sci_mode.Tpo $(DEPDIR)/libscisystem_env_la-sci_mode.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/sci_mode.cpp' object='libscisystem_env_la-sci_mode.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-sci_mode.lo `test -f 'src/cpp/sci_mode.cpp' || echo '$(srcdir)/'`src/cpp/sci_mode.cpp
 +
 +libscisystem_env_la-configvariable.lo: src/cpp/configvariable.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-configvariable.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-configvariable.Tpo -c -o libscisystem_env_la-configvariable.lo `test -f 'src/cpp/configvariable.cpp' || echo '$(srcdir)/'`src/cpp/configvariable.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-configvariable.Tpo $(DEPDIR)/libscisystem_env_la-configvariable.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/configvariable.cpp' object='libscisystem_env_la-configvariable.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-configvariable.lo `test -f 'src/cpp/configvariable.cpp' || echo '$(srcdir)/'`src/cpp/configvariable.cpp
 +
 +libscisystem_env_la-lasterror.lo: src/cpp/lasterror.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-lasterror.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-lasterror.Tpo -c -o libscisystem_env_la-lasterror.lo `test -f 'src/cpp/lasterror.cpp' || echo '$(srcdir)/'`src/cpp/lasterror.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-lasterror.Tpo $(DEPDIR)/libscisystem_env_la-lasterror.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/lasterror.cpp' object='libscisystem_env_la-lasterror.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-lasterror.lo `test -f 'src/cpp/lasterror.cpp' || echo '$(srcdir)/'`src/cpp/lasterror.cpp
 +
 +libscisystem_env_la-promptmode.lo: src/cpp/promptmode.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-promptmode.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-promptmode.Tpo -c -o libscisystem_env_la-promptmode.lo `test -f 'src/cpp/promptmode.cpp' || echo '$(srcdir)/'`src/cpp/promptmode.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-promptmode.Tpo $(DEPDIR)/libscisystem_env_la-promptmode.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/promptmode.cpp' object='libscisystem_env_la-promptmode.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-promptmode.lo `test -f 'src/cpp/promptmode.cpp' || echo '$(srcdir)/'`src/cpp/promptmode.cpp
 +
 +libscisystem_env_la-formatmode.lo: src/cpp/formatmode.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscisystem_env_la-formatmode.lo -MD -MP -MF $(DEPDIR)/libscisystem_env_la-formatmode.Tpo -c -o libscisystem_env_la-formatmode.lo `test -f 'src/cpp/formatmode.cpp' || echo '$(srcdir)/'`src/cpp/formatmode.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscisystem_env_la-formatmode.Tpo $(DEPDIR)/libscisystem_env_la-formatmode.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/formatmode.cpp' object='libscisystem_env_la-formatmode.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscisystem_env_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscisystem_env_la-formatmode.lo `test -f 'src/cpp/formatmode.cpp' || echo '$(srcdir)/'`src/cpp/formatmode.cpp
 +
 +mostlyclean-libtool:
 +      -rm -f *.lo
 +
 +clean-libtool:
 +      -rm -rf .libs _libs
 +install-libscisystem_env_la_includeHEADERS: $(libscisystem_env_la_include_HEADERS)
 +      @$(NORMAL_INSTALL)
 +      test -z "$(libscisystem_env_la_includedir)" || $(MKDIR_P) "$(DESTDIR)$(libscisystem_env_la_includedir)"
 +      @list='$(libscisystem_env_la_include_HEADERS)'; test -n "$(libscisystem_env_la_includedir)" || list=; \
 +      for p in $$list; do \
 +        if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
 +        echo "$$d$$p"; \
 +      done | $(am__base_list) | \
 +      while read files; do \
 +        echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libscisystem_env_la_includedir)'"; \
 +        $(INSTALL_HEADER) $$files "$(DESTDIR)$(libscisystem_env_la_includedir)" || exit $$?; \
 +      done
 +
 +uninstall-libscisystem_env_la_includeHEADERS:
 +      @$(NORMAL_UNINSTALL)
 +      @list='$(libscisystem_env_la_include_HEADERS)'; test -n "$(libscisystem_env_la_includedir)" || list=; \
 +      files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 +      dir='$(DESTDIR)$(libscisystem_env_la_includedir)'; $(am__uninstall_files_from_dir)
 +
 +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 +      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 +      unique=`for i in $$list; do \
 +          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 +        done | \
 +        $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 +            END { if (nonempty) { for (i in files) print i; }; }'`; \
 +      mkid -fID $$unique
 +tags: TAGS
 +
 +TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 +              $(TAGS_FILES) $(LISP)
 +      set x; \
 +      here=`pwd`; \
 +      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 +      unique=`for i in $$list; do \
 +          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 +        done | \
 +        $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 +            END { if (nonempty) { for (i in files) print i; }; }'`; \
 +      shift; \
 +      if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 +        test -n "$$unique" || unique=$$empty_fix; \
 +        if test $$# -gt 0; then \
 +          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
 +            "$$@" $$unique; \
 +        else \
 +          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
 +            $$unique; \
 +        fi; \
 +      fi
 +ctags: CTAGS
 +CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 +              $(TAGS_FILES) $(LISP)
 +      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 +      unique=`for i in $$list; do \
 +          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 +        done | \
 +        $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 +            END { if (nonempty) { for (i in files) print i; }; }'`; \
 +      test -z "$(CTAGS_ARGS)$$unique" \
 +        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 +           $$unique
 +
 +GTAGS:
 +      here=`$(am__cd) $(top_builddir) && pwd` \
 +        && $(am__cd) $(top_srcdir) \
 +        && gtags -i $(GTAGS_ARGS) "$$here"
 +
 +distclean-tags:
 +      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 +
 +distdir: $(DISTFILES)
 +      @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 +      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 +      list='$(DISTFILES)'; \
 +        dist_files=`for file in $$list; do echo $$file; done | \
 +        sed -e "s|^$$srcdirstrip/||;t" \
 +            -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
 +      case $$dist_files in \
 +        */*) $(MKDIR_P) `echo "$$dist_files" | \
 +                         sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
 +                         sort -u` ;; \
 +      esac; \
 +      for file in $$dist_files; do \
 +        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 +        if test -d $$d/$$file; then \
 +          dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
 +          if test -d "$(distdir)/$$file"; then \
 +            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 +          fi; \
 +          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
 +            cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
 +            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 +          fi; \
 +          cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 +        else \
 +          test -f "$(distdir)/$$file" \
 +          || cp -p $$d/$$file "$(distdir)/$$file" \
 +          || exit 1; \
 +        fi; \
 +      done
 +check-am: all-am
 +check: check-am
 +all-am: Makefile $(LTLIBRARIES) $(HEADERS)
 +installdirs:
 +      for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscisystem_env_la_includedir)"; do \
 +        test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 +      done
 +install: install-am
 +install-exec: install-exec-am
 +install-data: install-data-am
 +uninstall: uninstall-am
 +
 +install-am: all-am
 +      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 +
 +installcheck: installcheck-am
 +install-strip:
 +      if test -z '$(STRIP)'; then \
 +        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 +          install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 +            install; \
 +      else \
 +        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 +          install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 +          "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 +      fi
 +mostlyclean-generic:
 +
 +clean-generic:
 +
 +distclean-generic:
 +      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
 +      -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 +
 +maintainer-clean-generic:
 +      @echo "This command is intended for maintainers to use"
 +      @echo "it deletes files that may require special tools to rebuild."
 +clean: clean-am
 +
 +clean-am: clean-generic clean-libtool clean-pkglibLTLIBRARIES \
 +      mostlyclean-am
 +
 +distclean: distclean-am
 +      -rm -rf ./$(DEPDIR)
 +      -rm -f Makefile
 +distclean-am: clean-am distclean-compile distclean-generic \
 +      distclean-tags
 +
 +dvi: dvi-am
 +
 +dvi-am:
 +
 +html: html-am
 +
 +html-am:
 +
 +info: info-am
 +
 +info-am:
 +
 +install-data-am: install-libscisystem_env_la_includeHEADERS
 +
 +install-dvi: install-dvi-am
 +
 +install-dvi-am:
 +
 +install-exec-am: install-pkglibLTLIBRARIES
 +
 +install-html: install-html-am
 +
 +install-html-am:
 +
 +install-info: install-info-am
 +
 +install-info-am:
 +
 +install-man:
 +
 +install-pdf: install-pdf-am
 +
 +install-pdf-am:
 +
 +install-ps: install-ps-am
 +
 +install-ps-am:
 +
 +installcheck-am:
 +
 +maintainer-clean: maintainer-clean-am
 +      -rm -rf ./$(DEPDIR)
 +      -rm -f Makefile
 +maintainer-clean-am: distclean-am maintainer-clean-generic
 +
 +mostlyclean: mostlyclean-am
 +
 +mostlyclean-am: mostlyclean-compile mostlyclean-generic \
 +      mostlyclean-libtool
 +
 +pdf: pdf-am
 +
 +pdf-am:
 +
 +ps: ps-am
 +
 +ps-am:
 +
 +uninstall-am: uninstall-libscisystem_env_la_includeHEADERS \
 +      uninstall-pkglibLTLIBRARIES
 +
 +.MAKE: install-am install-strip
 +
 +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
 +      clean-libtool clean-pkglibLTLIBRARIES ctags distclean \
 +      distclean-compile distclean-generic distclean-libtool \
 +      distclean-tags distdir dvi dvi-am html html-am info info-am \
 +      install install-am install-data install-data-am install-dvi \
 +      install-dvi-am install-exec install-exec-am install-html \
 +      install-html-am install-info install-info-am \
 +      install-libscisystem_env_la_includeHEADERS install-man \
 +      install-pdf install-pdf-am install-pkglibLTLIBRARIES \
 +      install-ps install-ps-am install-strip installcheck \
 +      installcheck-am installdirs maintainer-clean \
 +      maintainer-clean-generic mostlyclean mostlyclean-compile \
 +      mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 +      tags uninstall uninstall-am \
 +      uninstall-libscisystem_env_la_includeHEADERS \
 +      uninstall-pkglibLTLIBRARIES
 +
 +
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT:
index af79eb0,0000000..68ccfc2
mode 100644,000000..100644
--- /dev/null
@@@ -1,47 -1,0 +1,52 @@@
 +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 +# Copyright (C) 2011 - DIGITEO - Antoine ELIAS
 +#
 +# This file must be used under the terms of the CeCILL.
 +# This source file is licensed as described in the file COPYING, which
 +# you should have received as part of this distribution.  The terms
 +# are also available at
 +# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 +
 +THREADS_CPP_SOURCES = \
 +      src/cpp/Thread_Wrapper.cpp
 +
 +libscithreads_la_CPPFLAGS= \
 +      -I$(srcdir)/includes/
 +if MAINTAINER_MODE
 +pkglib_LTLIBRARIES = libscithreads.la
 +else
 +noinst_LTLIBRARIES = libscithreads.la
 +endif
 +
 +libscithreads_la_LDFLAGS = -version-number $(SCILAB_LIBRARY_VERSION) -lpthread
 +
 +libscithreads_la_SOURCES = $(THREADS_CPP_SOURCES)
 +
 +# For the code check (splint)
 +CHECK_SRC= $(THREADS_CPP_SOURCES)
 +INCLUDE_FLAGS = $(libscithreads_la_CPPFLAGS)
 +
 +# Many stuff depends on this one ... commented
 +# libscithreads_la_LIBADD =  libscithreads.la
 +
 +#### Target ######
 +modulename=threads
 +
 +#### threads : Conf files ####
 +libscithreads_la_rootdir = $(mydatadir)
 +
 +
 +#### threads : init scripts ####
 +# libscithreads_la_etcdir = $(mydatadir)/etc
 +# libscithreads_la_etc_DATA = etc/threads.quit etc/threads.start
 +
 +#### threads : gateway declaration ####
 +# libscithreads_la_sci_gatewaydir = $(mydatadir)/sci_gateway
 +# libscithreads_la_sci_gateway_DATA = sci_gateway/threads_gateway.xml
 +
++#### threads : include files ####
++libscithreads_la_includedir=$(pkgincludedir)
++libscithreads_la_include_HEADERS = \
++includes/Thread_Wrapper.h
++
 +include $(top_srcdir)/Makefile.incl.am
index e347757,0000000..309a521
mode 100644,000000..100644
--- /dev/null
@@@ -1,1047 -1,0 +1,1079 @@@
 +# Makefile.in generated by automake 1.11.3 from Makefile.am.
 +# @configure_input@
 +
 +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 +# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software
 +# Foundation, Inc.
 +# This Makefile.in is free software; the Free Software Foundation
 +# gives unlimited permission to copy and/or distribute it,
 +# with or without modifications, as long as this notice is preserved.
 +
 +# This program is distributed in the hope that it will be useful,
 +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
 +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 +# PARTICULAR PURPOSE.
 +
 +@SET_MAKE@
 +
 +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 +# Copyright (C) 2011 - DIGITEO - Antoine ELIAS
 +#
 +# This file must be used under the terms of the CeCILL.
 +# This source file is licensed as described in the file COPYING, which
 +# you should have received as part of this distribution.  The terms
 +# are also available at
 +# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 +
 +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 +# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
 +# Copyright (C) 2008      - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr>
 +#
 +# This file must be used under the terms of the CeCILL.
 +# This source file is licensed as described in the file COPYING, which
 +# you should have received as part of this distribution.  The terms
 +# are also available at
 +# http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 +#
 +
 +##########
 +### Makefile included stuff
 +### Target, variable, suffixes which are supposed to be usefull in every makefile.am
 +##########
 +
++
 +VPATH = @srcdir@
 +pkgdatadir = $(datadir)/@PACKAGE@
 +pkgincludedir = $(includedir)/@PACKAGE@
 +pkglibdir = $(libdir)/@PACKAGE@
 +pkglibexecdir = $(libexecdir)/@PACKAGE@
 +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 +install_sh_DATA = $(install_sh) -c -m 644
 +install_sh_PROGRAM = $(install_sh) -c
 +install_sh_SCRIPT = $(install_sh) -c
 +INSTALL_HEADER = $(INSTALL_DATA)
 +transform = $(program_transform_name)
 +NORMAL_INSTALL = :
 +PRE_INSTALL = :
 +POST_INSTALL = :
 +NORMAL_UNINSTALL = :
 +PRE_UNINSTALL = :
 +POST_UNINSTALL = :
 +build_triplet = @build@
 +host_triplet = @host@
- DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
++DIST_COMMON = $(libscithreads_la_include_HEADERS) \
++      $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
 +      $(top_srcdir)/Makefile.incl.am
 +@NEED_JAVA_TRUE@am__append_1 = java
 +subdir = modules/threads
 +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 +am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \
 +      $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/docbook.m4 \
 +      $(top_srcdir)/m4/eigen.m4 $(top_srcdir)/m4/fftw.m4 \
 +      $(top_srcdir)/m4/fortran.m4 $(top_srcdir)/m4/giws.m4 \
 +      $(top_srcdir)/m4/hdf5.m4 $(top_srcdir)/m4/intel_compiler.m4 \
 +      $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \
 +      $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
 +      $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \
 +      $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \
 +      $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
 +      $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \
 +      $(top_srcdir)/m4/ocaml.m4 $(top_srcdir)/m4/pcre.m4 \
 +      $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/relocatable.m4 \
 +      $(top_srcdir)/m4/swig.m4 $(top_srcdir)/m4/symlinks.m4 \
 +      $(top_srcdir)/m4/tcltk.m4 $(top_srcdir)/m4/umfpack.m4 \
 +      $(top_srcdir)/configure.ac
 +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 +      $(ACLOCAL_M4)
 +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
 +CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h
 +CONFIG_CLEAN_FILES =
 +CONFIG_CLEAN_VPATH_FILES =
 +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 +am__vpath_adj = case $$p in \
 +    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
 +    *) f=$$p;; \
 +  esac;
 +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
 +am__install_max = 40
 +am__nobase_strip_setup = \
 +  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
 +am__nobase_strip = \
 +  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
 +am__nobase_list = $(am__nobase_strip_setup); \
 +  for p in $$list; do echo "$$p $$p"; done | \
 +  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
 +  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
 +    if (++n[$$2] == $(am__install_max)) \
 +      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
 +    END { for (dir in files) print dir, files[dir] }'
 +am__base_list = \
 +  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
 +  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 +am__uninstall_files_from_dir = { \
 +  test -z "$$files" \
 +    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
 +    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
 +         $(am__cd) "$$dir" && rm -f $$files; }; \
 +  }
- am__installdirs = "$(DESTDIR)$(pkglibdir)"
++am__installdirs = "$(DESTDIR)$(pkglibdir)" \
++      "$(DESTDIR)$(libscithreads_la_includedir)"
 +LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES)
 +libscithreads_la_LIBADD =
 +am__objects_1 = libscithreads_la-Thread_Wrapper.lo
 +am_libscithreads_la_OBJECTS = $(am__objects_1)
 +libscithreads_la_OBJECTS = $(am_libscithreads_la_OBJECTS)
 +libscithreads_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
 +      $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
 +      $(CXXFLAGS) $(libscithreads_la_LDFLAGS) $(LDFLAGS) -o $@
 +@MAINTAINER_MODE_FALSE@am_libscithreads_la_rpath =
 +@MAINTAINER_MODE_TRUE@am_libscithreads_la_rpath = -rpath $(pkglibdir)
 +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/modules/core/includes
 +depcomp = $(SHELL) $(top_srcdir)/config/depcomp
 +am__depfiles_maybe = depfiles
 +am__mv = mv -f
 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 +      $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 +LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 +      --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 +      $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
 +CXXLD = $(CXX)
 +CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 +      --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
 +      $(LDFLAGS) -o $@
 +SOURCES = $(libscithreads_la_SOURCES)
 +DIST_SOURCES = $(libscithreads_la_SOURCES)
++HEADERS = $(libscithreads_la_include_HEADERS)
 +ETAGS = etags
 +CTAGS = ctags
 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 +ACLOCAL = @ACLOCAL@
 +ALL_LINGUAS = @ALL_LINGUAS@
 +ALL_LINGUAS_DOC = @ALL_LINGUAS_DOC@
 +AMTAR = @AMTAR@
 +ANT = @ANT@
 +ANTLR = @ANTLR@
 +AR = @AR@
 +ARPACK_LIBS = @ARPACK_LIBS@
 +ASM3 = @ASM3@
 +AUTOCONF = @AUTOCONF@
 +AUTOHEADER = @AUTOHEADER@
 +AUTOMAKE = @AUTOMAKE@
 +AVALON_FRAMEWORK = @AVALON_FRAMEWORK@
 +AWK = @AWK@
 +BATIK = @BATIK@
 +BLAS_LIBS = @BLAS_LIBS@
 +CC = @CC@
 +CCACHE = @CCACHE@
 +CCDEPMODE = @CCDEPMODE@
 +CFLAGS = @CFLAGS@
 +CHECKSTYLE = @CHECKSTYLE@
 +COBERTURA = @COBERTURA@
 +COMMONS_BEANUTILS = @COMMONS_BEANUTILS@
 +COMMONS_IO = @COMMONS_IO@
 +COMMONS_LOGGING = @COMMONS_LOGGING@
 +CPP = @CPP@
 +CPPFLAGS = @CPPFLAGS@
 +CXX = @CXX@
 +CXXCPP = @CXXCPP@
 +CXXDEPMODE = @CXXDEPMODE@
 +CXXFLAGS = @CXXFLAGS@
 +CYGPATH_W = @CYGPATH_W@
 +DEFS = @DEFS@
 +DEMOTOOLS_ENABLE = @DEMOTOOLS_ENABLE@
 +DEPDIR = @DEPDIR@
 +DOCBOOK_ROOT = @DOCBOOK_ROOT@
 +DSYMUTIL = @DSYMUTIL@
 +DUMPBIN = @DUMPBIN@
 +ECHO_C = @ECHO_C@
 +ECHO_N = @ECHO_N@
 +ECHO_T = @ECHO_T@
 +EGREP = @EGREP@
 +EIGEN_CPPFLAGS = @EIGEN_CPPFLAGS@
 +EXEEXT = @EXEEXT@
 +F77 = @F77@
 +FFLAGS = @FFLAGS@
 +FFTW3_LIB = @FFTW3_LIB@
 +FFTW_ENABLE = @FFTW_ENABLE@
 +FGREP = @FGREP@
 +FLEXDOCK = @FLEXDOCK@
 +FLIBS = @FLIBS@
 +FOP = @FOP@
 +GENHTML = @GENHTML@
 +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 +GIWS_BIN = @GIWS_BIN@
 +GLUEGEN2_RT = @GLUEGEN2_RT@
 +GMSGFMT = @GMSGFMT@
 +GMSGFMT_015 = @GMSGFMT_015@
 +GRAPHICS_ENABLE = @GRAPHICS_ENABLE@
 +GREP = @GREP@
 +GUI_ENABLE = @GUI_ENABLE@
 +HDF5_CFLAGS = @HDF5_CFLAGS@
 +HDF5_LIBS = @HDF5_LIBS@
 +HELP_ENABLE = @HELP_ENABLE@
 +INSTALL = @INSTALL@
 +INSTALL_DATA = @INSTALL_DATA@
 +INSTALL_PROGRAM = @INSTALL_PROGRAM@
 +INSTALL_SCRIPT = @INSTALL_SCRIPT@
 +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 +INTLLIBS = @INTLLIBS@
 +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
 +JAR = @JAR@
 +JAVA = @JAVA@
 +JAVAC = @JAVAC@
 +JAVAC_DEBUG = @JAVAC_DEBUG@
 +JAVADOC = @JAVADOC@
 +JAVAH = @JAVAH@
 +JAVASCI_ENABLE = @JAVASCI_ENABLE@
 +JAVA_ENABLE = @JAVA_ENABLE@
 +JAVA_G = @JAVA_G@
 +JAVA_HOME = @JAVA_HOME@
 +JAVA_JNI_INCLUDE = @JAVA_JNI_INCLUDE@
 +JAVA_JNI_LIBS = @JAVA_JNI_LIBS@
 +JDB = @JDB@
 +JEUCLID_CORE = @JEUCLID_CORE@
 +JGRAPHX = @JGRAPHX@
 +JHALL = @JHALL@
 +JHDF5 = @JHDF5@
 +JLATEXMATH = @JLATEXMATH@
 +JLATEXMATH_FOP = @JLATEXMATH_FOP@
 +JOGL2 = @JOGL2@
 +JROSETTA_API = @JROSETTA_API@
 +JROSETTA_ENGINE = @JROSETTA_ENGINE@
 +JUNIT4 = @JUNIT4@
 +LAPACK_LIBS = @LAPACK_LIBS@
 +LCOV = @LCOV@
 +LD = @LD@
 +LDFLAGS = @LDFLAGS@
 +LEX = @LEX@
 +LEXLIB = @LEXLIB@
 +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
 +LIBICONV = @LIBICONV@
 +LIBINTL = @LIBINTL@
 +LIBM = @LIBM@
 +LIBOBJS = @LIBOBJS@
 +LIBS = @LIBS@
 +LIBTOOL = @LIBTOOL@
 +LIPO = @LIPO@
 +LN_S = @LN_S@
 +LOGGING_LEVEL = @LOGGING_LEVEL@
 +LOOKS = @LOOKS@
 +LTLIBICONV = @LTLIBICONV@
 +LTLIBINTL = @LTLIBINTL@
 +LTLIBOBJS = @LTLIBOBJS@
 +MAINT = @MAINT@
 +MAKEINFO = @MAKEINFO@
 +MATIO_CFLAGS = @MATIO_CFLAGS@
 +MATIO_ENABLE = @MATIO_ENABLE@
 +MATIO_LIBS = @MATIO_LIBS@
 +MKDIR_P = @MKDIR_P@
 +MSGCAT = @MSGCAT@
 +MSGFMT = @MSGFMT@
 +MSGFMT_015 = @MSGFMT_015@
 +MSGMERGE = @MSGMERGE@
 +NM = @NM@
 +NMEDIT = @NMEDIT@
 +OBJDUMP = @OBJDUMP@
 +OBJEXT = @OBJEXT@
 +OCAMLC = @OCAMLC@
 +OCAMLDEP = @OCAMLDEP@
 +OCAMLLEX = @OCAMLLEX@
 +OCAMLOPT = @OCAMLOPT@
 +OCAMLYACC = @OCAMLYACC@
 +OPENMP_CFLAGS = @OPENMP_CFLAGS@
 +OPENMP_CXXFLAGS = @OPENMP_CXXFLAGS@
 +OPENMP_ENABLE = @OPENMP_ENABLE@
 +OPENMP_LIBS = @OPENMP_LIBS@
 +OTOOL = @OTOOL@
 +OTOOL64 = @OTOOL64@
 +PACKAGE = @PACKAGE@
 +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 +PACKAGE_NAME = @PACKAGE_NAME@
 +PACKAGE_STRING = @PACKAGE_STRING@
 +PACKAGE_TARNAME = @PACKAGE_TARNAME@
 +PACKAGE_URL = @PACKAGE_URL@
 +PACKAGE_VERSION = @PACKAGE_VERSION@
 +PATH_SEPARATOR = @PATH_SEPARATOR@
 +PCRE_CFLAGS = @PCRE_CFLAGS@
 +PCRE_CONFIG = @PCRE_CONFIG@
 +PCRE_LIBS = @PCRE_LIBS@
 +PCRE_VERSION = @PCRE_VERSION@
 +PKG_CONFIG = @PKG_CONFIG@
 +POSUB = @POSUB@
 +POW_LIB = @POW_LIB@
 +PYTHON = @PYTHON@
 +RANLIB = @RANLIB@
 +RELOCATABLE = @RELOCATABLE@
 +RT_LIB = @RT_LIB@
 +SAXON = @SAXON@
 +SCILAB_BINARY_VERSION = @SCILAB_BINARY_VERSION@
 +SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@
 +SCILAB_VERSION_MAINTENANCE = @SCILAB_VERSION_MAINTENANCE@
 +SCILAB_VERSION_MAJOR = @SCILAB_VERSION_MAJOR@
 +SCILAB_VERSION_MINOR = @SCILAB_VERSION_MINOR@
 +SCIRENDERER = @SCIRENDERER@
 +SCI_CFLAGS = @SCI_CFLAGS@
 +SCI_CXXFLAGS = @SCI_CXXFLAGS@
 +SCI_FFLAGS = @SCI_FFLAGS@
 +SCI_LDFLAGS = @SCI_LDFLAGS@
 +SED = @SED@
 +SET_MAKE = @SET_MAKE@
 +SET_RELOCATABLE = @SET_RELOCATABLE@
 +SHELL = @SHELL@
 +SKINLF = @SKINLF@
 +SPLINT = @SPLINT@
 +STRIP = @STRIP@
 +SWIG_BIN = @SWIG_BIN@
 +SWIG_JAVA = @SWIG_JAVA@
 +SWIG_RUNTIME_LIBS_DIR = @SWIG_RUNTIME_LIBS_DIR@
 +TCLTK_LIBS = @TCLTK_LIBS@
 +TCL_INC_PATH = @TCL_INC_PATH@
 +TK_INC_PATH = @TK_INC_PATH@
 +UMFPACK_ENABLE = @UMFPACK_ENABLE@
 +UMFPACK_LIB = @UMFPACK_LIB@
 +USE_NLS = @USE_NLS@
 +VERSION = @VERSION@
 +WITH_OCAML = @WITH_OCAML@
 +WITH_TKSCI = @WITH_TKSCI@
 +XCOS_ENABLE = @XCOS_ENABLE@
 +XGETTEXT = @XGETTEXT@
 +XGETTEXT_015 = @XGETTEXT_015@
 +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
 +XMKMF = @XMKMF@
 +XMLGRAPHICS_COMMONS = @XMLGRAPHICS_COMMONS@
 +XML_APIS_EXT = @XML_APIS_EXT@
 +XML_CONFIG = @XML_CONFIG@
 +XML_FLAGS = @XML_FLAGS@
 +XML_LIBS = @XML_LIBS@
 +XML_VERSION = @XML_VERSION@
 +X_CFLAGS = @X_CFLAGS@
 +X_EXTRA_LIBS = @X_EXTRA_LIBS@
 +X_LIBS = @X_LIBS@
 +X_PRE_LIBS = @X_PRE_LIBS@
 +YACC = @YACC@
 +YFLAGS = @YFLAGS@
 +abs_builddir = @abs_builddir@
 +abs_srcdir = @abs_srcdir@
 +abs_top_builddir = @abs_top_builddir@
 +abs_top_srcdir = @abs_top_srcdir@
 +ac_ct_CC = @ac_ct_CC@
 +ac_ct_CXX = @ac_ct_CXX@
 +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 +ac_ct_F77 = @ac_ct_F77@
 +am__include = @am__include@
 +am__leading_dot = @am__leading_dot@
 +am__quote = @am__quote@
 +am__tar = @am__tar@
 +am__untar = @am__untar@
 +bindir = @bindir@
 +build = @build@
 +build_alias = @build_alias@
 +build_cpu = @build_cpu@
 +build_os = @build_os@
 +build_vendor = @build_vendor@
 +builddir = @builddir@
 +cxx_present = @cxx_present@
 +datadir = @datadir@
 +datarootdir = @datarootdir@
 +docdir = @docdir@
 +dvidir = @dvidir@
 +exec_prefix = @exec_prefix@
 +host = @host@
 +host_alias = @host_alias@
 +host_cpu = @host_cpu@
 +host_os = @host_os@
 +host_vendor = @host_vendor@
 +htmldir = @htmldir@
 +includedir = @includedir@
 +infodir = @infodir@
 +install_sh = @install_sh@
 +libdir = @libdir@
 +libexecdir = @libexecdir@
 +localedir = @localedir@
 +localstatedir = @localstatedir@
 +mandir = @mandir@
 +mkdir_p = @mkdir_p@
 +oldincludedir = @oldincludedir@
 +pdfdir = @pdfdir@
 +prefix = @prefix@
 +program_transform_name = @program_transform_name@
 +psdir = @psdir@
 +sbindir = @sbindir@
 +sharedstatedir = @sharedstatedir@
 +srcdir = @srcdir@
 +sysconfdir = @sysconfdir@
 +target_alias = @target_alias@
 +top_build_prefix = @top_build_prefix@
 +top_builddir = @top_builddir@
 +top_srcdir = @top_srcdir@
 +yacc_present = @yacc_present@
 +THREADS_CPP_SOURCES = \
 +      src/cpp/Thread_Wrapper.cpp
 +
 +libscithreads_la_CPPFLAGS = \
 +      -I$(srcdir)/includes/
 +
 +@MAINTAINER_MODE_TRUE@pkglib_LTLIBRARIES = libscithreads.la
 +@MAINTAINER_MODE_FALSE@noinst_LTLIBRARIES = libscithreads.la
 +libscithreads_la_LDFLAGS = -version-number $(SCILAB_LIBRARY_VERSION) -lpthread
 +libscithreads_la_SOURCES = $(THREADS_CPP_SOURCES)
 +
 +# For the code check (splint)
 +CHECK_SRC = $(THREADS_CPP_SOURCES)
 +INCLUDE_FLAGS = $(libscithreads_la_CPPFLAGS)
 +
 +# Many stuff depends on this one ... commented
 +# libscithreads_la_LIBADD =  libscithreads.la
 +
 +#### Target ######
 +modulename = threads
 +
 +#### threads : Conf files ####
 +libscithreads_la_rootdir = $(mydatadir)
 +
++#### threads : init scripts ####
++# libscithreads_la_etcdir = $(mydatadir)/etc
++# libscithreads_la_etc_DATA = etc/threads.quit etc/threads.start
++
++#### threads : gateway declaration ####
++# libscithreads_la_sci_gatewaydir = $(mydatadir)/sci_gateway
++# libscithreads_la_sci_gateway_DATA = sci_gateway/threads_gateway.xml
++
++#### threads : include files ####
++libscithreads_la_includedir = $(pkgincludedir)
++libscithreads_la_include_HEADERS = \
++includes/Thread_Wrapper.h
++
++
 +# Where all the Scilab stuff is installed (macros, help, ...)
 +mydatadir = $(pkgdatadir)/modules/$(modulename)
 +
 +# Set AM_* SCI detected settings
 +AM_CPPFLAGS = $(SCI_CPPFLAGS)
 +AM_CFLAGS = $(SCI_CFLAGS)
 +AM_CXXFLAGS = $(SCI_CXXFLAGS)
 +# append includes to AM_FFLAGS to manage fortran includes
 +AM_FFLAGS = $(SCI_FFLAGS) -I$(top_srcdir)/modules/core/includes/
 +
 +# Tag shared libraries with the Scilab version
 +AM_LDFLAGS = $(SCI_LDFLAGS) -version-number $(SCILAB_LIBRARY_VERSION)
 +
 +# splint options
 +SPLINT_OPTIONS = -weak -booltype BOOL
 +
 +########################### JAVA ######################################
 +#### We are delegating java compilation to ant... Thanks to that
 +#### the procedure will be the same with Microsoft Windows (C)
 +#### and Linux/Unix
 +#######################################################################
 +TARGETS_ALL = $(am__append_1)
 +
 +################ MACROS ######################
 +# Rule to build a macro
 +# NOT USED  AT THE MOMENT
 +SUFFIXES = .sci 
 +
 +########### INSTALL DOCUMENTATION ###################
 +
 +# Install documentation files into the right target
 +# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because
 +# automake needs the html files to be present which is not the case when
 +# we are building Scilab
 +
 +# Where it should be installed
 +pkgdocdir = $(mydatadir)
 +
 +# What is the mask of the help source
 +DOCMASKXML = *.xml
 +
 +# What is the mask of the MathML sources
 +DOCMASKMML = *.mml
 +
 +########### INSTALL DATA ###################
 +# Install macros, help & demos
 +# Where it should be installed
 +pkgmacrosdir = $(mydatadir)
 +# Which directory we process
 +MACRODIRS = macros/
 +# Mask of the Scilab sources macros
 +MACROMASK = *.sci
 +# Mask of the Scilab executable sources macros
 +MACROBUILDMASK = *.sce
 +# Mask of the Scilab compiled macros
 +MACROBINMASK = *.bin
 +# List of the standard directory for tests
 +TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java
 +# Where the demos should be installed
 +pkgdemosdir = $(mydatadir)
 +# List of the standard directory for demos
 +DEMOS_DIR = demos
 +# List of the standard directory for examples
 +EXAMPLES_DIR = examples
 +# Where to export JAVA archives (.jar)
 +JARDIR = jar/
 +# JAR files mask
 +JARMASK = *.jar
 +# Chapter file 
 +HELP_CHAPTERDIR = help/
 +HELP_CHAPTERFILE = addchapter.sce
 +HELP_CHAPTERLANG = en_US fr_FR pt_BR
 +all: all-am
 +
 +.SUFFIXES:
 +.SUFFIXES: .sci .bin .cpp .lo .o .obj
 +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps)
 +      @for dep in $?; do \
 +        case '$(am__configure_deps)' in \
 +          *$$dep*) \
 +            ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
 +              && { if test -f $@; then exit 0; else break; fi; }; \
 +            exit 1;; \
 +        esac; \
 +      done; \
 +      echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/threads/Makefile'; \
 +      $(am__cd) $(top_srcdir) && \
 +        $(AUTOMAKE) --foreign modules/threads/Makefile
 +.PRECIOUS: Makefile
 +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 +      @case '$?' in \
 +        *config.status*) \
 +          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
 +        *) \
 +          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 +          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 +      esac;
 +$(top_srcdir)/Makefile.incl.am:
 +
 +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 +      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 +
 +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 +      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 +      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 +$(am__aclocal_m4_deps):
 +
 +clean-noinstLTLIBRARIES:
 +      -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
 +      @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
 +        dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
 +        test "$$dir" != "$$p" || dir=.; \
 +        echo "rm -f \"$${dir}/so_locations\""; \
 +        rm -f "$${dir}/so_locations"; \
 +      done
 +install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
 +      @$(NORMAL_INSTALL)
 +      test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
 +      @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
 +      list2=; for p in $$list; do \
 +        if test -f $$p; then \
 +          list2="$$list2 $$p"; \
 +        else :; fi; \
 +      done; \
 +      test -z "$$list2" || { \
 +        echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
 +        $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
 +      }
 +
 +uninstall-pkglibLTLIBRARIES:
 +      @$(NORMAL_UNINSTALL)
 +      @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
 +      for p in $$list; do \
 +        $(am__strip_dir) \
 +        echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
 +        $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
 +      done
 +
 +clean-pkglibLTLIBRARIES:
 +      -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
 +      @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
 +        dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
 +        test "$$dir" != "$$p" || dir=.; \
 +        echo "rm -f \"$${dir}/so_locations\""; \
 +        rm -f "$${dir}/so_locations"; \
 +      done
 +libscithreads.la: $(libscithreads_la_OBJECTS) $(libscithreads_la_DEPENDENCIES) $(EXTRA_libscithreads_la_DEPENDENCIES) 
 +      $(libscithreads_la_LINK) $(am_libscithreads_la_rpath) $(libscithreads_la_OBJECTS) $(libscithreads_la_LIBADD) $(LIBS)
 +
 +mostlyclean-compile:
 +      -rm -f *.$(OBJEXT)
 +
 +distclean-compile:
 +      -rm -f *.tab.c
 +
 +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libscithreads_la-Thread_Wrapper.Plo@am__quote@
 +
 +.cpp.o:
 +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(CXXCOMPILE) -c -o $@ $<
 +
 +.cpp.obj:
 +@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 +
 +.cpp.lo:
 +@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LTCXXCOMPILE) -c -o $@ $<
 +
 +libscithreads_la-Thread_Wrapper.lo: src/cpp/Thread_Wrapper.cpp
 +@am__fastdepCXX_TRUE@ $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscithreads_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libscithreads_la-Thread_Wrapper.lo -MD -MP -MF $(DEPDIR)/libscithreads_la-Thread_Wrapper.Tpo -c -o libscithreads_la-Thread_Wrapper.lo `test -f 'src/cpp/Thread_Wrapper.cpp' || echo '$(srcdir)/'`src/cpp/Thread_Wrapper.cpp
 +@am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/libscithreads_la-Thread_Wrapper.Tpo $(DEPDIR)/libscithreads_la-Thread_Wrapper.Plo
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    source='src/cpp/Thread_Wrapper.cpp' object='libscithreads_la-Thread_Wrapper.lo' libtool=yes @AMDEPBACKSLASH@
 +@AMDEP_TRUE@@am__fastdepCXX_FALSE@    DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 +@am__fastdepCXX_FALSE@        $(LIBTOOL)  --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscithreads_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libscithreads_la-Thread_Wrapper.lo `test -f 'src/cpp/Thread_Wrapper.cpp' || echo '$(srcdir)/'`src/cpp/Thread_Wrapper.cpp
 +
 +mostlyclean-libtool:
 +      -rm -f *.lo
 +
 +clean-libtool:
 +      -rm -rf .libs _libs
++install-libscithreads_la_includeHEADERS: $(libscithreads_la_include_HEADERS)
++      @$(NORMAL_INSTALL)
++      test -z "$(libscithreads_la_includedir)" || $(MKDIR_P) "$(DESTDIR)$(libscithreads_la_includedir)"
++      @list='$(libscithreads_la_include_HEADERS)'; test -n "$(libscithreads_la_includedir)" || list=; \
++      for p in $$list; do \
++        if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
++        echo "$$d$$p"; \
++      done | $(am__base_list) | \
++      while read files; do \
++        echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libscithreads_la_includedir)'"; \
++        $(INSTALL_HEADER) $$files "$(DESTDIR)$(libscithreads_la_includedir)" || exit $$?; \
++      done
++
++uninstall-libscithreads_la_includeHEADERS:
++      @$(NORMAL_UNINSTALL)
++      @list='$(libscithreads_la_include_HEADERS)'; test -n "$(libscithreads_la_includedir)" || list=; \
++      files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
++      dir='$(DESTDIR)$(libscithreads_la_includedir)'; $(am__uninstall_files_from_dir)
 +
 +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 +      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 +      unique=`for i in $$list; do \
 +          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 +        done | \
 +        $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 +            END { if (nonempty) { for (i in files) print i; }; }'`; \
 +      mkid -fID $$unique
 +tags: TAGS
 +
 +TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 +              $(TAGS_FILES) $(LISP)
 +      set x; \
 +      here=`pwd`; \
 +      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 +      unique=`for i in $$list; do \
 +          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 +        done | \
 +        $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 +            END { if (nonempty) { for (i in files) print i; }; }'`; \
 +      shift; \
 +      if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 +        test -n "$$unique" || unique=$$empty_fix; \
 +        if test $$# -gt 0; then \
 +          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
 +            "$$@" $$unique; \
 +        else \
 +          $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
 +            $$unique; \
 +        fi; \
 +      fi
 +ctags: CTAGS
 +CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 +              $(TAGS_FILES) $(LISP)
 +      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 +      unique=`for i in $$list; do \
 +          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 +        done | \
 +        $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 +            END { if (nonempty) { for (i in files) print i; }; }'`; \
 +      test -z "$(CTAGS_ARGS)$$unique" \
 +        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 +           $$unique
 +
 +GTAGS:
 +      here=`$(am__cd) $(top_builddir) && pwd` \
 +        && $(am__cd) $(top_srcdir) \
 +        && gtags -i $(GTAGS_ARGS) "$$here"
 +
 +distclean-tags:
 +      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 +
 +distdir: $(DISTFILES)
 +      @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 +      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 +      list='$(DISTFILES)'; \
 +        dist_files=`for file in $$list; do echo $$file; done | \
 +        sed -e "s|^$$srcdirstrip/||;t" \
 +            -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
 +      case $$dist_files in \
 +        */*) $(MKDIR_P) `echo "$$dist_files" | \
 +                         sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
 +                         sort -u` ;; \
 +      esac; \
 +      for file in $$dist_files; do \
 +        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 +        if test -d $$d/$$file; then \
 +          dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
 +          if test -d "$(distdir)/$$file"; then \
 +            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 +          fi; \
 +          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
 +            cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
 +            find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 +          fi; \
 +          cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 +        else \
 +          test -f "$(distdir)/$$file" \
 +          || cp -p $$d/$$file "$(distdir)/$$file" \
 +          || exit 1; \
 +        fi; \
 +      done
 +check-am: all-am
 +      $(MAKE) $(AM_MAKEFLAGS) check-local
 +check: check-am
- all-am: Makefile $(LTLIBRARIES) all-local
++all-am: Makefile $(LTLIBRARIES) $(HEADERS) all-local
 +installdirs:
-       for dir in "$(DESTDIR)$(pkglibdir)"; do \
++      for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscithreads_la_includedir)"; do \
 +        test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 +      done
 +install: install-am
 +install-exec: install-exec-am
 +install-data: install-data-am
 +uninstall: uninstall-am
 +
 +install-am: all-am
 +      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 +
 +installcheck: installcheck-am
 +install-strip:
 +      if test -z '$(STRIP)'; then \
 +        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 +          install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 +            install; \
 +      else \
 +        $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
 +          install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
 +          "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
 +      fi
 +mostlyclean-generic:
 +
 +clean-generic:
 +
 +distclean-generic:
 +      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
 +      -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 +
 +maintainer-clean-generic:
 +      @echo "This command is intended for maintainers to use"
 +      @echo "it deletes files that may require special tools to rebuild."
 +clean: clean-am
 +
 +clean-am: clean-generic clean-libtool clean-local \
 +      clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES mostlyclean-am
 +
 +distclean: distclean-am
 +      -rm -rf ./$(DEPDIR)
 +      -rm -f Makefile
 +distclean-am: clean-am distclean-compile distclean-generic \
 +      distclean-local distclean-tags
 +
 +dvi: dvi-am
 +
 +dvi-am:
 +
 +html: html-am
 +
 +html-am:
 +
 +info: info-am
 +
 +info-am:
 +
- install-data-am: install-data-local
++install-data-am: install-data-local \
++      install-libscithreads_la_includeHEADERS
 +
 +install-dvi: install-dvi-am
 +
 +install-dvi-am:
 +
 +install-exec-am: install-pkglibLTLIBRARIES
 +
 +install-html: install-html-am
 +
 +install-html-am: install-html-local
 +
 +install-info: install-info-am
 +
 +install-info-am:
 +
 +install-man:
 +
 +install-pdf: install-pdf-am
 +
 +install-pdf-am:
 +
 +install-ps: install-ps-am
 +
 +install-ps-am:
 +
 +installcheck-am:
 +
 +maintainer-clean: maintainer-clean-am
 +      -rm -rf ./$(DEPDIR)
 +      -rm -f Makefile
 +maintainer-clean-am: distclean-am maintainer-clean-generic
 +
 +mostlyclean: mostlyclean-am
 +
 +mostlyclean-am: mostlyclean-compile mostlyclean-generic \
 +      mostlyclean-libtool
 +
 +pdf: pdf-am
 +
 +pdf-am:
 +
 +ps: ps-am
 +
 +ps-am:
 +
- uninstall-am: uninstall-pkglibLTLIBRARIES
++uninstall-am: uninstall-libscithreads_la_includeHEADERS \
++      uninstall-pkglibLTLIBRARIES
 +
 +.MAKE: check-am install-am install-strip
 +
 +.PHONY: CTAGS GTAGS all all-am all-local check check-am check-local \
 +      clean clean-generic clean-libtool clean-local \
 +      clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES ctags \
 +      distclean distclean-compile distclean-generic \
 +      distclean-libtool distclean-local distclean-tags distdir dvi \
 +      dvi-am html html-am info info-am install install-am \
 +      install-data install-data-am install-data-local install-dvi \
 +      install-dvi-am install-exec install-exec-am install-html \
 +      install-html-am install-html-local install-info \
-       install-info-am install-man install-pdf install-pdf-am \
++      install-info-am install-libscithreads_la_includeHEADERS \
++      install-man install-pdf install-pdf-am \
 +      install-pkglibLTLIBRARIES install-ps install-ps-am \
 +      install-strip installcheck installcheck-am installdirs \
 +      maintainer-clean maintainer-clean-generic mostlyclean \
 +      mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
 +      pdf pdf-am ps ps-am tags uninstall uninstall-am \
++      uninstall-libscithreads_la_includeHEADERS \
 +      uninstall-pkglibLTLIBRARIES
 +
 +
 +# This target enables tests for Scilab
 +check-local: $(top_builddir)/scilab-bin test
 +      if test -d $(mydatadir)/tests; then \
 +        @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \
 +      fi
 +check-code:
 +      if test -f build.xml; then \
 +              $(ANT) checkstyle; \
 +      fi
 +      if test -x "$(SPLINT)"; then \
 +              $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \
 +      fi
 +@NEED_JAVA_TRUE@java:
 +# Some configurations needs to export JAVA_HOME in the current env
 +@NEED_JAVA_TRUE@      @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
 +@NEED_JAVA_TRUE@      if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
 +@NEED_JAVA_TRUE@      if test -f build.xml -a $$USEANT -eq 1; then \
 +@NEED_JAVA_TRUE@              $(ANT); \
 +@NEED_JAVA_TRUE@      fi
 +
 +@NEED_JAVA_TRUE@clean-java:
 +# Some configurations needs to export JAVA_HOME in the current env
 +@NEED_JAVA_TRUE@      @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \
 +@NEED_JAVA_TRUE@      if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
 +@NEED_JAVA_TRUE@      if test -f build.xml -a $$USEANT -eq 1; then \
 +@NEED_JAVA_TRUE@              $(ANT) clean; \
 +@NEED_JAVA_TRUE@      fi;
 +
 +# If the user request for the SWIG generation of the wrappers Java => C/C++ 
 +# We call the target swig-build on the variable SWIG_WRAPPERS
 +
 +@SWIG_TRUE@swig: $(SWIG_WRAPPERS)
 +@SWIG_TRUE@   @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \
 +@SWIG_TRUE@   SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \
 +@SWIG_TRUE@   if test -n "$(SWIG_WRAPPERS)"; then \
 +@SWIG_TRUE@           for file in $(SWIG_WRAPPERS) ; do \
 +@SWIG_TRUE@                   echo "Swig process of $$file ..."; \
 +@SWIG_TRUE@                   $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME  -outdir $$SWIG_OUTDIR $$file; \
 +@SWIG_TRUE@           done; \
 +@SWIG_TRUE@   fi
 +
 +# If the user request for the SWIG generation of the wrappers Java => C/C++ 
 +# We call the target swig-build on the variable SWIG_WRAPPERS
 +
 +@GIWS_TRUE@giws: $(GIWS_WRAPPERS)
 +@GIWS_TRUE@   @GIWS_OUTPUTDIR=src/jni/;\
 +@GIWS_TRUE@   if test -n "$(GIWS_WRAPPERS)"; then \
 +@GIWS_TRUE@           for file in $(GIWS_WRAPPERS) ; do \
 +@GIWS_TRUE@                   echo "GIWS process of $$file ..."; \
 +@GIWS_TRUE@                   $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR --throws-exception-on-error --description-file $$file; \
 +@GIWS_TRUE@           done; \
 +@GIWS_TRUE@   fi
 +
 +@GIWS_TRUE@giws-exception:
 +@GIWS_TRUE@   @GIWS_OUTPUTDIR=src/jni/;\
 +@GIWS_TRUE@   echo "GIWS: Generation of exception class ..."; \
 +@GIWS_TRUE@   $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR 
 +
 +macros:
 +      -@( if test ! -x $(top_builddir)/scilab-bin; then \
 +              echo "Error : Cannot build $< : Scilab has not been built"; \
 +      else \
 +              $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\
 +      fi)
 +
 +# Removes the macros
 +clean-macros:
 +# Removes macros (*.bin generated from .sci)
 +      @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
 +              echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \
 +              rm -f $(builddir)/$$dir/$(MACROBINMASK); \
 +      done
 +
 +test:
 +# More tests could be added here
 +      @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \
 +      if test -f build.xml -a $$USEANT -eq 1; then \
 +              $(ANT) test; \
 +      fi
 +
 +all-local: $(TARGETS_ALL)
 +
 +.sci.bin:
 +      -@( if test ! -x $(top_builddir)/scilab-bin; then \
 +      echo "Error : Cannot build $< : Scilab has not been build"; \
 +      else \
 +      echo "Creating $@"; \
 +      $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \
 +      fi )
 +
 +install-html-local:
 +
 +install-data-local-local:
 +# Mainly for javasci
 +      @if test -d $(srcdir)/javadoc; then \
 +              cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \
 +      fi
 +# If the user wants the help sources to be installed
 +@INSTALL_HELP_XML_TRUE@       @echo "-------- Install of XML sources of help files --------"; \
 +@INSTALL_HELP_XML_TRUE@       for lang in $(ALL_LINGUAS); do \
 +@INSTALL_HELP_XML_TRUE@        if test -d $(srcdir)/help/$$lang; then \
 +@INSTALL_HELP_XML_TRUE@         $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \
 +@INSTALL_HELP_XML_TRUE@               if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \
 +@INSTALL_HELP_XML_TRUE@                 for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \
 +@INSTALL_HELP_XML_TRUE@                   echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \
 +@INSTALL_HELP_XML_TRUE@               $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \
 +@INSTALL_HELP_XML_TRUE@                 done ; \
 +@INSTALL_HELP_XML_TRUE@               fi; \
 +@INSTALL_HELP_XML_TRUE@        fi; \
 +@INSTALL_HELP_XML_TRUE@       done; \
 +@INSTALL_HELP_XML_TRUE@       @echo "-------- Install of MathML sources --------"; \
 +@INSTALL_HELP_XML_TRUE@        if test -d $(srcdir)/help/mml/; then \
 +@INSTALL_HELP_XML_TRUE@         $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \
 +@INSTALL_HELP_XML_TRUE@               if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \
 +@INSTALL_HELP_XML_TRUE@                 for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \
 +@INSTALL_HELP_XML_TRUE@                   echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \
 +@INSTALL_HELP_XML_TRUE@               $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \
 +@INSTALL_HELP_XML_TRUE@                 done ; \
 +@INSTALL_HELP_XML_TRUE@               fi; \
 +@INSTALL_HELP_XML_TRUE@       fi
 +install-data-local:
 +# Install the tests
 +      @echo "-------- Install tests (if any) --------"; \
 +      for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \
 +        if test -d $(srcdir)/$$dir/; then \
 +          $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
 +                for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
 +                  if test -d "$(srcdir)/$$dir/$$file"; then \
 +                        echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \
 +                        $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \
 +                  else \
 +                    echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
 +                $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \
 +                  fi \
 +                done; \
 +        fi; \
 +      done
 +# Install the help chapter
 +      @echo "-------- Install the help chapter (if any) --------"; \
 +      for lang in $(HELP_CHAPTERLANG); do \
 +              HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \
 +              if test -f $$HELPFILE; then \
 +                      echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
 +                      $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \
 +                      echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
 +                      $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \
 +              fi; \
 +      done
 +# Install the demos & examples
 +      @echo "-------- Install demos & examples (if any) --------"; \
 +      for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \
 +        if test -d $(srcdir)/$$dir/; then \
 +          $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \
 +                for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \
 +                  if test -d "$(srcdir)/$$dir/$$file"; then \
 +                        echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \
 +                        $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \
 +                  else \
 +                    echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
 +                $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \
 +                  fi \
 +                done; \
 +        fi; \
 +      done
 +# Install the macros
 +      @echo "-------- Install macros (if any) --------"; \
 +      for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \
 +        $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \
 +              if test -d $(srcdir)/$$dir/; then \
 +                      FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\
 +                      if test -n "$(MACROSSPECIALEXT)"; then \
 +                              specialExtDir=""; \
 +                              for specialExt in $(MACROSSPECIALEXT); do \
 +                                      specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \
 +                              done; \
 +                              FILELIST="$$FILELIST $$specialExtDir"; \
 +                      fi; \
 +                for file in `ls -1 $$FILELIST 2>/dev/null`; do \
 +                  echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \
 +              $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \
 +                done; \
 +              fi; \
 +      done
 +# Install java files (.jar)
 +      @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \
 +      echo "-------- Install jar files --------"; \
 +    $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \
 +        for file in $(srcdir)/$(JARDIR)$(JARMASK); do\
 +                  echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \
 +              $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \
 +        done ; \
 +      fi
 +
 +########### CLEAN ###################
 +# Clean help (generated automatically by Scilab)
 +# It used to clean the macro (clean-macros) but this was causing
 +# make clean && make to fail Scilab startup
 +@NEED_JAVA_TRUE@clean-local: clean-java
 +@NEED_JAVA_FALSE@clean-local:
 +
 +distclean-local:
 +      rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_*
 +
 +.PHONY: macros java swig giws
 +
- #### threads : init scripts ####
- # libscithreads_la_etcdir = $(mydatadir)/etc
- # libscithreads_la_etc_DATA = etc/threads.quit etc/threads.start
- #### threads : gateway declaration ####
- # libscithreads_la_sci_gatewaydir = $(mydatadir)/sci_gateway
- # libscithreads_la_sci_gateway_DATA = sci_gateway/threads_gateway.xml
 +# Tell versions [3.59,3.63) of GNU make to not export all variables.
 +# Otherwise a system limit (for SysV at least) may be exceeded.
 +.NOEXPORT: