diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/Makefile.am gnuradio-core-2.5cvsmingw/Makefile.am --- gnuradio-core-2.5cvs/Makefile.am Sun Oct 17 21:01:56 2004 +++ gnuradio-core-2.5cvsmingw/Makefile.am Thu May 19 14:29:26 2005 @@ -21,8 +21,8 @@ include $(top_srcdir)/Makefile.common -EXTRA_DIST = bootstrap configure config.h.in .buildpri gnuradio-core.pc.in README.hacking -SUBDIRS = config src doc +EXTRA_DIST = bootstrap configure config.h.in .buildpri gnuradio-core.pc.in README.hacking README.mingw +SUBDIRS = config src doc mingw pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = gnuradio-core.pc diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/README.mingw gnuradio-core-2.5cvsmingw/README.mingw --- gnuradio-core-2.5cvs/README.mingw Thu Jan 1 01:00:00 1970 +++ gnuradio-core-2.5cvsmingw/README.mingw Thu May 19 16:17:32 2005 @@ -0,0 +1,118 @@ +hacks to make it build on mingw: +install msys +install mingw +install updates to mingw/msys +install standard win32 python in a path without spaces +install standard win32 swig in a path without spaces +optionally install standard wxpython (for a reduced wxgui experience with my ptched wxgui for mingw) +build and install cppunit +unpack boost (I am not sure if you have to build it, I did, takes a while) in a path without spaces + +make sure there are no cygwin executables in your path +make sure swig and python are in your path +make sure all dlls (of python, swig, ...) are on your path + +your path during should be something like: +$ echo $PATH +.:/usr/local/bin:/mingw/bin:/bin:/c/Python24/DLLs:/c/Python24/libs:/mingw/fftw/bin:/c/Python24:/c/SWIG-1.3.24:/c/WINNT/system32:/c/WINNT:/c/WINNT/System32/Wbem:.:/c/Program Files/NVIDIA Corporation/Cg/bin + +use --with-md-cpu=generic: +the optimized fir code doesn't compile on my mingw/gcc setup so use the generic code. Maybe you are lucky or know how to fix this, please let me know. +Use configure like this: +if you have a recent libtool (>= 1.5.18) +./configure --enable-shared --disable-static --with-md-cpu=generic --with-cppunit-prefix=/mingw/cppunit --with-boost-include-dir=/c/boost_1_32_0/include/boost-1_32 PKG_CONFIG_PATH=/mingw/fftw/lib/pkgconfig PYTHON=/c/Python24/python am_cv_python_pythondir=/c/Python24/Lib/site-packages am_cv_python_pyexecdir=/c/Python24/Lib/site-packages 2>&1 | tee configure.log + +If you have the standard libtool of msys: +CONFIG_SITE=./mingw/mingw-config.site ./configure --enable-shared --disable-stat +ic --with-md-cpu=generic --with-cppunit-prefix=/mingw/cppunit --with-boost-include +-dir=/c/boost_1_32_0/include/boost-1_32 PKG_CONFIG_PATH=/mingw/fftw/lib/pkgconf +ig PYTHON=/c/Python24/python am_cv_python_pythondir=/c/Python24/Lib/site-packag +es am_cv_python_pyexecdir=/c/Python24/Lib/site-packages CONFIG_SITE=./mingw/mingw-config.site 2>&1 | tee configure.log + +patch ./libtool (after running configure) using ./mingw/libtool_shrext_cmds.patch +or edit the generated libtool + add shrext_cmds='.dll' right after shrext='.dll' + +problems: +build stops with "cannot rename lib_xxxx.a, file exists" +d:\mingw\bin\ar.exe: unable to rename '.libs/libgeneral.a' reason: File exists +restart build and it just continues, I have no idea why this happens + + +build stops because it cannot find ../../../src/lib/runtime\\runtime.i + +in file src/lib/swig/gnuradio_swig_python.d: +replace all \\ by / +(This should now be handles by the make using a sed script) + + Warning: This system can not link to static lib archive ../../../src/lib/libgnuradio-core.la. +*** I have the capability to make that library automatically link in when +*** you link to this library. But I can only do this if you have a +*** shared version of the library, which you do not appear to have. +*** But as you try to build a module library, libtool will still create +*** a static module, that should work as long as the dlopening application +*** is linked with the -dlopen flag to resolve symbols at runtime. +ar cru .libs/_gnuradio_swig_python.a .libs/gnuradio_swig_python.o +ranlib .libs/_gnuradio_swig_python.a +creating _gnuradio_swig_python.la +(cd .libs && rm -f _gnuradio_swig_python.la && ln -s ../_gnuradio_swig_python.la _gnuradio_swig_python.la) +./gen-swig-bug-fix gnuradio_swig_python.cc gnuradio_swig_bug_workaround.h +make[5]: Leaving directory `/n/tmp/mingw/mdvhfiles/test/src/lib/swig' +make[4]: Leaving directory `/n/tmp/mingw/mdvhfiles/test/src/lib/swig' +make[3]: Leaving directory `/n/tmp/mingw/mdvhfiles/test/src/lib' + mv -f ".deps/benchmark_dotprod_ccc.Tpo" ".deps/benchmark_dotprod_ccc.Po"; else rm -f ".deps/benchmark_dotprod_ccc.Tpo"; e + +use CONFIG_SITE=./mingw/mingw-config.site when configuring +in this file the lt_cv_file_magic_cmd is overridden to use objdump -f in stead of the win32_libid ltmain shellscript which needs the file command which standard msys lacks +In more recent libtool (libtool 1.5.18) this is already taken care of in /usr/share/aclocal/libtool.m4 +snippet of recent libtool.m4: +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump'. + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + + +build makes .exe in stead of .dll +patch ./libtool (after running configure) using ./mingw/libtool_shrext_cmds.patch +or edit the generated libtool + add shrext_cmds='.dll' right after shrext='.dll' +(This is also not needed with recent libtool) + +# Shared library suffix (normally ".so"). +shrext='.dll' +shrext_cmds='.dll' + +./libtool is regenerated every time you run configure, so you have to patch again if you reconfigure + +make complains that you need absolute pathnames (for rpath): +run configure with unix style paths for PYTHON,am_cv_python_pythondir,am_cv_python_pyexecdir,--with-cppunit-prefix=,--with-boost-include-dir= + +If the configure script finds these paths for itsself it uses c:/path/to/something style pathnames. +Libtool should be able to recognise these as absolute pathnames but for some reason it doesn't +So you have to override them all with /c/path/to/something style pathnames +examples: +CONFIG_SITE=./mingw/mingw-config.site ./configure --enable-shared --disable-stat +ic --with-md-cpu=generic --with-cppunit-prefix=/mingw/cppunit --with-boost-include +-dir=/c/boost_1_32_0/include/boost-1_32 PKG_CONFIG_PATH=/mingw/fftw/lib/pkgconf +ig PYTHON=/c/Python24/python am_cv_python_pythondir=/c/Python24/Lib/site-packag +es am_cv_python_pyexecdir=/c/Python24/Lib/site-packages CONFIG_SITE=./mingw/mingw-config.site 2>&1 | tee configure.log + + + + CONFIG_SITE=./config_gnuradio.site ./configure --enable-shared --disable-stat +ic --with-md-cpu=generic --with-cppunit-prefix=/mingw/gtk2 --with-boost-include +-dir=/d/boost_1_32_0/include/boost-1_32 PKG_CONFIG_PATH=/mingw/gtk2/lib/pkgconf +ig PYTHON=/d/Python24/python am_cv_python_pythondir=/d/Python24/Lib/site-packag +es am_cv_python_pyexecdir=/d/Python24/Lib/site-packages CONFIG_SITE=./config_gn +uradio.site 2>&1 | tee configure6.log + + CONFIG_SITE=./mingw/mingw-config.site ./configure --enable-shared --disable-stat +ic --with-md-cpu=generic --with-cppunit-prefix=/mingw/gtk2 --with-boost-include +-dir=/d/boost_1_32_0/include/boost-1_32 PKG_CONFIG_PATH=/mingw/gtk2/lib/pkgconf +ig PYTHON=/d/Python24/python am_cv_python_pythondir=/d/Python24/Lib/site-packag +es am_cv_python_pyexecdir=/d/Python24/Lib/site-packages CONFIG_SITE=./mingw/mingw-config.site 2>&1 | tee configure7.log + + + +./configure --enable-maintainer-mode --enable-shared --disable-static --with-md-cpu=generic --with-cppunit-prefix=/mingw/gtk2 --with-boost-include-dir=/d/boost_1_32_0/include/boost-1_32 PKG_CONFIG_PATH=/mingw/gtk2/lib/pkgconfig PYTHON=/d/Python24/python am_cv_python_pythondir=/d/Python24/Lib/site-packages am_cv_python_pyexecdir=/d/Python24/Lib/site-packages 2>&1 | tee configure7.log diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/config/gr_check_createfilemapping.m4 gnuradio-core-2.5cvsmingw/config/gr_check_createfilemapping.m4 --- gnuradio-core-2.5cvs/config/gr_check_createfilemapping.m4 Thu Jan 1 01:00:00 1970 +++ gnuradio-core-2.5cvsmingw/config/gr_check_createfilemapping.m4 Wed May 18 18:45:30 2005 @@ -0,0 +1,54 @@ +dnl +dnl Copyright 2003 Free Software Foundation, Inc. +dnl +dnl This file is part of GNU Radio +dnl +dnl GNU Radio is free software; you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation; either version 2, or (at your option) +dnl any later version. +dnl +dnl GNU Radio is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with GNU Radio; see the file COPYING. If not, write to +dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +dnl Boston, MA 02111-1307, USA. + +dnl AC_DEFUN([GR_CHECK_CREATEFILEMAPPING], +dnl [ +dnl AC_CHECK_FUNCS([CreateFileMapping]) +dnl ]) + +AC_DEFUN([GR_CHECK_CREATEFILEMAPPING],[ + AC_MSG_CHECKING([for CreateFileMapping function]) + AC_COMPILE_IFELSE([ +#include +#include +#include +int main (int argc, char **argv) +{ + HANDLE handle; + int size; + char seg_name[[1024]]; + handle = CreateFileMapping( + INVALID_HANDLE_VALUE, // use paging file + NULL, // default security + PAGE_READWRITE, // read/write access + 0, // max. object size + size, // buffer size + seg_name); // name of mapping object + return 0; +} +],[HAVE_CREATEFILEMAPPING=yes + AC_DEFINE(HAVE_CREATEFILEMAPPING,[1],[Define if you have the CreateFilemapping function(win32).])], + [HAVE_CREATEFILEMAPPING=no]) + + AC_MSG_RESULT($HAVE_CREATEFILEMAPPING) + AM_CONDITIONAL(HAVE_CREATEFILEMAPPING, test x$HAVE_CREATEFILEMAPPING = xyes) +]) + + diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/config/gr_libgnuradio_core_extra_ldflags.m4 gnuradio-core-2.5cvsmingw/config/gr_libgnuradio_core_extra_ldflags.m4 --- gnuradio-core-2.5cvs/config/gr_libgnuradio_core_extra_ldflags.m4 Thu Jan 1 01:00:00 1970 +++ gnuradio-core-2.5cvsmingw/config/gr_libgnuradio_core_extra_ldflags.m4 Wed May 18 16:14:50 2005 @@ -0,0 +1,16 @@ +dnl +AC_DEFUN([GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +# on Mingw32 extra LDFLAGS are required +LIBGNURADIO_CORE_EXTRA_LDFLAGS="" +case "${host_os}" in + *mingw*) + + # on Mingw32 extra LDFLAGS are required + LIBGNURADIO_CORE_EXTRA_LDFLAGS=\"-Wl,--enable-runtime-pseudo-reloc\" + ;; +esac + +AC_SUBST(LIBGNURADIO_CORE_EXTRA_LDFLAGS) + +]) diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/config/gr_python.m4 gnuradio-core-2.5cvsmingw/config/gr_python.m4 --- gnuradio-core-2.5cvs/config/gr_python.m4 Sun May 1 22:32:12 2005 +++ gnuradio-core-2.5cvsmingw/config/gr_python.m4 Wed May 18 17:01:24 2005 @@ -32,8 +32,10 @@ AC_MSG_ERROR([cannot find Python path]) fi - python_path=${PYTHON%/bin*} - for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/python/" "$python_path/" ; do + python_path=`echo $PYTHON | sed "s,/python[[^/]]*$,,;s,/bin.*$,,"` + AC_MSG_WARN([$python_path]) + AC_MSG_WARN([$PYTHON]) + for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/" "$python_path/include/python/" "$python_path/" ; do python_path=`find $i -type f -name Python.h -print` if test -n "$python_path" ; then break @@ -59,20 +61,27 @@ # Check for Python library path AC_MSG_CHECKING([for Python library path]) - python_path=`echo $PYTHON | sed "s,/bin.*$,,"` + python_path=`echo $PYTHON | sed "s,/python[[^/]]*$,,;s,/bin.*$,,"` + python_version_nodot=`echo $PYTHON_VERSION | sed "s,\.,,"` for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" "$python_path/libs" ; do python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"` if test -n "$python_path" ; then + libpython_name="python$PYTHON_VERSION" + break + fi + python_path=`find $i -type f -name libpython$python_version_nodot.* -print | sed "1q"` + if test -n "$python_path" ; then + libpython_name="python$python_version_nodot" break fi done python_path=`echo $python_path | sed "s,/libpython.*$,,"` if test -z "$python_path" ; then - AC_MSG_ERROR([cannot find Python library path]) + AC_MSG_WARN(cannot find Python library path) fi AC_MSG_RESULT([$python_path]) - AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"]) + AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -l$libpython_name"]) # python_site=`echo $python_path | sed "s/config/site-packages/"` AC_SUBST([PYTHON_SITE_PKG],[$python_site]) @@ -80,10 +89,16 @@ # libraries which must be linked in when embedding # AC_MSG_CHECKING(python extra libraries) - PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ + PYTHON_EXTRA_LIBS_LOCALMODLIBS=`$PYTHON -c "import distutils.sysconfig; \ + conf = distutils.sysconfig.get_config_var; \ + print conf('LOCALMODLIBS')"` + PYTHON_EXTRA_LIBS_LIBS=`$PYTHON -c "import distutils.sysconfig; \ conf = distutils.sysconfig.get_config_var; \ - print conf('LOCALMODLIBS')+' '+conf('LIBS')" - AC_MSG_RESULT($PYTHON_EXTRA_LIBS)` + print conf('LIBS')"` + if test "X$PYTHON_EXTRA_LIBS_LOCALMODLIBS" = XNone; then PYTHON_EXTRA_LIBS_LOCALMODLIBS=""; fi + if test "X$PYTHON_EXTRA_LIBS_LIBS" = XNone; then PYTHON_EXTRA_LIBS_LIBS=""; fi + PYTHON_EXTRA_LIBS="$PYTHON_EXTRA_LIBS_LOCALMODLIBS $PYTHON_EXTRA_LIBS_LIBS" + AC_MSG_RESULT($PYTHON_EXTRA_LIBS) AC_SUBST(PYTHON_EXTRA_LIBS) @@ -96,7 +111,8 @@ AC_MSG_CHECKING(Python headers and library usability) AC_TRY_LINK([ #include ], [ PyArg_Parse(NULL, NULL); ], [AC_MSG_RESULT(yes)], - [AC_MSG_ERROR(no)]) + [AC_MSG_WARN(no dev lib, crossing fingers) + AC_SUBST([PYTHON_LDFLAGS],[""])]) CPPFLAGS="$python_save_CPPFLAGS" LIBS="$python_save_LIBS" diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/configure.ac gnuradio-core-2.5cvsmingw/configure.ac --- gnuradio-core-2.5cvs/configure.ac Thu Mar 31 09:18:42 2005 +++ gnuradio-core-2.5cvsmingw/configure.ac Thu May 19 16:12:10 2005 @@ -23,7 +23,7 @@ AC_CONFIG_SRCDIR([src/lib/runtime/gr_vmcircbuf.cc]) AM_CONFIG_HEADER(config.h) AC_CANONICAL_TARGET([]) -AM_INIT_AUTOMAKE(gnuradio-core,2.5cvs) +AM_INIT_AUTOMAKE(gnuradio-core,2.5cvsmingw) dnl disable maintainer rules: e.g., rebuilding configure, makefile.in's unless dnl user explicitly specifies --enable-maintainer-mode @@ -114,6 +114,8 @@ ]) GR_CHECK_SHM_OPEN +GR_LIBGNURADIO_CORE_EXTRA_LDFLAGS +GR_CHECK_CREATEFILEMAPPING dnl Check for Mingw support GR_PWIN32 @@ -156,6 +158,7 @@ Makefile \ gnuradio-core.pc \ config/Makefile \ + mingw/Makefile \ doc/Doxyfile \ doc/Makefile \ doc/other/Makefile \ @@ -190,6 +193,8 @@ dnl kludge up initial swig dependency file AC_CONFIG_COMMANDS([swig_deps], [rm -f src/lib/swig/gnuradio_swig_python.d; - touch src/lib/swig/gnuradio_swig_python.d]) + rm -f src/lib/swig/gnuradio_swig_python.d1; + touch src/lib/swig/gnuradio_swig_python.d; + touch src/lib/swig/gnuradio_swig_python.d1;]) AC_OUTPUT diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/mingw/Makefile.am gnuradio-core-2.5cvsmingw/mingw/Makefile.am --- gnuradio-core-2.5cvs/mingw/Makefile.am Thu Jan 1 01:00:00 1970 +++ gnuradio-core-2.5cvsmingw/mingw/Makefile.am Thu May 19 15:55:40 2005 @@ -0,0 +1,25 @@ +# +# Copyright 2001 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# + +include $(top_srcdir)/Makefile.common + +EXTRA_DIST = mingw-config.site libtool_shrext_cmds.patch convert_pathnames_of_gnuradio_swig_python.d.sh + diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/mingw/convert_pathnames_of_gnuradio_swig_python.d.sh gnuradio-core-2.5cvsmingw/mingw/convert_pathnames_of_gnuradio_swig_python.d.sh --- gnuradio-core-2.5cvs/mingw/convert_pathnames_of_gnuradio_swig_python.d.sh Thu Jan 1 01:00:00 1970 +++ gnuradio-core-2.5cvsmingw/mingw/convert_pathnames_of_gnuradio_swig_python.d.sh Thu May 19 15:55:16 2005 @@ -0,0 +1,3 @@ +#! /bin/sh +cp src/lib/swig/gnuradio_swig_python.d src/lib/swig/gnuradio_swig_python.d1 +cat gnuradio_swig_python.d1 | sed 's,\\\\,/,g' >src/lib/swig/gnuradio_swig_python.d diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/mingw/libtool_shrext_cmds.patch gnuradio-core-2.5cvsmingw/mingw/libtool_shrext_cmds.patch --- gnuradio-core-2.5cvs/mingw/libtool_shrext_cmds.patch Thu Jan 1 01:00:00 1970 +++ gnuradio-core-2.5cvsmingw/mingw/libtool_shrext_cmds.patch Thu May 19 14:40:20 2005 @@ -0,0 +1,22 @@ +--- libtool.orig Thu May 19 14:36:30 2005 ++++ libtool Thu May 19 04:05:26 2005 +@@ -123,17 +123,18 @@ + + # Object file suffix (normally "o"). + objext="o" + + # Old archive suffix (normally "a"). + libext="a" + + # Shared library suffix (normally ".so"). +-shrext='.dll' ++shrext='.dll' ++shrext_cmds='.dll' + + # Executable file suffix (normally ""). + exeext="" + + # Additional compiler flags for building library objects. + pic_flag=" -DDLL_EXPORT -DPIC" + pic_mode=default + diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/mingw/mingw-config.site gnuradio-core-2.5cvsmingw/mingw/mingw-config.site --- gnuradio-core-2.5cvs/mingw/mingw-config.site Thu Jan 1 01:00:00 1970 +++ gnuradio-core-2.5cvsmingw/mingw/mingw-config.site Thu May 19 01:51:14 2005 @@ -0,0 +1,2 @@ +lt_cv_deplibs_check_method=${lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'} +lt_cv_file_magic_cmd=${lt_cv_file_magic_cmd='$OBJDUMP -f'} diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/Makefile.am gnuradio-core-2.5cvsmingw/src/lib/Makefile.am --- gnuradio-core-2.5cvs/src/lib/Makefile.am Sun May 1 23:27:02 2005 +++ gnuradio-core-2.5cvsmingw/src/lib/Makefile.am Fri May 6 00:13:38 2005 @@ -33,8 +33,8 @@ libgnuradio_core_la_SOURCES = bug_work_around_6.cc # only on mingw32 -#libgnuradio_core_la_LDFLAGS = "-Wl,--enable-runtime-pseudo-reloc" -no-undefined -version-info 0:0:0 -libgnuradio_core_la_LDFLAGS = -no-undefined -version-info 0:0:0 +libgnuradio_core_la_LDFLAGS = "-Wl,--enable-runtime-pseudo-reloc" -no-undefined -version-info 0:0:0 +#libgnuradio_core_la_LDFLAGS = -no-undefined -version-info 0:0:0 FIXME = \ atsc/libatsc.la diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/io/gr_file_sink.cc gnuradio-core-2.5cvsmingw/src/lib/io/gr_file_sink.cc --- gnuradio-core-2.5cvs/src/lib/io/gr_file_sink.cc Mon Jul 5 00:07:22 2004 +++ gnuradio-core-2.5cvsmingw/src/lib/io/gr_file_sink.cc Wed May 18 18:58:14 2005 @@ -32,6 +32,16 @@ #include #include +// win32 (mingw/msvc) specific +#ifdef HAVE_IO_H +#include +#endif +#ifdef O_BINARY +#define OUR_O_BINARY O_BINARY +#else +#define OUR_O_BINARY 0 +#endif + // should be handled via configure #ifdef O_LARGEFILE #define OUR_O_LARGEFILE O_LARGEFILE @@ -49,7 +59,7 @@ int fd; if ((fd = open (filename, - O_WRONLY | O_CREAT | O_TRUNC | OUR_O_LARGEFILE, 0664)) < 0){ + O_WRONLY | O_CREAT | O_TRUNC | OUR_O_LARGEFILE | OUR_O_BINARY, 0664)) < 0){ perror (filename); throw std::runtime_error ("can't open file"); } diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/io/gr_file_source.cc gnuradio-core-2.5cvsmingw/src/lib/io/gr_file_source.cc --- gnuradio-core-2.5cvs/src/lib/io/gr_file_source.cc Mon Feb 7 22:46:54 2005 +++ gnuradio-core-2.5cvsmingw/src/lib/io/gr_file_source.cc Wed May 18 19:33:18 2005 @@ -32,6 +32,15 @@ #include #include +// win32 (mingw/msvc) specific +#ifdef HAVE_IO_H +#include +#endif +#ifdef O_BINARY +#define OUR_O_BINARY O_BINARY +#else +#define OUR_O_BINARY 0 +#endif // should be handled via configure #ifdef O_LARGEFILE #define OUR_O_LARGEFILE O_LARGEFILE @@ -48,7 +57,7 @@ // we use "open" to use to the O_LARGEFILE flag int fd; - if ((fd = open (filename, O_RDONLY | OUR_O_LARGEFILE)) < 0){ + if ((fd = open (filename, O_RDONLY | OUR_O_LARGEFILE | OUR_O_BINARY)) < 0){ perror (filename); throw std::runtime_error ("can't open file"); } diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/runtime/Makefile.am gnuradio-core-2.5cvsmingw/src/lib/runtime/Makefile.am --- gnuradio-core-2.5cvs/src/lib/runtime/Makefile.am Thu Mar 31 09:18:42 2005 +++ gnuradio-core-2.5cvsmingw/src/lib/runtime/Makefile.am Wed May 18 19:54:34 2005 @@ -47,6 +47,7 @@ gr_vmcircbuf.cc \ gr_vmcircbuf_mmap_shm_open.cc \ gr_vmcircbuf_mmap_tmpfile.cc \ + gr_vmcircbuf_createfilemapping.cc \ gr_vmcircbuf_sysv_shm.cc \ gr_select_handler.cc \ qa_gr_block.cc \ @@ -81,6 +82,7 @@ gr_vmcircbuf_mmap_shm_open.h \ gr_vmcircbuf_mmap_tmpfile.h \ gr_vmcircbuf_sysv_shm.h \ + gr_vmcircbuf_createfilemapping.h \ qa_gr_block.h \ qa_gr_buffer.h \ qa_gr_io_signature.h \ diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/runtime/gr_vmcircbuf.cc gnuradio-core-2.5cvsmingw/src/lib/runtime/gr_vmcircbuf.cc --- gnuradio-core-2.5cvs/src/lib/runtime/gr_vmcircbuf.cc Sun Jan 23 16:06:42 2005 +++ gnuradio-core-2.5cvsmingw/src/lib/runtime/gr_vmcircbuf.cc Thu May 19 04:37:34 2005 @@ -31,6 +31,7 @@ #include // all the factories we know about +#include #include #include #include @@ -97,6 +98,7 @@ { std::vector result; + result.push_back (gr_vmcircbuf_createfilemapping_factory::singleton ()); result.push_back (gr_vmcircbuf_sysv_shm_factory::singleton ()); result.push_back (gr_vmcircbuf_mmap_shm_open_factory::singleton ()); result.push_back (gr_vmcircbuf_mmap_tmpfile_factory::singleton ()); diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/runtime/gr_vmcircbuf.h gnuradio-core-2.5cvsmingw/src/lib/runtime/gr_vmcircbuf.h --- gnuradio-core-2.5cvs/src/lib/runtime/gr_vmcircbuf.h Sat Apr 10 20:00:56 2004 +++ gnuradio-core-2.5cvsmingw/src/lib/runtime/gr_vmcircbuf.h Wed May 18 19:29:10 2005 @@ -32,16 +32,16 @@ protected: int d_size; char *d_base; - + char *d_second;//needed for win32 // CREATORS - gr_vmcircbuf (int size) : d_size (size), d_base (0) {}; + gr_vmcircbuf (int size) : d_size (size), d_base (0),d_second(0) {}; public: virtual ~gr_vmcircbuf (); // ACCESSORS void *pointer_to_first_copy () const { return d_base; } - void *pointer_to_second_copy () const { return d_base + d_size; } + void *pointer_to_second_copy () const { if(d_second) return d_second; else return d_base + d_size;} }; /*! diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/runtime/gr_vmcircbuf_createfilemapping.cc gnuradio-core-2.5cvsmingw/src/lib/runtime/gr_vmcircbuf_createfilemapping.cc --- gnuradio-core-2.5cvs/src/lib/runtime/gr_vmcircbuf_createfilemapping.cc Thu Jan 1 01:00:00 1970 +++ gnuradio-core-2.5cvsmingw/src/lib/runtime/gr_vmcircbuf_createfilemapping.cc Wed May 18 19:53:06 2005 @@ -0,0 +1,162 @@ +/* -*- c++ -*- */ +/* + * Copyright 2003 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * GNU Radio is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * GNU Radio is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include +#include +#include +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_MMAN_H +#include +#endif +#include +#include +#include +#include + + +static int s_seg_counter = 0; + +gr_vmcircbuf_createfilemapping::gr_vmcircbuf_createfilemapping (int size) + : gr_vmcircbuf (size) +{ +#if !defined(HAVE_CREATEFILEMAPPING) + fprintf (stderr, "%s: createfilemapping is not available\n",__FUNCTION__); + throw std::runtime_error ("gr_vmcircbuf_createfilemapping"); +#else + if (size <= 0 || (size % gr_pagesize ()) != 0){ + fprintf (stderr, "gr_vmcircbuf_createfilemapping: invalid size = %d\n", size); + throw std::runtime_error ("gr_vmcircbuf_createfilemapping"); + } + char seg_name[1024]; + snprintf (seg_name, sizeof (seg_name), + "/gnuradio-%d-%d", getpid (), s_seg_counter); + d_handle = CreateFileMapping( + INVALID_HANDLE_VALUE, // use paging file + NULL, // default security + PAGE_READWRITE, // read/write access + 0, // max. object size + size, // buffer size + seg_name); // name of mapping object + + s_seg_counter++; + if (d_handle == NULL || d_handle == INVALID_HANDLE_VALUE){ + + char msg[1024]; + snprintf (msg, sizeof (msg), "gr_vmcircbuf_mmap_createfilemapping: CreateFileMapping [%s] :%d", seg_name,GetLastError()); + perror (msg); + throw std::runtime_error ("gr_vmcircbuf_mmap_createfilemapping"); + } + first_copy = MapViewOfFile((HANDLE)d_handle, // handle to map object + FILE_MAP_ALL_ACCESS, // read/write permission + 0, + 0, + size); + if (first_copy == NULL){ + CloseHandle(d_handle); // cleanup + char msg[1024]; + snprintf (msg, sizeof (msg), "gr_vmcircbuf_mmap_createfilemapping: mmap (1) :%d", GetLastError()); + perror (msg); + throw std::runtime_error ("gr_vmcircbuf_mmap_createfilemapping"); + } + second_copy = MapViewOfFile((HANDLE)d_handle, // handle to map object + FILE_MAP_ALL_ACCESS, // read/write permission + 0, + 0, + size); + if (second_copy == NULL){ + CloseHandle(d_handle); // cleanup + char msg[1024]; + snprintf (msg, sizeof (msg), "gr_vmcircbuf_mmap_createfilemapping: mmap (2) :%d", GetLastError()); + perror (msg); + throw std::runtime_error ("gr_vmcircbuf_mmap_createfilemapping"); + } +// CloseHandle(d_handle); // is d_handle still needed ? Is the mapping is retained? + + // Now remember the important stuff + + d_base = (char *) first_copy; + d_second =(char *) second_copy; + d_size = size; +#endif /*HAVE_CREATEFILEMAPPING*/ +} + +gr_vmcircbuf_createfilemapping::~gr_vmcircbuf_createfilemapping () +{ + +#ifdef HAVE_CREATEFILEMAPPING +if (UnmapViewOfFile(first_copy) == 0){ + perror ("gr_vmcircbuf_createfilemapping: UnmapViewOfFile(first_copy)"); + } + d_base=NULL; +if (UnmapViewOfFile(second_copy) == 0){ + perror ("gr_vmcircbuf_createfilemapping: UnmapViewOfFile(second_copy)"); + } + d_second=NULL; + CloseHandle(d_handle); +#endif + +} + +// ---------------------------------------------------------------- +// The factory interface +// ---------------------------------------------------------------- + + +gr_vmcircbuf_factory *gr_vmcircbuf_createfilemapping_factory::s_the_factory = 0; + +gr_vmcircbuf_factory * +gr_vmcircbuf_createfilemapping_factory::singleton () +{ + if (s_the_factory) + return s_the_factory; + + s_the_factory = new gr_vmcircbuf_createfilemapping_factory (); + return s_the_factory; +} + +int +gr_vmcircbuf_createfilemapping_factory::granularity () +{ + #ifdef WIN32 + return 65536; + #else + return gr_pagesize (); + #endif +} + +gr_vmcircbuf * +gr_vmcircbuf_createfilemapping_factory::make (int size) +{ + try { + return new gr_vmcircbuf_createfilemapping (size); + } + catch (...){ + return 0; + } +} diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/runtime/gr_vmcircbuf_createfilemapping.h gnuradio-core-2.5cvsmingw/src/lib/runtime/gr_vmcircbuf_createfilemapping.h --- gnuradio-core-2.5cvs/src/lib/runtime/gr_vmcircbuf_createfilemapping.h Thu Jan 1 01:00:00 1970 +++ gnuradio-core-2.5cvsmingw/src/lib/runtime/gr_vmcircbuf_createfilemapping.h Wed May 18 19:49:58 2005 @@ -0,0 +1,77 @@ +/* -*- c++ -*- */ +/* + * Copyright 2003 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * GNU Radio is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * GNU Radio is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Radio; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _GR_VMCIRCBUF_CREATEFILEMAPPING_H_ +#define _GR_VMCIRCBUF_CREATEFILEMAPPING_H_ + +#include + +#ifdef HAVE_CREATEFILEMAPPING +#include +#include +#include +#endif +/*! + * \brief concrete class to implement circular buffers with mmap and shm_open + */ +class gr_vmcircbuf_createfilemapping : public gr_vmcircbuf { + public: + + // CREATORS + + gr_vmcircbuf_createfilemapping (int size); + virtual ~gr_vmcircbuf_createfilemapping (); + #ifdef HAVE_CREATEFILEMAPPING + private: + HANDLE d_handle; + LPVOID first_copy; + LPVOID second_copy; + #endif + +}; + +/*! + * \brief concrete factory for circular buffers built using mmap and shm_open + */ +class gr_vmcircbuf_createfilemapping_factory : public gr_vmcircbuf_factory { + private: + static gr_vmcircbuf_factory *s_the_factory; + + public: + static gr_vmcircbuf_factory *singleton (); + + virtual const char *name () const { return "gr_vmcircbuf_createfilemapping_factory"; } + + /*! + * \brief return granularity of mapping, typically equal to page size + */ + virtual int granularity (); + + /*! + * \brief return a gr_vmcircbuf, or 0 if unable. + * + * Call this to create a doubly mapped circular buffer. + */ + virtual gr_vmcircbuf *make (int size); +}; + +#endif /* _GR_VMCIRCBUF_CREATEFILEMAPPING_H_ */ diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/swig/Makefile.am gnuradio-core-2.5cvsmingw/src/lib/swig/Makefile.am --- gnuradio-core-2.5cvs/src/lib/swig/Makefile.am Sun May 1 21:04:20 2005 +++ gnuradio-core-2.5cvsmingw/src/lib/swig/Makefile.am Thu May 19 15:11:34 2005 @@ -78,9 +78,12 @@ # If it works, we have accurate dependencies for our swig stuff, which is good. @am__include@ @am__quote@./gnuradio_swig_python.d@am__quote@ +#KLUDGE2 run a sed script to change all double backslashes into single forward slashes, needed for mingw using standard win32 swig and python gnuradio_swig_python.cc gnuradio_swig_python.py : gnuradio.i if $(SWIG) $(SWIGCPPPYTHONARGS) -MMD -MF "$*.Td" -module gnuradio_swig_python -o gnuradio_swig_python.cc $< ;\ - then mv -f "$*.Td" "$*.d"; else rm -f "$*.Td"; exit 1; fi + then mv -f "$*.Td" "$*.d1"; \ + cat "$*.d1" | sed 's,\\\\,/,g' >"$*.d"; \ + else rm -f "$*.Td"; exit 1; fi gnuradio_swig_bug_workaround.h : gnuradio_swig_python.cc $(srcdir)/gen-swig-bug-fix $< $@ @@ -97,3 +100,4 @@ $(BUILT_SOURCES) *~ *.pyc # DISTCLEANFILES = gnuradio_swig_python.d +# DISTCLEANFILES = gnuradio_swig_python.d1 diff -urbN --exclude-from=./.diffignore gnuradio-core-2.5cvs/src/lib/swig/gnuradio_swig_python.cc gnuradio-core-2.5cvsmingw/src/lib/swig/gnuradio_swig_python.cc --- gnuradio-core-2.5cvs/src/lib/swig/gnuradio_swig_python.cc Mon May 2 00:15:58 2005 +++ gnuradio-core-2.5cvsmingw/src/lib/swig/gnuradio_swig_python.cc Thu May 19 04:09:16 2005 @@ -1793,7 +1793,7 @@ } - /*@/usr/share/swig1.3/python/pymacros.swg,66,SWIG_define@*/ + /*@d:\\SWIG-1.3.24\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_unsigned_SS_char PyInt_FromLong /*@@*/ @@ -2867,7 +2867,7 @@ } - /*@/usr/share/swig1.3/python/pymacros.swg,66,SWIG_define@*/ + /*@d:\\SWIG-1.3.24\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_short PyInt_FromLong /*@@*/ @@ -2987,7 +2987,7 @@ #endif - /*@/usr/share/swig1.3/python/pymacros.swg,66,SWIG_define@*/ + /*@d:\\SWIG-1.3.24\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_int PyInt_FromLong /*@@*/ @@ -3151,7 +3151,7 @@ } - /*@/usr/share/swig1.3/python/pymacros.swg,66,SWIG_define@*/ + /*@d:\\SWIG-1.3.24\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_float PyFloat_FromDouble /*@@*/ @@ -3241,7 +3241,7 @@ self->push_back(x); } - /*@/usr/share/swig1.3/python/pymacros.swg,66,SWIG_define@*/ + /*@d:\\SWIG-1.3.24\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_double PyFloat_FromDouble /*@@*/ @@ -3367,7 +3367,7 @@ SWIGINTERNSHORT PyObject* - SWIG_From_std_complex_Sl_float_Sg_(/*@/usr/share/swig1.3/python/pymacros.swg,67,SWIG_cplusplus@*/ + SWIG_From_std_complex_Sl_float_Sg_(/*@d:\\SWIG-1.3.24\\Lib\\python\\pymacros.swg,67,SWIG_cplusplus@*/ const std::complex& @@ -3477,7 +3477,7 @@ #include - /*@/usr/share/swig1.3/python/pymacros.swg,66,SWIG_define@*/ + /*@d:\\SWIG-1.3.24\\Lib\\python\\pymacros.swg,66,SWIG_define@*/ #define SWIG_From_long PyInt_FromLong /*@@*/ @@ -5020,7 +5020,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -5069,7 +5069,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -5137,7 +5137,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -5185,7 +5185,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -5225,7 +5225,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -5269,7 +5269,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -5319,7 +5319,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -5954,7 +5954,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -6003,7 +6003,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -6071,7 +6071,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -6119,7 +6119,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -6159,7 +6159,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -6203,7 +6203,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -6253,7 +6253,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -6888,7 +6888,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -6937,7 +6937,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -7005,7 +7005,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -7053,7 +7053,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -7093,7 +7093,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -7137,7 +7137,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -7187,7 +7187,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -7822,7 +7822,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -7871,7 +7871,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -7939,7 +7939,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -7987,7 +7987,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -8027,7 +8027,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -8071,7 +8071,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -8121,7 +8121,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -8756,7 +8756,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -8805,7 +8805,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -8873,7 +8873,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -8921,7 +8921,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -8961,7 +8961,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -9005,7 +9005,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -9055,7 +9055,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -9690,7 +9690,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -9739,7 +9739,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -9807,7 +9807,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -9855,7 +9855,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -9895,7 +9895,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -9939,7 +9939,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -9989,7 +9989,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -10624,7 +10624,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -10673,7 +10673,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -10741,7 +10741,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -10789,7 +10789,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -10829,7 +10829,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -10873,7 +10873,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -10923,7 +10923,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -12497,7 +12497,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -12548,7 +12548,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -12616,7 +12616,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -12664,7 +12664,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -12704,7 +12704,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -12748,7 +12748,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) { @@ -12798,7 +12798,7 @@ SWIG_fail; } } - /*@/usr/share/swig1.3/exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { + /*@d:\\SWIG-1.3.24\\Lib\\exception.i,336,SWIG_CATCH_UNKNOWN@*/ catch (std::exception& e) { SWIG_exception(SWIG_SystemError, e.what() ); } catch (...) {