Index: swig/Lib/python/embed.i |
=================================================================== |
--- swig/Lib/python/embed.i (revision 0) |
+++ swig/Lib/python/embed.i (revision 0) |
@@ -0,0 +1,115 @@ |
+// |
+// embed.i |
+// SWIG file embedding the Python interpreter in something else. |
+// This file is based on Python-1.5. It will not work with |
+// earlier versions. |
+// |
+// This file makes it possible to extend Python and all of its |
+// built-in functions without having to hack its setup script. |
+// |
+ |
+ |
+#ifdef AUTODOC |
+%subsection "embed.i" |
+%text %{ |
+This module provides support for building a new version of the |
+Python executable. This will be necessary on systems that do |
+not support shared libraries and may be necessary with C++ |
+extensions. This file contains everything you need to build |
+a new version of Python from include files and libraries normally |
+installed with the Python language. |
+ |
+This module will automatically grab all of the Python modules |
+present in your current Python executable (including any special |
+purpose modules you have enabled such as Tkinter). Thus, you |
+may need to provide additional link libraries when compiling. |
+ |
+This library file only works with Python 1.5. A version |
+compatible with Python 1.4 is available as embed14.i and |
+a Python1.3 version is available as embed13.i. As far as |
+I know, this module is C++ safe. |
+%} |
+#else |
+%echo "embed.i : Using Python 1.5" |
+#endif |
+ |
+%wrapper %{ |
+ |
+#include <Python.h> |
+ |
+#ifdef __cplusplus |
+extern "C" |
+#endif |
+void SWIG_init(); /* Forward reference */ |
+ |
+#define _PyImport_Inittab swig_inittab |
+ |
+/* Grab Python's inittab[] structure */ |
+ |
+#ifdef __cplusplus |
+extern "C" { |
+#endif |
+#include <config.c> |
+ |
+#undef _PyImport_Inittab |
+ |
+/* Now define our own version of it. |
+ Hopefully someone does not have more than 1000 built-in modules */ |
+ |
+struct _inittab SWIG_Import_Inittab[1000]; |
+ |
+static int swig_num_modules = 0; |
+ |
+/* Function for adding modules to Python */ |
+ |
+static void swig_add_module(char *name, void (*initfunc)()) { |
+ SWIG_Import_Inittab[swig_num_modules].name = name; |
+ SWIG_Import_Inittab[swig_num_modules].initfunc = initfunc; |
+ swig_num_modules++; |
+ SWIG_Import_Inittab[swig_num_modules].name = (char *) 0; |
+ SWIG_Import_Inittab[swig_num_modules].initfunc = 0; |
+} |
+ |
+/* Function to add all of Python's build in modules to our interpreter */ |
+ |
+static void swig_add_builtin() { |
+ int i = 0; |
+ while (swig_inittab[i].name) { |
+ swig_add_module(swig_inittab[i].name, swig_inittab[i].initfunc); |
+ i++; |
+ } |
+#ifdef SWIGMODINIT |
+ SWIGMODINIT |
+#endif |
+ /* Add SWIG builtin function */ |
+ swig_add_module(SWIG_name, SWIG_init); |
+} |
+ |
+#ifdef __cplusplus |
+} |
+#endif |
+ |
+#ifdef __cplusplus |
+extern "C" { |
+#endif |
+ |
+extern int Py_Main(int, char **); |
+ |
+#ifdef __cplusplus |
+} |
+#endif |
+ |
+extern struct _inittab *PyImport_Inittab; |
+ |
+int |
+main(int argc, char **argv) { |
+ swig_add_builtin(); |
+ PyImport_Inittab = SWIG_Import_Inittab; |
+ return Py_Main(argc,argv); |
+} |
+ |
+%} |
+ |
+ |
+ |
+ |