Merge pull request #78 from smarchetto/gsoc2012-scilab

Scilab: support of Scilab 5.3.3 + improve the test suite
This commit is contained in:
Sylvestre Ledru 2013-08-26 08:32:46 -07:00
commit 9f08e04428
32 changed files with 231 additions and 157 deletions

View file

@ -1576,8 +1576,7 @@ SCILAB_INCLUDE = $(DEFS) @SCILABINCLUDE@
SCILAB_LIB = @SCILABLIB@
SCILAB = @SCILAB@
SCILABOPT =
SCILAB_START_OPT = @SCILABSTARTOPT@
SCILAB_VERSION = @SCILABVERSION@
SCILAB_STARTOPT = @SCILABSTARTOPT@
# ----------------------------------------------------------------
# Build a C dynamically loadable module
@ -1598,7 +1597,7 @@ scilab: $(SRCS)
fi \
fi
@if [ -f builder.sce ]; then \
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH SCILABPATH=$(srcdir):$$SCILABPATH echo 'exit(1)' |$(SCILAB) $(SCILAB_START_OPT) -f builder.sce; \
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH SCILABPATH=$(srcdir):$$SCILABPATH echo 'exit(1)' |$(SCILAB) $(SCILAB_STARTOPT) -f builder.sce; \
fi
# ----------------------------------------------------------------
@ -1620,7 +1619,7 @@ scilab_cpp: $(SRCS)
fi \
fi
@if [ -f builder.sce ]; then \
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH SCILABPATH=$(srcdir):$$SCILABPATH echo 'exit(1)' |$(SCILAB) $(SCILAB_START_OPT) -f builder.sce; \
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH SCILABPATH=$(srcdir):$$SCILABPATH echo 'exit(1)' |$(SCILAB) $(SCILAB_STARTOPT) -f builder.sce; \
fi
# -----------------------------------------------------------------
@ -1628,21 +1627,22 @@ scilab_cpp: $(SRCS)
# -----------------------------------------------------------------
scilab_run:
@env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH SCILABPATH=$(srcdir):$$SCILABPATH $(SCILAB) -nwni -noatomsautoload -nb -f runme.sci
@env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH SCILABPATH=$(srcdir):$$SCILABPATH $(SCILAB) $(SCILAB_STARTOPT) -f runme.sci
# -----------------------------------------------------------------
# Debugging a scilab example
# -----------------------------------------------------------------
scilab_debug:
@env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH SCILABPATH=$(srcdir):$$SCILABPATH $(SCILAB) -noatomsautoload -nb -debug -f runme.sci
@env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH SCILABPATH=$(srcdir):$$SCILABPATH $(SCILAB) $(SCILAB_STARTOPT) -f runme.sci
# -----------------------------------------------------------------
# Version display
# Scilab version
# -----------------------------------------------------------------
scilab_version:
echo $(SCILAB_VERSION)
echo `$(SCILAB) -version|head -1|sed -e 's|Scilab version \"\(.*\)\"|\1|g'`
# -----------------------------------------------------------------
# Cleaning the scilab examples

View file

@ -8,7 +8,6 @@ matrix
matrix2
pointer
simple
std_set
std_vector/std_vector
std_vector/std_vector_as_function_argument
struct

View file

@ -1,4 +1,4 @@
// loader the *.so
lines(0);
exec loader.sce;
// ----- Object creation -----

View file

@ -1,4 +1,4 @@
// loader the *.so
lines(0);
exec loader.sce;
printf("ICONST = %i (should be 42)\n", ICONST_get());

View file

@ -1,4 +1,4 @@
// loader the *.so
lines(0);
exec loader.sce;
// Call our gcd() function

View file

@ -1,4 +1,4 @@
// loader the *.so
lines(0);
exec loader.sce;
// Print out the value of some enums

View file

@ -1,4 +1,4 @@
// loader the *.so
lines(0);
exec loader.sce;
a = 37

View file

@ -1,5 +1,5 @@
// loader the *.so
exec loader.sce
lines(0);
exec loader.sce;
// create a new matrix
x = new_matrix();

View file

@ -1,4 +1,5 @@
exec loader.sce
lines(0);
exec loader.sce;
// Test lib double matrix functions
disp("Call lib function getDoubleMatrix()");

View file

@ -1,5 +1,5 @@
// loader the *.so
exec loader.sce
lines(0);
exec loader.sce;
// First create some objects using the pointer library.
printf("Testing the pointer library\n")

View file

@ -1,4 +1,4 @@
// loader the *.so
lines(0);
exec loader.sce;
// Call our gcd() function

View file

