Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.0.0 - Русский


ilib_gen_gateway

utility for ilib_build, generates a gateway file.

Syntax

ilib_gen_gateway(name,table)

Arguments

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'

Description

Utility function used by ilib_build This function generates a gateway file used by addinter.

if WITHOUT_AUTO_PUTLHSVAR variable is defined and equals to %t, PutLhsVar(); will need to manage PutLhsVar in each interface as internal scilab functions.

In another case (default, for compatibility with previous version) , PutLhsVar(); is added in each interface.

You can also see SCI/contrib/toolbox_skeleton/sci_gateway/c/builder_gateway_c.sce (as example about WITHOUT_AUTO_PUTLHSVAR)

Example about WITHOUT_AUTO_PUTLHSVAR = %t

cd TMPDIR
WITHOUT_AUTO_PUTLHSVAR = %t;
name = 'gw_example1';
table = ['sci_func1', 'func1']
ilib_gen_gateway(name,table)

// generated gateway
mgetl(TMPDIR+'/gw_example1.c')
int sci_func1(char *fname)
{
  // ... your C code
  // you need to add a explicit PutLhsVar();
  // as internal all gateways of scilab

  PutLhsVar();
  return 0;
}

Example about WITHOUT_AUTO_PUTLHSVAR = %f (default)

cd TMPDIR
WITHOUT_AUTO_PUTLHSVAR = %f;
name = 'gw_example2';
table = ['sci_func2', 'func2']
ilib_gen_gateway(name,table)

// generated gateway
mgetl(TMPDIR+'/gw_example2.c')
int sci_func2(char *fname)
{
  // ... your code
  // you do NOT need to add a explicit PutLhsVar();
  // added by scilab after call to sci_func2
  // default mode in scilab 4

  return 0;
}

See also

  • addinter — new functions interface dynamic link at run time.
  • link — dynamic linker
  • ilib_build — utility for shared library management
  • ilib_compile — ilib_build utility: executes the Makefile produced by ilib_gen_Make
  • ilib_gen_Make — utility for ilib_build: produces a Makefile for building shared libraries
  • ilib_gen_loader — utility for ilib_build: generates a loader file
  • ilib_for_link — utility for shared library management with link
Report an issue
<< ilib_gen_cleaner Dynamic/incremental Link ilib_gen_loader >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Oct 24 14:37:13 CEST 2023