3 %bcond_without tests # build without tests
6 Summary: FFI Extensions for Ruby
7 Summary(pl.UTF-8): Rozszerzenia FFI dla języka Ruby
12 Group: Development/Languages
13 Source0: http://rubygems.org/gems/%{pkgname}-%{version}.gem
14 # Source0-md5: 1b5ab133fb1b861eeb7c7a8dbaa0acf4
15 Patch0: %{name}-platform.patch
16 URL: http://wiki.github.com/ffi/ffi
17 BuildRequires: libffi-devel
18 BuildRequires: rpm-rubyprov
19 BuildRequires: rpmbuild(macros) >= 1.665
20 BuildRequires: setup.rb
22 BuildRequires: ruby-rspec
23 BuildRequires: ruby-rspec-mocks
25 ExclusiveArch: %{ix86} %{x8664} arm ia64 mips mipsel ppc s390 s390x sparc sparcv9
26 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
29 Ruby-FFI is a Ruby extension for programmatically loading dynamic
30 libraries, binding functions within them, and calling those functions
31 from Ruby code. Moreover, a Ruby-FFI extension works without changes
32 on Ruby and JRuby. Discover why should you write your next extension
33 using Ruby-FFI here: <http://wiki.github.com/ffi/ffi/why-use-ffi>.
35 %description -l pl.UTF-8
36 Ruby-FFI to rozszerzenie języka Ruby do programowego ładowania
37 bibliotek dynamicznych, wiązania obecnych w nich funkcji oraz
38 wywoływania tych funkcji z kodu w języku Ruby. Co więcej, rozszerzenie
39 Ruby-FFI działa bez zmian w implementacji Ruby oraz JRuby. Informacje,
40 dlaczego nowe rozszerzenia powinny używać Ruby-FFI, można znaleźć na
41 stronie <http://wiki.github.com/ffi/ffi/why-use-ffi>.
44 %setup -q -n %{pkgname}-%{version}
47 # be sure to use system ffi
48 %{__rm} -r ext/ffi_c/libffi
50 # drop not our targets
51 %{__rm} -r lib/ffi/platform/*-{aix,cygwin,darwin,gnu,*bsd,solaris,windows}
52 # provide only definitions for package architecture
54 %{__rm} -r lib/ffi/platform/arm-*
57 %{__rm} -r lib/ffi/platform/i386-*
60 %{__rm} -r lib/ffi/platform/ia64-*
63 %{__rm} -r lib/ffi/platform/mips-*
66 %{__rm} -r lib/ffi/platform/mipsel-*
69 %{__rm} -r lib/ffi/platform/powerpc-*
72 %{__rm} -r lib/ffi/platform/s390-*
75 %{__rm} -r lib/ffi/platform/s390x-*
78 %{__rm} -r lib/ffi/platform/sparc-*
81 %{__rm} -r lib/ffi/platform/x86_64-*
85 cp -p %{_datadir}/setup.rb .
90 %{__ruby} setup.rb config \
91 --rbdir=%{ruby_rubylibdir} \
92 --sodir=%{ruby_archdir} \
95 %{__ruby} setup.rb setup
97 %{__make} -C ext/ffi_c \
101 %{__make} -f libtest/GNUmakefile \
104 ruby -Ilib:ext/ffi_c -S \
109 rm -rf $RPM_BUILD_ROOT
110 install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_vendorarchdir}/ffi,%{ruby_specdir}}
111 cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
112 install -p ext/ffi_c/ffi_c.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}
113 %{__mv} $RPM_BUILD_ROOT%{ruby_vendorlibdir}/ffi/platform $RPM_BUILD_ROOT%{ruby_vendorarchdir}/ffi
114 cp -p %{pkgname}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
117 rm -rf $RPM_BUILD_ROOT
120 %defattr(644,root,root,755)
121 %doc README.md LICENSE
122 %{ruby_vendorlibdir}/ffi.rb
123 %{ruby_vendorlibdir}/ffi
124 %attr(755,root,root) %{ruby_vendorarchdir}/ffi_c.so
125 %dir %{ruby_vendorarchdir}/ffi
126 %{ruby_vendorarchdir}/ffi/platform
127 %{ruby_specdir}/%{pkgname}-%{version}.gemspec