
This patch fixes Swilena (both Pylena and Rblena) so that it works with current versions of SWIG and GCC. (I've omitted two files, they're in the next commit.) 2006-06-30 Roland Levillain <roland@lrde.epita.fr> Revive Swilena. * expand.sh (MODULES): Generate new SWIG interfaces: swilena_basics1d.i, swilena_basics2d.i, swilena_basics3d.i. Don't add `-lswigpy' nor `-lswigrb' to LDFLAGS when linking the C++ wrappers. Add a dependency-tracking mechanism for the generated C++ wrappers. * meta/swilena_basics.i, meta/swilena_config.i: New files. * meta/Makefile.am (EXTRA_DIST): Add swilena_basics.i and swilena_config.i. * meta/swilena_arith.i, meta/swilena_conversions.i, * meta/swilena_image.i * meta/swilena_imagesize.i, meta/swilena_morpho.i, * meta/swilena_ntg.i, meta/swilena_point.i, * meta/swilena_structelt.i, meta/swilena_w_win.i: Include swilena_config.i. * meta/swilena_arith.i, meta/swilena_conversions.i, * meta/swilena_image.i, * meta/swilena_structelt.i: Include swilena_basics' SWIG interfaces for 1-, 2- and 3-dimension images, and avoid code duplication. * generate_arith_instantiations.py (write_headers) * generate_conversions_instantiations.py (write_headers) * generate_morpho_instantiations.py (write_headers): Generate an %include statement for swilena_config.i. Generate an %include statement instead of an %import for swilena_image%(dim)sd.i. * meta/swilena_exception.i (START_PROTECT, END_PROTECT): Remove these guards. * meta/swilena_ntg.i (decl_complex, decl_ntg): Turn them into a ``function'' macros with an empty argument list to pacify swig. Adjust callers. * meta/swilena_structelt.i: Don't wrap the `T(unsigned n, const coord crd[])' ctor. * meta/swilena_image.i: Include swilena_exception.i. (oln::io::internal::anything): Ask swig not to generated a default ctor for this class. * meta/swilena_arith.i: Catch up with the new naming convention w.r.t. operators. * python/tests/sanity.py: New test. * python/tests/Makefile.am (dist_noinst_DATA): Add sanity.py. * ruby/tests/sanity.rb: New test. * ruby/tests/Makefile.am (dist_noinst_DATA): Add sanity.rb. (TESTS): Set to $(dist_noinst_DATA). Index: 10.225/tools/swilena/expand.sh --- 10.225/tools/swilena/expand.sh Tue, 20 Apr 2004 18:09:05 +0200 van-vl_n (oln/s/25_expand.sh 1.17 700) +++ 10.225(w)/tools/swilena/expand.sh Fri, 30 Jun 2006 12:00:33 +0200 levill_r (oln/s/25_expand.sh 1.17 700) @@ -12,9 +12,18 @@ MODULES="$MODULES ntg" for dim in 1 2 3; do + ## C++ header inclusions for basic types. + cat >"$SWILENA/src/swilena_basics${dim}d.i" <<EOF +// -*- C++ -*- +// Warning: this file was generated by expand.sh +%include swilena_basics.i +decl_basics($dim) +EOF + ## {1d,2d,3d} families for mod in point structelt w_win imagesize image; do cat >"$SWILENA/src/swilena_$mod${dim}d.i" <<EOF +// -*- C++ -*- // Warning: this file was generated by expand.sh %module swilena_$mod${dim}d %include swilena_$mod.i @@ -79,8 +88,7 @@ INCLUDES = \$(PYTHON_CPPFLAGS) -I\$(srcdir)/../src AM_CPPFLAGS = -DOLN_EXCEPTIONS AM_CXXFLAGS = \$(CXXFLAGS_OPTIMIZE) \$(DOC_CPPFLAGS) -AM_LDFLAGS = -shared -lswigpy \$(ZLIB_LDFLAGS) - +AM_LDFLAGS = -shared \$(ZLIB_LDFLAGS) EOF } @@ -130,9 +138,31 @@ else sdir=meta fi - echo "swilena_${mod}_wrap.cxx swilena_${mod}.py: \$(srcdir)/../$sdir/swilena_${mod}.i" - echo -e "\t\$(SWIG) \$(SWIG_FLAGS) -c++ -python -I\$(srcdir)/../src -I\$(srcdir)/../meta \$(CPPFLAGS) -o swilena_${mod}_wrap.cxx \$(srcdir)/../$sdir/swilena_${mod}.i" - echo + # Rule generating a C++ (*_wrap.cc) and a Python (*.py) wrappers from a + # SWIG interface. + # + # FIXME: The generation of the Python wrapper is separated from + # the one of the C++ wrapper in this version, and that's not good. + # We should use Make's trick for multipIndex: 10.225/tools/swilena/meta/Makefile.am Index: 10.225/tools/swilena/meta/swilena_w_win.i Index: 10.225/tools/swilena/meta/swilena_structelt.i le outputs (with timestamps) + # here. + base="swilena_${mod}" + src="\$(srcdir)/../$sdir/$base.i" + dest="${base}_wrap.cxx" + cat <<EOF +$dest: $src + if \$(SWIG) \$(SWIG_FLAGS) -MD -MF \$(DEPDIR)/${base}_wrap.Tcc -c++ -python -I\$(srcdir)/../src -I\$(srcdir)/../meta \$(CPPFLAGS) -o $dest $src; \\ + then \\ + mv -f "\$(DEPDIR)/${base}_wrap.Tcc" "\$(DEPDIR)/${base}_wrap.Pcc"; \\ + else \\ + rm -f "\$(DEPDIR)/${base}_wrap.Tcc"; exit 1; \\ + fi + +@AMDEP_TRUE@@am__include@ @am__quote@./\$(DEPDIR)/${base}_wrap.Pcc@am__quote@ + +$base.py: $src + \$(MAKE) \$(AM_MAKEFLAGS) $dest + +EOF done } @@ -150,7 +180,9 @@ INCLUDES = \$(RUBY_CPPFLAGS) -I\$(srcdir)/../src AM_CPPFLAGS = -DOLN_EXCEPTIONS AM_CXXFLAGS = \$(CXXFLAGS_OPTIMIZE) \$(DOC_CPPFLAGS) -AM_LDFLAGS = -shared -lswigrb \$(ZLIB_LDFLAGS) +# FIXME: Modern versions of swig don't use libswigpy. +#AM_LDFLAGS = -shared -lswigrb \$(ZLIB_LDFLAGS) +AM_LDFLAGS = -shared \$(ZLIB_LDFLAGS) EOF } @@ -178,9 +210,31 @@ else sdir=meta fi - echo "swilena_${mod}_wrap.cxx: \$(srcdir)/../$sdir/swilena_${mod}.i" - echo -e "\t\$(SWIG) \$(SWIG_FLAGS) -c++ -ruby -I\$(srcdir)/../src -I\$(srcdir)/../meta \$(CPPFLAGS) -o swilena_${mod}_wrap.cxx \$(srcdir)/../$sdir/swilena_${mod}.i" - echo + # Rule generating a C++ (*_wrap.cc) and a Ruby (*.rb) wrappers from a + # SWIG interface. + # + # FIXME: The generation of the Ruby wrapper is separated from + # the one of the C++ wrapper in this version, and that's not good. + # We should use Make's trick for multiple outputs (with timestamps) + # here. + base="swilena_${mod}" + src="\$(srcdir)/../$sdir/$base.i" + dest="${base}_wrap.cxx" + cat <<EOF +$dest: $src + if \$(SWIG) \$(SWIG_FLAGS) -MD -MF \$(DEPDIR)/${base}_wrap.Tcc -c++ -ruby -I\$(srcdir)/../src -I\$(srcdir)/../meta \$(CPPFLAGS) -o $dest $src; \\ + then \\ + mv -f "\$(DEPDIR)/${base}_wrap.Tcc" "\$(DEPDIR)/${base}_wrap.Pcc"; \\ + else \\ + rm -f "\$(DEPDIR)/${base}_wrap.Tcc"; exit 1; \\ + fi + +@AMDEP_TRUE@@am__include@ @am__quote@./\$(DEPDIR)/${base}_wrap.Pcc@am__quote@ + +$base.rb: $src + \$(MAKE) \$(AM_MAKEFLAGS) $dest + +EOF done } --- 10.225/tools/swilena/meta/Makefile.am Thu, 15 Apr 2004 15:40:44 +0200 van-vl_n (oln/s/26_Makefile.a 1.4 600) +++ 10.225(w)/tools/swilena/meta/Makefile.am Wed, 28 Jun 2006 15:26:35 +0200 levill_r (oln/s/26_Makefile.a 1.4 600) @@ -1,9 +1,8 @@ ## Process this file through Automake to produce Makefile.in -*- Makefile -*- -EXTRA_DIST = swilena_core.i swilena_decl.i swilena_describe.i \ - swilena_exception.i swilena_image.i swilena_imagesize.i \ - swilena_morpho.i swilena_arith.i swilena_conversions.i \ - swilena_ntg.i swilena_ntg_macros.i swilena_point.i \ - swilena_structelt.i \ +EXTRA_DIST = swilena_basics.i swilena_core.i swilena_config.i \ + swilena_decl.i swilena_describe.i swilena_exception.i \ + swilena_image.i swilena_imagesize.i swilena_morpho.i \ + swilena_arith.i swilena_conversions.i swilena_ntg.i \ + swilena_ntg_macros.i swilena_point.i swilena_structelt.i \ swilena_w_win.i - --- 10.225/tools/swilena/meta/swilena_w_win.i Tue, 29 Jul 2003 18:21:22 +0200 david (oln/s/27_swilena_w_ 1.2 600) +++ 10.225(w)/tools/swilena/meta/swilena_w_win.i Mon, 26 Jun 2006 17:48:30 +0200 levill_r (oln/s/27_swilena_w_ 1.2 600) @@ -1,5 +1,7 @@ // -*- C++ -*- +%include swilena_config.i + /*------------------------. | oln::w_window structure | `------------------------*/ --- 10.225/tools/swilena/meta/swilena_structelt.i Sat, 10 Apr 2004 19:36:38 +0200 van-vl_n (oln/s/28_swilena_st 1.4 600) +++ 10.225(w)/tools/swilena/meta/swilena_structelt.i Fri, 30 Jun 2006 16:45:14 +0200 levill_r (oln/s/28_swilena_st 1.4 600) @@ -1,5 +1,7 @@ // -*- C++ -*- +%include swilena_config.i + /*----------------------------------------------. | oln::window, and oln::neighborhood structures | `----------------------------------------------*/ @@ -31,8 +33,14 @@ structelt_methods(T, Dim) + // FIXME: SWIG is unable to wrap thisIndex: 10.225/tools/swilena/meta/swilena_point.i Index: 10.225/tools/swilena/meta/swilena_ntg.i Index: 10.225/tools/swilena/meta/swilena_morpho.i Index: 10.225/tools/swilena/meta/swilena_imagesize.i Index: 10.225/tools/swilena/meta/swilena_image.i Index: 10.225/tools/swilena/meta/swilena_exception.i ctor because of a strange + // invalid pointer conversion w.r.t. its second argument. Have a + // look at the SWIG manual for more details on how arrays are + // handled. +#if 0 // utility constructor T(unsigned n, const coord crd[]); +#endif // set operations %extend @@ -77,23 +85,9 @@ %include swilena_describe.i %include swilena_core.i -%import swilena_point ## Dim ## d.i +%include swilena_basics ## Dim ##d.i -#if Dim == 1 -%{ -#include <oln/basics1d.hh> -%} -#elif Dim == 2 -%{ -#include <oln/basics2d.hh> -%} -#elif Dim == 3 -%{ -#include <oln/basics3d.hh> -%} -#else -#error Unsupported dimension. -#endif +%import swilena_point ## Dim ## d.i namespace oln { --- 10.225/tools/swilena/meta/swilena_point.i Mon, 15 Sep 2003 17:23:46 +0200 burrus_n (oln/s/29_swilena_po 1.3 600) +++ 10.225(w)/tools/swilena/meta/swilena_point.i Mon, 26 Jun 2006 17:45:09 +0200 levill_r (oln/s/29_swilena_po 1.3 600) @@ -1,5 +1,7 @@ // -*- C++ -*- +%include swilena_config.i + /*--------------------------------------. | oln::point and oln::dpoint structures | `--------------------------------------*/ --- 10.225/tools/swilena/meta/swilena_ntg.i Sun, 11 Apr 2004 22:22:47 +0200 van-vl_n (oln/s/33_swilena_nt 1.9 600) +++ 10.225(w)/tools/swilena/meta/swilena_ntg.i Mon, 26 Jun 2006 18:20:22 +0200 levill_r (oln/s/33_swilena_nt 1.9 600) @@ -1,6 +1,9 @@ -%module swilena_ntg +%module swilena_ntg // -*- C++ -*- + +%include swilena_config.i %include swilena_exception.i + /***** Generic class declaration for scalars ******/ /* Predecls */ @@ -157,7 +160,7 @@ }; %enddef -%define decl_complex +%define decl_complex() template<typename repr, typename T> class cplx { @@ -186,7 +189,7 @@ %enddef // Swig preprocessor does not understand empty call to macros. -%define decl_ntg +%define decl_ntg() %include <ntg/vect/cplx_representation.hh> %include <ntg/core/predecls.hh> %{ @@ -202,12 +205,12 @@ decl_scalar_class(ntg, int_s, long) decl_bin_class(ntg, bin, bool) - decl_complex + decl_complex() } %enddef -decl_ntg +decl_ntg() /* Macro are defined for every type and should be used in all modules @@ -238,4 +241,3 @@ %template(cplx_rect) ntg::cplx< ntg::rect, ntg_float >; %template(cplx_polar) ntg::cplx< ntg::polar, ntg_float >; - --- 10.225/tools/swilena/meta/swilena_morpho.i Sun, 11 Apr 2004 22:22:47 +0200 van-vl_n (oln/s/34_swilena_mo 1.4 600) +++ 10.225(w)/tools/swilena/meta/swilena_morpho.i Mon, 26 Jun 2006 18:34:09 +0200 levill_r (oln/s/34_swilena_mo 1.4 600) @@ -2,6 +2,8 @@ %module swilena_morpho +%include swilena_config.i + /* Algorithms are supported by a simple two-level mechanism: --- 10.225/tools/swilena/meta/swilena_imagesize.i Tue, 29 Jul 2003 18:21:22 +0200 david (oln/s/35_swilena_im 1.2 600) +++ 10.225(w)/tools/swilena/meta/swilena_imagesize.i Mon, 26 Jun 2006 17:48:52 +0200 levill_r (oln/s/35_swilena_im 1.2 600) @@ -1,5 +1,7 @@ // -*- C++ -*- +%include swilena_config.i + /*---------------------------. | oln::image_size structures | `---------------------------*/ --- 10.225/tools/swilena/meta/swilena_image.i Thu, 09 Oct 2003 16:21:55 +0200 burrus_n (oln/s/36_swilena_im 1.7 600) +++ 10.225(w)/tools/swilena/meta/swilena_image.i Wed, 28 Jun 2006 18:39:39 +0200 levill_r (oln/s/36_swilena_im 1.7 600) @@ -1,26 +1,18 @@ // -*- C++ -*- +%include swilena_config.i + %define decl_image(Dim) %include swilena_describe.i +%include swilena_exception.i %include swilena_core.i +%include swilena_basics ## Dim ## d.i + %import swilena_imagesize ## Dim ## d.i %import swilena_point ## Dim ## d.i -#if Dim == 1 -%{ -#include <oln/basics1d.hh> -%} -#elif Dim == 2 -%{ -#include <oln/basics2d.hh> -%} -#elif Dim == 3 -%{ -#include <oln/basics3d.hh> -%} -#endif - +%nodefaultctor oln::io::internal::anything; namespace oln { template<typename T> --- 10.225/tools/swilena/meta/swilena_exception.i Sun, 11 Apr 2004 22:22:47 +0200 van-vl_n (oln/s/37_swilena_ex 1.4 600) +++ 10.225(w)/tools/swilena/meta/swilena_exception.i Fri, 30 Jun 2006 12:14:15 +020Index: 10.225/tools/swilena/meta/swilena_describe.i Index: 10.225/tools/swilena/python/tests/Makefile.am Index: 10.225/tools/swilena/ruby/tests/Makefile.am Index: 10.225/tools/swilena/generate_morpho_instantiations.py Index: 10.225/tools/swilena/meta/swilena_ntg_macros.i Index: 10.225/tools/swilena/meta/swilena_arith.i 0 levill_r (oln/s/37_swilena_ex 1.4 600) @@ -9,7 +9,6 @@ // Olena uses classes that derive from std::exception. Declare it. namespace std { class exception { public: const char *what() const; }; } -%define START_PROTECT %exception { try { $action @@ -24,10 +23,3 @@ SWIG_exception(SWIG_UnknownError, __FUNCTION__); } } -%enddef - -%define END_PROTECT -%exception; -%enddef - -START_PROTECT --- 10.225/tools/swilena/meta/swilena_describe.i Sat, 27 Sep 2003 18:32:13 +0200 burrus_n (oln/s/38_swilena_de 1.3 600) +++ 10.225(w)/tools/swilena/meta/swilena_describe.i Fri, 23 Jun 2006 10:58:27 +0200 levill_r (oln/s/38_swilena_de 1.3 600) @@ -1,4 +1,4 @@ -%include std_string.i +%include std_string.i // -*- C++ -*- %{ #include <sstream> %} --- 10.225/tools/swilena/python/tests/Makefile.am Mon, 19 Apr 2004 13:05:44 +0200 thivol_d (oln/v/15_Makefile.a 1.6 600) +++ 10.225(w)/tools/swilena/python/tests/Makefile.am Wed, 28 Jun 2006 17:52:10 +0200 levill_r (oln/v/15_Makefile.a 1.6 600) @@ -3,7 +3,7 @@ ## Makefile.am for swilena/python/tests ## -dist_noinst_DATA = arith.py conversions.py simple1.py morpho.py +dist_noinst_DATA = sanity.py arith.py conversions.py simple1.py morpho.py TESTS_ENVIRONMENT = \ PYTHONPATH="$(PYTHONPATH):..:$(srcdir)/.." \ --- 10.225/tools/swilena/ruby/tests/Makefile.am Mon, 19 Apr 2004 13:05:44 +0200 thivol_d (oln/v/18_Makefile.a 1.5 600) +++ 10.225(w)/tools/swilena/ruby/tests/Makefile.am Fri, 30 Jun 2006 13:47:58 +0200 levill_r (oln/v/18_Makefile.a 1.5 600) @@ -1,12 +1,12 @@ ## Process this file through Automake to produce Makefile.in -*- Makefile -*- ## -## Makefile.am for swilena/python/tests +## Makefile.am for swilena/ruby/tests ## TESTS_ENVIRONMENT = \ SWILENA_PATH=".." \ IMGDIR="$(top_srcdir)/olena/img" -TESTS = simple1.rb +dist_noinst_DATA = sanity.rb simple1.rb -dist_noinst_DATA = simple1.rb +TESTS = $(dist_noinst_DATA) --- 10.225/tools/swilena/generate_morpho_instantiations.py Mon, 12 Apr 2004 12:56:30 +0200 van-vl_n (oln/v/24_generate_m 1.8 700) +++ 10.225(w)/tools/swilena/generate_morpho_instantiations.py Wed, 28 Jun 2006 15:47:12 +0200 levill_r (oln/v/24_generate_m 1.8 700) @@ -27,6 +27,8 @@ %%module swilena_morpho%(dim)sd_%(str_type)s +%%include swilena_config.i + %%include swilena_exception.i %%include swilena_ntg_macros.i @@ -34,7 +36,7 @@ %%include swilena_morpho.i -%%import swilena_image%(dim)sd.i +%%include swilena_image%(dim)sd.i """ % vars()) --- 10.225/tools/swilena/meta/swilena_ntg_macros.i Mon, 10 Nov 2003 11:19:49 +0100 burrus_n (oln/v/39_swilena_nt 1.1 600) +++ 10.225(w)/tools/swilena/meta/swilena_ntg_macros.i Tue, 27 Jun 2006 16:28:56 +0200 levill_r (oln/v/39_swilena_nt 1.1 600) @@ -1,3 +1,4 @@ +// -*- C++ -*- // FIXME: avoid code repetitions! #define ntg_bin ntg::bin --- 10.225/tools/swilena/meta/swilena_arith.i Mon, 10 Nov 2003 14:09:27 +0100 burrus_n (oln/v/48_swilena_ar 1.1 600) +++ 10.225(w)/tools/swilena/meta/swilena_arith.i Wed, 28 Jun 2006 16:33:37 +0200 levill_r (oln/v/48_swilena_ar 1.1 600) @@ -1,23 +1,13 @@ // -*- C++ -*- +%include swilena_config.i + %include swilena_describe.i %include swilena_core.i %define decl_arith(Dim) -#if Dim == 1 -%{ -#include <oln/basics1d.hh> -%} -#elif Dim == 2 -%{ -#include <oln/basics2d.hh> -%} -#elif Dim == 3 -%{ -#include <oln/basics3d.hh> -%} -#endif +%include swilena_basics ## Dim ## d.i %{ #include <oln/arith/ops.hh> @@ -27,27 +17,27 @@ template<class R, class I1, class I2> static R my_plus(const I1& i1, const I2& i2) - { return ::oln::arith::plus<R>(i1, i2); } + { return ::oln::arith::plus_with_ret<R>(i1, i2); } template<class R, class I1, class I2> static R my_minus(const I1& i1, const I2& i2) - { return ::oln::arith::minus<R>(i1, i2); } + { return ::oln::arith::minus_with_ret<R>(i1, i2); } template<class R, class I1, class I2> static R my_times(const I1& i1, const I2& i2) - { return ::oln::arith::times<R>(i1, i2); } + { return ::oln::arith::times_with_ret<R>(i1, i2); } template<class R, class I1, class I2> staIndex: 10.225/tools/swilena/meta/swilena_conversions.i Index: 10.225/tools/swilena/generate_conversions_instantiations.py Index: 10.225/tools/swilena/generate_arith_instantiations.py Index: 10.225/tools/swilena/python/tests/arith.py tic R my_div(const I1& i1, const I2& i2) - { return ::oln::arith::div<R>(i1, i2); } + { return ::oln::arith::div_with_ret<R>(i1, i2); } template<class R, class I1, class I2> static R my_min(const I1& i1, const I2& i2) - { return ::oln::arith::min<R>(i1, i2); } + { return ::oln::arith::min_with_ret<R>(i1, i2); } template<class R, class I1, class I2> static R my_max(const I1& i1, const I2& i2) - { return ::oln::arith::max<R>(i1, i2); } + { return ::oln::arith::max_with_ret<R>(i1, i2); } %} --- 10.225/tools/swilena/meta/swilena_conversions.i Mon, 10 Nov 2003 14:09:27 +0100 burrus_n (oln/v/49_swilena_co 1.1 600) +++ 10.225(w)/tools/swilena/meta/swilena_conversions.i Wed, 28 Jun 2006 16:34:19 +0200 levill_r (oln/v/49_swilena_co 1.1 600) @@ -1,28 +1,17 @@ // -*- C++ -*- +%include swilena_config.i +%include swilena_basics.i + %include swilena_describe.i %include swilena_core.i %define decl_conversions(Dim) -%{ -#include <oln/convert/basics.hh> -%} - -// FIXME: not very elegant, but %{ %} blocks are not preprocessed. +%include swilena_basics ## Dim ## d.i -#if Dim == 1 %{ -#include <oln/basics1d.hh> -%} -#elif Dim == 2 -%{ -#include <oln/basics2d.hh> -%} -#elif Dim == 3 -%{ -#include <oln/basics3d.hh> +#include <oln/convert/basics.hh> %} -#endif %enddef --- 10.225/tools/swilena/generate_conversions_instantiations.py Mon, 10 Nov 2003 14:09:27 +0100 burrus_n (oln/v/50_generate_c 1.1 700) +++ 10.225(w)/tools/swilena/generate_conversions_instantiations.py Wed, 28 Jun 2006 15:47:36 +0200 levill_r (oln/v/50_generate_c 1.1 700) @@ -19,10 +19,12 @@ %%module swilena_conversions%(dim)sd +%%include swilena_config.i + %%include swilena_exception.i %%include swilena_ntg_macros.i -%%import swilena_image%(dim)sd.i +%%include swilena_image%(dim)sd.i %%import swilena_ntg.i %%include swilena_conversions.i --- 10.225/tools/swilena/generate_arith_instantiations.py Mon, 10 Nov 2003 14:09:27 +0100 burrus_n (oln/v/51_generate_a 1.1 700) +++ 10.225(w)/tools/swilena/generate_arith_instantiations.py Wed, 28 Jun 2006 15:47:24 +0200 levill_r (oln/v/51_generate_a 1.1 700) @@ -19,13 +19,15 @@ %%module swilena_arith%(dim)sd +%%include swilena_config.i + %%include swilena_exception.i %%include swilena_ntg_macros.i %%import swilena_ntg.i %%include swilena_arith.i -%%import swilena_image%(dim)sd.i +%%include swilena_image%(dim)sd.i decl_arith(%(dim)s) --- 10.225/tools/swilena/python/tests/arith.py Mon, 10 Nov 2003 14:09:27 +0100 burrus_n (oln/w/0_arith.py 1.1 700) +++ 10.225(w)/tools/swilena/python/tests/arith.py Wed, 28 Jun 2006 14:48:10 +0200 levill_r (oln/w/0_arith.py 1.1 700) @@ -2,8 +2,8 @@ import os import sys -from swilena_arith2d import * from swilena_image2d import * +from swilena_arith2d import * imgdir = os.environ['IMGDIR']