source: general/prog/swig.xml@ a73fc762

12.0 12.1 ken/TL2024 ken/tuningfonts lazarus plabs/newcss python3.11 rahul/power-profiles-daemon renodr/vulkan-addition trunk xry111/llvm18
Last change on this file since a73fc762 was a73fc762, checked in by Douglas R. Reno <renodr@…>, 10 months ago

Tags

  • Property mode set to 100644
File size: 7.4 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY swig-download-http "&sourceforge-dl;/swig/swig-&swig-version;.tar.gz">
8 <!ENTITY swig-download-ftp " ">
9 <!ENTITY swig-md5sum "c7d55a1bca26752f3846c85b43c1a69c">
10 <!ENTITY swig-size "8.2 MB">
11 <!ENTITY swig-buildsize "82 MB (2.1 GB with tests)">
12 <!ENTITY swig-time "0.1 SBU (add 7.8 SBU for tests; both using parallelism=4)">
13]>
14
15<sect1 id="swig" xreflabel="SWIG-&swig-version;">
16 <?dbhtml filename="swig.html"?>
17
18
19 <title>SWIG-&swig-version;</title>
20
21 <indexterm zone="swig">
22 <primary sortas="a-swig">SWIG</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to SWIG</title>
27
28 <para>
29 <application>SWIG</application> (Simplified Wrapper and Interface
30 Generator) is a compiler that integrates <application>C</application>
31 and <application>C++</application> with languages including
32 <application>Perl</application>,
33 <application>Python</application>,
34 <application>Tcl</application>,
35 <application>Ruby</application>,
36 <application>PHP</application>,
37 <application>Java</application>,
38 <application>C#</application>,
39 <application>D</application>,
40 <application>Go</application>,
41 <application>Lua</application>,
42 <application>Octave</application>,
43 <application>R</application>,
44 <application>Scheme</application>, and
45 <application>Ocaml</application>.
46 <application>SWIG</application> can
47 also export its parse tree into <application>Lisp</application>
48 s-expressions and <application>XML</application>.
49 </para>
50 <para>
51 <application>SWIG</application> reads annotated
52 <application>C/C++</application> header files and creates wrapper
53 code (glue code) in order to make the corresponding
54 <application>C/C++</application> libraries available to the listed
55 languages, or to extend <application>C/C++</application> programs
56 with a scripting language.
57 </para>
58
59 &lfs120_checked;
60
61 <bridgehead renderas="sect3">Package Information</bridgehead>
62 <itemizedlist spacing="compact">
63 <listitem>
64 <para>
65 Download (HTTP): <ulink url="&swig-download-http;"/>
66 </para>
67 </listitem>
68 <listitem>
69 <para>
70 Download (FTP): <ulink url="&swig-download-ftp;"/>
71 </para>
72 </listitem>
73 <listitem>
74 <para>
75 Download MD5 sum: &swig-md5sum;
76 </para>
77 </listitem>
78 <listitem>
79 <para>
80 Download size: &swig-size;
81 </para>
82 </listitem>
83 <listitem>
84 <para>
85 Estimated disk space required: &swig-buildsize;
86 </para>
87 </listitem>
88 <listitem>
89 <para>
90 Estimated build time: &swig-time;
91 </para>
92 </listitem>
93 </itemizedlist>
94
95 <bridgehead renderas="sect3">SWIG Dependencies</bridgehead>
96
97 <bridgehead renderas="sect4">Required</bridgehead>
98 <para role="required">
99 <xref linkend="pcre2"/>
100 </para>
101
102 <bridgehead renderas="sect4">Optional</bridgehead>
103 <para role="optional">
104 <xref linkend="boost"/> for tests, and any of the languages mentioned
105 in the introduction, as run-time dependencies
106 </para>
107
108 </sect2>
109
110 <sect2 role="installation">
111 <title>Installation of SWIG</title>
112
113 <para>
114 Install <application>SWIG</application> by running the following
115 commands:
116 </para>
117
118<screen><userinput>./configure --prefix=/usr \
119 --without-javascript \
120 --without-maximum-compile-warnings &amp;&amp;
121make</userinput></screen>
122
123 <para>
124 To test the results, issue: <command>PY3=1 make -k check TCL_INCLUDE=</command>.
125 The unsetting of the variable <envar>TCL_INCLUDE</envar> is
126 necessary since it is not correctly set by
127 <emphasis>configure</emphasis>. The tests are only executed for the
128 languages installed on your machine, so the disk space and SBU values
129 given for the tests may vary, and should be considered as mere orders of
130 magnitude. <!-- Phase out P2 support
131 If you have <xref linkend="python2"/> installed, the Python-3
132 tests are not run. You can run tests for Python-3 by issuing
133 <command>PY3=1 make check-python-examples</command> followed by
134 <command>PY3=1 make check-python-test-suite</command>. --> According to
135 <application>SWIG</application>'s documentation, the failure of some
136 tests should not be considered harmful. The go tests are buggy and may
137 generate a lot of meaningless output.
138 </para>
139
140 <para>
141 Now, as the <systemitem class="username">root</systemitem> user:
142 </para>
143
144<screen role="root"><userinput>make install &amp;&amp;
145install -v -m755 -d /usr/share/doc/swig-&swig-version; &amp;&amp;
146cp -v -R Doc/* /usr/share/doc/swig-&swig-version;</userinput></screen>
147 </sect2>
148
149 <sect2 role="commands">
150 <title>Command Explanations</title>
151
152 <para>
153 <parameter>--without-maximum-compile-warnings</parameter>: disables
154 compiler ansi conformance enforcement, which triggers errors in
155 the <application>Lua</application> headers (starting with Lua 5.3).
156 </para>
157
158 <para>
159 <option>--without-&lt;language&gt;</option>: allows disabling the
160 building of tests and examples for &lt;language&gt;, but all the
161 languages capabilities of <application>SWIG</application> are always
162 built. <!--We use it for <application>Clisp</application>, because the
163 SWIG implementation is very incomplete and a lot of tests fail. -->
164 <!-- Now used for JavaScript because of node CLI changes -->
165 </para>
166
167 </sect2>
168
169 <sect2 role="content">
170 <title>Contents</title>
171
172 <segmentedlist>
173 <segtitle>Installed Programs</segtitle>
174 <segtitle>Installed Library</segtitle>
175 <segtitle>Installed Directories</segtitle>
176
177 <seglistitem>
178 <seg>
179 swig and ccache-swig
180 </seg>
181 <seg>
182 None
183 </seg>
184 <seg>
185 /usr/share/doc/swig-&swig-version; and
186 /usr/share/swig
187 </seg>
188 </seglistitem>
189 </segmentedlist>
190
191 <variablelist>
192 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
193 <?dbfo list-presentation="list"?>
194 <?dbhtml list-presentation="table"?>
195
196 <varlistentry id="swig-prog">
197 <term><command>swig</command></term>
198 <listitem>
199 <para>
200 takes an interface file containing C/C++ declarations and
201 SWIG special instructions, and generates the corresponding
202 wrapper code needed to build extension modules
203 </para>
204 <indexterm zone="swig swig-prog">
205 <primary sortas="b-swig">swig</primary>
206 </indexterm>
207 </listitem>
208 </varlistentry>
209
210 <varlistentry id="ccache-swig">
211 <term><command>ccache-swig</command></term>
212 <listitem>
213 <para>
214 is a compiler cache, which speeds up re-compilation of
215 C/C++/SWIG code
216 </para>
217 <indexterm zone="swig ccache-swig">
218 <primary sortas="b-ccache-swig">ccache-swig</primary>
219 </indexterm>
220 </listitem>
221 </varlistentry>
222
223 </variablelist>
224 </sect2>
225
226</sect1>
Note: See TracBrowser for help on using the repository browser.