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.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en LFS 12.2 plattform.
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.