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