# ilib_gen_gateway

utility for ilib_build, generates a gateway file.

## Calling Sequence

    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
- link
- ilib_build
- ilib_compile
- ilib_gen_Make
- ilib_gen_loader
- ilib_for_link
- api_scilab