1 | Name: libffi
|
---|
2 | Version: 3.0.11
|
---|
3 | Release: 1%{?dist}
|
---|
4 | Summary: A portable foreign function interface library
|
---|
5 |
|
---|
6 | Group: System Environment/Libraries
|
---|
7 | License: BSD
|
---|
8 | URL: http://sourceware.org/libffi
|
---|
9 | Source0: http://sourceware.org/libffi/libffi-%{version}.tar.gz
|
---|
10 | BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
---|
11 |
|
---|
12 | %description
|
---|
13 | Compilers for high level languages generate code that follow certain
|
---|
14 | conventions. These conventions are necessary, in part, for separate
|
---|
15 | compilation to work. One such convention is the "calling convention".
|
---|
16 | The calling convention is a set of assumptions made by the compiler
|
---|
17 | about where function arguments will be found on entry to a function. A
|
---|
18 | calling convention also specifies where the return value for a function
|
---|
19 | is found.
|
---|
20 |
|
---|
21 | Some programs may not know at the time of compilation what arguments
|
---|
22 | are to be passed to a function. For instance, an interpreter may be
|
---|
23 | told at run-time about the number and types of arguments used to call a
|
---|
24 | given function. `Libffi' can be used in such programs to provide a
|
---|
25 | bridge from the interpreter program to compiled code.
|
---|
26 |
|
---|
27 | The `libffi' library provides a portable, high level programming
|
---|
28 | interface to various calling conventions. This allows a programmer to
|
---|
29 | call any function specified by a call interface description at run time.
|
---|
30 |
|
---|
31 | FFI stands for Foreign Function Interface. A foreign function
|
---|
32 | interface is the popular name for the interface that allows code
|
---|
33 | written in one language to call code written in another language. The
|
---|
34 | `libffi' library really only provides the lowest, machine dependent
|
---|
35 | layer of a fully featured foreign function interface. A layer must
|
---|
36 | exist above `libffi' that handles type conversions for values passed
|
---|
37 | between the two languages.
|
---|
38 |
|
---|
39 |
|
---|
40 | %package devel
|
---|
41 | Summary: Development files for %{name}
|
---|
42 | Group: Development/Libraries
|
---|
43 | Requires: %{name} = %{version}-%{release}
|
---|
44 | Requires: pkgconfig
|
---|
45 |
|
---|
46 | %description devel
|
---|
47 | The %{name}-devel package contains libraries and header files for
|
---|
48 | developing applications that use %{name}.
|
---|
49 |
|
---|
50 |
|
---|
51 | %prep
|
---|
52 | %setup -q
|
---|
53 |
|
---|
54 |
|
---|
55 | %build
|
---|
56 | export CONFIG_SHELL="/@unixroot/usr/bin/sh.exe"
|
---|
57 | export LDFLAGS="-Zbin-files -Zhigh-mem -Zomf -Zargs-wild -Zargs-resp"
|
---|
58 | export LIBS="-lurpo -lmmap"
|
---|
59 | %configure \
|
---|
60 | --disable-static \
|
---|
61 | "--cache-file=%{_topdir}/cache/%{name}-%{_target_cpu}.cache"
|
---|
62 | make %{?_smp_mflags}
|
---|
63 |
|
---|
64 |
|
---|
65 | %install
|
---|
66 | rm -rf $RPM_BUILD_ROOT
|
---|
67 | make install DESTDIR=$RPM_BUILD_ROOT
|
---|
68 | find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
|
---|
69 | rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
---|
70 |
|
---|
71 |
|
---|
72 | %clean
|
---|
73 | rm -rf $RPM_BUILD_ROOT
|
---|
74 |
|
---|
75 | %files
|
---|
76 | %defattr(-,root,root,-)
|
---|
77 | %doc LICENSE README
|
---|
78 | #%{_libdir}/*.so.*
|
---|
79 |
|
---|
80 | %files devel
|
---|
81 | %defattr(-,root,root,-)
|
---|
82 | %{_libdir}/pkgconfig/*.pc
|
---|
83 | %{_libdir}/%{name}-%{version}
|
---|
84 | %{_libdir}/*.a
|
---|
85 | %{_mandir}/man3/*
|
---|
86 | %{_infodir}/libffi.info
|
---|
87 |
|
---|
88 | %changelog
|
---|
89 | * Sat Oct 27 2012 yd
|
---|
90 | - initial unixroot build.
|
---|