add the missing file of matrix2 example

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2009-sploving@11880 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Baozeng Ding 2010-02-28 02:32:14 +00:00
commit c31100860e
7 changed files with 116 additions and 97 deletions

View file

@ -0,0 +1,17 @@
TOP = ../..
SWIG = $(TOP)/../preinst-swig
SRCS = matrixlib.c
TARGET = matrixlib
INTERFACE = matrixlib.i
all::
$(MAKE) -f $(TOP)/Makefile SRCS='$(SRCS)' SWIG='$(SWIG)' \
TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' scilab
clean::
$(MAKE) -f $(TOP)/Makefile scilab_clean
rm -f *.sce *.so lib*lib.c *_wrap.c
check: all
$(MAKE) -f $(TOP)/Makefile scilab_run

View file

@ -1,6 +1,6 @@
files=['matrixlib.c','sci_sumitems.c'];//,'sci_getValues.c'];
ilib_build('build_c',['sumitems','sci_sumitems';'generateValues','sci_getValues'],files,[]);
ilib_name = "matrixliblib";
files = ["matrixlib_wrap.c","matrixlib.o"];
libs = [];
table = ["sumitems","_wrap_sumitems";"getValues","_wrap_getValues";];
ilib_build(ilib_name,table,files,libs);
exit

View file

@ -0,0 +1,24 @@
%module matrixlib
%typemap (in,noblock=1) (double *first, int nbRow, int nbCol){
int *piAddr = NULL;
sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddr);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
sciErr = getMatrixOfDouble(pvApiCtx, piAddr, &$2, &$3, &$1);
if (sciErr.iErr) {
printError(&sciErr, 0);
return 0;
}
}
%typemap (in) (int *numberOfRow, int *numberOfCol) {
$1 = &iRowsOut;
$2 = &iColsOut;
}
%inline {
extern double sumitems(double *first, int nbRow, int nbCol);
extern double* getValues(int *numberOfRow, int *numberOfCol);
}

View file

@ -1,28 +1,6 @@
// loader the *.so
exec loader.sce
// First create some objects using the pointer library.
printf("Testing the pointer library\n");
a = new_intp();
b = new_intp();
c = new_intp();
intp_assign(a,37);
intp_assign(b,42);
a,b,c
// Call the add() function with some pointers
add(a,b,c);
// Now get the result
r = intp_value(c);
printf(" 37 + 42 = %i\n",r);
// Clean up the pointers
delete_intp(a);
delete_intp(b);
delete_intp(c);
//Now try the typemap library
//This should be much easier. Now how it is no longer
//necessary to manufacture pointers.