]>
Commit | Line | Data |
---|---|---|
947bc9d0 ER |
1 | # TODO: |
2 | # - rm files in platform dir (and make not noarch?) | |
bac43acd ER |
3 | # Conditional build: |
4 | %bcond_without tests # build without tests | |
5 | ||
7f59e59c | 6 | %define pkgname ffi |
5d8a12a9 | 7 | Summary: FFI Extensions for Ruby |
7f59e59c | 8 | Name: ruby-%{pkgname} |
947bc9d0 ER |
9 | Version: 1.9.3 |
10 | Release: 1 | |
11 | License: BSD | |
5d8a12a9 | 12 | Group: Development/Languages |
7f59e59c | 13 | Source0: http://rubygems.org/gems/%{pkgname}-%{version}.gem |
947bc9d0 | 14 | # Source0-md5: 1b5ab133fb1b861eeb7c7a8dbaa0acf4 |
5d8a12a9 ER |
15 | URL: http://wiki.github.com/ffi/ffi |
16 | BuildRequires: libffi-devel | |
17 | BuildRequires: rpm-rubyprov | |
60db665a | 18 | BuildRequires: rpmbuild(macros) >= 1.665 |
5d8a12a9 | 19 | BuildRequires: setup.rb |
bac43acd ER |
20 | %if %{with tests} |
21 | BuildRequires: ruby-rspec | |
ed0d1fdb | 22 | BuildRequires: ruby-rspec-mocks |
bac43acd | 23 | %endif |
5d8a12a9 ER |
24 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
25 | ||
26 | %description | |
27 | Ruby-FFI is a ruby extension for programmatically loading dynamic | |
28 | libraries, binding functions within them, and calling those functions | |
29 | from Ruby code. Moreover, a Ruby-FFI extension works without changes | |
30 | on Ruby and JRuby. Discover why should you write your next extension | |
31 | using Ruby-FFI here: <http://wiki.github.com/ffi/ffi/why-use-ffi>. | |
32 | ||
33 | %prep | |
7f59e59c | 34 | %setup -q -n %{pkgname}-%{version} |
5d8a12a9 | 35 | |
336d53d2 ER |
36 | # be sure to use system ffi |
37 | rm -r ext/ffi_c/libffi | |
38 | ||
a2262c61 ER |
39 | # drop not our targets |
40 | rm -rv lib/ffi/platform/*-{cygwin,darwin,gnu,*bsd,solaris,windows} | |
41 | # not in pld th, so drop | |
42 | rm -rv lib/ffi/platform/arm-* | |
43 | rm -rv lib/ffi/platform/ia64-* | |
44 | rm -rv lib/ffi/platform/mips* | |
45 | rm -rv lib/ffi/platform/powerpc-* | |
46 | rm -rv lib/ffi/platform/s390* | |
47 | rm -rv lib/ffi/platform/sparc* | |
48 | ||
5d8a12a9 ER |
49 | # ext build |
50 | cp -p %{_datadir}/setup.rb . | |
51 | ||
52 | %build | |
60db665a ER |
53 | %__gem_helper spec |
54 | ||
5d8a12a9 ER |
55 | %{__ruby} setup.rb config \ |
56 | --rbdir=%{ruby_rubylibdir} \ | |
0cbc2159 ER |
57 | --sodir=%{ruby_archdir} \ |
58 | --makeprog=true | |
5d8a12a9 ER |
59 | |
60 | %{__ruby} setup.rb setup | |
61 | ||
0cbc2159 ER |
62 | %{__make} -C ext/ffi_c \ |
63 | CC="%{__cc}" | |
64 | ||
5d8a12a9 | 65 | %if %{with tests} |
0cbc2159 ER |
66 | %{__make} -f libtest/GNUmakefile \ |
67 | CCACHE= \ | |
68 | CC="%{__cc}" | |
ed0d1fdb ER |
69 | ruby -Ilib:ext/ffi_c -S \ |
70 | rspec spec | |
5d8a12a9 ER |
71 | %endif |
72 | ||
73 | %install | |
74 | rm -rf $RPM_BUILD_ROOT | |
7f59e59c | 75 | install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_vendorarchdir},%{ruby_specdir}} |
5d8a12a9 ER |
76 | cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir} |
77 | install -p ext/ffi_c/ffi_c.so $RPM_BUILD_ROOT%{ruby_vendorarchdir} | |
60db665a | 78 | cp -p %{pkgname}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir} |
5d8a12a9 ER |
79 | |
80 | %clean | |
81 | rm -rf $RPM_BUILD_ROOT | |
82 | ||
83 | %files | |
84 | %defattr(644,root,root,755) | |
947bc9d0 | 85 | %doc README.md LICENSE |
5d8a12a9 ER |
86 | %{ruby_vendorlibdir}/ffi.rb |
87 | %{ruby_vendorlibdir}/ffi | |
88 | %attr(755,root,root) %{ruby_vendorarchdir}/ffi_c.so | |
7f59e59c | 89 | %{ruby_specdir}/%{pkgname}-%{version}.gemspec |