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.
![[Note]](../images/note.png) 
          Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.
Download (HTTP): https://downloads.sourceforge.net/swig/swig-4.4.0.tar.gz
Download MD5 sum: 62d77e7d90057d5410f7a28ff57d854f
Download size: 8.3 MB
Estimated disk space required: 90 MB (2.2 GB with tests)
Estimated build time: 0.3 SBU (add 8.4 SBU for tests; both using parallelism=4)
Boost-1.89.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: make
          JSCXX=g++ 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.4.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.