Scilab Reference Manual |
---|
ilib_build — utility for shared library management
ilib_build(lib_name,table,files,libs [,makename,ldflags,cflags,fflags])
lib_name | : a character string, the generic name of the library without path and extension. |
table | : 2 column string matrix giving the table of pairs 'scilab-name', 'interface name' |
files | : string matrix giving objects files needed for shared library creation |
libs | : string matrix giving extra libraries needed for shred library creation |
makename | : character string. The path of the Makefile file without extension. |
ldflags,cflags,fflags | : character strings to provide options for the loader, the C compiler and the Fortran compiler. |
This tool is used to create shared libraries and to generate a loader file which can be used to dynamically load the shared library into Scilab with addinter
Many examples are provided in examples/interface-tour-so directory.
//Here with give a complete example on adding new primitive to Scilab //create the procedure files f1=['extern double fun2();' 'void fun1(x,y)' 'double *x, *y;' '{*y=fun2(*x)/(*x);}']; mputl(f1,'fun1.c') f2=['#include <math.h>' 'double fun2(x)' 'double x;' '{ return( sin(x+1.));}']; mputl(f2,'fun2.c'); //creating the interface file i=['#include ""stack-c.h""' 'extern int fun1 _PARAMS(( double *x, double *y));' 'int intfun1(fname)' 'char * fname;' '{' ' int m1,n1,l1;' ' CheckRhs(1,1);' ' CheckLhs(1,1);' ' GetRhsVar(1, ""d"", &m1, &n1, &l1);' ' fun1(stk(l1),stk(l1));' ' LhsVar(1) = 1;' ' return 0;' '}']; mputl(i,'intfun1.c') //creating the shared library (a gateway, a Makefile and a loader are //generated. files=['fun1.o','fun2.o','intfun1.o']; ilib_build('foo',['scifun1','intfun1'],files,[]); // load the shared library exec loader.sce //using the new primitive scifun1(33)
<< hex2dec | ilib_compile >> |