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.2.1.tar.gz
Nedlasting MD5 sum: 7697b443d7845381d64c90ab54d244af
Nedlastingsstørrelse: 8.0 MB
Estimert diskplass som kreves: 81 MB (1.8 GB med tester)
Estimert byggetid: 0.1 SBU (legg til 7.7 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: PY3=1
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.2.1
--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.