#
# Conditional build:
%bcond_without guile # disable guile support
-%bcond_without ocaml # disable ocaml support
%bcond_without perl # disable perl support
%bcond_without php # disable php support
%bcond_without ruby # disable ruby support
%bcond_without tcl # disable tcl support
#
+%if "%{?php_suffix}" == ""
+%define php_suffix 55
+%endif
+%define php_name php%{?php_suffix}
Summary: Interface generator for Perl, Tcl, Guile and Python
-Summary(pl): Generator interfejsów do Perla, Tcl-a, Guile'a i Pythona
-Summary(pt_BR): Gerador de Interfaces e "Wrappers" Simplificado (SWIG)
+Summary(pl.UTF-8): Generator interfejsów do Perla, Tcl-a, Guile'a i Pythona
+Summary(pt_BR.UTF-8): Gerador de Interfaces e "Wrappers" Simplificado (SWIG)
Name: swig
-Version: 1.3.24
+Version: 3.0.12
Release: 1
-License: distributable
+License: GPL v3+ (utility), free (library)
Group: Development/Languages
-Source0: http://dl.sourceforge.net/swig/%{name}-%{version}.tar.gz
-# Source0-md5: c5fc655dbbb6fe0cfab2211747dadbe0
-Patch0: %{name}-format.patch
-Patch1: %{name}-php.patch
-Patch2: %{name}-php-tsrm.patch
-Patch3: %{name}-php-freearg.patch
-Patch4: %{name}-php-vdecl.patch
-Patch5: %{name}-python-lib64.patch
+Source0: http://downloads.sourceforge.net/swig/%{name}-%{version}.tar.gz
+# Source0-md5: 82133dfa7bba75ff9ad98a7046be687c
+Patch0: %{name}-php-freearg.patch
URL: http://www.swig.org/
-Icon: swig.gif
-BuildRequires: autoconf
-BuildRequires: automake
-%{?with_guile:BuildRequires: guile-devel}
+BuildRequires: autoconf >= 2.58
+BuildRequires: automake >= 1:1.7.2
+%{?with_guile:BuildRequires: guile-devel >= 5:1.8}
BuildRequires: libstdc++-devel
-BuildRequires: libtool
-%{?with_ocaml:BuildRequires: ocaml}
+# used only in examples, doesn't affect actual swig build
+#BuildRequires: ocaml
+# used only in examples, doesn't affect actual swig build
+#BuildRequires: octave-devel
+BuildRequires: pcre-devel
%{?with_perl:BuildRequires: perl-devel >= 1:5.6.1}
-%{?with_php:BuildRequires: php-devel >= 4.1.0}
-%{?with_php:BuildRequires: php-cli}
+%{?with_php:BuildRequires: %{php_name}-cli}
+%{?with_php:BuildRequires: %{php_name}-devel >= 4.1.0}
BuildRequires: python-devel >= 1:2.3.2
-%{?with_ruby:BuildRequires: ruby-devel >= 1:1.6.3}
+BuildRequires: python-modules
+BuildRequires: python3-devel
+BuildRequires: python3-modules
+BuildRequires: rpm-pythonprov
+%if %{with ruby}
+BuildRequires: rpmbuild(macros) >= 1.277
+BuildRequires: ruby-devel >= 1:1.6.3
+%endif
%{?with_tcl:BuildRequires: tcl-devel >= 8.3.3}
Obsoletes: swig-ocaml
-Obsoletes: swig-guile
-Obsoletes: swig-perl
-Obsoletes: swig-php
-Obsoletes: swig-python
-Obsoletes: swig-ruby
-Obsoletes: swig-tcl
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
individually, but without this support, SWIG would be not be nearly as
powerful or fun to use as it is now. Many thanks!
-%description -l pl
-SWIG jesk kompilatorem, który próbuje u³atwiæ integrowanie kodu
-napisanego w C, C++ lub Objective-C z jêzykami skryptowymi, takimi jak
-Perl, Tcl i Python. Mówi±c najpro¶ciej, je¶li dostarczysz mu zestaw
+%description -l pl.UTF-8
+SWIG jesk kompilatorem, który próbuje ułatwić integrowanie kodu
+napisanego w C, C++ lub Objective-C z językami skryptowymi, takimi jak
+Perl, Tcl i Python. Mówiąc najprościej, jeśli dostarczysz mu zestaw
zadeklarowanych w ANSI C/C++ funkcji, SWIG wygeneruje Ci interfejs
-pomiêdzy C a Twoim ulubionym jêzykiem skryptowym. To tylko drobna
-czê¶æ tego co SWIG potrafi robiæ, bardziej zaawansowane zastosowania
-to automatyczne generowanie dokumentacji, zarz±dzanie bibliotekami i
-modu³ami i wiele innych.
+pomiędzy C a Twoim ulubionym językiem skryptowym. To tylko drobna
+część tego co SWIG potrafi robić, bardziej zaawansowane zastosowania
+to automatyczne generowanie dokumentacji, zarządzanie bibliotekami i
+modułami i wiele innych.
-SWIG jest w ca³o¶ci dzie³em ludzi, którzy go u¿ywali i wprowadzali
-nowe pomys³y. Zbyt wielu ich jest, aby dziêkowaæ ka¿demu z nich
-osobno, ale bez ich wsparcia SWIG nie by³by ani tak potê¿nym
-narzêdziem, ani tak fajnym w u¿yciu jak jest teraz. Wiekie dziêki!
+SWIG jest w całości dziełem ludzi, którzy go używali i wprowadzali
+nowe pomysły. Zbyt wielu ich jest, aby dziękować każdemu z nich
+osobno, ale bez ich wsparcia SWIG nie byłby ani tak potężnym
+narzędziem, ani tak fajnym w użyciu jak jest teraz. Wiekie dzięki!
-%description -l pt_BR
+%description -l pt_BR.UTF-8
O SWIG gera interfaces para perl, python e Tcl a partir de uma arquivo
-com uma interface de descrição que consiste de uma combinação de C/C++
+com uma interface de descrição que consiste de uma combinação de C/C++
e diretivas especiais. Permite que linguagens tipo script usem C/C++
-com um mínimo de esforço.
+com um mínimo de esforço.
+
+%package guile
+Summary: SWIG module to generate Guile bindings
+Summary(pl.UTF-8): Moduł SWIG do generowania wiązań Guile
+License: free
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description guile
+SWIG module to generate Guile bindings.
+
+%description guile -l pl.UTF-8
+Moduł SWIG do generowania wiązań Guile.
+
+%package perl
+Summary: SWIG module to generate Perl bindings
+Summary(pl.UTF-8): Moduł SWIG do generowania wiązań Perla
+License: free
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description perl
+SWIG module to generate Perl bindings. It supports Perl 5.
+
+%description perl -l pl.UTF-8
+Moduł SWIG do generowania wiązań Perla. Obsługuje Perla 5.
+
+%package php
+Summary: SWIG module to generate PHP bindings
+Summary(pl.UTF-8): Moduł SWIG do generowania wiązań PHP
+License: free
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description php
+SWIG module to generate PHP bindings. It supports PHP 5 and 7.
+
+%description php -l pl.UTF-8
+Moduł SWIG do generowania wiązań PHP. Obsługuje PHP 5 i 7.
+
+%package python
+Summary: SWIG module to generate Python bindings
+Summary(pl.UTF-8): Moduł SWIG do generowania wiązań Pythona
+License: free
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description python
+SWIG module to generate Python bindings. It supports Python 2 and 3.
+
+%description python -l pl.UTF-8
+Moduł SWIG do generowania wiązań Pythona. Obsługuje Pythona 2 i 3.
+
+%package ruby
+Summary: SWIG module to generate Ruby bindings
+Summary(pl.UTF-8): Moduł SWIG do generowania wiązań języka Ruby
+License: free
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+%{?ruby_mod_ver_requires_eq}
+
+%description ruby
+SWIG module to generate Ruby bindings.
+
+%description ruby -l pl.UTF-8
+Moduł SWIG do generowania wiązań języka Ruby.
+
+%package tcl
+Summary: SWIG module to generate Tcl bindings
+Summary(pl.UTF-8): Moduł SWIG do generowania wiązań języka Tcl
+License: free
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description tcl
+SWIG module to generate Tcl bindings.
+
+%description tcl -l pl.UTF-8
+Moduł SWIG do generowania wiązań języka Tcl.
%prep
-%setup -q -n SWIG-%{version}
+%setup -q
%patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
-%patch4 -p1
-%if "%{_lib}" == "lib64"
-%patch5 -p1
-%endif
%build
-%{__libtoolize}
%{__aclocal} -I Tools/config
-%{__automake}
%{__autoconf}
+%{__automake}
%configure
%{__make} \
%clean
rm -rf $RPM_BUILD_ROOT
-%post -p /sbin/ldconfig
-%postun -p /sbin/ldconfig
-
%files
%defattr(644,root,root,755)
-%doc Doc CHANGES NEW README ANNOUNCE TODO LICENSE
+%doc ANNOUNCE CHANGES CHANGES.current COPYRIGHT LICENSE LICENSE-UNIVERSITIES README RELEASENOTES TODO Doc
+%attr(755,root,root) %{_bindir}/ccache-swig
%attr(755,root,root) %{_bindir}/swig
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/%{version}
+%{_datadir}/%{name}/%{version}/*.i
+%{_datadir}/%{name}/%{version}/allkw.swg
+%{_datadir}/%{name}/%{version}/director_common.swg
+%{_datadir}/%{name}/%{version}/runtime.swg
+%{_datadir}/%{name}/%{version}/swig*.swg
+%{_datadir}/%{name}/%{version}/allegrocl
+%{_datadir}/%{name}/%{version}/cffi
+%{_datadir}/%{name}/%{version}/chicken
+%{_datadir}/%{name}/%{version}/clisp
+%{_datadir}/%{name}/%{version}/csharp
+%{_datadir}/%{name}/%{version}/d
+%{_datadir}/%{name}/%{version}/gcj
+%{_datadir}/%{name}/%{version}/go
+%{_datadir}/%{name}/%{version}/java
+%dir %{_datadir}/%{name}/%{version}/javascript
+%{_datadir}/%{name}/%{version}/javascript/jsc
+%{_datadir}/%{name}/%{version}/javascript/v8
+%{_datadir}/%{name}/%{version}/lua
+%{_datadir}/%{name}/%{version}/modula3
+%{_datadir}/%{name}/%{version}/mzscheme
+%{_datadir}/%{name}/%{version}/ocaml
+%{_datadir}/%{name}/%{version}/octave
+%{_datadir}/%{name}/%{version}/pike
+%{_datadir}/%{name}/%{version}/r
+%{_datadir}/%{name}/%{version}/scilab
+%{_datadir}/%{name}/%{version}/std
+%{_datadir}/%{name}/%{version}/typemaps
+%{_datadir}/%{name}/%{version}/uffi
%{_examplesdir}/%{name}-%{version}
-%{_datadir}/%{name}
+
+%if %{with guile}
+%files guile
+%defattr(644,root,root,755)
+%{_datadir}/%{name}/%{version}/guile
+%endif
+
+%if %{with perl}
+%files perl
+%defattr(644,root,root,755)
+%{_datadir}/%{name}/%{version}/perl5
+%endif
+
+%if %{with php}
+%files php
+%defattr(644,root,root,755)
+%{_datadir}/%{name}/%{version}/php
+%{_datadir}/%{name}/%{version}/php5
+%endif
+
+%files python
+%defattr(644,root,root,755)
+%{_datadir}/%{name}/%{version}/python
+
+%if %{with ruby}
+%files ruby
+%defattr(644,root,root,755)
+%{_datadir}/%{name}/%{version}/ruby
+%endif
+
+%if %{with tcl}
+%files tcl
+%defattr(644,root,root,755)
+%{_datadir}/%{name}/%{version}/tcl
+%endif