diff --git a/Doc/Devel/internals.html b/Doc/Devel/internals.html index 309bfe98a..ef90ed1f6 100644 --- a/Doc/Devel/internals.html +++ b/Doc/Devel/internals.html @@ -99,13 +99,6 @@ the Engineering Manual for more info. -
-
-1. Build the SWIG run-time libraries. -The SWIG/Runtime directory contains a makefile for doing this for Unix users. -Some of the runtime libraries can also be built under Windows by following the instructions in the Windows documentation. -If successfully built, you will end up with a number of files that are usually installed in /usr/local/lib. -The Perl, Python, Tcl and Ruby library files are listed below:
-
-
--libswigpl.a # Perl library (static) -libswigpl.so # Perl library (shared) -libswigpy.a # Python library (static) -libswigpy.so # Python library (shared) -libswigtcl8.a # Tcl 8.x library (static) -libswigtcl8.so # Tcl 8.x library (shared) -libswigrb.a # Ruby library (static) -libswigrb.so # Ruby library (shared) -
-Note that certain libraries may be missing due to missing packages or unsupported features (like dynamic loading) on your machine. Also some languages don't use the runtime libraries at all as they implement static type checking rather than dynamic type checking, for example, Java and C#.
-
-2. Compile all SWIG modules using the -c option. For example :
-
-
-The -c option tells SWIG to omit runtime support. It's now up to you to provide it separately--which we will do using our libraries.-% swig -c -python a.i -% swig -c -python b.i -
-
-3. Build SWIG modules by linking against the appropriate runtime libraries.
-
-
-or if building a new executable (static linking)-% swig -c -python a.i -% swig -c -python b.i -% gcc -c a_wrap.c b_wrap.c -I/usr/local/include -% ld -shared a_wrap.o b_wrap.o -lswigpy -o a.so +To reduce overhead and to fix type-handling problems, it is possible to share the SWIG run-time functions between multiple modules. +The Working with Modules chapter describes this in further detail and how to build the SWIG runtime library. The steps can be summarised as follows: -
-
-
--% swig -c -tcl -ltclsh.i a.i -% gcc a_wrap.c -I/usr/local/include -L/usr/local/lib -ltcl -lswigtcl8 -lm -o mytclsh ++
-- Build the SWIG run-time libraries.
+- Compile all SWIG modules using the -noruntime option.
+- Build SWIG modules by linking against the appropriate runtime libraries.
+
When completed you should now end up with a collection of modules like this:

In this configuration, the runtime library manages all datatypes and other information between modules. This management process is dynamic in nature--when new modules are loaded, they contribute information to the run-time system. In the C++ world, one could incrementally load classes as needed. As this process occurs, type information is updated and base-classes learn about derived classes as needed.
+ +
+ +Compatibility Note: In SWIG-1.3.19 and earlier releases, SWIG built the runtime libraries by default and attempted to install them with the SWIG installation. This had numerous limitations, not least, the version of the target language was tied to what was detected at installation time and would not necessarily be the version the user required. +