summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsource4/autogen.sh2
-rw-r--r--source4/scripting/python/replace/swigarch.i65
2 files changed, 66 insertions, 1 deletions
diff --git a/source4/autogen.sh b/source4/autogen.sh
index 5f71a09bf8..d3a4d873d1 100755
--- a/source4/autogen.sh
+++ b/source4/autogen.sh
@@ -65,7 +65,7 @@ rm -rf autom4te*.cache
# Run swig if it is available
SWIG=swig
-SWIG_FILES="./scripting/python/misc.i ./auth/auth.i ./auth/credentials/credentials.i ./lib/ldb/ldb.i ./lib/registry/registry.i ./lib/tdb/tdb.i ./libcli/swig/libcli_smb.i ./libcli/swig/libcli_nbt.i ./librpc/rpc/dcerpc.i lib/events/events.i libcli/security/security.i"
+SWIG_FILES="./scripting/python/misc.i ./auth/auth.i ./auth/credentials/credentials.i ./lib/ldb/ldb.i ./lib/registry/registry.i ./lib/tdb/tdb.i ./libcli/swig/libcli_smb.i ./libcli/swig/libcli_nbt.i ./librpc/rpc/dcerpc.i ./lib/events/events.i ./libcli/security/security.i"
if which $SWIG >/dev/null 2>&1; then
for I in $SWIG_FILES
do
diff --git a/source4/scripting/python/replace/swigarch.i b/source4/scripting/python/replace/swigarch.i
new file mode 100644
index 0000000000..260b608801
--- /dev/null
+++ b/source4/scripting/python/replace/swigarch.i
@@ -0,0 +1,65 @@
+/* -----------------------------------------------------------------------------
+ * See the LICENSE file for information on copyright, usage and redistribution
+ * of SWIG, and the README file for authors - http://www.swig.org/release.html.
+ *
+ * swigarch.i
+ *
+ * SWIG library file for 32bit/64bit code specialization and checking.
+ *
+ * Use only in extreme cases, when no arch. independent code can be
+ * generated
+ *
+ * To activate architecture specific code, use
+ *
+ * swig -DSWIGWORDSIZE32
+ *
+ * or
+ *
+ * swig -DSWIGWORDSIZE64
+ *
+ * Note that extra checking code will be added to the wrapped code,
+ * which will prevent the compilation in a different architecture.
+ *
+ * If you don't specify the SWIGWORDSIZE (the default case), swig will
+ * generate architecture independent and/or 32bits code, with no extra
+ * checking code added.
+ * ----------------------------------------------------------------------------- */
+
+#if !defined(SWIGWORDSIZE32) && !defined(SWIGWORDSIZE64)
+# if (__WORDSIZE == 32)
+# define SWIGWORDSIZE32
+# endif
+#endif
+
+#if !defined(SWIGWORDSIZE64) && !defined(SWIGWORDSIZE32)
+# if defined(__x86_64) || defined(__x86_64__) || (__WORDSIZE == 64)
+# define SWIGWORDSIZE64
+# endif
+#endif
+
+
+#ifdef SWIGWORDSIZE32
+%{
+#define SWIGWORDSIZE32
+#ifndef LONG_MAX
+#include <limits.h>
+#endif
+#if (__WORDSIZE == 64) || (LONG_MAX != INT_MAX)
+# error "SWIG wrapped code invalid in 64 bit architecture, regenarete code using -DSWIGWORDSIZE64"
+#endif
+%}
+#endif
+
+#ifdef SWIGWORDSIZE64
+%{
+#define SWIGWORDSIZE64
+#ifndef LONG_MAX
+#include <limits.h>
+#endif
+#if (__WORDSIZE == 32) || (LONG_MAX == INT_MAX)
+# error "SWIG wrapped code invalid in 32 bit architecture, regenarete code using -DSWIGWORDSIZE32"
+#endif
+%}
+#endif
+
+