]> git.pld-linux.org Git - packages/dietlibc.git/blob - dietlibc.spec
always pass MYARCH explicitly
[packages/dietlibc.git] / dietlibc.spec
1 # Conditional build:
2 %bcond_without  ssp     # stack-smashing protector
3 %bcond_with     dynamic # dynamic lib support
4
5 %ifnarch %{ix86} %{x8664} arm
6 %undefine       with_dynamic
7 %endif
8
9 Summary:        C library optimized for size
10 Summary(pl.UTF-8):      Biblioteka standardowa C zoptymalizowana na rozmiar
11 Summary(pt_BR.UTF-8):   libc pequena otimizada para tamanho
12 Name:           dietlibc
13 Version:        0.33
14 Release:        5
15 Epoch:          2
16 License:        GPL v2
17 Group:          Development/Libraries
18 Source0:        http://www.fefe.de/dietlibc/%{name}-%{version}.tar.bz2
19 # Source0-md5:  9d541b9a6623b04ec12e5248b82db7c0
20 Patch0:         %{name}-ppc.patch
21 Patch1:         %{name}-opt.patch
22 Patch2:         %{name}-platform.patch
23 Patch3:         %{name}-guard.patch
24 Patch4:         %{name}-arm.patch
25 Patch5:         %{name}-diet-m.patch
26 Patch6:         %{name}-nostrip.patch
27 Patch7:         %{name}-stackgap-instead-of-ssp.patch
28 Patch8:         umount-arch.patch
29 Patch9:         %{name}-memalign.patch
30 Patch10:        %{name}-getsubopt.patch
31 Patch11:        %{name}-devmacros.patch
32 Patch12:        %{name}-notify.patch
33 Patch13:        x32-fixes.patch
34 Patch14:        %{name}-no-vsyscall.patch
35 Patch100:       git.patch
36 URL:            http://www.fefe.de/dietlibc/
37 BuildRequires:  rpmbuild(macros) >= 1.566
38 BuildRequires:  sed >= 4.0
39 %ifarch sparc sparcv9
40 BuildRequires:  sparc32
41 %endif
42 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43
44 %define         dietprefix      %{_prefix}/lib/dietlibc
45 # for some reason known only to rpm there must be "\\|" not "\|" here
46 %define         libarch         %(echo %{_target_cpu} | sed -e 's/i.86\\|pentium.\\|athlon/i386/;s/amd64/x86_64/;s/armv.*/arm/;s/sparcv.*/sparc/')
47
48 %description
49 The diet libc is a libc that is optimized for small size. It can be
50 used to create small statically linked binaries for Linux on alpha,
51 arm, hppa, ia64, i386, mips, s390, sparc, sparc64, ppc and x86_64.
52
53 %description -l pl.UTF-8
54 diet libc to biblioteka libc zoptymalizowana pod kątem rozmiaru.
55 Może być używana do tworzenia małych, statycznie zlinkowanych
56 binariów dla Linuksa na architekturach alpha, arm, hppa, ia64, i386,
57 mips, s390, sparc, sparc64, ppc i x86_64.
58
59 %description -l pt_BR.UTF-8
60 A diet libc e' uma libc otimizada para criar pequenos binários
61 estaticamente linkados para Linux.
62
63 %package libs
64 Summary:        Shared dietlibc libraries
65 Summary(pl.UTF-8):      Biblioteki współdzielone dietlibc
66 Group:          Libraries
67
68 %description libs
69 This package contains the shared dietlibc libraries.
70
71 %description libs -l pl.UTF-8
72 Ten pakiet zawiera biblioteki współdzielone dietlibc.
73
74 %package devel
75 Summary:        Development files for dietlibc
76 Summary(pl.UTF-8):      Pliki dla programistów używających dietlibc
77 Summary(pt_BR.UTF-8):   libc pequena otimizada para tamanho
78 Group:          Development/Libraries
79 Requires:       %{name} = %{epoch}:%{version}-%{release}
80
81 %description devel
82 Small libc for building embedded applications - development files.
83
84 %description devel -l pl.UTF-8
85 Niewielka libc do budowania aplikacji wbudowanych - pliki dla
86 programistów.
87
88 %package static
89 Summary:        Static libraries for dietlibc
90 Summary(pl.UTF-8):      Biblioteki statyczne dla dietlibc
91 Group:          Development/Libraries
92 Requires:       %{name}-devel = %{epoch}:%{version}-%{release}
93
94 %description static
95 Small libc for building embedded applications - static libraries.
96
97 %description static -l pl.UTF-8
98 Niewielka libc do budowania aplikacji wbudowanych - biblioteki
99 statyczne.
100
101 %prep
102 %setup -q
103 %undos arm/md5asm.S
104 %patch100 -p1
105 %patch0 -p1
106 %patch1 -p1
107 %patch2 -p1
108 %patch3 -p1
109 %patch4 -p1
110 %patch5 -p1
111 %patch6 -p1
112 %{!?with_ssp:%patch7 -p1}
113 %patch8 -p1
114 %patch9 -p1
115 %patch10 -p1
116 %patch11 -p1
117 %patch12 -p1
118 %patch13 -p1
119 %patch14 -p1
120
121 %if "%{cc_version}" < "3.4"
122 %{__sed} -i -e '/CFLAGS/ s/-Wextra//' Makefile
123 %endif
124
125 %build
126 export OPTFLAGS="%{rpmcflags}%{?with_ssp: -fno-stack-protector} -fno-strict-aliasing -Wa,--noexecstack"
127 CC="%{__cc}"
128 %ifarch sparc sparcv9
129 sparc32 \
130 %endif
131 %{__make} -j1 all \
132 %ifarch x32
133         MYARCH=x32 \
134 %endif
135         prefix=%{dietprefix} \
136         CC="${CC#*ccache }"
137
138 %if %{with dynamic}
139 # 'dyn' target is not SMP safe
140 %{__make} -j1 dyn \
141 %ifarch x32
142         MYARCH=x32 \
143 %endif
144         prefix=%{dietprefix} \
145         CC="${CC}"
146 %endif
147
148 %install
149 rm -rf $RPM_BUILD_ROOT
150 install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_bindir},%{_mandir}/man1}
151
152 %ifarch sparc sparcv9
153 sparc32 \
154 %endif
155 %{__make} install \
156 %ifarch x32
157         MYARCH=x32 \
158 %endif
159         DESTDIR=$RPM_BUILD_ROOT \
160         prefix=%{dietprefix}
161
162 mv $RPM_BUILD_ROOT%{dietprefix}/bin/* $RPM_BUILD_ROOT%{_bindir}
163 mv $RPM_BUILD_ROOT%{dietprefix}/man/man1/* $RPM_BUILD_ROOT%{_mandir}/man1
164 rm -rf $RPM_BUILD_ROOT%{dietprefix}/{bin,man}
165 rm -f $RPM_BUILD_ROOT%{_bindir}/diet-dyn
166 rm -f $RPM_BUILD_ROOT%{_bindir}/dnsd
167
168 cat > $RPM_BUILD_ROOT%{_bindir}/%{_target_cpu}-dietlibc-gcc <<'EOF'
169 #!/bin/sh
170 exec %{_bindir}/diet gcc "$@"
171 EOF
172
173 %clean
174 rm -rf $RPM_BUILD_ROOT
175
176 %files
177 %defattr(644,root,root,755)
178 %doc AUTHOR BUGS CAVEAT CHANGES FAQ README THANKS TODO
179 %dir %{dietprefix}
180 %dir %{dietprefix}/lib-%{libarch}
181
182 %if %{with dynamic}
183 %files libs
184 %defattr(644,root,root,755)
185 %attr(755,root,root) %{dietprefix}/lib-%{libarch}/*.so
186 %{_sysconfdir}/diet.ld.conf
187 %endif
188
189 %files devel
190 %defattr(644,root,root,755)
191 %attr(755,root,root) %{_bindir}/*-dietlibc-gcc
192 %attr(755,root,root) %{_bindir}/diet
193 %attr(755,root,root) %{_bindir}/elftrunc
194 %{dietprefix}/lib-%{libarch}/*.o
195 %{dietprefix}/include
196 %{_mandir}/man1/diet.1*
197
198 %files static
199 %defattr(644,root,root,755)
200 %{dietprefix}/lib-%{libarch}/*.a
This page took 0.113969 seconds and 3 git commands to generate.