diff options
Diffstat (limited to 'packaging/libffi.spec')
-rw-r--r-- | packaging/libffi.spec | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/packaging/libffi.spec b/packaging/libffi.spec new file mode 100644 index 0000000..7652125 --- /dev/null +++ b/packaging/libffi.spec @@ -0,0 +1,122 @@ +Name: libffi +Summary: A portable foreign function interface library +Version: 3.0.9 +Release: 100 +Group: System/Libraries +License: BSD +URL: http://sourceware.org/libffi +Source0: ftp://sourceware.org/pub/libffi/libffi-%{version}.tar.gz +Patch0: 0001-x86-Align-the-stack-to-16-bytes-before-making-the-ca.patch +Patch1: includedir.patch +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig + + +%description +Compilers for high level languages generate code that follow certain +conventions. These conventions are necessary, in part, for separate +compilation to work. One such convention is the "calling convention". +The calling convention is a set of assumptions made by the compiler +about where function arguments will be found on entry to a function. A +calling convention also specifies where the return value for a function +is found. + +Some programs may not know at the time of compilation what arguments +are to be passed to a function. For instance, an interpreter may be +told at run-time about the number and types of arguments used to call a +given function. `Libffi' can be used in such programs to provide a +bridge from the interpreter program to compiled code. + +The `libffi' library provides a portable, high level programming +interface to various calling conventions. This allows a programmer to +call any function specified by a call interface description at run time. + +FFI stands for Foreign Function Interface. A foreign function +interface is the popular name for the interface that allows code +written in one language to call code written in another language. The +`libffi' library really only provides the lowest, machine dependent +layer of a fully featured foreign function interface. A layer must +exist above `libffi' that handles type conversions for values passed +between the two languages. + + + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires(post): /sbin/install-info +Requires(postun): /sbin/install-info + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + + +%prep +%setup -q -n %{name}-%{version} + +# 0001-x86-Align-the-stack-to-16-bytes-before-making-the-ca.patch +%patch0 -p1 +# includedir.patch +%patch1 -p1 +# >> setup +# << setup + +%build +# >> build pre +# << build pre + +%reconfigure --disable-static \ + --includedir=%{_includedir} + +make %{?jobs:-j%jobs} + +# >> build post +# << build post +%install +rm -rf %{buildroot} +# >> install pre +# << install pre +%make_install + +# >> install post +rm -f $RPM_BUILD_ROOT%{_infodir}/dir +# << install post + + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + + + +%post devel +%install_info --info-dir=%_infodir %{_infodir}/libffi.info.gz + +%postun devel +if [ $1 = 0 ] ;then +%install_info_delete --info-dir=%{_infodir} %{_infodir}/libffi.info.gz +fi + +%files +%defattr(-,root,root,-) +# >> files +%doc LICENSE README +%{_libdir}/*.so.* +# << files + + +%files devel +%defattr(-,root,root,-) +# >> files devel +%{_prefix}/include/ffi.h +%{_prefix}/include/ffitarget.h +%{_libdir}/pkgconfig/*.pc +%{_libdir}/*.so +%doc %{_mandir}/man3/*.gz +%{_infodir}/libffi.info.gz +# << files devel + |