Use the preprocessor to rename external functions of the SWIG runtime

API to follow the naming convention SWIG_<language>_<function>.  This
should allow linking more than one interpreter into a program.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5242 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Matthias Köppe 2003-11-02 13:48:17 +00:00
commit de27e32afb
14 changed files with 127 additions and 16 deletions

View file

@ -4,6 +4,7 @@
* Perl 5 configuration file
* ----------------------------------------------------------------------------- */
%runtime "precommon.swg"
%runtime "common.swg" // common type checking code
%runtime "perlrun.swg" // Perl runtime functions
%runtime "noembed.h" // undefine Perl5 macros

16
Lib/perl5/precommon.swg Normal file
View file

@ -0,0 +1,16 @@
/*************************************************************** -*- c -*-
* perl5/precommon.swg
*
* Rename all exported symbols from common.swg, to avoid symbol
* clashes if multiple interpreters are included
*
************************************************************************/
#define SWIG_TypeRegister SWIG_Perl_TypeRegister
#define SWIG_TypeCheck SWIG_Perl_TypeCheck
#define SWIG_TypeCast SWIG_Perl_TypeCast
#define SWIG_TypeDynamicCast SWIG_Perl_TypeDynamicCast
#define SWIG_TypeName SWIG_Perl_TypeName
#define SWIG_TypeQuery SWIG_Perl_TypeQuery
#define SWIG_TypeClientData SWIG_Perl_TypeClientData

View file

@ -5,6 +5,7 @@
*
*/
%runtime "precommon.swg"
%runtime "common.swg" // common type checking code
%runtime "php4run.swg" // Php4 runtime functions
%include "utils.i" // building blocks

16
Lib/php4/precommon.swg Normal file
View file

@ -0,0 +1,16 @@
/*************************************************************** -*- c -*-
* php4/precommon.swg
*
* Rename all exported symbols from common.swg, to avoid symbol
* clashes if multiple interpreters are included
*
************************************************************************/
#define SWIG_TypeRegister SWIG_PHP4_TypeRegister
#define SWIG_TypeCheck SWIG_PHP4_TypeCheck
#define SWIG_TypeCast SWIG_PHP4_TypeCast
#define SWIG_TypeDynamicCast SWIG_PHP4_TypeDynamicCast
#define SWIG_TypeName SWIG_PHP4_TypeName
#define SWIG_TypeQuery SWIG_PHP4_TypeQuery
#define SWIG_TypeClientData SWIG_PHP4_TypeClientData

View file

@ -4,6 +4,7 @@
* Pike configuration module.
* ----------------------------------------------------------------------------- */
%insert(runtime) "precommon.swg"
%insert(runtime) "common.swg"; // Common type-checking code
%insert(runtime) "pikerun.swg"; // Pike run-time code

View file

