]> git.pld-linux.org Git - packages/ruby-ffi.git/blob - ruby-ffi.spec
b1863bd2042297b46590f863a7d37a3cfe38e64a
[packages/ruby-ffi.git] / ruby-ffi.spec
1 #
2 # Conditional build:
3 %bcond_without  tests           # build without tests
4
5 %define pkgname ffi
6 Summary:        FFI Extensions for Ruby
7 Summary(pl.UTF-8):      Rozszerzenia FFI dla języka Ruby
8 Name:           ruby-%{pkgname}
9 Version:        1.9.6
10 Release:        1
11 License:        BSD
12 Group:          Development/Languages
13 Source0:        http://rubygems.org/gems/%{pkgname}-%{version}.gem
14 # Source0-md5:  8606c263037322ae957e1959245841be
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:  ruby-devel
21 BuildRequires:  setup.rb
22 %if %{with tests}
23 BuildRequires:  ruby-rspec
24 BuildRequires:  ruby-rspec-mocks
25 %endif
26 ExclusiveArch:  %{ix86} %{x8664} arm ia64 mips mipsel ppc s390 s390x sparc sparcv9
27 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
28
29 %description
30 Ruby-FFI is a Ruby extension for programmatically loading dynamic
31 libraries, binding functions within them, and calling those functions
32 from Ruby code. Moreover, a Ruby-FFI extension works without changes
33 on Ruby and JRuby. Discover why should you write your next extension
34 using Ruby-FFI here: <http://wiki.github.com/ffi/ffi/why-use-ffi>.
35
36 %description -l pl.UTF-8
37 Ruby-FFI to rozszerzenie języka Ruby do programowego ładowania
38 bibliotek dynamicznych, wiązania obecnych w nich funkcji oraz
39 wywoływania tych funkcji z kodu w języku Ruby. Co więcej, rozszerzenie
40 Ruby-FFI działa bez zmian w implementacji Ruby oraz JRuby. Informacje,
41 dlaczego nowe rozszerzenia powinny używać Ruby-FFI, można znaleźć na
42 stronie <http://wiki.github.com/ffi/ffi/why-use-ffi>.
43
44 %prep
45 %setup -q -n %{pkgname}-%{version}
46 %patch0 -p1
47
48 # be sure to use system ffi
49 %{__rm} -r ext/ffi_c/libffi
50
51 # drop bundled blobs (compiled for osx)
52 %{__rm} spec/ffi/fixtures/*.o
53
54 # drop not our targets
55 %{__rm} -r lib/ffi/platform/*-{aix,cygwin,darwin,gnu,*bsd,solaris,windows}
56 # provide only definitions for package architecture
57 %ifnarch arm
58 %{__rm} -r lib/ffi/platform/arm-*
59 %endif
60 %ifnarch %{ix86}
61 %{__rm} -r lib/ffi/platform/i386-*
62 %endif
63 %ifnarch ia64
64 %{__rm} -r lib/ffi/platform/ia64-*
65 %endif
66 %ifnarch mips
67 %{__rm} -r lib/ffi/platform/mips-*
68 %endif
69 %ifnarch mipsel
70 %{__rm} -r lib/ffi/platform/mipsel-*
71 %endif
72 %ifnarch powerpc
73 %{__rm} -r lib/ffi/platform/powerpc-*
74 %endif
75 %ifnarch s390
76 %{__rm} -r lib/ffi/platform/s390-*
77 %endif
78 %ifnarch s390x
79 %{__rm} -r lib/ffi/platform/s390x-*
80 %endif
81 %ifnarch sparc
82 %{__rm} -r lib/ffi/platform/sparc-*
83 %endif
84 %ifnarch %{x8664}
85 %{__rm} -r lib/ffi/platform/x86_64-*
86 %endif
87
88 # ext build
89 cp -p %{_datadir}/setup.rb .
90
91 # cleanup backups after patching
92 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
93
94 %build
95 %__gem_helper spec
96
97 %{__ruby} setup.rb config \
98         --rbdir=%{ruby_rubylibdir} \
99         --sodir=%{ruby_archdir} \
100         --makeprog=true
101
102 %{__ruby} setup.rb setup
103
104 %{__make} -C ext/ffi_c \
105         CC="%{__cc}"
106
107 %if %{with tests}
108 %{__make} -f libtest/GNUmakefile \
109         CCACHE= \
110         OFLAGS='%{rpmcflags} $(JFLAGS)' \
111         CC="%{__cc}"
112
113 %{__make} -C spec/ffi/fixtures \
114         CCACHE= \
115         OFLAGS='%{rpmcflags} $(JFLAGS)' \
116         CC="%{__cc}"
117
118 ruby -Ilib:ext/ffi_c -S \
119         rspec spec
120 %endif
121
122 %install
123 rm -rf $RPM_BUILD_ROOT
124 install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_vendorarchdir}/ffi,%{ruby_specdir}}
125 cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
126 install -p ext/ffi_c/ffi_c.so $RPM_BUILD_ROOT%{ruby_vendorarchdir}
127 %{__mv} $RPM_BUILD_ROOT%{ruby_vendorlibdir}/ffi/platform $RPM_BUILD_ROOT%{ruby_vendorarchdir}/ffi
128 cp -p %{pkgname}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
129
130 %clean
131 rm -rf $RPM_BUILD_ROOT
132
133 %files
134 %defattr(644,root,root,755)
135 %doc README.md LICENSE
136 %{ruby_vendorlibdir}/ffi.rb
137 %{ruby_vendorlibdir}/ffi
138 %attr(755,root,root) %{ruby_vendorarchdir}/ffi_c.so
139 %dir %{ruby_vendorarchdir}/ffi
140 %{ruby_vendorarchdir}/ffi/platform
141 %{ruby_specdir}/%{pkgname}-%{version}.gemspec
This page took 0.02986 seconds and 3 git commands to generate.