-
+#
+# Conditional build:
+%bcond_without guile # disable guile 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 73
+%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.19
-Release: 6
-License: distributable
+Version: 4.0.2
+Release: 1
+License: GPL v3+ (utility), free (library)
Group: Development/Languages
-Source0: http://dl.sourceforge.net/swig/%{name}-%{version}.tar.gz
-# Source0-md5: a733455544426b31868dd87fc162e750
-Patch0: %{name}-format.patch
-Patch1: %{name}-php.patch
-Patch2: %{name}-php-tsrm.patch
-Patch3: %{name}-php-freearg.patch
-Patch4: %{name}-php-vdecl.patch
+Source0: https://downloads.sourceforge.net/swig/%{name}-%{version}.tar.gz
+# Source0-md5: 7c3e46cb5af2b469722cafa0d91e127b
+Patch0: %{name}-php-freearg.patch
URL: http://www.swig.org/
-Icon: swig.gif
-BuildRequires: autoconf
-BuildRequires: automake
-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
-BuildRequires: perl-devel >= 5.6.1
-BuildRequires: php-devel >= 4.1.0
-BuildRequires: php-cgi
-BuildRequires: python-devel >= 2.2
-BuildRequires: ruby >= 1.6.3
-BuildRequires: tcl-devel >= 8.3.3
-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_name}-cli}
+%{?with_php:BuildRequires: %{php_name}-devel >= 4.1.0}
+BuildRequires: python-devel >= 1:2.3.2
+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 < 3.0.7
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.
-
-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
-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++
+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!
+
+%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++
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 library: guile
-Summary(pl): Biblioteka SWIG: 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 library: guile.
+SWIG module to generate Guile bindings.
-%description guile -l pl
-Biblioteka SWIG: guile.
+%description guile -l pl.UTF-8
+Moduł SWIG do generowania wiązań Guile.
%package perl
-Summary: SWIG library: Perl
-Summary(pl): Biblioteka SWIG: 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 library: perl.
+SWIG module to generate Perl bindings. It supports Perl 5.
-%description perl -l pl
-Biblioteka SWIG: perl.
+%description perl -l pl.UTF-8
+Moduł SWIG do generowania wiązań Perla. Obsługuje Perla 5.
%package php
-Summary: SWIG library: php
-Summary(pl): Biblioteka SWIG: 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 library: php.
+SWIG module to generate PHP bindings. It supports PHP 7.
-%description php -l pl
-Biblioteka SWIG: php.
+%description php -l pl.UTF-8
+Moduł SWIG do generowania wiązań PHP. Obsługuje PHP 7.
%package python
-Summary: SWIG library: python
-Summary(pl): Biblioteka SWIG: 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 library: python.
+SWIG module to generate Python bindings. It supports Python 2.7 and
+3.2+
-%description python -l pl
-Biblioteka SWIG: python.
+%description python -l pl.UTF-8
+Moduł SWIG do generowania wiązań Pythona. Obsługuje Pythona 2.7 i
+3.2+.
%package ruby
-Summary: SWIG library: ruby
-Summary(pl): Biblioteka SWIG: 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 library: ruby.
+SWIG module to generate Ruby bindings.
-%description ruby -l pl
-Biblioteka SWIG: ruby.
+%description ruby -l pl.UTF-8
+Moduł SWIG do generowania wiązań języka Ruby.
%package tcl
-Summary: SWIG library: tcl
-Summary(pl): Biblioteka SWIG: 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 library: tcl.
-
-%description tcl -l pl
-Biblioteka SWIG: tcl.
-
-%package ocaml
-Summary: SWIG library: ocaml
-Summary(pl): Biblioteka SWIG: ocaml
-Group: Libraries
+SWIG module to generate Tcl bindings.
-%description ocaml
-SWIG library: ocaml.
-
-%description ocaml -l pl
-Biblioteka SWIG: ocaml.
+%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
%build
-oldpwd=$PWD
-for i in . Tools; do
- cd $i
- %{__libtoolize}
- %{__aclocal}
- %{__autoconf}
- cd $oldpwd
-done
+%{__aclocal} -I Tools/config
+%{__autoconf}
+%{__automake}
%configure
-%{__make} OPT="%{rpmcflags}"
+%{__make} \
+ OPT="%{rpmcflags}"
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT{%{_mandir}/man1,%{_examplesdir}/%{name}-%{version}}
%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+ DESTDIR=$RPM_BUILD_ROOT \
+ M4_INSTALL_DIR=$RPM_BUILD_ROOT%{_aclocaldir}
cp -a Examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
%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
-%{_libdir}/%{name}*
+%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}/csharp
+%{_datadir}/%{name}/%{version}/d
+%{_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}/mzscheme
+%{_datadir}/%{name}/%{version}/ocaml
+%{_datadir}/%{name}/%{version}/octave
+%{_datadir}/%{name}/%{version}/r
+%{_datadir}/%{name}/%{version}/scilab
+%{_datadir}/%{name}/%{version}/std
+%{_datadir}/%{name}/%{version}/typemaps
+%{_datadir}/%{name}/%{version}/xml
%{_examplesdir}/%{name}-%{version}
+%if %{with guile}
%files guile
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*guile.so
-%{_libdir}/lib*guile.la
+%{_datadir}/%{name}/%{version}/guile
+%endif
+%if %{with perl}
%files perl
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*pl.so
-%{_libdir}/lib*pl.la
+%{_datadir}/%{name}/%{version}/perl5
+%endif
+%if %{with php}
%files php
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*php4.so
-%{_libdir}/lib*php4.la
+%{_datadir}/%{name}/%{version}/php
+%endif
%files python
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*py.so
-%{_libdir}/lib*py.la
+%{_datadir}/%{name}/%{version}/python
+%if %{with ruby}
%files ruby
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*rb.so
-%{_libdir}/lib*rb.la
+%{_datadir}/%{name}/%{version}/ruby
+%endif
+%if %{with tcl}
%files tcl
%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*tcl*.so
-%{_libdir}/lib*tcl*.la
-
-%files ocaml
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/lib*ocaml*.so*
-%{_libdir}/lib*ocaml*.la
+%{_datadir}/%{name}/%{version}/tcl
+%endif