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.3 plattform.
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.87.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.