NAME
slirp - C code generator for the S‐Lang scripting language
SYNOPSIS
slirp [ OPTIONS ... ] headerfile [ headerfile ... ]
DESCRIPTION
SLIRP is the (SL)ang (I)nterface (P)ackage, a code generator aimed
primarily at simplifying the process of creating modules for the S‐Lang
scripting language.
SLIRP can dramatically reduce the time and effort required to make C,
C++, or Fortran code callable directly from the S‐Lang interpreter,
generate Makefiles to automate the build process, and even parallelize
wrappers with OpenMP to take advantage of multiprocessors.
SLIRP may also be used to generate pure C bindings for C++ code, or
empty (stub) implementations for the interface(s) specified by its
input header files. The code generated in these cases has no
dependencies upon S‐Lang whatsoever.
OPTIONS
-c++ Mandate that input headers be interpreted as C++, which can be
helpful to coerce the interpretation of files that either lack a
.hh suffix or do not contain class definitions or other explicit
C++ syntax.
-cfront
Generate standalone C wrappers (.cc and .h files), instead of S-
Lang bindings, for C++ interface
-const_strings
Treat ’char*’ return values as ’const char*’
-d Include slirp_debug_pause() debugging stub within module
-fortran_strlen <i>
Indicate where hidden string len args are placed in wrappers of
Fortran calls accepting CHARACTER args (0 = append length args
to end of arg list [default] 1 = insert length args directly
after CHARACTER arg)
-g[=integer]
Emit debugging output to terminal, of varying verbosity
-fprefix <pref>
Emit code only for functions which begin with an exact match to
<pref>, instead of default regexp
-h -help --help
This message
-ignore <option>
Tune the emission of ignored symbol messages: use ’notrunc’ to
append to existing ignored symbol list (default: the ignored
symbol list is truncated at startup), or specify an alternate
output file name (default: ./ignored.txt)
-I <dir>
Add <dir> to search path for headers during code generation;
will also be reflected in -make output
-L <dir>
Add <dir> to search path at link time; for -make
-l <lib>
Add <lib> to library list at link time; for -make
-ldflags <flags>
Use when -L or -l are inappropriate; for -make
-m <name>
Override default module name with <name>
-make Generate a best-effort Makefile for compiling module (-make is
also implied by -L, -l, and -ldflags)
-mapnames <R> <S>
Synonym for -rename (deprecated)
-nocom Do not wrap common blocks
-noinit
Do not generate an initialization fragment
-nopop Avoid explicit pop of func arguments, if possible (also turns
off generation of Usage: statements)
-noautotype
Disable mapping of unknown types to opaque ptr types
-otree Print hierarchical listing of all opaque types defined by the
current invocation, then exit
-openmp
Emit OpenMP #pragmas to parallelize vectorized code (implies
-vec, i.e. turns on vectorization)
-print Print interface for code which would be generated, but don’t
actually generate any code
-rc <file>
Load customizations from <file>, rather than from first of
./slirprc or $SLIRPRC
-refscalars
Support passing scalars as array/ref arguments (default: on for
Fortran bindings, off for C/C++)
-rename <R> <S>
Map C functions with prefixes matching the S-Lang regexp R to S-
Lang functions beginning with string S (set S=NULL to map regexp
prefix to empty string)
-sldb Run in interactive SLDB debugger (S‐Lang 2 only)
-stdout
Emit code to stdout, instead of files
-stubs Generate stub (empty) implementations for input header files,
allowing the module interface to be exercised without linking in
the underlying library or any of its dependencies
-tmapout <file>
Save a copy of the active typemap table to <file>
-tmapin <file>
evalfile() additional typemaps from <file>
-vec Attempt to vectorize every function within input interface
--version
Output version information
-v Show verbose loading messages
-vh -vhelp, --vhelp
Verbose help (normal --help output, plus rarely used options)
AUTHOR
The author of SLIRP is Michael S. Noble <mnoble@space.mit.edu>. Rafael
Laboissiere <rafael@debian.org> created the SLIRP package for Debian.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU General Public License, Version 2 any later
version published by the Free Software Foundation.
On Debian systems, the complete text of the GNU General Public License
can be found in /usr/share/common-licenses/GPL
SEE ALSO
On Debian systems the reference manual for SLIRP can be found at
/usr/share/doc/slang-slirp/manual.txt.gz. It is also available in
PDF, HTML, and text forms on the SLIRP website.
23 September 2009 SLIRP(1)