[swig/f15] - backport r12814 from trunk (#753321) - improve Octave compatibility (#679948)
Adam Tkac
atkac at fedoraproject.org
Tue Nov 15 12:59:18 UTC 2011
commit 0332f3072d4450b01ab7cce072de6c88e0dbade7
Author: Adam Tkac <atkac at redhat.com>
Date: Tue Nov 15 13:59:04 2011 +0100
- backport r12814 from trunk (#753321)
- improve Octave compatibility (#679948)
Signed-off-by: Adam Tkac <atkac at redhat.com>
swig.spec | 10 ++-
swig204-rh679948.patch | 273 ++++++++++++++++++++++++++++++++++++++++++++++++
swig204-rh753321.patch | 27 +++++
3 files changed, 309 insertions(+), 1 deletions(-)
---
diff --git a/swig.spec b/swig.spec
index 9f2f46d..d6871e3 100644
--- a/swig.spec
+++ b/swig.spec
@@ -4,12 +4,14 @@
Summary: Connects C/C++/Objective C to some high-level programming languages
Name: swig
Version: 2.0.4
-Release: 1%{?dist}
+Release: 2%{?dist}
License: GPLv3+ and BSD
Group: Development/Tools
URL: http://swig.sourceforge.net/
Source: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz
Patch1: swig-1.3.23-pylib.patch
+Patch2: swig204-rh679948.patch
+Patch3: swig204-rh753321.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: perl, python-devel, pcre-devel
@@ -42,6 +44,8 @@ This package contains documentation for SWIG and useful examples
%prep
%setup -q -n swig-%{version}
%patch1 -p1 -b .pylib
+%patch2 -p0 -b .rh679948
+%patch3 -p0 -b .rh753321
# as written on https://fedoraproject.org/wiki/Packaging_talk:Perl, section 2
# (specific req/prov filtering). Before you remove this hack make sure you don't
@@ -113,6 +117,10 @@ rm -rf %{buildroot}
%doc Doc Examples LICENSE LICENSE-GPL LICENSE-UNIVERSITIES COPYRIGHT
%changelog
+* Tue Nov 15 2011 Adam Tkac <atkac redhat com> 2.0.4-2
+- backport r12814 from trunk (#753321)
+- improve Octave compatibility (#679948)
+
* Mon Jun 20 2011 Adam Tkac <atkac redhat com> 2.0.4-1
- update to 2.0.4
- patches merged
diff --git a/swig204-rh679948.patch b/swig204-rh679948.patch
new file mode 100644
index 0000000..869d7f7
--- /dev/null
+++ b/swig204-rh679948.patch
@@ -0,0 +1,273 @@
+Index: configure.in
+===================================================================
+--- configure.in (revision 12773)
++++ configure.in (revision 12774)
+@@ -923,19 +923,20 @@
+
+ AC_MSG_CHECKING(for Octave header files)
+ if test -n "$OCTAVE"; then
+- OCTAVEDIR="/usr/include"
++ OCTAVECONFIG=[`echo $OCTAVEBIN | sed 's|octave\([^/]*\)$|octave-config\1|'`]
++ if test -r "$OCTAVECONFIG"; then
++ OCTAVEDIR=`$OCTAVECONFIG -p OCTINCLUDEDIR | sed 's|/octave$||'`
++ else
++ OCTAVEDIR="/usr/include"
++ fi
+ if test "$OCTAVEDIR" != ""; then
+- dirs="$OCTAVEDIR"
++ dirs="$OCTAVEDIR/octave $OCTAVEDIR"
+ OCTAVEEXT=""
+ for i in $dirs; do
+ if test -r $i/octave/oct.h; then
+ OCTAVEEXT="$i"
+ break;
+ fi
+- if test -r $i/octave/octave/oct.h; then
+- OCTAVEEXT="$i/octave"
+- break;
+- fi
+ done
+ if test "$OCTAVEEXT" = "" ; then
+ AC_MSG_RESULT(not found)
+Index: Lib/octave/octrun.swg
+===================================================================
+--- Lib/octave/octrun.swg (revision 12773)
++++ Lib/octave/octrun.swg (revision 12774)
+@@ -399,6 +399,10 @@
+ Swig::erase_rtdir(types[j].second.ptr);
+ }
+
++ dim_vector dims(void) const {
++ return dim_vector(1,1);
++ }
++
+ octave_value as_value() {
+ ++count;
+ return Swig::swig_value_ref(this);
+@@ -928,6 +932,9 @@
+ octave_base_value *empty_clone() const
+ { return new octave_swig_ref(0); }
+
++ dim_vector dims(void) const
++ { return ptr->dims(); }
++
+ bool is_defined() const
+ { return ptr->is_defined(); }
+
+Index: Examples/octave/functor/Makefile
+===================================================================
+--- Examples/octave/functor/Makefile (revision 12773)
++++ Examples/octave/functor/Makefile (revision 12774)
+@@ -19,3 +19,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/pointer/Makefile
+===================================================================
+--- Examples/octave/pointer/Makefile (revision 12773)
++++ Examples/octave/pointer/Makefile (revision 12774)
+@@ -17,3 +17,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/funcptr/Makefile
+===================================================================
+--- Examples/octave/funcptr/Makefile (revision 12773)
++++ Examples/octave/funcptr/Makefile (revision 12774)
+@@ -17,3 +17,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/extend/Makefile
+===================================================================
+--- Examples/octave/extend/Makefile (revision 12773)
++++ Examples/octave/extend/Makefile (revision 12774)
+@@ -19,3 +19,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/simple/Makefile
+===================================================================
+--- Examples/octave/simple/Makefile (revision 12773)
++++ Examples/octave/simple/Makefile (revision 12774)
+@@ -17,3 +17,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/operator/runme.m
+===================================================================
+--- Examples/octave/operator/runme.m (revision 12773)
++++ Examples/octave/operator/runme.m (revision 12774)
+@@ -4,21 +4,21 @@
+ a = example.ComplexVal(2,3);
+ b = example.ComplexVal(-5,10);
+
+-printf("a = %s\n",a);
+-printf("b = %s\n",b);
++printf("a = %s\n",disp(a));
++printf("b = %s\n",disp(b));
+
+ c = a + b;
+-printf("c = %s\n",c);
+-printf("a*b = %s\n",a*b);
+-printf("a-c = %s\n",a-c);
++printf("c = %s\n",disp(c));
++printf("a*b = %s\n",disp(a*b));
++printf("a-c = %s\n",disp(a-c));
+
+ e = example.ComplexVal(a-c);
+-printf("e = %s\n",e);
++printf("e = %s\n",disp(e));
+
+ # Big expression
+ f = ((a+b)*(c+b*e)) + (-a);
+-printf("f = %s\n",f);
++printf("f = %s\n",disp(f));
+
+ # paren overloading
+-printf("a(3)= %s\n",a(3));
++printf("a(3)= %s\n",disp(a(3)));
+
+Index: Examples/octave/operator/example.i
+===================================================================
+--- Examples/octave/operator/example.i (revision 12773)
++++ Examples/octave/operator/example.i (revision 12774)
+@@ -10,13 +10,13 @@
+
+ /* An output method that turns a complex into a short string */
+ %extend ComplexVal {
+- char *__str() {
++ char *__str__() {
+ static char temp[512];
+ sprintf(temp,"(%g,%g)", $self->re(), $self->im());
+ return temp;
+ }
+
+- ComplexVal __paren(int j) {
++ ComplexVal __paren__(int j) {
+ return ComplexVal($self->re()*j,$self->im()*j);
+ }
+ };
+Index: Examples/octave/operator/Makefile
+===================================================================
+--- Examples/octave/operator/Makefile (revision 12773)
++++ Examples/octave/operator/Makefile (revision 12774)
+@@ -19,3 +19,4 @@
+ rm -f $(TARGET).m
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/callback/Makefile
+===================================================================
+--- Examples/octave/callback/Makefile (revision 12773)
++++ Examples/octave/callback/Makefile (revision 12774)
+@@ -19,3 +19,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/reference/Makefile
+===================================================================
+--- Examples/octave/reference/Makefile (revision 12773)
++++ Examples/octave/reference/Makefile (revision 12774)
+@@ -19,3 +19,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/funcptr2/Makefile
+===================================================================
+--- Examples/octave/funcptr2/Makefile (revision 12773)
++++ Examples/octave/funcptr2/Makefile (revision 12774)
+@@ -17,3 +17,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/enum/Makefile
+===================================================================
+--- Examples/octave/enum/Makefile (revision 12773)
++++ Examples/octave/enum/Makefile (revision 12774)
+@@ -19,3 +19,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/class/Makefile
+===================================================================
+--- Examples/octave/class/Makefile (revision 12773)
++++ Examples/octave/class/Makefile (revision 12774)
+@@ -19,3 +19,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/variables/Makefile
+===================================================================
+--- Examples/octave/variables/Makefile (revision 12773)
++++ Examples/octave/variables/Makefile (revision 12774)
+@@ -17,3 +17,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/template/Makefile
+===================================================================
+--- Examples/octave/template/Makefile (revision 12773)
++++ Examples/octave/template/Makefile (revision 12774)
+@@ -19,3 +19,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/constants/Makefile
+===================================================================
+--- Examples/octave/constants/Makefile (revision 12773)
++++ Examples/octave/constants/Makefile (revision 12774)
+@@ -19,3 +19,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/octave/contract/Makefile
+===================================================================
+--- Examples/octave/contract/Makefile (revision 12773)
++++ Examples/octave/contract/Makefile (revision 12774)
+@@ -17,3 +17,4 @@
+ rm -f $(TARGET).py
+
+ check: all
++ $(MAKE) -f $(TOP)/Makefile octave_run
+Index: Examples/Makefile.in
+===================================================================
+--- Examples/Makefile.in (revision 12773)
++++ Examples/Makefile.in (revision 12774)
+@@ -333,6 +333,7 @@
+ # Make sure these locate your Octave installation
+ OCTAVE_INCLUDE= $(DEFS) @OCTAVEEXT@
+ OCTAVE_LIB =
++OCTAVE = @OCTAVE@
+
+ # Extra Octave specific dynamic linking options
+ OCTAVE_DLNK = @OCTAVEDYNAMICLINKING@
+@@ -359,6 +360,15 @@
+ $(CXXSHARED) -g $(CFLAGS) $(OBJS) $(IOBJS) $(OCTAVE_DLNK) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(OCTAVE_SO)
+
+ # -----------------------------------------------------------------
++# Running an Octave example
++# -----------------------------------------------------------------
++
++OCTSCRIPT = runme.m
++
++octave_run: $(OCTSCRIPT)
++ env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH OCTAVEPATH=$(srcdir):$$OCTAVEPATH $(OCTAVE) $(OCTSCRIPT) >/dev/null
++
++# -----------------------------------------------------------------
+ # Cleaning the octave examples
+ # -----------------------------------------------------------------
+
diff --git a/swig204-rh753321.patch b/swig204-rh753321.patch
new file mode 100644
index 0000000..2eca5c6
--- /dev/null
+++ b/swig204-rh753321.patch
@@ -0,0 +1,27 @@
+Index: Source/Swig/stype.c
+===================================================================
+--- Source/Swig/stype.c (revision 12813)
++++ Source/Swig/stype.c (revision 12814)
+@@ -823,7 +823,8 @@
+ Insert(result, 0, "(");
+ Append(result, ")");
+ }
+- isreference = 1;
++ if (!isfunction)
++ isreference = 1;
+ } else if (SwigType_isarray(element)) {
+ DOH *size;
+ if (firstarray && !isreference) {
+@@ -869,10 +870,8 @@
+ cast = NewStringf("(%s)", result);
+ }
+ if (name) {
+- if (!isfunction) {
+- if (isreference) {
+- Append(cast, "*");
+- }
++ if (isreference) {
++ Append(cast, "*");
+ }
+ Append(cast, name);
+ }
More information about the scm-commits
mailing list