@ -1,3 +1,4 @@
lines(0);
exec loader.sce;
SWIG_Init();
@ -29,3 +30,5 @@ disp("concat this list with the list of string {''cc'', ''dd'', ''ee'', ''ff''}
ss3 = concat_string_list(ss, ss2);
disp(ss3);
exit

View file

@ -1,3 +1,4 @@
lines(0);
exec loader.sce;
SWIG_Init();

View file

@ -1,4 +1,4 @@
// file: runme.sci
lines(0);
exec loader.sce;
SWIG_Init();

View file

@ -1,3 +1,4 @@
lines(0);
exec loader.sce;
SWIG_Init();

View file

@ -1,5 +1,5 @@
//loader the *.so
exec loader.sce
lines(0);
exec loader.sce;
//create a struct
a=new_Bar();

View file

@ -1,3 +1,6 @@
lines(0);
exec loader.sce;
function printShape(shape, name)
printf("\nShape %s position:\n", name);
printf(" (x, y) = (%f, %f)\n", ShapeDouble_x_get(shape), ShapeDouble_y_get(shape))
@ -9,8 +12,6 @@ function printShape(shape, name)
printf("\n");
endfunction
exec loader.sce;
printf("Creating some objects:\n");
c = new_CircleDouble(10);
s = new_SquareDouble(10);

View file

@ -1,7 +1,5 @@
lines(0);
//loader the *.so
exec loader.sce
exec loader.sce;
// Try to set the values of some global variables
ivar_set(42);

View file

@ -1,5 +1,11 @@
%module constructor_exception
#ifdef SWIGSCILAB
%inline %{
#undef Error
%}
#endif
%inline %{
class Error {
};

View file

@ -15,21 +15,45 @@ top_builddir = @top_builddir@
# - member_pointer (C++)
# - typemap_variables (C++)
# configure cache to speed up test run
CONF_CACHE=$(CURDIR)/test-suite.config.cache
CONFIG_SITE=$(CURDIR)/test-suite.config.site
export CONFIG_SITE
enable_config_cache = \
echo 'cache_file=$(CONF_CACHE)' > $(CONFIG_SITE)
disable_config_cache:
rm -f $(CONF_CACHE)
rm -f $(CONFIG_SITE)
CONFIG_SITE=
# need reset cache before multicpptest
reset_config_cache = \
rm -f $(CONF_CACHE)
# disable cache at the end of test-suite
# use trick for this: 'extra test cases' end target
EXTRA_TEST_CASES = disable_config_cache
include $(srcdir)/../common.mk
# Rules for the different types of tests
%.cpptest:
$(setup)
$(enable_config_cache)
+$(swig_and_compile_cpp)
$(run_testcase)
%.ctest:
$(setup)
$(enable_config_cache)
+$(swig_and_compile_c)
$(run_testcase)
%.multicpptest:
$(setup)
$(reset_config_cache)
+$(swig_and_compile_multi_cpp)
$(run_testcase)
@ -42,7 +66,7 @@ run_testcase = \
# Clean: remove the generated files
%.clean:
@rm -f builder.sce loader.sce cleaner.sce $*_wrap.c $*_wrap.cxx lib$*lib.*
@rm -f builder.sce loader.sce cleaner.sce $*_wrap.c $*_wrap.cxx lib$*lib.* $(CONFIG_SITE) $(CONF_CACHE)
clean:
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile scilab_clean

View file

@ -12,6 +12,12 @@
%warnfilter(SWIGWARN_PARSE_KEYWORD) Namespace;
#endif
#ifdef SWIGSCILAB
%inline %{
#undef Error
%}
#endif
// Tests SWIG's automatic exception mechanism
%inline %{

View file

@ -102,10 +102,6 @@ SwigScilabStringToCharPtr(void *_pvApiCtx, int _iVar, char *_pcValue, int _iLeng
char* pcTmpValue = NULL;
int iRet;
if (_pcValue == NULL) {
return SWIG_ERROR;
}
sciErr = getVarAddressFromPosition(_pvApiCtx, _iVar, &piAddrVar);
if (sciErr.iErr) {
printError(&sciErr, 0);
@ -117,7 +113,10 @@ SwigScilabStringToCharPtr(void *_pvApiCtx, int _iVar, char *_pcValue, int _iLeng
return SWIG_ERROR;
}
strncpy(_pcValue, pcTmpValue, _iLength);
if (_pcValue != NULL) {
strncpy(_pcValue, pcTmpValue, _iLength);
}
free(pcTmpValue);
return SWIG_OK;
@ -244,12 +243,12 @@ SwigScilabStringFromCharPtrArray(void *_pvApiCtx, int _iVarOut, char **_charPtrA
return SWIG_ERROR;
}
sciErr = createMatrixOfString(_pvApiCtx, nbInputArgument(pvApiCtx) + _iVarOut, _charPtrArraySize, 1, _charPtrArray);
sciErr = createMatrixOfString(_pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + _iVarOut, _charPtrArraySize, 1, _charPtrArray);
if (sciErr.iErr) {
printError(&sciErr, 0);
return SWIG_ERROR;
}
return nbInputArgument(pvApiCtx) + _iVarOut;
return SWIG_NbInputArgument(pvApiCtx) + _iVarOut;
}
}

View file

@ -94,7 +94,7 @@ SWIG_From_dec(int)(int _iValue)
double dblDoubleValue = (double) _iValue;
int iRowsOut = 1;
int iColsOut = 1;
int iVarOut = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
int iVarOut = SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
sciErr = createMatrixOfDouble(pvApiCtx, iVarOut, iRowsOut, iColsOut, &dblDoubleValue);
if (sciErr.iErr)

View file

@ -39,7 +39,7 @@
{
if (SwigScilabStringFromCharPtrArray(pvApiCtx, SWIG_Scilab_GetOutputPosition(), *$1, *$2) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{
@ -73,7 +73,7 @@
{
if (SwigScilabStringFromCharPtrArray(pvApiCtx, SWIG_Scilab_GetOutputPosition(), *$2, *$1) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{

View file

@ -82,7 +82,7 @@
{
if (SWIG_SciDouble_FromDoubleArrayAndSize(pvApiCtx, SWIG_Scilab_GetOutputPosition(), *$2, *$3, *$1) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{
@ -107,7 +107,7 @@
{
if (SWIG_SciDouble_FromDoubleArrayAndSize(pvApiCtx, SWIG_Scilab_GetOutputPosition(), *$1, *$2, *$3) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{
@ -140,7 +140,7 @@
{
if (SWIG_SciDouble_FromDoubleArrayAndSize(pvApiCtx, SWIG_Scilab_GetOutputPosition(), 1, *$2, *$1) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{
@ -172,7 +172,7 @@
{
if (SWIG_SciDouble_FromDoubleArrayAndSize(pvApiCtx, SWIG_Scilab_GetOutputPosition(), 1, *$1, *$2) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{

View file

@ -77,7 +77,7 @@
{
if (SWIG_SciInt32_FromIntArrayAndSize(pvApiCtx, SWIG_Scilab_GetOutputPosition(), *$2, *$3, *$1) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{
@ -111,7 +111,7 @@
{
if (SWIG_SciInt32_FromIntArrayAndSize(pvApiCtx, SWIG_Scilab_GetOutputPosition(), *$1, *$2, *$3) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{
@ -144,7 +144,7 @@
{
if (SWIG_SciInt32_FromIntArrayAndSize(pvApiCtx, SWIG_Scilab_GetOutputPosition(), 1, *$2, *$1) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{
@ -176,7 +176,7 @@
{
if (SWIG_SciInt32_FromIntArrayAndSize(pvApiCtx, SWIG_Scilab_GetOutputPosition(), 1, *$1, *$2) != SWIG_ERROR)
{
AssignOutputVariable(pvApiCtx, outputPosition) = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition());
}
else
{

View file

@ -38,12 +38,12 @@ SWIGINTERN int
SwigScilabInt32FromEnum(void *_pvApiCtx, int _iVarOut, int _enumValue)
{
int iRet;
iRet = createScalarInteger32(pvApiCtx, nbInputArgument(pvApiCtx) + _iVarOut, _enumValue);
iRet = createScalarInteger32(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + _iVarOut, _enumValue);
if (iRet)
{
return SWIG_ERROR;
}
AssignOutputVariable(pvApiCtx, _iVarOut) = nbInputArgument(pvApiCtx) + _iVarOut;
SWIG_Scilab_SetOutput(pvApiCtx, SWIG_NbInputArgument(pvApiCtx) + _iVarOut);
return SWIG_OK;
}
}

View file

@ -66,7 +66,10 @@ SWIG_Scilab_ErrorMsg(int code, const char *mesg)
sciprint(_("SWIG/Scilab Error : %s\n%s"),SWIG_Scilab_ErrorType(code),mesg);
}
#define SCILAB_VERSION_54_OR_HIGHER (SCI_VERSION_MAJOR > 5) || ((SCI_VERSION_MAJOR == 5) && (SCI_VERSION_MINOR >= 4))
#if !SCILAB_VERSION_54_OR_HIGHER
#include "stack-c.h"
#endif
#define SWIG_fail return SWIG_ERROR;
#define SWIG_ErrorType(code) SWIG_Scilab_ErrorType(code)
@ -75,6 +78,20 @@ SWIG_Scilab_ErrorMsg(int code, const char *mesg)
/* Used for C++ enums */
//#define SWIG_AsVal_int(scilabValue, valuePointer) SWIG_SciDouble_AsInt(pvApiCtx, scilabValue, valuePointer, fname)
#if SCILAB_VERSION_54_OR_HIGHER
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument)
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument)
#define SWIG_NbInputArgument(pvApiCtx) nbInputArgument(pvApiCtx)
#else
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckRhs(minInputArgument, maxInputArgument)
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckLhs(minOutputArgument, maxOutputArgument)
#define SWIG_NbInputArgument(pvApiCtx) Rhs
#endif
SWIGINTERN int
SwigScilabPtrToObject(void *_pvApiCtx, int _iVar, void **_pObjValue, swig_type_info *_descriptor, int _flags, char *_fname) {
SciErr sciErr;
@ -214,7 +231,11 @@ SWIG_Scilab_SetOutput(void *_pvApiCtx, SciObject _output) {
if (outputPosition < 0 || _output < 0) {
return SWIG_ERROR;
}
AssignOutputVariable(_pvApiCtx, outputPosition) = _output;
#if SCILAB_VERSION_54_OR_HIGHER
AssignOutputVariable(pvApiCtx, outputPosition) = _output;
#else
LhsVar(outputPosition) = _output;
#endif
return SWIG_OK;
}

View file

@ -49,7 +49,7 @@ SWIG_FromSet_Sequence_dec(ptr)(int _size, long long *_sequence) {
SciErr sciErr;
int *piListAddr;
int iVarOut = nbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
int iVarOut = SWIG_NbInputArgument(pvApiCtx) + SWIG_Scilab_GetOutputPosition();
sciErr = createList(pvApiCtx, iVarOut, _size, &piListAddr);
if (sciErr.iErr)

View file

@ -149,7 +149,7 @@ check-versions: \
check-uffi-version \
check-cffi-version \
check-r-version \
check-scilab-version \
check-scilab-version \
check-go-version \
check-d-version
@ -471,7 +471,7 @@ lib-languages = gcj typemaps tcl perl5 python guile java mzscheme ruby php ocaml
lib-modules = std
install-lib:
install-lib:
@echo "Installing the SWIG library"
@$(MKINSTDIRS) $(DESTDIR)$(SWIG_LIB)
@for file in $(srcdir)/Lib/*.i $(srcdir)/Lib/*.swg ; do \

View file

@ -285,9 +285,10 @@ public:
int minInputArguments = emit_num_required(functionParamsList);
int minOutputArguments = 0;
int maxOutputArguments = 0;
/* Insert calls to CheckInputArgument and CheckOutputArgument */
Printf(wrapper->code, "CheckInputArgument(pvApiCtx, $mininputarguments, $maxinputarguments);\n");
Printf(wrapper->code, "CheckOutputArgument(pvApiCtx, $minoutputarguments, $maxoutputarguments);\n");
Printf(wrapper->code, "SWIG_CheckInputArgument(pvApiCtx, $mininputarguments, $maxinputarguments);\n");
Printf(wrapper->code, "SWIG_CheckOutputArgument(pvApiCtx, $minoutputarguments, $maxoutputarguments);\n");
Printf(wrapper->code, "SWIG_Scilab_SetFname(fname);\n");
for (paramIndex = 0, param = functionParamsList; paramIndex < maxInputArguments; ++paramIndex) {
@ -314,7 +315,7 @@ public:
}
if (paramIndex >= minInputArguments) { /* Optional input argument management */
Printf(wrapper->code, "if (Rhs > %d) {\n%s\n}\n", paramIndex, paramTypemap);
Printf(wrapper->code, "if (SWIG_NbInputArgument(pvApiCtx) > %d) {\n%s\n}\n", paramIndex, paramTypemap);
} else {
Printf(wrapper->code, "%s\n", paramTypemap);
}
@ -461,7 +462,7 @@ public:
Printv(wrapper->def, "int ", wrapperName, " (char *fname, unsigned long fname_len) {\n", NIL);
/* Get the number of the parameters */
Wrapper_add_local(wrapper, "argc", "int argc = Rhs");
Wrapper_add_local(wrapper, "argc", "int argc = SWIG_NbInputArgument(pvApiCtx)");
Printf(tmp, "int argv[%d] = {", maxargs);
for (int j = 0; j < maxargs; ++j) {
Printf(tmp, "%s%d", j ? "," : " ", j + 1);
@ -499,8 +500,8 @@ public:
Printv(getFunctionWrapper->def, "int ", getFunctionName, "(char *fname, unsigned long fname_len) {\n", NIL);
/* Check the number of input and output */
Printf(getFunctionWrapper->def, "CheckInputArgument(pvApiCtx, 0, 0);\n");
Printf(getFunctionWrapper->def, "CheckOutputArgument(pvApiCtx, 1, 1);\n");
Printf(getFunctionWrapper->def, "SWIG_CheckInputArgument(pvApiCtx, 0, 0);\n");
Printf(getFunctionWrapper->def, "SWIG_CheckOutputArgument(pvApiCtx, 1, 1);\n");
String *varoutTypemap = Swig_typemap_lookup("varout", node, origVariableName, 0);
if (varoutTypemap != NULL) {
@ -526,8 +527,8 @@ public:
Printv(setFunctionWrapper->def, "int ", setFunctionName, "(char *fname, unsigned long fname_len) {\n", NIL);
/* Check the number of input and output */
Printf(setFunctionWrapper->def, "CheckInputArgument(pvApiCtx, 1, 1);\n");
Printf(setFunctionWrapper->def, "CheckOutputArgument(pvApiCtx, 1, 1);\n");
Printf(setFunctionWrapper->def, "SWIG_CheckInputArgument(pvApiCtx, 1, 1);\n");
Printf(setFunctionWrapper->def, "SWIG_CheckOutputArgument(pvApiCtx, 1, 1);\n");
String *varinTypemap = Swig_typemap_lookup("varin", node, origVariableName, 0);
if (varinTypemap != NULL) {
@ -575,8 +576,8 @@ public:
Printv(getFunctionWrapper->def, "int ", getFunctionName, "(char *fname, unsigned long fname_len) {\n", NIL);
/* Check the number of input and output */
Printf(getFunctionWrapper->def, "CheckInputArgument(pvApiCtx, 0, 0);\n");
Printf(getFunctionWrapper->def, "CheckOutputArgument(pvApiCtx, 1, 1);\n");
Printf(getFunctionWrapper->def, "SWIG_CheckInputArgument(pvApiCtx, 0, 0);\n");
Printf(getFunctionWrapper->def, "SWIG_CheckOutputArgument(pvApiCtx, 1, 1);\n");
constantTypemap = Swig_typemap_lookup("constcode", node, nodeName, 0);
if (constantTypemap != NULL) {

View file

@ -47,7 +47,7 @@ AC_LANG_POP([C++])
dnl Look for popen
AC_ARG_WITH(popen, AS_HELP_STRING([--without-popen], [Disable popen]), with_popen="$withval")
if test x"${with_popen}" = xno ; then
if test x"${with_popen}" = xno ; then
AC_MSG_NOTICE([Disabling popen])
else
AC_CHECK_FUNC(popen, AC_DEFINE(HAVE_POPEN, 1, [Define if popen is available]), AC_MSG_NOTICE([Disabling popen]))
@ -69,7 +69,7 @@ AC_MSG_CHECKING([whether to enable PCRE support])
AC_MSG_RESULT([$with_pcre])
dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script
if test x"${with_pcre}" = xyes ; then
if test x"${with_pcre}" = xyes ; then
AC_MSG_CHECKING([whether to use local PCRE])
local_pcre_config=no
if test -z $PCRE_CONFIG; then
@ -513,7 +513,7 @@ AC_ARG_WITH(tcllib,[ --with-tcllib=path Set location of Tcl library direct
TCLLIB="-L$withval"], [TCLLIB=])
# First, check for "--without-tcl" or "--with-tcl=no".
if test x"${TCLPACKAGE}" = xno -o x"${with_alllang}" = xno; then
if test x"${TCLPACKAGE}" = xno -o x"${with_alllang}" = xno; then
AC_MSG_NOTICE([Disabling Tcl])
else
AC_MSG_CHECKING([for Tcl configuration])
@ -606,7 +606,7 @@ case $host in
esac
case $host in
*-*-darwin*)
*-*-darwin*)
TCLLDSHARED='$(CC) -dynamiclib -undefined suppress -flat_namespace'
TCLCXXSHARED='$(CXX) -dynamiclib -undefined suppress -flat_namespace'
;;
@ -636,7 +636,7 @@ AC_ARG_WITH(python, AS_HELP_STRING([--without-python], [Disable Python])
AS_HELP_STRING([--with-python=path], [Set location of Python executable]),[ PYBIN="$withval"], [PYBIN=yes])
# First, check for "--without-python" or "--with-python=no".
if test x"${PYBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${PYBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Python])
else
# First figure out the name of the Python executable
@ -671,10 +671,10 @@ else
PYLIBDIR=`($PYTHON -c "import sys; print sys.lib") 2>/dev/null`
if test -z "$PYLIBDIR"; then
# Fedora patch Python to add sys.lib, for other distros we assume "lib".
PYLIBDIR="lib"
PYLIBDIR="lib"
fi
AC_MSG_RESULT($PYLIBDIR)
# Set the include directory
AC_MSG_CHECKING(for Python header files)
@ -737,7 +737,7 @@ AC_ARG_WITH(python3, AS_HELP_STRING([--without-python3], [Disable Python 3.x sup
AS_HELP_STRING([--with-python3=path], [Set location of Python 3.x executable]),[ PY3BIN="$withval"], [PY3BIN=yes])
# First, check for "--without-python3" or "--with-python3=no".
if test x"${PY3BIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${PY3BIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Python 3.x support])
else
for py_ver in 3 3.6 3.5 3.4 3.3 3.2 3.1 3.0; do
@ -760,7 +760,7 @@ else
# Note: I could not think of a standard way to get the version string from different versions.
# This trick pulls it out of the file location for a standard library file.
AC_MSG_CHECKING([for Python 3.x version])
# Need to do this hack since autoconf replaces __file__ with the name of the configure file
@ -774,10 +774,10 @@ else
PY3LIBDIR=`($PYTHON3 -c "import sys; print(sys.lib)") 2>/dev/null`
if test -z "$PY3LIBDIR"; then
# some dists don't have sys.lib so the best we can do is assume lib
PY3LIBDIR="lib"
PY3LIBDIR="lib"
fi
AC_MSG_RESULT($PY3LIBDIR)
# Set the include directory
AC_MSG_CHECKING([for Python 3.x header files])
@ -828,7 +828,7 @@ AC_ARG_WITH(perl5, AS_HELP_STRING([--without-perl5], [Disable Perl5])
AS_HELP_STRING([--with-perl5=path], [Set location of Perl5 executable]),[ PERLBIN="$withval"], [PERLBIN=yes])
# First, check for "--without-perl5" or "--with-perl5=no".
if test x"${PERLBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${PERLBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Perl5])
PERL=
else
@ -932,7 +932,7 @@ AC_ARG_WITH(octave, AS_HELP_STRING([--without-octave], [Disable Octave])
AS_HELP_STRING([--with-octave=path], [Set location of Octave executable]),[OCTAVEBIN="$withval"], [OCTAVEBIN=yes])
# First, check for "--without-octave" or "--with-octave=no".
if test x"${OCTAVEBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${OCTAVEBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Octave])
OCTAVE=
@ -986,70 +986,83 @@ AC_SUBST(OCTAVE_LDFLAGS)
SCILABBIN=
SCILABDYNAMICLINKING=
AC_ARG_WITH(scilab, AS_HELP_STRING([--without-scilab], [Disable Scilab])
AS_HELP_STRING([--with-scilab=path], [Set location of Scilab executable]),[SCILABBIN="$withval"], [SCILABBIN=yes])
AC_ARG_WITH(scilabincl,[ --with-scilabincl=path Set location of Scilab include directory],[SCILABINCDIR="$withval"], [SCILABINCDIR="/usr/include"])
# First, check for "--without-scilab" or "--with-scilab=no".
if test x"${SCILABBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${SCILABBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Scilab])
SCILAB=
else
# Check Scilab executable
AC_MSG_CHECKING(for Scilab executable)
# Check for Scilab executable
if test "x$SCILABBIN" = xyes; then
AC_CHECK_PROGS(SCILAB, scilab)
AC_CHECK_PROGS(SCILAB, scilab)
else
SCILAB="$SCILABBIN"
fi
if test -n "$SCILAB"; then
AC_MSG_RESULT([$SCILAB found])
else
AC_MSG_RESULT([$SCILAB not found])
fi
# Check Scilab header files
AC_MSG_CHECKING(for Scilab header files)
if test "$SCILABINCDIR" != ""; then
dirs="$SCILABINCDIR"
SCILABEXT=""
for i in $dirs; do
if test -r $i/scilab/api_scilab.h; then
SCILABEXT="$i"
break;
fi
if test -r $i/scilab/scilab/api_scilab.h; then
SCILABEXT="$i/scilab"
break;
fi
done
if test "$SCILABEXT" = "" ; then
AC_MSG_RESULT(not found)
else
AC_MSG_RESULT($SCILABEXT)
fi
fi
# Get Scilab version
AC_MSG_CHECKING(for Scilab version)
SCILABVERSION=`$SCILAB -version|sed -e 's|Scilab version \"\(.*\)\"|\1|g'|head -1`
AC_MSG_RESULT($SCILABVERSION)
SCILAB_MAJOR_VERSION=`echo $SCILABVERSION | cut -d. -f1`
SCILAB_MINOR_VERSION=`echo $SCILAB_VERSION | cut -d. -f2`
# Set Scilab startup options depending on version
AC_MSG_CHECKING(for Scilab startup options)
SCILABSTARTOPT="-nwni -nb"
if test "$SCILAB_MAJOR_VERSION" -ge 5 ; then
if test "$SCILAB_MINOR_VERSION" -ge 4 ; then
SCILABSTARTOPT+=" -noatomsautoload"
AC_MSG_CHECKING(for scilab)
if test -f "$SCILABBIN"; then
AC_MSG_RESULT($SCILABBIN)
SCILAB="$SCILABBIN"
else
AC_MSG_RESULT(not found)
fi
fi
AC_MSG_RESULT($SCILABSTARTOPT)
if test -n "$SCILAB"; then
# Check for Scilab version (needs api_scilab so needs version 5.2 or higher)
SCILAB_FULL_VERSION=`$SCILAB -version|head -1|sed -e 's|Scilab version \"\(.*\)\"|\1|g'`
AC_MSG_NOTICE([Scilab version: $SCILAB_FULL_VERSION])
AC_MSG_CHECKING(for Scilab version is 5.2 or higher)
SCILAB_MAJOR_VERSION=`echo $SCILAB_FULL_VERSION | cut -d. -f1`
SCILAB_MINOR_VERSION=`echo $SCILAB_FULL_VERSION | cut -d. -f2`
SCILAB_VERSION="$SCILAB_MAJOR_VERSION$SCILAB_MINOR_VERSION"
if test $SCILAB_VERSION -ge 52; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
# Set Scilab startup options depending on version
AC_MSG_CHECKING(for Scilab startup options)
SCILABSTARTOPT="-nwni -nb"
if test $SCILAB_VERSION -ge 54; then
SCILABSTARTOPT+=" -noatomsautoload"
fi
AC_MSG_RESULT($SCILABSTARTOPT)
fi
# Check for Scilab header files
AC_MSG_CHECKING(for Scilab header files)
if test "$SCILABINCDIR" != ""; then
dirs="$SCILABINCDIR"
SCILABEXT=""
for i in $dirs; do
if test -r $i/scilab/api_scilab.h; then
SCILABEXT="$i"
break;
fi
if test -r $i/scilab/scilab/api_scilab.h; then
SCILABEXT="$i/scilab"
break;
fi
done
if test "$SCILABEXT" = "" ; then
AC_MSG_RESULT(not found)
else
AC_MSG_RESULT($SCILABEXT)
fi
AC_MSG_CHECKING(for Scilab compiler options)
SCILABCCFLAGS=""
AC_MSG_RESULT($SCILABCCFLAGS)
fi
fi
@ -1059,7 +1072,7 @@ AC_SUBST(SCILABDYNAMICLINKING)
AC_SUBST(SCILABLIB)
AC_SUBST(SCILABCCFLAGS)
AC_SUBST(SCILABSTARTOPT)
AC_SUBST(SCILABVERSION)
#----------------------------------------------------------------
# Look for java
@ -1070,7 +1083,7 @@ AS_HELP_STRING([--with-java=path], [Set location of java executable]),[JAVABIN="
AC_ARG_WITH(javac, [ --with-javac=path Set location of javac executable],[JAVACBIN="$withval"], [JAVACBIN=])
# First, check for "--without-java" or "--with-java=no".
if test x"${JAVABIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${JAVABIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Java])
JAVA=
else
@ -1136,7 +1149,7 @@ case $host in
JAVADYNAMICLINKING=""
JAVACFLAGS=""
fi ;;
*-*-darwin*)
*-*-darwin*)
JAVADYNAMICLINKING="-dynamiclib -framework JavaVM"
JAVACFLAGS=""
;;
@ -1154,7 +1167,7 @@ esac
# Java on Mac OS X tweaks
case $host in
*-*-darwin*)
*-*-darwin*)
JAVASO=".jnilib"
JAVALDSHARED='$(CC)'
JAVACXXSHARED='$(CXX)'
@ -1186,7 +1199,7 @@ AS_HELP_STRING([--with-gcj=path], [Set location of gcj executable]),[GCJBIN="$wi
AC_ARG_WITH(gcjh, [ --with-gcjh=path Set location of gcjh executable],[GCJHBIN="$withval"], [GCJHBIN=])
# First, check for "--without-gcj" or "--with-gcj=no".
if test x"${GCJBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${GCJBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling GCJ])
else
if test "x$GCJBIN" = xyes; then
@ -1216,7 +1229,7 @@ AC_ARG_WITH(ant, [ --with-ant=path Set location of ant executable for And
AC_ARG_WITH(ndk-build, [ --with-ndk-build=path Set location of Android ndk-build executable],[NDKBUILDBIN="$withval"], [NDKBUILDBIN=])
# First, check for "--without-android" or "--with-android=no".
if test x"${ANDROIDBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${ANDROIDBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Android])
ANDROID=
else
@ -1268,7 +1281,7 @@ AC_ARG_WITH(guile-libs,[ --with-guile-libs=ldflags Set ldflags needed to lin
GUILE_LIBS="$withval"])
# First, check for "--without-guile" or "--with-guile=no".
if test x"${GUILE}" = xno -o x"${with_alllang}" = xno ; then
if test x"${GUILE}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Guile])
else
if test -z "$GUILE_CONFIG" ; then
@ -1325,7 +1338,7 @@ AS_HELP_STRING([--with-mzscheme=path], [Set location of MzScheme executable]),[
AC_ARG_WITH(mzc, AS_HELP_STRING([--with-mzc=path], [Set location of MzScheme's mzc]), [ MZCBIN="$withval"], [MZCBIN=])
# First, check for "--without-mzscheme" or "--with-mzscheme=no".
if test x"${MZSCHEMEBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${MZSCHEMEBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling MzScheme])
MZC=
else
@ -1334,13 +1347,13 @@ else
else
MZSCHEME="$MZSCHEMEBIN"
fi
if test -z "$MZCBIN"; then
AC_PATH_PROG(MZC, mzc)
fi
if test -n "$MZSCHEME"; then
AC_MSG_CHECKING(for MzScheme dynext object)
AC_MSG_CHECKING(for MzScheme dynext object)
MZDYNOBJ=`$MZSCHEME --eval '(begin (require dynext/link) (with-handlers (((lambda args #t) (lambda args #f))) (for-each (lambda (x) (printf "~a" x)) (expand-for-link-variant (current-standard-link-libraries)))))' 2>/dev/null`
if test -f "$MZDYNOBJ"; then
:
@ -1368,7 +1381,7 @@ AC_ARG_WITH(ruby, AS_HELP_STRING([--without-ruby], [Disable Ruby])
AS_HELP_STRING([--with-ruby=path], [Set location of Ruby executable]),[ RUBYBIN="$withval"], [RUBYBIN=yes])
# First, check for "--without-ruby" or "--with-ruby=no".
if test x"${RUBYBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${RUBYBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Ruby])
RUBY=
else
@ -1427,10 +1440,10 @@ if test -n "$RUBY"; then
else # 1.6.x
link = "-l" + c[["RUBY_INSTALL_NAME"]]
end
# Get the target Ruby was built for
target = c[["target"]]
if target == "i386-pc-mswin32"
# Need to change msvcrt-ruby*.lib to -lmsvcrt-ruby*
ext = File.extname(link)
@ -1498,7 +1511,7 @@ AC_ARG_WITH(php, AS_HELP_STRING([--without-php], [Disable PHP])
AS_HELP_STRING([--with-php=path], [Set location of PHP executable]),[ PHPBIN="$withval"], [PHPBIN=yes])
# First, check for "--without-php" or "--with-php=no".
if test x"${PHPBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${PHPBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling PHP])
PHP=
else
@ -1519,7 +1532,7 @@ else
esac
php_version=`$PHPCONFIG --version 2>/dev/null`
case $php_version in
5*)
5*)
PHPINC=`$PHPCONFIG --includes 2>/dev/null`
if test -n "$PHPINC"; then
AC_MSG_RESULT($PHPINC)
@ -1546,7 +1559,7 @@ AC_ARG_WITH(ocamlfind,[ --with-ocamlfind=path Set location of ocamlfind],[OCA
AC_ARG_WITH(ocamlmktop,[ --with-ocamlmktop=path Set location of ocamlmktop executable],[ OCAMLMKTOP="$withval"], [OCAMLMKTOP=])
# First, check for "--without-ocaml" or "--with-ocaml=no".
if test x"${OCAMLBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${OCAMLBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling OCaml])
OCAMLBIN=
else
@ -1632,7 +1645,7 @@ AC_ARG_WITH(pike, AS_HELP_STRING([--without-pike], [Disable Pike])
AS_HELP_STRING([--with-pike=path], [Set location of Pike executable]),[PIKEBIN="$withval"], [PIKEBIN=yes])
# First, check for "--without-pike" or "--with-pike=no".
if test x"${PIKEBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${PIKEBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Pike])
PIKEBIN=
else
@ -1646,7 +1659,7 @@ fi
# Check for pike-config
# Priority: configure option, guessed from $PIKE, search from list
AC_ARG_WITH(pike-config, AS_HELP_STRING([--with-pike-config=path],
AC_ARG_WITH(pike-config, AS_HELP_STRING([--with-pike-config=path],
[Set location of pike-config script]),
[PIKECONFIG="$withval"], [PIKECONFIG=""])
@ -1657,7 +1670,7 @@ fi
# Check for a --with-pikeincl option to configure
# Priority: configure option, info from $PIKECONFIG, guessed by pike script
AC_ARG_WITH(pikeincl, AS_HELP_STRING([--with-pikeincl=path],
AC_ARG_WITH(pikeincl, AS_HELP_STRING([--with-pikeincl=path],
[Set location of Pike include directory]),
[PIKEINCLUDE="-I$withval"], [PIKEINCLUDE=])
@ -1702,7 +1715,7 @@ AC_ARG_WITH(chicken, AS_HELP_STRING([--without-chicken], [Disable CHICKEN])
AS_HELP_STRING([--with-chicken=path], [Set location of CHICKEN executable]),[ CHICKENBIN="$withval"], [CHICKENBIN=yes])
# First, check for "--without-chicken" or "--with-chicken=no".
if test x"${CHICKENBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${CHICKENBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling CHICKEN])
else
@ -1798,7 +1811,7 @@ AC_ARG_WITH(cil-interpreter, [ --with-cil-interpreter=path Set location of
AC_ARG_WITH(csharp-compiler, [ --with-csharp-compiler=path Set location of CSharp compiler],[CSHARPCOMPILERBIN="$withval"], [CSHARPCOMPILERBIN=])
# First, check for "--without-csharp" or "--with-csharp=no".
if test x"${with_csharp}" = xno -o x"${with_alllang}" = xno ; then
if test x"${with_csharp}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling CSharp])
CSHARPCOMPILER=
else
@ -1851,7 +1864,7 @@ if test -z "$CSHARPBIN" ; then
if test "mcs" = "$CSHARPCOMPILER" || test "gmcs" = "$CSHARPCOMPILER"; then
AC_CHECK_PROGS(CSHARPCILINTERPRETER, mono) # Mono JIT
CSHARPCILINTERPRETER_FLAGS="--debug"
else
else
if test "csc" = "$CSHARPCOMPILER"; then
CSHARPPATHSEPARATOR="\\\\"
CSHARPCYGPATH_W='cygpath -w'
@ -1926,7 +1939,7 @@ AC_ARG_WITH(lualib,[ --with-lualib=path Set location of Lua library direct
LUALIB="$withval"], [LUALIB=])
# First, check for "--without-lua" or "--with-lua=no".
if test x"${LUABIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${LUABIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Lua])
else
@ -1967,8 +1980,8 @@ if test "$LUABIN"; then
else
LUADYNAMICLOADLIB=`$LUABIN -e '_,_,c=package.loadlib("no_such_lib","") if c~="absent" then print "1" end'`
fi
if test -z "$LUADYNAMICLOADLIB"; then
if test -z "$LUADYNAMICLOADLIB"; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
@ -2008,7 +2021,7 @@ fi
# look for the library files & set LUALINK accordingly
# will clear LUABIN if not present
lua_save_LIBS=$LIBS # the code seems to disrupt LIBS, so saving
if test -n "$LUALIB"; then
AC_CHECK_FILE($LUALIB/liblua.a,[LUALINK="-L$LUALIB -llua"],[LUABIN=])
else
@ -2039,7 +2052,7 @@ AC_ARG_WITH(allegrocl, AS_HELP_STRING([--without-allegrocl], [Disable Allegro CL
AS_HELP_STRING([--with-allegrocl=path], [Set location of Allegro CL executable (alisp)]),[ ALLEGROCLBIN="$withval"], [ALLEGROCLBIN=yes])
# First, check for "--without-allegrocl" or "--with-allegrocl=no".
if test x"${ALLEGROCLBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${ALLEGROCLBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Allegro CL])
ALLEGROCLBIN=
else
@ -2062,7 +2075,7 @@ AC_ARG_WITH(clisp, AS_HELP_STRING([--without-clisp], [Disable CLISP])
AS_HELP_STRING([--with-clisp=path], [Set location of CLISP executable (clisp)]),[ CLISPBIN="$withval"], [CLISPBIN=yes])
# First, check for "--without-clisp" or "--with-clisp=no".
if test x"${CLISPBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${CLISPBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling CLISP])
CLISPBIN=
else
@ -2085,7 +2098,7 @@ AC_ARG_WITH(r, AS_HELP_STRING([--without-r], [Disable R])
AS_HELP_STRING([--with-r=path], [Set location of R executable (r)]),[ RBIN="$withval"], [RBIN=yes])
# First, check for "--without-r" or "--with-r=no".
if test x"${RBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${RBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling R])
RBIN=
else
@ -2105,7 +2118,7 @@ AC_SUBST(RBIN)
AC_ARG_WITH(go, AS_HELP_STRING([--without-go], [Disable Go])
AS_HELP_STRING([--with-go=path], [Set location of Go compiler]),[GOBIN="$withval"], [GOBIN=yes])
if test x"${GOBIN}" = xno -o x"${with_alllang}" = xno ; then
if test x"${GOBIN}" = xno -o x"${with_alllang}" = xno ; then
AC_MSG_NOTICE([Disabling Go])
GO=
GOC=