SWIG (Simplified Wrapper and Interface Generator) er en kompilator som integrerer C og C++ med språk inkludert Perl, Python, Tcl, Ruby, PHP, Java, JavaScript, C#, D, Go, Lua, Octave, R, Racket, Scilab, Scheme, og Ocaml. SWIG kan også eksportere parsetreet til Lisp s-expressions og XML.
SWIG leser kommentert C/C++ deklarasjonsfiler og lager innpakningskode (glue kode) for å lage den tilsvarende C/C++ bibliotekene som er tilgjengelige for de oppførte språk, eller for å utvide C/C++ programmer med et skriptspråk.
Utviklingsversjoner av BLFS kan ikke bygge eller kjøre noen pakker riktig hvis LFS eller avhengigheter har blitt oppdatert siden den siste stabile versjonene av bøkene.
Nedlasting (HTTP): https://downloads.sourceforge.net/swig/swig-4.3.0.tar.gz
Nedlasting MD5 sum: 6a0555a2063c78447c5912136f013c43
Nedlastingsstørrelse: 8.2 MB
Estimert diskplass som kreves: 90 MB (2.2 GB med tester)
Estimert byggetid: 0.1 SBU (legg til 8.4 SBU for tester; begge bruker parallellisme=4)
Boost-1.86.0 for tester, og alle de nevnte språkene i innledningen, som kjøretidsavhengigheter
Installer SWIG ved å kjøre følgende kommandoer:
./configure --prefix=/usr \ --without-javascript \ --without-maximum-compile-warnings && make
For å teste resultatene, kjør: make
TCL_INCLUDE= -k check. Deaktiveringen av variabelen
TCL_INCLUDE
er nødvendig siden den ikke
er riktig satt av configure.
Testene utføres kun for språk installert på maskinen din, så
diskplass og SBU-verdier gitt for testene kan variere, og bør
betraktes som bare antakelser av størrelser. I følge SWIG sin dokumentasjon, svikt hos noen tester
bør ikke anses som skadelige. Go testene er buggy og kan generere
mye meningsløst utdata.
Nå, som root
bruker:
make install && cp -v -R Doc -T /usr/share/doc/swig-4.3.0
--without-maximum-compile-warnings
:
deaktiverer kompilator ansi samsvarshåndhevelse, som utløser feil i
Lua deklarasjonsfiler (startet med
Lua 5.3).
--without-<language>
: gjør det
mulig å deaktivere oppbygging av tester og eksempler for
<language>, men alle språk evner til SWIG er alltid bygget. Denne bryteren brukes
til JavaScript fordi SWIG
implementeringen er ufullstendig og mange tester mislykkes på grunn
av API endringer i Node-20.