[mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ make -f makefile.hellolib-swig force rm -f *.o *.so core hellolib_wrap.c hellolib_wrap.doc [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ ls Shadow hellolib.i makefile.hellolib-swig myswig output setup-swig.csh [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ make -f makefile.hellolib-swig ./myswig -python -I../HelloLib hellolib.i Generating wrappers for Python gcc hellolib_wrap.c -c -g -I../HelloLib -I/home/mark/python1.5.2-ddjcd/Python-1.5.2/Include -I/home/mark/python1.5.2-ddjcd/Python-1.5.2 ld -shared hellolib_wrap.o ../HelloLib/hellolib.o -o hellowrap.so [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ ls Shadow hellolib_wrap.doc makefile.hellolib-swig setup-swig.csh hellolib.i hellolib_wrap.o myswig hellolib_wrap.c hellowrap.so output [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ make -f makefile.hellolib-swig clean rm -f *.o *.so core [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ ls Shadow hellolib_wrap.c makefile.hellolib-swig output hellolib.i hellolib_wrap.doc myswig setup-swig.csh [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ make -f makefile.hellolib-swig gcc hellolib_wrap.c -c -g -I../HelloLib -I/home/mark/python1.5.2-ddjcd/Python-1.5.2/Include -I/home/mark/python1.5.2-ddjcd/Python-1.5.2 ld -shared hellolib_wrap.o ../HelloLib/hellolib.o -o hellowrap.so ------------------------------------------------------------------------------ [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ python Python 1.5.2 (#16, Oct 19 1999, 15:47:45) [GCC egcs-2.91.66 19990314/Linux (egcs- on linux2 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> >>> import hellowrap >>> hellowrap.__file__ './hellowrap.so' >>> hellowrap.message('swig world') 'Hello, swig world' >>> >>> hellowrap.message() Traceback (innermost last): File "", line 1, in ? TypeError: message requires exactly 1 argument; 0 given >>> >>> hellowrap >>> dir(hellowrap) ['__doc__', '__file__', '__name__', 'message'] >>> hellowrap.__dict__ {'__file__': './hellowrap.so', '__doc__': None, 'message': , '__name__': 'hellowrap'} ------------------------------------------------------------------------------- [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ cp ../HelloLib/hellolib.* . [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ ls hellolib.c hellolib.h makefile.hellolib-swig output setup-swig.csh [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ source setup-swig.csh [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ swig -module hellowrap -python hellolib.h Generating wrappers for Python [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ ls hellolib.c hellolib_wrap.c makefile.hellolib-swig setup-swig.csh hellolib.h hellolib_wrap.doc output [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ rm hellolib.c hellolib.h ------------------------------------------------------------------------------- [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ swig -python hellolib.i Generating wrappers for Python [mark@toy ~/PP2ndEd/dev/examples/Part3/Extend/Swig]$ diff hellolib_wrap.c hellolib_wrap.c-save 555,556d554 < < #include /* * FILE : hellolib_wrap.c * * This file was automatically generated by : * Simplified Wrapper and Interface Generator (SWIG) * Version 1.1 (Patch 5) * . . . boiler-plate code for handling C global var access using Python types with attributes, and mapping C pointers to Python strings . . . #include extern char *message(char *); static PyObject *_wrap_message(PyObject *self, PyObject *args) { PyObject * _resultobj; char * _result; char * _arg0; self = self; if(!PyArg_ParseTuple(args,"s:message",&_arg0)) return NULL; _result = (char *)message(_arg0); _resultobj = Py_BuildValue("s", _result); return _resultobj; } static PyMethodDef hellowrapMethods[] = { { "message", _wrap_message, 1 }, { NULL, NULL } }; static PyObject *SWIG_globals; #ifdef __cplusplus extern "C" #endif SWIGEXPORT(void,inithellowrap)() { PyObject *m, *d; SWIG_globals = SWIG_newvarlink(); m = Py_InitModule("hellowrap", hellowrapMethods); . . . -------------------------------------------------------------------------------