@ -27,16 +27,19 @@ typedef struct swig_object_wrapper {
#endif
#define THIS (((swig_object_wrapper *) Pike_fp->current_storage)->self)
#define SWIG_ConvertPtr SWIG_Pike_ConvertPtr
#define SWIG_NewPointerObj SWIG_Pike_NewPointerObj
#ifdef SWIG_NOINCLUDE
SWIGEXPORT(int) SWIG_ConvertPtr(struct object *, void **, swig_type_info *, int);
SWIGEXPORT(struct object *) SWIG_NewPointerObj(void *, swig_type_info *, int);
SWIGEXPORT(int) SWIG_Pike_ConvertPtr(struct object *, void **, swig_type_info *, int);
SWIGEXPORT(struct object *) SWIG_Pike_NewPointerObj(void *, swig_type_info *, int);
#else
/* Convert a pointer value */
SWIGRUNTIME(int)
SWIG_ConvertPtr(struct object *obj, void **ptr, swig_type_info *ty, int flags) {
SWIG_Pike_ConvertPtr(struct object *obj, void **ptr, swig_type_info *ty, int flags) {
char *storage;
struct program *pr;
if (ty) {
@ -52,7 +55,7 @@ SWIG_ConvertPtr(struct object *obj, void **ptr, swig_type_info *ty, int flags) {
/* Create a new pointer object */
SWIGRUNTIME(struct object *)
SWIG_NewPointerObj(void *ptr, swig_type_info *type, int own) {
SWIG_Pike_NewPointerObj(void *ptr, swig_type_info *type, int own) {
return 0;
}

16
Lib/pike/precommon.swg Normal file
View file

@ -0,0 +1,16 @@
/*************************************************************** -*- c -*-
* pike/precommon.swg
*
* Rename all exported symbols from common.swg, to avoid symbol
* clashes if multiple interpreters are included
*
************************************************************************/
#define SWIG_TypeRegister SWIG_Pike_TypeRegister
#define SWIG_TypeCheck SWIG_Pike_TypeCheck
#define SWIG_TypeCast SWIG_Pike_TypeCast
#define SWIG_TypeDynamicCast SWIG_Pike_TypeDynamicCast
#define SWIG_TypeName SWIG_Pike_TypeName
#define SWIG_TypeQuery SWIG_Pike_TypeQuery
#define SWIG_TypeClientData SWIG_Pike_TypeClientData

16
Lib/python/precommon.swg Normal file
View file

@ -0,0 +1,16 @@
/*************************************************************** -*- c -*-
* python/precommon.swg
*
* Rename all exported symbols from common.swg, to avoid symbol
* clashes if multiple interpreters are included
*
************************************************************************/
#define SWIG_TypeRegister SWIG_Python_TypeRegister
#define SWIG_TypeCheck SWIG_Python_TypeCheck
#define SWIG_TypeCast SWIG_Python_TypeCast
#define SWIG_TypeDynamicCast SWIG_Python_TypeDynamicCast
#define SWIG_TypeName SWIG_Python_TypeName
#define SWIG_TypeQuery SWIG_Python_TypeQuery
#define SWIG_TypeClientData SWIG_Python_TypeClientData

View file

@ -10,6 +10,7 @@
#include "Python.h"
%}
%insert(runtime) "precommon.swg";
%insert(runtime) "common.swg"; // Common type-checking code
%insert(runtime) "pyrun.swg"; // Python run-time code

16
Lib/ruby/precommon.swg Normal file
View file

@ -0,0 +1,16 @@
/*************************************************************** -*- c -*-
* ruby/precommon.swg
*
* Rename all exported symbols from common.swg, to avoid symbol
* clashes if multiple interpreters are included
*
************************************************************************/
#define SWIG_TypeRegister SWIG_Ruby_TypeRegister
#define SWIG_TypeCheck SWIG_Ruby_TypeCheck
#define SWIG_TypeCast SWIG_Ruby_TypeCast
#define SWIG_TypeDynamicCast SWIG_Ruby_TypeDynamicCast
#define SWIG_TypeName SWIG_Ruby_TypeName
#define SWIG_TypeQuery SWIG_Ruby_TypeQuery
#define SWIG_TypeClientData SWIG_Ruby_TypeClientData

View file

@ -5,6 +5,7 @@
* ---------------------------------------------------------------------- */
%runtime "rubyhead.swg"
%runtime "precommon.swg"
%runtime "common.swg"
#ifdef SWIG_NOINCLUDE

16
Lib/tcl/precommon.swg Normal file
View file

@ -0,0 +1,16 @@
/*************************************************************** -*- c -*-
* Tcl/precommon.swg
*
* Rename all exported symbols from common.swg, to avoid symbol
* clashes if multiple interpreters are included
*
************************************************************************/
#define SWIG_TypeRegister SWIG_Tcl_TypeRegister
#define SWIG_TypeCheck SWIG_Tcl_TypeCheck
#define SWIG_TypeCast SWIG_Tcl_TypeCast
#define SWIG_TypeDynamicCast SWIG_Tcl_TypeDynamicCast
#define SWIG_TypeName SWIG_Tcl_TypeName
#define SWIG_TypeQuery SWIG_Tcl_TypeQuery
#define SWIG_TypeClientData SWIG_Tcl_TypeClientData

View file

@ -4,6 +4,7 @@
* Tcl8 configuration module.
* ----------------------------------------------------------------------------- */
%runtime "precommon.swg"
%runtime "common.swg"
%runtime "swigtcl8.swg"

View file

@ -45,14 +45,15 @@ endif
TCL_INCLUDE = @TCLINCLUDE@
TCL_RUNTIME = $(SWIGLIB)/tcl/swigtcl8.swg
TCL_PRECOMMON = $(SWIGLIB)/tcl/precommon.swg
TCL_DLNK = @TCLDYNAMICLINKING@
libswigtcl8_la_SOURCES = libtcl8.c
libswigtcl8_la_LDFLAGS = -no-undefined $(RELEASE_SUFFIX_LIBTOOL) $(TCL_DLNK)
libswigtcl8_la_CFLAGS = -DSWIG_GLOBAL $(TCL_INCLUDE)
libtcl8.c: $(SWIG_TYPECHECK) $(TCL_RUNTIME)
cat $(SWIG_TYPECHECK) $(TCL_RUNTIME) > libtcl8.c
libtcl8.c: $(TCL_PRECOMMON) $(SWIG_TYPECHECK) $(TCL_RUNTIME)
cat $(TCL_PRECOMMON) $(SWIG_TYPECHECK) $(TCL_RUNTIME) > libtcl8.c
# ----------------------------------------------------------------------
# Perl run-time library
@ -60,6 +61,7 @@ libtcl8.c: $(SWIG_TYPECHECK) $(TCL_RUNTIME)
PERL5_INCLUDE = -I@PERL5EXT@
PERL5_RUNTIME = $(SWIGLIB)/perl5/perlrun.swg
PERL5_PRECOMMON = $(SWIGLIB)/perl5/precommon.swg
PERL5_DLNK = @PERL5DYNAMICLINKING@
PERL5_CCFLAGS = @PERL5CCFLAGS@
@ -67,8 +69,8 @@ libswigpl_la_SOURCES = libpl.c
libswigpl_la_LDFLAGS = -no-undefined $(RELEASE_SUFFIX_LIBTOOL) $(PERL5_DLNK)
libswigpl_la_CFLAGS = -DSWIG_GLOBAL $(PERL5_INCLUDE) -Dbool=char -Dexplicit=$(PERL5_CCFLAGS)
libpl.c: $(SWIG_TYPECHECK) $(PERL5_RUNTIME)
cat $(SWIG_TYPECHECK) $(PERL5_RUNTIME) > libpl.c
libpl.c: $(PERL5_PRECOMMON) $(SWIG_TYPECHECK) $(PERL5_RUNTIME)
cat $(PERL5_PRECOMMON) $(SWIG_TYPECHECK) $(PERL5_RUNTIME) > libpl.c
# ----------------------------------------------------------------------
# Python run-time library
@ -76,14 +78,15 @@ libpl.c: $(SWIG_TYPECHECK) $(PERL5_RUNTIME)
PYTHON_INCLUDE = -DHAVE_CONFIG_H @PYINCLUDE@
PYTHON_RUNTIME = $(SWIGLIB)/python/pyrun.swg
PYTHON_PRECOMMON = $(SWIGLIB)/python/precommon.swg
PYTHON_DLNK = @PYTHONDYNAMICLINKING@
libswigpy_la_SOURCES = libpy.c
libswigpy_la_LDFLAGS = -no-undefined $(RELEASE_SUFFIX_LIBTOOL) $(PYTHON_DLNK)
libswigpy_la_CFLAGS = -DSWIG_GLOBAL $(PYTHON_INCLUDE)
libpy.c: $(SWIG_TYPECHECK) $(PYTHON_RUNTIME)
cat $(SWIG_TYPECHECK) $(PYTHON_RUNTIME) > libpy.c
libpy.c: $(PYTHON_PRECOMMON) $(SWIG_TYPECHECK) $(PYTHON_RUNTIME)
cat $(PYTHON_PRECOMMON) $(SWIG_TYPECHECK) $(PYTHON_RUNTIME) > libpy.c
# ----------------------------------------------------------------------
# Guile run-time library
@ -115,6 +118,7 @@ libguile_scm.c: $(GUILE_SCM_PRECOMMON) $(SWIG_TYPECHECK) $(GUILE_SCM_RUNTIME)
RUBY_INCLUDE = @RUBYINCLUDE@
RUBY_RUNTIME = $(SWIGLIB)/ruby/rubyhead.swg $(SWIGLIB)/ruby/rubydef.swg
RUBY_PRECOMMON = $(SWIGLIB)/ruby/precommon.swg
RUBY_DLNK = @RUBYDYNAMICLINKING@
RUBY_CFLAGS = @RUBYCCDLFLAGS@ -DHAVE_CONFIG_H
@ -122,8 +126,8 @@ libswigrb_la_SOURCES = librb.c
libswigrb_la_LDFLAGS = -no-undefined $(RELEASE_SUFFIX_LIBTOOL) $(RUBY_DLNK)
libswigrb_la_CFLAGS = -DSWIG_GLOBAL $(RUBY_INCLUDE) $(RUBY_CFLAGS)
librb.c: $(SWIG_TYPECHECK) $(RUBY_RUNTIME)
cat $(SWIG_TYPECHECK) $(RUBY_RUNTIME) > librb.c
librb.c: $(RUBY_PRECOMMON) $(SWIG_TYPECHECK) $(RUBY_RUNTIME)
cat $(RUBY_PRECOMMON) $(SWIG_TYPECHECK) $(RUBY_RUNTIME) > librb.c
# ----------------------------------------------------------------------
# PHP4 run-time library
@ -131,14 +135,15 @@ librb.c: $(SWIG_TYPECHECK) $(RUBY_RUNTIME)
PHP4_INCLUDE = @PHP4INC@
PHP4_RUNTIME = $(SWIGLIB)/php4/php4run.swg
PHP4_PRECOMMON = $(SWIGLIB)/php4/precommon.swg
PHP4_DLNK =
libswigphp4_la_SOURCES = libphp4.c
libswigphp4_la_LDFLAGS = -no-undefined $(RELEASE_SUFFIX_LIBTOOL) $(PHP4_DLNK)
libswigphp4_la_CFLAGS = -DSWIG_GLOBAL $(PHP4_INCLUDE)
libphp4.c: $(SWIG_TYPECHECK) $(PHP4_RUNTIME)
cat $(SWIG_TYPECHECK) $(PHP4_RUNTIME) > libphp4.c
libphp4.c: $(PHP4_PRECOMMON) $(SWIG_TYPECHECK) $(PHP4_RUNTIME)
cat $(PHP4_PRECOMMON) $(SWIG_TYPECHECK) $(PHP4_RUNTIME) > libphp4.c
# ----------------------------------------------------------------------
# Pike run-time library
@ -146,14 +151,15 @@ libphp4.c: $(SWIG_TYPECHECK) $(PHP4_RUNTIME)
PIKE_INCLUDE = -DHAVE_CONFIG_H @PIKEINCLUDE@
PIKE_RUNTIME = $(SWIGLIB)/pike/pikerun.swg
PIKE_PRECOMMON = $(SWIGLIB)/pike/precommon.swg
PIKE_DLNK =
libswigpike_la_SOURCES = libpike.c
libswigpike_la_LDFLAGS = -no-undefined $(RELEASE_SUFFIX_LIBTOOL) $(PIKE_DLNK)
libswigpike_la_CFLAGS = -DSWIG_GLOBAL $(PIKE_INCLUDE)
libpike.c: $(SWIG_TYPECHECK) $(PIKE_RUNTIME)
cat $(SWIG_TYPECHECK) $(PIKE_RUNTIME) > libpike.c
libpike.c: $(PIKE_PRECOMMON) $(SWIG_TYPECHECK) $(PIKE_RUNTIME)
cat $(PIKE_PRECOMMON) $(SWIG_TYPECHECK) $(PIKE_RUNTIME) > libpike.c
# ----------------------------------------------------------------------
# CHICKEN run-time library