]> git.pld-linux.org Git - packages/gcc4.git/blob - gcc4.spec
- cleaned up mess with libstdc++
[packages/gcc4.git] / gcc4.spec
1 %define         STDC_VERSION 2.10.0
2 %define         GCJ_VERSION 2.95
3 Summary:        GNU C Compiler
4 Summary(pl):    Kompilator GNU
5 Name:           gcc
6 Version:        2.95.1
7 Release:        1
8 Copyright:      GPL
9 Group:          Development/Languages
10 Group(pl):      Programowanie/Jêzyki
11 Source0:        ftp://ftp.gnu.org/pub/gnu/gcc/%{name}-%{version}.tar.bz2
12 Source1:        ftp://sourceware.cygnus.com/pub/java/libgcj-%{GCJ_VERSION}.tar.gz
13 Patch0:         gcc-info.patch
14 Patch1:         gcc-libgcj-config.patch
15 Patch2:         gcc-pld-linux.patch
16 Patch3:         gcc-libstdc++.patch
17 Requires:       binutils >= 2.9.1.0.25
18 Requires:       cpp 
19 URL:            http://www.gnu.org/
20 BuildRoot:      /tmp/%{name}-%{version}-root
21
22 %description
23 A compiler aimed at integrating all the optimizations and features
24 necessary for a high-performance and stable development environment.
25
26 %description -l pl
27 Kompilator, posiadaj±cy du¿e mo¿liwo¶ci optymalizacyjne niezbêdne do
28 wyprodukowania szybkiego i stablinego kodu wynikowego.
29
30 %package c++
31 Summary:        C++ support for gcc
32 Summary(fr):    Support C++ pour le compilateur gcc.
33 Summary(pl):    Wspomaganie C++ dla kompilatora gcc
34 Summary(tr):    gcc için C++ desteði
35 Group:          Development/Languages
36 Group(pl):      Programowanie/Jêzyki
37 Obsoletes:      egcc-c++
38
39 %description c++
40 This package adds C++ support to the GNU C compiler. It includes support
41 for most of the current C++ specification, including templates and
42 exception handling. It does not include a standard C++ library, which
43 is available separately.
44
45 %description -l de c++
46 Dieses Paket enthält die C++-Unterstützung für den GNU-C-Compiler. Es
47 unterstützt die aktuelle C++-Spezifikation, inkl. Templates und
48 Ausnahmeverarbeitung. Eine C++-Standard-Library ist nicht enthalten - sie ist
49 getrennt erhältlich.
50
51 %description -l fr c++
52 Ce package ajoute un support C++ au compilateur c GNU. Il comprend un
53 support pour la plupart des spécifications actuelles de C++, dont les 
54 modéles et la gestion des exceptions. Il ne comprend pas une bibliothéque
55 C++ standard, qui est disponible séparément.
56
57 %description -l pl c++
58 Programy z tego pakietu zapewniaj± wsparcie do C++ do GNU C kompilatora.
59 Posiada wspomaganie dla du¿ej ilo¶ci obecnych specyfikacji C++, nie posiada
60 natomiast standardowych bibliotek C++, które s± w oddzielnym pakiecie.
61
62 %description -l tr c++
63 Bu paket, GNU C derleyicisine C++ desteði ekler. 'Template'ler ve aykýrý durum
64 iþleme gibi çoðu güncel C++ tanýmlarýna uyar. Standart C++ kitaplýðý bu
65 pakette yer almaz.
66
67 %package objc
68 Summary:        Objective C support for gcc
69 Summary(de):    Objektive C-Unterstützung für gcc
70 Summary(fr):    Gestion d'Objective C pour gcc
71 Summary(pl):    Wspomaganie obiektowego C dla kompilatora gcc
72 Summary(tr):    gcc için Objective C desteði
73 Group:          Development/Languages
74 Group(pl):      Programowanie/Jêzyki
75 Obsoletes:      egcc-objc
76
77 %description objc
78 This package adds Objective C support to the GNU C compiler. Objective C is
79 a object oriented derivative of the C language, mainly used on systems
80 running NeXTSTEP. This package does not include the standard objective C
81 object library.
82
83 %description -l de objc
84 Dieses Paket ergänzt den GNU-C-Compiler durch Objective-C-Support. Objective
85 C ist ein objektorientiertes Derivat von C, das zur Hauptsache auf Systemen
86 mit NeXTSTEP zum Einsatz kommt. Die Standard-Objective-C-Objekt-Library ist
87 nicht Teil des Pakets.
88
89 %description -l fr objc
90 Ce package ajoute un support Objective C au compilateur C GNU. L'Objective C
91 est un langage orienté objetdérivé du langage C, principalement utilisé sur
92 les systèmes NeXTSTEP. Ce package n'inclue pas la bibliothéque Objective C
93 standard.
94
95 %description -l pl objc
96 Ten pakiet jest wsparciem obiektowego C dla kompilatora gcc.  W pakiecie nie
97 ma jeszcze bibliotek C-obj.
98
99 %description -l tr objc
100 Bu paket, GNU C derleyicisine Objective C desteði ekler. Objective C, C
101 dilinin nesne yönelik bir türevidir ve NeXTSTEP altýnda çalýþan sistemlerde
102 yaygýn olarak kullanýlýr. Standart Objective C nesne kitaplýðý bu pakette
103 yer almaz.
104
105 %package g77
106 Summary:        Fortran 77 support for gcc
107 Summary(pl):    Wspomaganie Fortran 77 dla gcc
108 Group:          Development/Languages
109 Group(pl):      Programowanie/Jêzyki
110 Prereq:         /sbin/install-info
111
112 %description g77
113 This apckage adds support for compiling Fortran 77 programs with the GNU
114 compiler.
115
116 %description -l pl g77
117 Ten pakiet jest wspomaganiem Fortran 77 dla kompilatora gcc.
118 Jest u¿yteczny kompilowania programów pisanych w jêzyku Fortran 77.
119
120 %package chill
121 Summary:        CHILL support for gcc
122 Summary(pl):    Wspomoganie CHILL dla gcc
123 Group:          Development/Languages
124 Group(pl):      Programowanie/Jêzyki
125 Requires:       %{name} = %{version}
126 Prereq:         /sbin/install-info
127
128 %description chill
129 This package adds support for compiling CHILL programs with the GNU
130 compiler.
131
132 Chill is the "CCITT High-Level Language", where CCITT is the old
133 name for what is now ITU, the International Telecommunications Union.
134 It is is language in the Modula2 family, and targets many of the
135 same applications as Ada (especially large embedded systems).
136 Chill was never used much in the United States, but is still
137 being used in Europe, Brazil, Korea, and other places.
138
139 %package java
140 Summary:        Java support for gcc
141 Summary(pl):    Wspomoganie Java dla gcc
142 Group:          Development/Languages
143 Group(pl):      Programowanie/Jêzyki
144 Requires:       %{name} = %{version}
145 Requires:       %{name}-libgcj = %{version}
146
147 %description java
148 This package adds experimental support for compiling Java(tm) programs and
149 bytecode into native code. To use this you will also need the gcc-libgcj
150 package.
151
152 %package libgcj
153 Summary:        Java runtime library for gcc
154 Group:          Libraries
155 URL:            http://sourceware.cygnus.com/java/
156 Requires:       zip >= 2.1
157
158 %description libgcj
159 The Java runtime library. You will need this package to compile your Java
160 programs using the gcc Java compiler (gcj).
161
162 %package libgcj-static
163 Summary:        Static java runtime library for gcc
164 Group:          Development/Libraries
165 URL:            http://sourceware.cygnus.com/java/
166 Requires:       %{name}-libgcj = %{version}
167
168 %description libgcj-static
169 The static java runtime library. You will need this package to staticly
170 compile your Java programs using the gcc Java compiler (gcj).
171
172 %package -n libstdc++
173 Summary:        GNU c++ library
174 Summary(pl):    Biblioteki GNU C++ 
175 Group:          Libraries
176 Group(pl):      Biblioteki
177 Version:        %{STDC_VERSION}
178 Obsoletes:      libg++
179
180 %description -n libstdc++
181 This is the GNU implementation of the standard C++ libraries, along with
182 additional GNU tools. This package includes the shared libraries
183 necessary to run C++ applications.
184
185 %description -l de -n libstdc++
186 Dies ist die GNU-Implementierung der Standard-C++-Libraries mit weiteren
187 GNU-Tools. Dieses Paket enthält die zum Ausführen von C++-Anwendungen
188 erforderlichen gemeinsam genutzten Libraries.
189
190 %description -l fr -n libstdc++
191 Ceci est l'implémentation GNU des librairies C++ standard, ainsi que des
192 outils GNU supplémentaires. Ce package comprend les librairies partagées
193 nécessaires à l'exécution d'application C++.
194
195 %description -l pl -n libstdc++  
196 Pakiet ten zawiera biblioteki bêd±ce inplementacj± standardowych bibliotek
197 C++, znajduj± siê w nim biblioteki dynamiczne niezbêdne do uruchomienia
198 aplikacji C++.
199
200 %description -l tr -n libstdc++
201 Bu paket, standart C++ kitaplýklarýnýn GNU gerçeklemesidir ve C++
202 uygulamalarýnýn koþturulmasý için gerekli kitaplýklarý içerir.
203
204 %package -n libstdc++-devel
205 Summary:        Header files and libraries for C++ development
206 Summary(de):    Header-Dateien und Libraries zur Entwicklung mit C++
207 Summary(fr):    Fichiers d'en-tête et biblitothèques pour développer en C++.
208 Summary(tr):    C++ ile program geliþtirmek için gerekli dosyalar
209 Group:          Development/Libraries
210 Group(pl):      Programowanie/Biblioteki
211 Version:        %{STDC_VERSION}
212 Requires:       libstdc++ = %{STDC_VERSION}
213 Obsoletes:      libg++-devel
214
215 %description -n libstdc++-devel
216 This is the GNU implementation of the standard C++ libraries.  This package
217 includes the header files and libraries needed for C++ development.
218
219 %description -l pl -n libstdc++-devel
220 Pakiet ten zawiera biblioteki bêd±ce inplementacj± standardowych bibliotek
221 C++, znajduj± siê w nim biblioteki i pliki nag³ówków wykorzystywane do
222 programowania w jêzyku C++.
223
224 %package -n libstdc++-static
225 Summary:        Static c++ standard library
226 Summary(pl):    Biblioeka statyczna c++
227 Group:          Development/Libraries
228 Group(pl):      Programowanie/Biblioteki
229 Version:        %{STDC_VERSION}
230 Requires:       libstdc++-devel = %{STDC_VERSION}
231
232 %description -n libstdc++-static
233 Static c++ standard library.
234
235 %description -l pl -n libstdc++-static
236 Biblioeka statyczna c++.
237
238 %package -n cpp
239 Summary:        The C Pre Processor
240 Summary(pl):    Preprocesor C
241 Group:          Development/Languages
242 Group(pl):      Programowanie/Jêzyki
243 Prereq:         /sbin/install-info
244 Obsoletes:      egcs-cpp
245
246 %description -n cpp
247 The C preprocessor is a "macro processor" that is used automatically by the
248 C compiler to transform your program before actual compilation. It is called
249 a macro processor because it allows you to define "macros", which are brief
250 abbreviations for longer constructs.
251
252 The C preprocessor provides four separate facilities that you can use as you
253 see fit:
254
255 * Inclusion of header files.  These are files of declarations that
256   can be substituted into your program.
257 * Macro expansion.  You can define "macros", which are abbreviations for
258   arbitrary fragments of C code, and then the C preprocessor will replace
259   the macros with their definitions throughout the program.
260 * Conditional compilation.  Using special preprocessing directives,
261   you can include or exclude parts of the program according to various
262   conditions.
263 * Line control.  If you use a program to combine or rearrange source
264   files into an intermediate file which is then compiled, you can use line
265   control to inform the compiler of where each source line originally came
266   from.
267
268 %description -l pl -n cpp
269 Przeprocesor C jest "makro procesorem" który jest automatycznie u¿ywaney
270 przez kompilator C do obróbki kompilowanego programu przed w³a¶ciw±
271 kompilacj±. Jest on nazywany makroprocesorem poniewa¿ poniewa¿ umo¿liwia
272 definiowanie i rozwijanie makr umo¿liwiaj±cych kracanie d³ugich konstrukcji
273 w jêzyku C.
274
275 Preprocesor C umo¿liwia wykonywanie czterech róznych typow operacji:
276
277 * Inkluzja (do³aczenie) plików (np. nag³ówkowych). W³±cza pliki w miejscu
278   deklaracji polecenia do³±czenia inefgo pliku.
279 * Rozwijanie makr. Mo¿na definiowaæ "makra" nadaj±c im identyfikatory,
280   których pó¼niejsze u¿ycie powoduje podczas rozwijania podmienienie
281   indentyfikatora deklarowan± wcze¶niej warto¶ci±.
282 * Kompilacja warunkowa. W zale¿no¶ci od obecno¶ci symboli i dyrektyw w
283   ¶rodowisku preprocesora s± w³±czane warunkowo b±æ nie pewne fragmenty
284   obrabianego strumienia tekstów.
285 * Kontrola linii ¼ród³a. Niezale¿nie od tego jakim przeobra¿eniom podlega
286   wynikowy strumieñ danych w wyniku rozwijania makr i inkluzji s±
287   zapamiêtywane informacje o tym z której linii pliku ¼ród³owego
288   odpowiada fragment czy liniia pliku wynikowego.
289
290 %prep
291 %setup -q
292 %setup -q -a1 -D -T
293 mv libgcj-%{GCJ_VERSION} libgcj
294 mv libgcj/boehm-gc libgcj/libjava libgcj/zlib libgcj/zip .
295 %patch0 -p1
296 %patch1 -p1
297 %patch2 -p1
298 %patch3 -p1
299
300 %build
301 rm -rf obj-%{_target_platform}
302 install -d obj-%{_target_platform} && cd obj-%{_target_platform} 
303
304 CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" LDFLAGS="-s" \
305 ../configure \
306         --prefix=%{_prefix} \
307         --infodir=%{_infodir} \
308         --enable-shared \
309         --enable-threads \
310         --enable-haifa \
311         --with-gnu-as \
312         --with-gnu-ld \
313         %{_target_platform}
314
315 PATH=$PATH:/sbin:%{_sbindir}
316 touch  ../gcc/c-gperf.h
317
318 make LDFLAGS_FOR_TARGET="-s" \
319         bootstrap-lean \
320         mandir=%{_mandir} \
321         infodir=%{_infodir}
322
323 %install
324 rm -rf $RPM_BUILD_ROOT
325 install -d $RPM_BUILD_ROOT%{_datadir}
326
327 cd obj-%{_target_platform}
328 PATH=$PATH:/sbin:%{_sbindir}
329
330 make install \
331         prefix=$RPM_BUILD_ROOT%{_prefix} \
332         mandir=$RPM_BUILD_ROOT%{_mandir} \
333         infodir=$RPM_BUILD_ROOT%{_infodir}
334
335 make install \
336         prefix=$RPM_BUILD_ROOT%{_prefix} \
337         mandir=$RPM_BUILD_ROOT%{_mandir} \
338         infodir=$RPM_BUILD_ROOT%{_infodir} -C texinfo
339
340 strip $RPM_BUILD_ROOT%{_bindir}/* || :
341
342 strip $RPM_BUILD_ROOT%{_libdir}/gcc-lib/%{_target_cpu}*/*/{cc1,cc1chill,cc1obj,cc1plus,cpp,f771,collect2,jc1,jvgenmain}
343 strip --strip-unneeded $RPM_BUILD_ROOT%{_libdir}/libstdc++.so.*.*.*
344
345 ln -sf gcc $RPM_BUILD_ROOT%{_bindir}/cc
346
347 echo .so g77.1 > $RPM_BUILD_ROOT%{_mandir}/man1/f77.1
348 echo .so cccp.1 > $RPM_BUILD_ROOT%{_mandir}/man1/cpp.1
349
350 ln -sf g77 $RPM_BUILD_ROOT%{_bindir}/f77
351
352 mv -f $RPM_BUILD_ROOT%{_includedir}/g++-3 $RPM_BUILD_ROOT%{_includedir}/g++
353
354 install -d $RPM_BUILD_ROOT/lib
355 (cd $RPM_BUILD_ROOT; \
356 ln -sf ../`dirname usr/lib/gcc-lib/%{_target_cpu}*/*/cpp`/cpp $RPM_BUILD_ROOT/lib/cpp)
357
358 gzip -9nf $RPM_BUILD_ROOT%{_datadir}/{info/*.info*,man/man1/*} \
359           ../READ* ../ChangeLog ../gcc/ch/chill.brochure
360
361 %post
362 /sbin/install-info %{_infodir}/gcc.info.gz /etc/info-dir
363
364 %preun
365 if [ "$1" = "0" ]; then
366         /sbin/install-info %{_infodir}/gcc.info.gz /etc/info-dir
367 fi
368
369 %post g77
370 /sbin/install-info %{_infodir}/g77.info.gz /etc/info-dir
371
372 %preun g77
373 if [ "$1" = "0" ]; then
374         /sbin/install-info %{_infodir}/g77.info.gz /etc/info-dir
375 fi
376
377 %post chill
378 /sbin/install-info %{_infodir}/chill.info.gz /etc/info-dir
379
380 %preun chill
381 if [ "$1" = "0" ]; then
382         /sbin/install-info %{_infodir}/chill.info.gz /etc/info-dir
383 fi
384
385 %post -n cpp
386 /sbin/install-info %{_infodir}/cpp.info.gz /etc/info-dir
387
388 %preun -n cpp
389 if [ "$1" = "0" ]; then
390         /sbin/install-info %{_infodir}/cpp.info.gz /etc/info-dir
391 fi
392
393 %post libgcj  -p /sbin/ldconfig
394
395 %post   -p /sbin/ldconfig -n libstdc++
396 %postun -p /sbin/ldconfig -n libstdc++
397
398 %clean
399 rm -rf $RPM_BUILD_ROOT
400
401 %files
402 %defattr(644,root,root,755)
403 %doc READ* ChangeLog.gz
404
405 %dir %{_libdir}/gcc-lib
406 %dir %{_libdir}/gcc-lib/%{_target_cpu}*
407 %dir %{_libdir}/gcc-lib/%{_target_cpu}*/*
408 %dir %{_libdir}/gcc-lib/%{_target_cpu}*/*/include
409
410 %attr(755,root,root) %{_bindir}/%{_target_cpu}*-gcc
411 %attr(755,root,root) %{_bindir}/gcc
412 %attr(755,root,root) %{_bindir}/gcov
413 %attr(755,root,root) %{_bindir}/protoize
414 %attr(755,root,root) %{_bindir}/unprotoize
415 %attr(755,root,root) %{_bindir}/cc
416
417 %{_mandir}/man1/gcc.1*
418 %{_infodir}/gcc*
419
420 %{_libdir}/gcc-lib/%{_target_cpu}*/*/SYSCALLS.c.X
421 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1
422 %{_libdir}/gcc-lib/%{_target_cpu}*/*/libgcc.a
423 %{_libdir}/gcc-lib/%{_target_cpu}*/*/lib*.map
424 %{_libdir}/gcc-lib/%{_target_cpu}*/*/specs
425
426 %ifnarch alpha
427 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/crt*.o
428 %endif
429
430 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/collect2
431
432 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/float.h
433 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/iso646.h
434 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/limits.h
435 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/proto.h
436 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/stdarg.h
437 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/stdbool.h
438 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/stddef.h
439 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/syslimits.h
440 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/va-*.h
441 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/varargs.h
442
443 %files c++
444 %defattr(644,root,root,755)
445
446 %{_mandir}/man1/g++.1.gz
447
448 %attr(755,root,root) %{_bindir}/g++
449 %attr(755,root,root) %{_bindir}/c++
450 %attr(755,root,root) %{_bindir}/c++filt
451 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1plus
452
453 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/exception
454 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/new
455 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/typeinfo
456 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/new.h
457
458 %files objc
459 %defattr(644,root,root,755)
460
461 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1obj
462
463 %{_libdir}/gcc-lib/%{_target_cpu}*/*/libobjc.a
464 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/objc
465
466 %files g77
467 %defattr(644,root,root,755)
468
469 %attr(755,root,root) %{_bindir}/g77
470 %attr(755,root,root) %{_bindir}/f77
471
472 %{_infodir}/g77*
473
474 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/f771
475 %{_libdir}/gcc-lib/%{_target_cpu}*/*/libg2c.a
476
477 %{_mandir}/man1/g77.1*
478 %{_mandir}/man1/f77.1*
479
480 %{_libdir}/gcc-lib/%{_target_cpu}*/*/include/g2c.h
481
482 %files chill
483 %defattr(644,root,root,755)
484 %doc gcc/ch/chill.brochure.gz
485
486 %attr(755,root,root) %{_bindir}/chill
487
488 %{_infodir}/chill*
489
490 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cc1chill
491 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/chill*.o
492 %{_libdir}/gcc-lib/%{_target_cpu}*/*/libchill.a
493
494 %files java
495 %defattr(644,root,root,755)
496
497 %attr(755,root,root) %{_bindir}/gcj
498 %attr(755,root,root) %{_bindir}/gcjh
499 %attr(755,root,root) %{_bindir}/jcf-dump
500 %attr(755,root,root) %{_bindir}/jv-convert
501 %attr(755,root,root) %{_bindir}/jv-scan
502
503 %{_libdir}/*.spec
504
505 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jc1
506 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/jvgenmain
507
508 %files libgcj
509 %defattr(644,root,root,755)
510
511 %attr(755,root,root) %{_libdir}/lib*gcj*.so
512 %attr(755,root,root) %{_libdir}/lib*gcj*.so.*.*.*
513
514 %files libgcj-static
515 %defattr(644,root,root,755)
516
517 %{_libdir}/lib*gcj*.a
518 %{_libdir}/lib*gcj*.la
519
520 %files -n libstdc++
521 %attr(755,root,root) %{_libdir}/libstdc++.so.*.*.*
522
523 %files -n libstdc++-devel
524 %defattr(644,root,root,755) 
525 %{_includedir}/g++
526 %attr(755,root,root) %{_libdir}/libst.so
527
528 %files -n libstdc++-static
529 %attr(644,root,root) %{_libdir}/libstdc++.a
530
531 %files -n cpp
532 %defattr(644,root,root,755)
533 %attr(755,root,root) /lib/cpp
534
535 %{_mandir}/man1/cpp.1*
536 %{_mandir}/man1/cccp.1*
537 %{_infodir}/cpp.info*.gz
538
539 %attr(755,root,root) %{_libdir}/gcc-lib/%{_target_cpu}*/*/cpp
This page took 0.152362 seconds and 4 git commands to generate.