]> git.pld-linux.org Git - packages/uClibc.git/blob - uClibc.spec
- rebuild
[packages/uClibc.git] / uClibc.spec
1 Summary:        C library optimized for size
2 Summary(pl):    Biblioteka C zoptymalizowana na rozmiar
3 Name:           uClibc
4 Version:        0.9.28
5 Release:        1.4
6 Epoch:          2
7 License:        LGPL
8 Group:          Libraries
9 Source0:        http://uclibc.org/downloads/%{name}-%{version}.tar.bz2
10 # Source0-md5:  1ada58d919a82561061e4741fb6abd29
11 Patch0:         %{name}-newsoname.patch
12 Patch1:         %{name}-alpha.patch
13 Patch2:         %{name}-toolchain-wrapper.patch
14 Patch3:         %{name}-targetcpu.patch
15 Patch4:         %{name}-O_DIRECT.patch
16 Patch5:         %{name}-sparc.patch
17 Patch6:         %{name}-x86_64.patch
18 Patch7:         %{name}-ppc-ioctl-errno.patch
19 Patch8:         %{name}-ppc-syscall.patch
20 Patch9:         %{name}-ppc-uint128.patch
21 Patch10:        %{name}-syscallerror.patch
22 URL:            http://uclibc.org/
23 BuildRequires:  binutils-gasp
24 BuildRequires:  gcc >= 5:3.0
25 BuildRequires:  sed >= 4.0
26 BuildRequires:  which
27 ExclusiveArch:  alpha %{ix86} ppc sparc sparc64 sparcv9 %{x8664}
28 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
29
30 # note: the 2nd '\' is needed (some shell expansions?)
31 %define         TARGET_ARCH     %(echo %{_target_cpu} | sed -e 's/i.86\\|athlon\\|pentium./i386/;s/ppc/powerpc/;s/amd64\\|ia32e/x86_64/')
32
33 %description
34 Small libc for building embedded applications.
35
36 %description -l pl
37 Ma³a libc do budowania aplikacji wbudowanych.
38
39 %package devel
40 Summary:        Development files for uClibc
41 Summary(pl):    Pliki dla programistów uClibc
42 Group:          Development/Libraries
43 Requires:       %{name} = %{epoch}:%{version}-%{release}
44 Requires:       binutils
45 Requires:       linux-libc-headers
46 %requires_eq    gcc
47
48 %description devel
49 Small libc for building embedded applications.
50
51 %description devel -l pl
52 Ma³a libc do budowania aplikacji wbudowanych.
53
54 %package static
55 Summary:        Static uClibc libraries
56 Summary(pl):    Biblioteki statyczne uClibc
57 Group:          Development/Libraries
58 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
59 Provides:       libc-static
60
61 %description static
62 Static uClibc libraries.
63
64 %description static -l pl
65 Biblioteki statyczne uClibc.
66
67 %prep
68 %setup -q
69 %patch0 -p1
70 %patch1 -p1
71 %patch2 -p1
72 %patch3 -p1
73 %patch4 -p1
74 %patch5 -p1
75 %patch6 -p1
76 %patch7 -p1
77 %patch8 -p1
78 %patch9 -p1
79 %patch10 -p1
80
81 sed -i -e '
82 %ifarch sparc sparc64 sparcv9
83         s/default TARGET_i386/default TARGET_sparc/
84 %endif
85 %ifarch alpha
86         s/default TARGET_i386/default TARGET_alpha/
87 %endif
88 %ifarch ppc ppc64
89         s/default TARGET_i386/default TARGET_powerpc/
90 %endif
91 %ifarch %{x8664}
92         s/default TARGET_i386/default TARGET_x86_64/
93 %endif
94         ' extra/Configs/Config.in
95
96 # ldso on x86_64 not ready yet (missing resolve.S)
97 sed -i -e '/HAS_NO_THREADS/a\\n\tselect HAVE_NO_SHARED\n\tselect ARCH_HAS_NO_LDSO' \
98         extra/Configs/Config.x86_64
99 sed -i -e '/HAS_NO_THREADS/d' extra/Configs/Config.alpha
100
101 %ifarch sparc sparc64 sparcv9
102 ln -sf /usr/include/asm-sparc include/asm-sparc
103 ln -sf /usr/include/asm-sparc64 include/asm-sparc64
104 %{__perl} -pi -e 's/^(rm.*asm)\*/$1/' extra/scripts/fix_includes.sh
105 %endif
106
107 %build
108 %{__make} defconfig \
109         TARGET_ARCH="%{TARGET_ARCH}" \
110         TARGET_CPU="%{_target_cpu}" \
111         KERNEL_SOURCE=%{_prefix} \
112         HOSTCC="%{__cc}" \
113         HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
114         OPTIMIZATION="%{rpmcflags} -Os" \
115         CC="%{__cc}"
116
117 mv -f .config .config.tmp
118 sed -e 's/^.*UCLIBC_HAS_IPV6.*$/UCLIBC_HAS_IPV6=y/;
119         s/^.*DO_C99_MATH.*$/DO_C99_MATH=y/;
120         s/^.*UCLIBC_HAS_RPC.*/UCLIBC_HAS_RPC=y\n# UCLIBC_HAS_FULL_RPC is not set/;
121         s/^.*UCLIBC_HAS_SYS_SIGLIST.*$/UCLIBC_HAS_SYS_SIGLIST=y/;
122         s,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX="$(RUNTIME_PREFIX)/lib",
123         s/^.*UCLIBC_HAS_PRINTF_M_SPEC.*$/UCLIBC_HAS_PRINTF_M_SPEC=y/;
124         ' .config.tmp > .config
125 %{?debug:echo 'DODEBUG=y' >> .config}
126 %{?debug:echo 'SUPPORT_LD_DEBUG=y' >> .config}
127
128 # force regeneration after .config changes
129 rm -f include/bits/uClibc_config.h
130
131 # note: defconfig and all must be run in separate make process because of macros
132 %{__make} \
133         TARGET_ARCH="%{TARGET_ARCH}" \
134         TARGET_CPU="%{_target_cpu}" \
135         KERNEL_SOURCE=%{_prefix} \
136         HOSTCC="%{__cc}" \
137         HOSTCFLAGS="%{rpmcflags} %{rpmldflags}" \
138         OPTIMIZATION="%{rpmcflags} -Os" \
139         CC="%{__cc}"
140
141 %install
142 rm -rf $RPM_BUILD_ROOT
143 install -d $RPM_BUILD_ROOT%{_bindir}
144
145 %{__make} install \
146         NATIVE_CC="%{__cc}" \
147         NATIVE_CFLAGS="%{rpmcflags} %{rpmldflags}" \
148         TARGET_ARCH="%{TARGET_ARCH}" \
149         TARGET_CPU="%{_target_cpu}" \
150         CC="%{__cc}" \
151         PREFIX=$RPM_BUILD_ROOT
152
153 # these links are *needed* (by stuff in bin/)
154 for f in $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/bin/*; do
155         mv -f $f $RPM_BUILD_ROOT%{_bindir}
156         ln -sf ../../bin/`basename $f` $f
157 done
158
159 for f in c++ cc g++ gcc ld; do
160         ln -sf /usr/bin/%{_target_cpu}-uclibc-$f \
161                 $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/bin/$f
162 done
163
164 rm -rf $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/{linux,asm*}
165 ln -sf /usr/include/asm $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm
166 %ifarch %{x8664}
167         ln -sf /usr/include/asm-%{TARGET_ARCH} $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm-%{TARGET_ARCH}
168 %endif
169 %ifarch sparc sparc64 sparcv9
170 ln -sf /usr/include/asm-sparc $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm-sparc
171 ln -sf /usr/include/asm-sparc64 $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/asm-sparc64
172 %endif
173 ln -sf /usr/include/linux $RPM_BUILD_ROOT/usr/%{_target_cpu}-linux-uclibc/usr/include/linux
174
175 %clean
176 rm -rf $RPM_BUILD_ROOT
177
178 %files
179 %defattr(644,root,root,755)
180 %doc Changelog* DEDICATION.mjn3 MAINTAINERS README TODO docs/threads.txt
181 %dir %{_prefix}/*-linux-uclibc
182 %ifarch %{ix86} ppc sparc sparc64 sparcv9
183 %dir %{_prefix}/*-linux-uclibc/lib
184 %attr(755,root,root) %{_prefix}/*-linux-uclibc/lib/*.so*
185 %endif
186
187 %files devel
188 %defattr(644,root,root,755)
189 %doc docs/uclibc.org/*
190 %attr(755,root,root) %{_bindir}/*
191 %{_prefix}/*-linux-uclibc/usr/lib/*.o
192 %dir %{_prefix}/*-linux-uclibc/usr
193 %dir %{_prefix}/*-linux-uclibc/usr/bin
194 %attr(755,root,root) %{_prefix}/*-linux-uclibc/usr/bin/*
195 %dir %{_prefix}/*-linux-uclibc/usr/lib
196 %ifarch %{ix86} ppc sparc sparc64 sparcv9
197 %attr(755,root,root) %{_prefix}/*-linux-uclibc/usr/lib/*.so
198 %endif
199 %{_prefix}/*-linux-uclibc/usr/include
200
201 %files static
202 %defattr(644,root,root,755)
203 %{_prefix}/*-linux-uclibc/usr/lib/lib*.a
This page took 0.070086 seconds and 3 git commands to generate.