SWIG (Simplified Wrapper and Interface Generator) is a compiler that integrates C and C++ with languages including Perl, Python, Tcl, Ruby, PHP, Java, JavaScript, C#, D, Go, Lua, Octave, R, Racket, Scilab, Scheme, and Ocaml. SWIG can also export its parse tree into Lisp s-expressions and XML.
SWIG reads annotated C/C++ header files and creates wrapper code (glue code) in order to make the corresponding C/C++ libraries available to the listed languages, or to extend C/C++ programs with a scripting language.
This package is known to build and work properly using an LFS 12.1 platform.
Download (HTTP): https://downloads.sourceforge.net/swig/swig-4.2.0.tar.gz
Download MD5 sum: 4d03374a2c30367699fa0928e1d901e8
Download size: 8.0 MB
Estimated disk space required: 106 MB (2.2 GB with tests)
Estimated build time: 0.1 SBU (add 10.0 SBU for tests; both using parallelism=4)
Boost-1.84.0 for tests, and any of the languages mentioned in the introduction, as run-time dependencies
Install SWIG by running the following commands:
./configure --prefix=/usr \ --without-javascript \ --without-maximum-compile-warnings && make
To test the results, issue: PY3=1
make TCL_INCLUDE= -k check. The unsetting of the
variable TCL_INCLUDE
is necessary since
it is not correctly set by configure. The tests are only executed
for the languages installed on your machine, so the disk space and
SBU values given for the tests may vary, and should be considered
as mere orders of magnitude. According to SWIG's documentation, the failure of some
tests should not be considered harmful. The go tests are buggy and
may generate a lot of meaningless output.
Now, as the root
user:
make install && cp -v -R Doc -T /usr/share/doc/swig-4.2.0
--without-maximum-compile-warnings
:
disables compiler ansi conformance enforcement, which triggers
errors in the Lua headers
(starting with Lua 5.3).
--without-<language>
: allows
disabling the building of tests and examples for <language>,
but all the languages capabilities of SWIG are always built. This switch is used for
JavaScript because the SWIG
implementation is incomplete and a lot of tests fail due to API
changes in Node-20.