Magellan Linux

Contents of /branches/R11-unstable/core/gcc/gcc-4.8.4-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 24965 - (show annotations) (download)
Tue Nov 25 02:44:05 2014 UTC (9 years, 5 months ago) by niro
File size: 40842 byte(s)
-release branches/R11-unstable
1 # $Id$
2
3 PNAME="gcc"
4 PVER="4.8.4"
5 PBUILD="r2"
6
7 PCAT="sys-dev"
8 HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
9
10 # packages which needs rebuild: libtool java-gcj-compat llvm
11
12 # languages to build into gcc
13 # options are: c,c++,java,ada,fortran,go,objc,obj-c++,lto
14 # obj-c++ requires objc
15 #
16 # while toolchain bootstrap, only build c,c++ and after that rebuild the whole toolchain:
17 # linux-libc-headers -> binutils -> libc -> gcc -> binutils -> gcc -> libc
18 MyLanguages=c,c++,ada,java,fortran,go,objc,obj-c++,lto
19
20 # 1=bootstrap the whole gcc suite, using bootstrap-lean method
21 # 0=no bootstrap, use this only for quick builds to test something but never for release
22 GCC_BOOTSTRAP="1"
23
24 # 1=bootstrap ada, using precompiled gnat binaries
25 # 0=no bootstrap, build ada with system gnat - requires sys-dev/gcc-gnat
26 ADA_BOOTSTRAP="0"
27
28 # 1=enable dev split packages
29 # 0=disable dev split packages
30 ENABLE_DEV_PACKAGES="0"
31
32 SPLIT_PACKAGES="libgcc libssp libgomp libmudflap libquadmath libitm libatomic libstdc++ libasan"
33
34 # dev packages
35 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
36 then
37 SPLIT_PACKAGES+=" libgcc-dev libssp-dev libgomp-dev libmudflap-dev libquadmath-dev libitm-dev libatomic-dev libstdc++-dev libasan-dev"
38 fi
39
40 # thread sanitizer is only available on x86_64
41 if [[ ${ARCH} = x86_64 ]]
42 then
43 SPLIT_PACKAGES+=" libtsan"
44 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
45 then
46 SPLIT_PACKAGES+=" libtsan-dev"
47 fi
48 fi
49
50 # always enable gcc
51 SPLIT_PACKAGES+=" gcc"
52
53 # helper functions
54 lang_enabled()
55 {
56 local lang="$1"
57
58 if [[ ${MyLanguages//${lang}} != ${MyLanguages} ]]
59 then
60 return 0
61 else
62 return 1
63 fi
64 }
65
66 install_gcc_library()
67 {
68 local library="$1"
69
70 cd ${SRCDIR}/build
71 mmake -j1 -C ${CHOST}/${library} DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
72 if [[ $(mlibdir) != lib ]]
73 then
74 if [ -d ${CHOST}/32/${library} ]
75 then
76 mmake -j1 -C ${CHOST}/32/${library} DESTDIR=${BINDIR} install-toolexeclibLTLIBRARIES || die
77 fi
78 fi
79 }
80
81 versionize_all_bins()
82 {
83 local bin
84
85 for bin in $(find ${BINDIR}/usr/bin -type f)
86 do
87 echo ${bin}
88 mv ${bin} ${bin}-${PVER} || die
89 ln -snf $(basename ${bin}-${PVER}) ${bin} || die
90 done
91 }
92
93 keep_dev_package_libs()
94 {
95 local libs="$@"
96
97 # cleanup, only keep the libs, everything else get provided by the dev-package
98 zapmost ${BINDIR}/usr/$(mlibdir) "${libs}" || die
99 # multilib as well
100 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
101 then
102 zapmost ${BINDIR}/usr/lib "${libs}" || die
103 fi
104
105 # cleanup the rest, keep only libs
106 zapmost ${BINDIR} /usr/$(mlibdir) $([[ $(mlibdir) != lib ]] && echo "/usr/lib") || die
107 }
108
109 delete_dev_package_libs()
110 {
111 local libs="$@"
112 local i
113
114 # cleanup, the solibs are provided by the non-dev package
115 for i in ${libs}
116 do
117 rm ${BINDIR}/usr/$(mlibdir)/${i} || die
118 # multilib as well
119 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
120 then
121 rm ${BINDIR}/usr/lib/${i} || die
122 fi
123 done
124 }
125
126 GLIBC_DEPEND=">= virtual/glibc"
127 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
128 then
129 GLIBCDEV_DEPEND=">= virtual/glibc-dev"
130 fi
131 ZLIB_DEPEND=">= sys-libs/zlib-1.2.8"
132 COMMON_DEPEND="${GLIBC_DEPEND}
133 ${ZLIB_DEPEND}
134 >= dev-libs/gmp-6.0
135 >= dev-libs/mpfr-3.1
136 >= dev-libs/mpc-1.0.2"
137 LIBGCC_DEPEND="${GLIBC_DEPEND}"
138 LIBSSP_DEPEND="${GLIBC_DEPEND}"
139 LIBGOMP_DEPEND="${GLIBC_DEPEND}"
140 LIBMUDFLAP_DEPEND="${GLIBC_DEPEND}"
141 LIBQUADMATH_DEPEND="${GLIBC_DEPEND}"
142 LIBITM_DEPEND="${GLIBC_DEPEND}"
143 LIBATOMIC_DEPEND="${GLIBC_DEPEND}"
144 LIBASAN_DEPEND="${GLIBC_DEPEND}"
145 LIBTSAN_DEPEND="${GLIBC_DEPEND}"
146 LIBSTDCPP_DEPEND="${GLIBC_DEPEND}"
147
148 GCC_DEPEND="${COMMON_DEPEND}
149 >= sys-dev/binutils-2.25
150 >= dev-libs/isl-0.12
151 >= dev-libs/cloog-0.18.2
152 >= dev-libs/elfutils-0.161"
153
154 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
155 then
156 GCC_DEPEND="${GCC_DEPEND}
157 ${GLIBCDEV_DEPEND}"
158 fi
159
160 # special handling for libtsan, only x86-64
161 DEPEND_x86_64=">= sys-libs/libtsan-${PVER}"
162 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
163 then
164 DEPEND_x86_64="${DEPEND_x86_64}
165 >= sys-libs/libtsan-dev-${PVER}"
166 fi
167 SPECIAL_VARS="DEPEND_x86_64"
168
169 if lang_enabled java
170 then
171 SPLIT_PACKAGES+=" libgcj"
172 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
173 then
174 SPLIT_PACKAGES+=" libgcj-dev"
175 fi
176 SPLIT_PACKAGES+=" gcc-gcj"
177 LIBGCJ_DEPEND="${GLIBC_DEPEND}
178 ${ZLIB_DEPEND}"
179 JAVA_DEPEND="${COMMON_DEPEND}
180 >= dev-java/eclipse-ecj-3.6
181 >= dev-java/fastjar-0.98
182 >= sys-apps/file-5
183 >= app-arch/unzip-6
184 >= app-arch/zip-3
185 >= media-libs/alsa-lib-1.0.28
186 >= x11-libs/libSM-1.2
187 >= x11-libs/libXtst-1.2
188 >= dev-libs/glib2-2.42
189 >= x11-libs/gtk2+-2.24
190 >= media-libs/libart_lgpl-2.3.21"
191
192 # provided java version
193 JAVA_PVER="1.5.0-gcj-1.5.0.0"
194 fi
195
196 if lang_enabled ada
197 then
198 SPLIT_PACKAGES+=" libgnat"
199 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
200 then
201 SPLIT_PACKAGES+=" libgnat-dev"
202 fi
203 SPLIT_PACKAGES+=" gcc-gnat"
204 LIBGNAT_DEPEND="${GLIBC_DEPEND}"
205 ADA_DEPEND="${COMMON_DEPEND}"
206 if [[ ${ADA_BOOTSTRAP} = 1 ]]
207 then
208 GNAT_BIN_x86="gnatboot-4.3-i686.tar.bz2"
209 GNAT_BIN_x86_64="gnatboot-4.3-amd64.tar.bz2"
210 GNAT_BIN="$(eval echo \$GNAT_BIN_${ARCH/i*86/x86})"
211 GNAT_BIN_SRCDIR="${BUILDDIR}/gnat"
212 SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86} )
213 SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86_64} )
214 fi
215 fi
216
217 if lang_enabled fortran
218 then
219 SPLIT_PACKAGES+=" libgfortran"
220 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
221 then
222 SPLIT_PACKAGES+=" libgfortran-dev"
223 fi
224 SPLIT_PACKAGES+=" gcc-gfortran"
225 LIBGFORTRAN_DEPEND="${GLIBC_DEPEND}"
226 FORTRAN_DEPEND="${COMMON_DEPEND}"
227 fi
228
229 if lang_enabled go
230 then
231 SPLIT_PACKAGES+=" libgo"
232 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
233 then
234 SPLIT_PACKAGES+=" libgo-dev"
235 fi
236 SPLIT_PACKAGES+=" gcc-go"
237 LIBGO_DEPEND="${GLIBC_DEPEND}"
238 GO_DEPEND="${COMMON_DEPEND}"
239 fi
240
241 if lang_enabled objc
242 then
243 SPLIT_PACKAGES+=" libobjc"
244 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
245 then
246 SPLIT_PACKAGES+=" libobjc-dev"
247 fi
248 SPLIT_PACKAGES+=" gcc-objc"
249 LIBOBJC_DEPEND="${GLIBC_DEPEND}"
250 OBJC_DEPEND="${COMMON_DEPEND}"
251
252 if lang_enabled obj-c++
253 then
254 SPLIT_PACKAGES+=" gcc-objc++"
255 OBJCPP_DEPEND="${COMMON_DEPEND}"
256 fi
257 fi
258
259 SDEPEND="${LIBGCC_DEPEND}
260 ${LIBSSP_DEPEND}
261 ${LIBGOMP_DEPEND}
262 ${LIBMUDFLAP_DEPEND}
263 ${LIBQUADMATH_DEPEND}
264 ${LIBITM_DEPEND}
265 ${LIBATOMIC_DEPEND}
266 ${LIBASAN_DEPEND}
267 ${LIBTSAN_DEPEND}
268 ${LIBSTDCPP_DEPEND}
269 ${GCC_DEPEND}
270 ${LIBGCJ_DEPEND}
271 ${JAVA_DEPEND}
272 ${LIBGNAT_DEPEND}
273 ${ADA_DEPEND}
274 ${LIBGFORTRAN_DEPEND}
275 ${FORTRAN_DEPEND}
276 ${LIBGO_DEPEND}
277 ${GO_DEPEND}
278 ${LIBOBJC_DEPEND}
279 ${OBJC_DEPEND}
280 ${OBJCPP_DEPEND}
281 >= virtual/kernel-headers"
282
283 if [[ ${ADA_BOOTSTRAP} != 1 ]]
284 then
285 # add gnat to SDEPEND
286 SDEPEND="${SDEPEND}
287 >= sys-dev/gcc-gnat-4.8"
288 fi
289
290 SRCFILE="${PNAME}-${PVER}.tar.bz2"
291 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
292
293 # you better off when not using distcc to compile
294 # your new compiler :) maybe not all are the same
295 msetfeature "!distcc"
296
297 sminclude mtools cleanutils libtool
298
299 SRC_URI=(
300 ${SRC_URI[*]}
301 gnu://${PNAME}/${PNAME}-${PVER}/${SRCFILE}
302 mirror://${PNAME}/${SRCFILE}
303 mirror://${PNAME}/${PNAME}-4.5.1-no-fixincludes.patch
304 )
305
306 UP2DATE="updatecmd 'http://ftp.gnu.org/gnu/${PNAME}/' | utf8encode | grep '\[DIR\].*${PNAME}' | sed 's:.*${PNAME}-\(.*\)/.*:\1:' | upsort_pipe"
307
308 # gcc don't like strong CFLAGS
309 export CFLAGS="${CFLAGS//-O?} -O2"
310 export CXXFLAGS="${CFLAGS}"
311
312 # check for crosscompile or export default CHOST
313 if [[ -z ${CTARGET} ]]
314 then
315 # no crosscompile defined
316 export CTARGET=${CHOST}
317 else
318 # use crosscompile host
319 export CTARGET=${CTARGET}
320 fi
321
322 split_info_gcc()
323 {
324 DESCRIPTION="Modern C/C++ compiler written by the GNU people."
325
326 DEPEND="== sys-libs/libgcc-${PVER}
327 == sys-libs/libssp-${PVER}
328 == sys-libs/libgomp-${PVER}
329 == sys-libs/libmudflap-${PVER}
330 == sys-libs/libquadmath-${PVER}
331 == sys-libs/libitm-${PVER}
332 == sys-libs/libatomic-${PVER}
333 == sys-libs/libstdc++-${PVER}
334 == sys-libs/libasan-${PVER}
335 $(marchdepend)
336 ${GCC_DEPEND}"
337
338 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
339 then
340 DEPEND="${DEPEND}
341 == sys-libs/libgcc-dev-${PVER}
342 == sys-libs/libssp-dev-${PVER}
343 == sys-libs/libgomp-dev-${PVER}
344 == sys-libs/libmudflap-dev-${PVER}
345 == sys-libs/libquadmath-dev-${PVER}
346 == sys-libs/libitm-dev-${PVER}
347 == sys-libs/libatomic-dev-${PVER}
348 == sys-libs/libstdc++-dev-${PVER}
349 == sys-libs/libasan-dev-${PVER}"
350 fi
351 }
352
353 split_info_libgcc()
354 {
355 DESCRIPTION="GCC shared support library."
356 DEPEND="${LIBGCC_DEPEND}"
357 PCAT="sys-libs"
358 }
359
360 split_info_libgcc-dev()
361 {
362 DESCRIPTION="Development files for libgcc."
363 DEPEND="== sys-libs/libgcc-${PVER}"
364 PCAT="sys-libs"
365 }
366
367 split_info_libssp()
368 {
369 DESCRIPTION="Stack Smashing Protection library from GCC."
370 DEPEND="${LIBSSP_DEPEND}"
371 PCAT="sys-libs"
372 }
373
374 split_info_libssp-dev()
375 {
376 DESCRIPTION="Development files for libssp."
377 DEPEND="== sys-libs/libssp-${PVER}"
378 PCAT="sys-libs"
379 }
380
381 split_info_libgomp()
382 {
383 DESCRIPTION="GNU OpenMP runtime library."
384 DEPEND="${LIBGOMP_DEPEND}"
385 PCAT="sys-libs"
386 }
387
388 split_info_libgomp-dev()
389 {
390 DESCRIPTION="Development files for libgomp."
391 DEPEND="== sys-libs/libgomp-${PVER}"
392 PCAT="sys-libs"
393 }
394
395 split_info_libmudflap()
396 {
397 DESCRIPTION="GCC mudflap shared support library."
398 DEPEND="${LIBMUDFLAP_DEPEND}"
399 PCAT="sys-libs"
400 }
401
402 split_info_libmudflap-dev()
403 {
404 DESCRIPTION="Development files for libmudflap."
405 DEPEND="== sys-libs/libmudflap-${PVER}"
406 PCAT="sys-libs"
407 }
408
409 split_info_libquadmath()
410 {
411 DESCRIPTION="GCC __float128 shared support library."
412 DEPEND="${LIBQUADMATH_DEPEND}"
413 PCAT="sys-libs"
414 }
415
416 split_info_libquadmath-dev()
417 {
418 DESCRIPTION="Development files for libquadmath."
419 DEPEND="== sys-libs/libquadmath-${PVER}"
420 PCAT="sys-libs"
421 }
422
423 split_info_libitm()
424 {
425 DESCRIPTION="The GNU Transactional Memory library."
426 DEPEND="${LIBITM_DEPEND}"
427 PCAT="sys-libs"
428 }
429
430 split_info_libitm-dev()
431 {
432 DESCRIPTION="Development files for libitm."
433 DEPEND="== sys-libs/libitm-${PVER}"
434 PCAT="sys-libs"
435 }
436
437 split_info_libatomic()
438 {
439 DESCRIPTION="The GNU Atomic library."
440 DEPEND="${LIBATOMIC_DEPEND}"
441 PCAT="sys-libs"
442 }
443
444 split_info_libatomic-dev()
445 {
446 DESCRIPTION="Development files for libatomic."
447 DEPEND="== sys-libs/libatomic-${PVER}"
448 PCAT="sys-libs"
449 }
450
451 split_info_libasan()
452 {
453 DESCRIPTION="The Address Sanitizer runtime library."
454 DEPEND="== sys-libs/libgcc-${PVER}
455 == sys-libs/libstdc++-${PVER}
456 ${LIBASAN_DEPEND}"
457 PCAT="sys-libs"
458 }
459
460 split_info_libasan-dev()
461 {
462 DESCRIPTION="Development files for libasan."
463 DEPEND="== sys-libs/libasan-${PVER}"
464 PCAT="sys-libs"
465 }
466
467 split_info_libtsan()
468 {
469 DESCRIPTION="The Thread Sanitizer runtime library."
470 DEPEND="== sys-libs/libgcc-${PVER}
471 == sys-libs/libstdc++-${PVER}
472 ${LIBTSAN_DEPEND}"
473 PCAT="sys-libs"
474 }
475
476 split_info_libtsan-dev()
477 {
478 DESCRIPTION="Development files for libtsan."
479 DEPEND="== sys-libs/libtsan-${PVER}
480 == sys-libs/libgcc-dev-${PVER}
481 == sys-libs/libstdc++-dev-${PVER}"
482 PCAT="sys-libs"
483 }
484
485 split_info_libstdc++()
486 {
487 DESCRIPTION="Standard GNU C and C++ libraries."
488 DEPEND="== sys-libs/libgcc-${PVER}
489 ${LIBSTDCPP_DEPEND}"
490 PCAT="sys-libs"
491 }
492
493 split_info_libstdc++-dev()
494 {
495 DESCRIPTION="Development files for libstdc++."
496 DEPEND="== sys-libs/libstdc++-${PVER}
497 == sys-libs/libgcc-dev-${PVER}"
498 PCAT="sys-libs"
499 }
500
501 if lang_enabled java
502 then
503 split_info_libgcj()
504 {
505 DESCRIPTION="Java runtime library for GCC."
506 DEPEND="== sys-libs/libgcc-${PVER}
507 ${LIBGCJ_DEPEND}"
508 PCAT="sys-libs"
509 }
510
511 split_info_libgcj-dev()
512 {
513 DESCRIPTION="Development files for libgcj."
514 DEPEND="== sys-libs/libgcj-${PVER}
515 == sys-libs/libgcc-dev-${PVER}"
516 PCAT="sys-libs"
517 }
518
519 split_info_gcc-gcj()
520 {
521 DESCRIPTION="Java support for GCC."
522 DEPEND="== sys-libs/libgcc-${PVER}
523 == sys-libs/libstdc++-${PVER}
524 == sys-libs/libgcj-${PVER}
525 == sys-dev/gcc-${PVER}
526 ${JAVA_DEPEND}"
527 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
528 then
529 DEPEND="${DEPEND}
530 == sys-libs/libgcc-dev-${PVER}
531 == sys-libs/libstdc++-dev-${PVER}
532 == sys-libs/libgcj-dev-${PVER}"
533 fi
534 }
535 fi
536
537 if lang_enabled ada
538 then
539 split_info_libgnat()
540 {
541 DESCRIPTION="Gnu Ada 95 library which is needed to run Ada programs."
542 DEPEND="== sys-libs/libgcc-${PVER}
543 ${LIBGNAT_DEPEND}"
544 PCAT="sys-libs"
545 }
546
547 split_info_libgnat-dev()
548 {
549 DESCRIPTION="Development files for libgnat."
550 DEPEND="== sys-libs/libgnat-${PVER}
551 == sys-libs/libgcc-dev-${PVER}"
552 PCAT="sys-libs"
553 }
554
555 split_info_gcc-gnat()
556 {
557 DESCRIPTION="Ada 95 support for GCC."
558 DEPEND="== sys-libs/libgcc-${PVER}
559 == sys-libs/libstdc++-${PVER}
560 == sys-libs/libgnat-${PVER}
561 == sys-dev/gcc-${PVER}
562 ${ADA_DEPEND}"
563 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
564 then
565 DEPEND="${DEPEND}
566 == sys-libs/libgcc-dev-${PVER}
567 == sys-libs/libstdc++-dev-${PVER}
568 == sys-libs/libgnat-dev-${PVER}"
569 fi
570 }
571 fi
572
573 if lang_enabled fortran
574 then
575 split_info_libgfortran()
576 {
577 DESCRIPTION="Gnu Fortran library which is needed to run Fortran programs."
578 DEPEND="== sys-libs/libquadmath-${PVER}
579 ${LIBGFORTRAN_DEPEND}"
580 PCAT="sys-libs"
581 }
582
583 split_info_libgfortran-dev()
584 {
585 DESCRIPTION="Development files for libgfortran."
586 DEPEND="== sys-libs/libgfortran-${PVER}
587 == sys-libs/libquadmath-dev-${PVER}"
588 PCAT="sys-libs"
589 }
590
591 split_info_gcc-gfortran()
592 {
593 DESCRIPTION="Fortran support for GCC."
594 DEPEND="== sys-libs/libgcc-${PVER}
595 == sys-libs/libstdc++-${PVER}
596 == sys-libs/libgfortran-${PVER}
597 == sys-dev/gcc-${PVER}
598 ${FORTRAN_DEPEND}"
599 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
600 then
601 DEPEND="${DEPEND}
602 == sys-libs/libgcc-dev-${PVER}
603 == sys-libs/libstdc++-dev-${PVER}
604 == sys-libs/libgfortran-dev-${PVER}"
605 fi
606 }
607 fi
608
609 if lang_enabled go
610 then
611 split_info_libgo()
612 {
613 DESCRIPTION="Go library which is needed to run Go programs."
614 DEPEND="== sys-libs/libgcc-${PVER}
615 ${LIBGO_DEPEND}"
616 PCAT="sys-libs"
617 }
618
619 split_info_libgo-dev()
620 {
621 DESCRIPTION="Development files for libgo."
622 DEPEND="== sys-libs/libgo-${PVER}
623 == sys-libs/libgcc-dev-${PVER}"
624 PCAT="sys-libs"
625 }
626
627 split_info_gcc-go()
628 {
629 DESCRIPTION="Go support for GCC."
630 DEPEND="== sys-libs/libgcc-${PVER}
631 == sys-libs/libstdc++-${PVER}
632 == sys-libs/libgo-${PVER}
633 == sys-dev/gcc-${PVER}
634 ${GO_DEPEND}"
635 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
636 then
637 DEPEND="${DEPEND}
638 == sys-libs/libgcc-dev-${PVER}
639 == sys-libs/libstdc++-dev-${PVER}
640 == sys-libs/libgo-dev-${PVER}"
641 fi
642 }
643 fi
644
645 if lang_enabled objc
646 then
647 split_info_libobjc()
648 {
649 DESCRIPTION="Objective-C library which is needed to run Objective-C programs."
650 DEPEND="== sys-libs/libgcc-${PVER}
651 ${LIBOBJC_DEPEND}"
652 PCAT="sys-libs"
653 }
654
655 split_info_libobjc-dev()
656 {
657 DESCRIPTION="Development files for libobjc."
658 DEPEND="== sys-libs/libobjc-${PVER}
659 == sys-libs/libgcc-dev-${PVER}"
660 PCAT="sys-libs"
661 }
662
663 split_info_gcc-objc()
664 {
665 DESCRIPTION="Objective-C support for GCC."
666 DEPEND="== sys-libs/libgcc-${PVER}
667 == sys-libs/libstdc++-${PVER}
668 == sys-libs/libobjc-${PVER}
669 == sys-dev/gcc-${PVER}
670 ${OBJC_DEPEND}"
671 }
672
673 if lang_enabled obj-c++
674 then
675 split_info_gcc-objc++()
676 {
677 DESCRIPTION="Objective-C++ support for GCC."
678 DEPEND="== sys-libs/libgcc-${PVER}
679 == sys-libs/libstdc++-${PVER}
680 == sys-libs/libobjc-${PVER}
681 == sys-dev/gcc-${PVER}
682 == sys-dev/gcc-objc-${PVER}
683 ${OBJCPP_DEPEND}"
684 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
685 then
686 DEPEND="${DEPEND}
687 == sys-libs/libgcc-dev-${PVER}
688 == sys-libs/libstdc++-dev-${PVER}
689 == sys-libs/libobjc-dev-${PVER}"
690 fi
691 }
692 fi
693 fi
694
695 src_prepare()
696 {
697 munpack ${SRCFILE} || die
698
699 if lang_enabled ada
700 then
701 if [[ ${ADA_BOOTSTRAP} = 1 ]]
702 then
703 # setup binary ada if boostrap is enabled
704 install -d ${GNAT_BIN_SRCDIR} || die
705 munpack ${GNAT_BIN} ${GNAT_BIN_SRCDIR} || die
706 # gnat wrapper has problems with quotation
707 sed -i \
708 -e "/-DREVISION/d" \
709 -e "/-DDEVPHASE/d" \
710 -e "s: -DDATESTAMP=\$(DATESTAMP_s)::" \
711 ${SRCDIR}/gcc/Makefile.in || die
712 sed -i \
713 -e "s: DATESTAMP DEVPHASE REVISION::" \
714 -e "s:PKGVERSION:\"\":" \
715 ${SRCDIR}/gcc/version.c || die
716 fi
717 cd ${SRCDIR}
718 fi
719
720 cd ${SRCDIR}
721
722 # generic fixes
723 mpatch ${PNAME}-4.5.1-no-fixincludes.patch || die
724
725 # suppress installation of libffi, we're using libffi3 instead
726 sed -i 's/\(install.*:\) install-.*recursive/\1/' libffi/Makefile.in || die
727 sed -i 's/\(install-data-am:\).*/\1/' libffi/include/Makefile.in || die
728
729 install -d ${SRCDIR}/build || die
730 }
731
732 src_compile()
733 {
734 if lang_enabled ada
735 then
736 if [[ ${ADA_BOOTSTRAP} = 1 ]]
737 then
738 # export binary gnat pathes
739 export PATH="${GNAT_BIN_SRCDIR}/usr/bin:${PATH}"
740 export CC="${GNAT_BIN_SRCDIR}/usr/bin/gnatgcc"
741 # CPATH is supposed to be applied for any language, thus
742 # superseding either of C/CPLUS/OBJC_INCLUDE_PATHs
743 export CPATH="${GNAT_BIN_SRCDIR}/usr/lib/include"
744 export LIB_DIR="${GNAT_BIN_SRCDIR}/usr/lib"
745 export LDFLAGS="-L${GNAT_BIN_SRCDIR}/usr/lib"
746 export LIBRARY_PATH="${GNAT_BIN_SRCDIR}/usr/lib"
747 export ADA_OBJECTS_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adalib"
748 export ADA_INCLUDE_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adainclude"
749
750 # prepare some tools
751 cd ${GNAT_BIN_SRCDIR}
752 cp -v ${SRCDIR}/gcc/ada/xtreeprs.adb ${GNAT_BIN_SRCDIR} || die
753 cp -v ${SRCDIR}/gcc/ada/csinfo.adb ${GNAT_BIN_SRCDIR} || die
754 cp -v ${SRCDIR}/gcc/ada/ceinfo.adb ${GNAT_BIN_SRCDIR} || die
755 cp -v ${SRCDIR}/gcc/ada/xsinfo.adb ${GNAT_BIN_SRCDIR} || die
756 cp -v ${SRCDIR}/gcc/ada/xeinfo.adb ${GNAT_BIN_SRCDIR} || die
757 cp -v ${SRCDIR}/gcc/ada/xnmake.adb ${GNAT_BIN_SRCDIR} || die
758 cp -v ${SRCDIR}/gcc/ada/xutil.ad{s,b} ${GNAT_BIN_SRCDIR} || die
759 gnatmake xtreeprs || die
760 gnatmake xsinfo || die
761 gnatmake xeinfo || die
762 gnatmake xnmake || die
763 fi
764 fi
765
766 cd ${SRCDIR}/build
767 local myconf
768
769 # Straight from the GCC install doc:
770 # "GCC has code to correctly determine the correct value for target
771 # for nearly all native systems. Therefore, we highly recommend you
772 # not provide a configure target when configuring a native compiler."
773 if [[ ${CHOST} != ${CTARGET} ]]
774 then
775 myconf+=" --target=${CTARGET}"
776 fi
777
778 if lang_enabled java
779 then
780 myconf+=" --enable-java-awt=gtk
781 --enable-gtk-cairo
782 --enable-libgcj-multifile
783 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
784 --with-fastjar=/usr/bin/fastjar
785 --enable-hash-synchronization"
786 # disable mutilib for java
787 myconf+=" --disable-libjava-multilib"
788 # java home, must be the same of java-gcj-compat
789 myconf+=" --with-java-home=/usr/$(mlibdir)/jvm/java-${JAVA_PVER}/jre"
790 fi
791
792 # use isl backend
793 myconf+=" --enable-cloog-backend=isl"
794
795 # suppress installation of libiberty, as we will be
796 # using the one from binutils
797 myconf+=" --disable-install-libiberty"
798
799 # gcc >= 4.3 has now configure flags for uri and version - yeah!
800 AR=ar \
801 ../configure \
802 --with-bugurl="http://bugs.magellan-linux.de/" \
803 --with-pkgversion="Magellan-Linux" \
804 --build=${CHOST} \
805 --host=${CHOST} \
806 --prefix=/usr \
807 --sbindir=/usr/bin \
808 --mandir=/usr/share/man \
809 --infodir=/usr/share/info \
810 --libdir=/usr/$(mlibdir) \
811 --libexecdir=/usr/$(mlibdir) \
812 --enable-shared \
813 --enable-threads=posix \
814 --enable-__cxa_atexit \
815 --enable-clocale=gnu \
816 --enable-checking=release \
817 --with-system-zlib \
818 --enable-long-long \
819 --enable-cstdio=stdio \
820 --enable-languages=${MyLanguages} \
821 --disable-libstdcxx-pch \
822 --enable-gnu-unique-object \
823 --enable-lto \
824 --enable-plugin \
825 --enable-gold \
826 --with-plugin-ld=ld.gold \
827 --enable-ld=default \
828 --enable-linker-build-id \
829 --disable-install-libiberty \
830 ${myconf} \
831 || die
832
833 # parallel builds seems to break sometimes on x86_64
834 local myopts
835 [[ ${ARCH} = x86_64 ]] && myopts=-j1
836
837 # enable bootstrap if requested
838 local target
839 [[ ${GCC_BOOTSTRAP} = 1 ]] && target="bootstrap-lean"
840
841 mmake ${myopts} ${target} || die
842 }
843
844 src_install_gcc()
845 {
846 local i
847 local bin
848
849 cd ${SRCDIR}/build
850 minstalldir /$(mlibdir) || die
851
852 # install all targets
853 make DESTDIR=${BINDIR} install || die
854
855 # move gdb scripts to a proper location and to pretty-print ldconfig
856 minstalldir /usr/share/gdb/auto-load/usr/$(mlibdir) || die
857 mmove ${BINDIR}/usr/$(mlibdir)/libstdc++\*gdb.py\* /usr/share/gdb/auto-load/usr/$(mlibdir)/ || die
858 # multilib as well
859 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
860 then
861 minstalldir /usr/share/gdb/auto-load/usr/lib || die
862 mmove ${BINDIR}/usr/lib/libstdc++\*gdb.py\* /usr/share/gdb/auto-load/usr/lib/ || die
863 fi
864
865 # deletes libstdc++ && libgcc_s && libssp && libgomp libmudflap && libquadmath && libitm && libatomic && libasan
866 mdelete /usr/$(mlibdir)/libgcc_s.so\* || die
867 mmake -j1 -C ${CHOST}/libssp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
868 mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
869 mmake -j1 -C ${CHOST}/libmudflap DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
870 mmake -j1 -C ${CHOST}/libquadmath DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
871 mmake -j1 -C ${CHOST}/libitm DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
872 mmake -j1 -C ${CHOST}/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
873 mmake -j1 -C ${CHOST}/libsanitizer/asan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
874 if [[ ${ARCH} = x86_64 ]]
875 then
876 mmake -j1 -C ${CHOST}/libsanitizer/tsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
877 fi
878 mmake -j1 -C ${CHOST}/libstdc++-v3/src DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
879 if [[ $(mlibdir) != lib ]]
880 then
881 mdelete /usr/lib/libgcc_s.so\* || die
882 mmake -j1 -C ${CHOST}/32/libssp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
883 mmake -j1 -C ${CHOST}/32/libgomp DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
884 mmake -j1 -C ${CHOST}/32/libmudflap DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
885 mmake -j1 -C ${CHOST}/32/libquadmath DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
886 mmake -j1 -C ${CHOST}/32/libitm DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
887 mmake -j1 -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
888 mmake -j1 -C ${CHOST}/32/libsanitizer/asan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
889 # only 64bit exist
890 # mmake -j1 -C ${CHOST}/32//libsanitizer/tsan DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
891 mmake -j1 -C ${CHOST}/32/libstdc++-v3/src DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
892 fi
893 mdelete /usr/share/info/libgomp.info || die
894 mdelete /usr/share/info/libitm.info || die
895 mdelete /usr/share/info/libquadmath.info || die
896 find ${BINDIR}/usr/share/locale -name libstdc++.mo | xargs --no-run-if-empty --verbose rm -v || die
897
898 # deletes all java specific
899 if lang_enabled java
900 then
901 mmake -j1 -C ${CHOST}/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
902 if [[ $(mlibdir) != lib ]]
903 then
904 mmake -j1 -C ${CHOST}/32/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
905 fi
906 mdelete /usr/$(mlibdir)/libgcj_bc.so\* || die
907 mdelete -r /usr/include/c++/${PVER}/gcj || die
908 mdelete -r /usr/include/c++/${PVER}/gnu || die
909 mdelete -r /usr/include/c++/${PVER}/java || die
910 mdelete -r /usr/include/c++/${PVER}/javax || die
911 mdelete -r /usr/include/c++/${PVER}/org || die
912 mdelete -r /usr/include/c++/${PVER}/sun || die
913 mdelete -r /usr/$(mlibdir)/gcj\* || die
914 mdelete /usr/$(mlibdir)/logging.properties || die
915 mdelete /usr/$(mlibdir)/libgcj.spec || die
916 mdelete /usr/$(mlibdir)/pkgconfig/libgcj\*.pc || die
917 mdelete -r /usr/$(mlibdir)/security || die
918 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ecj1 || die
919 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jc1 || die
920 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jvgenmain || die
921 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/gcj || die
922 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jvmpi.h || die
923 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jawt.h || die
924 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jawt_md.h || die
925 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jni.h || die
926 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/jni_md.h || die
927 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
928 then
929 mdelete /usr/lib/libgcj_bc.so\* || die
930 mdelete -r /usr/lib/gcj\* || die
931 mdelete /usr/lib/logging.properties || die
932 mdelete -r /usr/lib/security || die
933 fi
934 mdelete /usr/share/info/cp-tools.info || die
935 mdelete /usr/share/info/gcj.info || die
936 mdelete -r /usr/share/java || die
937 mdelete -r /usr/share/gcc-${PVER}/python/libjava || die
938 for i in aot-compile gappletviewer gc-analyze gcj gcj-dbtool gcjh gij gjar \
939 gjarsigner gjavah gjdoc gkeytool gnative2ascii gorbd grmic grmid grmiregistry \
940 gserialver gtnameserv jcf-dump jv-convert rebuild-gcj-db ${CHOST}-gcj
941 do
942 if [ -f ${BINDIR}/usr/bin/${i} ]
943 then
944 mdelete /usr/bin/${i} || die
945 fi
946 if [ -f ${BINDIR}/usr/share/man/man1/${i}.1 ]
947 then
948 mdelete /usr/share/man/man1/${i}.1 || die
949 fi
950 done
951 fi
952
953 # deletes all ada specific
954 if lang_enabled ada
955 then
956 mdelete /usr/bin/gnat\* || die
957 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/gnat1 || die
958 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib || die
959 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adainclude || die
960 if [[ $(mlibdir) != lib ]]
961 then
962 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib || die
963 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adainclude || die
964 fi
965 mdelete /usr/share/info/gnat\*.info || die
966 fi
967
968 # deletes all fortran specific
969 if lang_enabled fortran
970 then
971 mmake -j1 -C ${CHOST}/libgfortran DESTDIR=${BINDIR} uninstall || die
972 if [[ $(mlibdir) != lib ]]
973 then
974 mmake -j1 -C ${CHOST}/32/libgfortran DESTDIR=${BINDIR} uninstall || die
975 fi
976 mdelete /usr/bin/gfortran || die
977 mdelete /usr/bin/${CHOST}-gfortran || die
978 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
979 mdelete /usr/share/info/gfortran.info || die
980 mdelete /usr/share/man/man1/gfortran.1 || die
981 fi
982
983 # deletes all go specific
984 if lang_enabled go
985 then
986 mmake -j1 -C ${CHOST}/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
987 if [[ $(mlibdir) != lib ]]
988 then
989 mmake -j1 -C ${CHOST}/32/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
990 fi
991 mdelete /usr/bin/gccgo || die
992 mdelete /usr/bin/${CHOST}-gccgo || die
993 mdelete -r /usr/$(mlibdir)/go || die
994 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/go1 || die
995 mdelete /usr/$(mlibdir)/libgobegin.a || die
996 if [[ $(mlibdir) != lib ]]
997 then
998 mdelete -r /usr/lib/go || die
999 mdelete /usr/lib/libgobegin.a || die
1000 fi
1001 mdelete /usr/share/info/gccgo.info || die
1002 mdelete /usr/share/man/man1/gccgo.1 || die
1003 fi
1004
1005 # deletes all objc + obj-c++
1006 if lang_enabled objc
1007 then
1008 mdelete /usr/$(mlibdir)/libobjc.so\* || die
1009 mdelete /usr/$(mlibdir)/libobjc.a || die
1010 mdelete /usr/$(mlibdir)/libobjc.la || die
1011 if [[ $(mlibdir) != lib ]]
1012 then
1013 mdelete /usr/lib/libobjc.so\* || die
1014 mdelete /usr/lib/libobjc.a || die
1015 mdelete /usr/lib/libobjc.la || die
1016 fi
1017 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/cc1obj || die
1018 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/objc || die
1019
1020 if lang_enabled obj-c++
1021 then
1022 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/cc1objplus || die
1023 fi
1024 fi
1025
1026 # versionize all bins and symlink them
1027 versionize_all_bins || die
1028
1029 mlink ../usr/bin/cpp-${PVER} /usr/$(mlibdir)/cpp || die
1030 # this one is needed on multilib systems.
1031 # rpcgen may not find the cpp compiler correctly if not in /lib/cpp
1032 if [[ $(mlibdir) != lib ]]
1033 then
1034 minstalldir /usr/lib || die
1035 mlink ../usr/bin/cpp-${PVER} /usr/lib/cpp || die
1036 fi
1037 mlink gcc-${PVER} /usr/bin/cc || die
1038
1039 # fix all .la files
1040 # they may contain invalid libpathes which are not needed
1041 local la
1042 for la in $(find ${BINDIR} -name \*.la)
1043 do
1044 fix_la_file ${la} || die ${la}
1045 done
1046
1047 # remove /lib dirs to be usr-move compat
1048 if [[ -d ${BINDIR}/$(mlibdir) ]]
1049 then
1050 mdelete -r /$(mlibdir) || die
1051 fi
1052 if [[ $(mlibdir) != lib ]]
1053 then
1054 if [[ -d ${BINDIR}/lib ]]
1055 then
1056 mdelete -r /lib || die
1057 fi
1058 fi
1059 }
1060
1061 src_install_libgcc-common()
1062 {
1063 cd ${SRCDIR}/build
1064 mmake -j1 -C ${CHOST}/libgcc DESTDIR=${BINDIR} install-shared || die
1065 if [[ $(mlibdir) != lib ]]
1066 then
1067 mmake -j1 -C${CHOST}/32/libgcc DESTDIR=${BINDIR} install-shared || die
1068 fi
1069 mdelete -r /usr/$(mlibdir)/gcc || die
1070 }
1071
1072 src_install_libgcc()
1073 {
1074 src_install_libgcc-common || die
1075 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1076 then
1077 keep_dev_package_libs 'libgcc_s.so.*' || die
1078 fi
1079 }
1080
1081 src_install_libgcc-dev()
1082 {
1083 src_install_libgcc-common || die
1084 delete_dev_package_libs 'libgcc_s.so.*' || die
1085 }
1086
1087 src_install_libssp-common()
1088 {
1089 install_gcc_library "libssp" || die
1090 }
1091
1092 src_install_libssp()
1093 {
1094 src_install_libssp-common || die
1095 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1096 then
1097 keep_dev_package_libs 'libssp.so.*' || die
1098 fi
1099 }
1100
1101 src_install_libssp-dev()
1102 {
1103 src_install_libssp-common || die
1104 delete_dev_package_libs 'libssp.so.*' || die
1105 }
1106
1107 src_install_libgomp-common()
1108 {
1109 install_gcc_library "libgomp" || die
1110 mmake -j1 -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-info || die
1111 }
1112
1113 src_install_libgomp()
1114 {
1115 src_install_libgomp-common || die
1116 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1117 then
1118 keep_dev_package_libs 'libgomp.so.*' || die
1119 fi
1120 }
1121
1122 src_install_libgomp-dev()
1123 {
1124 src_install_libgomp-common || die
1125 delete_dev_package_libs 'libgomp.so.*' || die
1126 }
1127
1128 src_install_libmudflap-common()
1129 {
1130 install_gcc_library "libmudflap" || die
1131 }
1132
1133 src_install_libmudflap()
1134 {
1135 src_install_libmudflap-common || die
1136 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1137 then
1138 keep_dev_package_libs 'libmudflap.so.*' || die
1139 fi
1140 }
1141
1142 src_install_libmudflap-dev()
1143 {
1144 src_install_libmudflap-common || die
1145 delete_dev_package_libs 'libmudflap.so.*' || die
1146 }
1147
1148 src_install_libquadmath-common()
1149 {
1150 install_gcc_library "libquadmath" || die
1151 mmake -j1 -C ${CHOST}/libquadmath DESTDIR=${BINDIR} install-info || die
1152 }
1153
1154 src_install_libquadmath()
1155 {
1156 src_install_libquadmath-common || die
1157 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1158 then
1159 keep_dev_package_libs 'libquadmath.so.*' || die
1160 fi
1161 }
1162
1163 src_install_libquadmath-dev()
1164 {
1165 src_install_libquadmath-common || die
1166 delete_dev_package_libs 'libquadmath.so.*' || die
1167 }
1168
1169 src_install_libitm-common()
1170 {
1171 install_gcc_library "libitm"
1172 mmake -j1 -C ${CHOST}/libitm DESTDIR=${BINDIR} install-info || die
1173 }
1174
1175 src_install_libitm()
1176 {
1177 src_install_libitm-common || die
1178 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1179 then
1180 keep_dev_package_libs 'libitm.so.*' || die
1181 fi
1182 }
1183
1184 src_install_libitm-dev()
1185 {
1186 src_install_libitm-common || die
1187 delete_dev_package_libs 'libitm.so.*' || die
1188 }
1189
1190 src_install_libatomic-common()
1191 {
1192 install_gcc_library "libatomic" || die
1193 }
1194
1195 src_install_libatomic()
1196 {
1197 src_install_libatomic-common || die
1198 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1199 then
1200 keep_dev_package_libs 'libatomic.so.*' || die
1201 fi
1202 }
1203
1204 src_install_libatomic-dev()
1205 {
1206 src_install_libatomic-common || die
1207 delete_dev_package_libs 'libatomic.so.*' || die
1208 }
1209
1210 src_install_libasan-common()
1211 {
1212 install_gcc_library "libsanitizer/asan" || die
1213 }
1214
1215
1216 src_install_libasan()
1217 {
1218 src_install_libasan-common || die
1219 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1220 then
1221 keep_dev_package_libs 'libasan.so.*' || die
1222 fi
1223 }
1224
1225 src_install_libasan-dev()
1226 {
1227 src_install_libasan-common || die
1228 delete_dev_package_libs 'libasan.so.*' || die
1229 }
1230
1231 src_install_libtsan-common()
1232 {
1233 install_gcc_library "libsanitizer/tsan" || die
1234 }
1235
1236 src_install_libtsan()
1237 {
1238 src_install_libtsan-common || die
1239 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1240 then
1241 keep_dev_package_libs 'libtsan.so.*' || die
1242 fi
1243 }
1244 src_install_libtsan-dev()
1245 {
1246 src_install_libtsan-common || die
1247 delete_dev_package_libs 'libtsan.so.*' || die
1248 }
1249
1250 src_install_libstdc++-common()
1251 {
1252 install_gcc_library "libstdc++-v3/src" || die
1253 mmake -j1 -C ${CHOST}/libstdc++-v3/po DESTDIR=${BINDIR} install || die
1254 }
1255
1256 src_install_libstdc++()
1257 {
1258 src_install_libstdc++-common || die
1259 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1260 then
1261 keep_dev_package_libs 'libstdc++.so.*' || die
1262 fi
1263 }
1264
1265 src_install_libstdc++-dev()
1266 {
1267 src_install_libstdc++-common || die
1268 delete_dev_package_libs 'libstdc++.so.*' || die
1269 }
1270
1271 if lang_enabled java
1272 then
1273 src_install_libgcj-common()
1274 {
1275 install_gcc_library "libjava"
1276 }
1277
1278 src_install_libgcj()
1279 {
1280 src_install_libgcj-common || die
1281 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1282 then
1283 keep_dev_package_libs 'libgcj_bc.so.* libgcj-tools.so.* libgcj.so.* libgij.so.*' || die
1284 fi
1285 }
1286
1287 src_install_libgcj-dev()
1288 {
1289 src_install_libgcj-common || die
1290 delete_dev_package_libs 'libgcj_bc.so.* libgcj-tools.so.* libgcj.so.* libgij.so.*' || die
1291 }
1292
1293 src_install_gcc-gcj()
1294 {
1295 cd ${SRCDIR}/build
1296
1297 # install only java targets
1298 make -C ${CHOST}/libjava DESTDIR=${BINDIR} install || die
1299 make -C gcc DESTDIR=${BINDIR} java.install-common || die
1300 make -C gcc DESTDIR=${BINDIR} java.install-man || die
1301
1302 # missing bins
1303 minstallexec gcc/jc1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1304 minstallexec gcc/jvgenmain /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1305
1306 # remove libraries already included elsewhere
1307 mmake -j1 -C ${CHOST}/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1308 mdelete /usr/$(mlibdir)/libgcj_bc.so\* || die
1309 if [[ $(mlibdir) != lib ]]
1310 then
1311 mmake -j1 -C ${CHOST}/32/libjava DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1312 mdelete /usr/lib/libgcj_bc.so\* || die
1313 fi
1314
1315 # versionize all bins and symlink them
1316 versionize_all_bins || die
1317 }
1318 fi
1319
1320 if lang_enabled ada
1321 then
1322 src_install_libgnat-common()
1323 {
1324 cd ${SRCDIR}/build
1325 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1326 if [[ $(mlibdir) != lib ]]
1327 then
1328 # install 32bit libgnat
1329 # make tries to execute the libs, which fails
1330 # we override the INSTALL commands to *not* do that
1331 mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
1332 fi
1333 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib libgnarl*.* libgnat*.* || die
1334
1335 # move so-libs to the right location
1336 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so /usr/$(mlibdir) || die
1337 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so /usr/$(mlibdir) || die
1338 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl.so || die
1339 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat.so || die
1340 mlink libgnarl-${PVER%.*}.so /usr/$(mlibdir)/libgnarl.so || die
1341 mlink libgnat-${PVER%.*}.so /usr/$(mlibdir)/libgnat.so || die
1342 mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so || die
1343 mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so || die
1344 mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl.so || die
1345 mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat.so || die
1346
1347 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adainclude || die
1348
1349 if [[ $(mlibdir) != lib ]]
1350 then
1351 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib libgnarl*.* libgnat*.* || die
1352
1353 # move so-libs to the right location
1354 minstalldir /usr/lib || die
1355 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so /usr/lib || die
1356 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so /usr/lib || die
1357 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl.so || die
1358 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat.so || die
1359 mlink libgnarl-${PVER%.*}.so /usr/lib/libgnarl.so || die
1360 mlink libgnat-${PVER%.*}.so /usr/lib/libgnat.so || die
1361 mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so || die
1362 mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so || die
1363 mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl.so || die
1364 mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat.so || die
1365
1366 mdelete -r /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adainclude || die
1367 fi
1368
1369 # remove other
1370 mdelete -r /usr/bin || die
1371 }
1372
1373 src_install_libgnat()
1374 {
1375 src_install_libgnat-common || die
1376 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1377 then
1378 keep_dev_package_libs "libgnarl-${PVER%.*}.so libgnarl.so libgnat-${PVER%.*}.so libgnat.so" || die
1379 fi
1380 }
1381
1382 src_install_libgnat-dev()
1383 {
1384 src_install_libgnat-common || die
1385 delete_dev_package_libs "libgnarl-${PVER%.*}.so libgnarl.so libgnat-${PVER%.*}.so libgnat.so" || die
1386 }
1387
1388 src_install_gcc-gnat()
1389 {
1390 cd ${SRCDIR}/build
1391 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1392 if [[ $(mlibdir) != lib ]]
1393 then
1394 # install 32bit libgnat
1395 # make tries to execute the libs, which fails
1396 # we override the INSTALL commands to *not* do that
1397 mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
1398 fi
1399 mmake -C gcc DESTDIR=${BINDIR} ada.install-info || die
1400 minstallexec gcc/gnat1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER} || die
1401
1402 # remove libraries already included elsewhere
1403 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl\*.\* || die
1404 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat\*.\* || die
1405 if [[ $(mlibdir) != lib ]]
1406 then
1407 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl\*.\* || die
1408 mdelete /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat\*.\* || die
1409 fi
1410
1411 # versionize all bins and symlink them
1412 versionize_all_bins || die
1413 }
1414 fi
1415
1416 if lang_enabled fortran
1417 then
1418 src_install_libgfortran-common()
1419 {
1420 install_gcc_library "libgfortran"
1421 }
1422
1423 src_install_libgfortran()
1424 {
1425 src_install_libgfortran-common || die
1426 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1427 then
1428 keep_dev_package_libs 'libgfortran.so.*' || die
1429 fi
1430 }
1431
1432 src_install_libgfortran-dev()
1433 {
1434 src_install_libgfortran-common || die
1435 delete_dev_package_libs 'libgfortran.so.*' || die
1436 }
1437
1438 src_install_gcc-gfortran()
1439 {
1440 cd ${SRCDIR}/build
1441
1442 # omp headers needed by fortran
1443 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-nodist_fincludeHEADERS || die
1444 mmake -C gcc DESTDIR=${BINDIR} fortran.install-common || die
1445 mmake -C gcc DESTDIR=${BINDIR} fortran.install-man || die
1446 mmake -C gcc DESTDIR=${BINDIR} fortran.install-info || die
1447 # missing binaries
1448 minstallexec gcc/f951 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
1449 mlink gfortran /usr/bin/f95 || die
1450
1451 # remove libraries already included elsewhere
1452 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} uninstall-nodist_fincludeHEADERS || die
1453
1454 # versionize all bins and symlink them
1455 versionize_all_bins || die
1456 }
1457 fi
1458
1459 if lang_enabled go
1460 then
1461 src_install_libgo-common()
1462 {
1463 install_gcc_library "libgo" || die
1464 }
1465
1466 src_install_libgo()
1467 {
1468 src_install_libgo-common || die
1469 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1470 then
1471 keep_dev_package_libs 'libgo.so.*' || die
1472 fi
1473 }
1474
1475 src_install_libgo-dev()
1476 {
1477 src_install_libgo-common || die
1478 delete_dev_package_libs 'libgo.so.*' || die
1479 }
1480
1481 src_install_gcc-go()
1482 {
1483 cd ${SRCDIR}/build
1484 mmake DESTDIR=${BINDIR} install-target-libgo || die
1485 mmake -C gcc DESTDIR=${BINDIR} go.install-common || die
1486 mmake -C gcc DESTDIR=${BINDIR} go.install-man || die
1487 mmake -C gcc DESTDIR=${BINDIR} go.install-info || die
1488 minstallexec gcc/go1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1489
1490 # remove libraries already included elsewhere
1491 mmake -j1 -C ${CHOST}/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1492 mmake -j1 -C ${CHOST}/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1493 if [[ $(mlibdir) != lib ]]
1494 then
1495 mmake -j1 -C ${CHOST}/32/libgo DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1496 mmake -j1 -C ${CHOST}/32/libatomic DESTDIR=${BINDIR} uninstall-toolexeclibLTLIBRARIES || die
1497 fi
1498
1499 # versionize all bins and symlink them
1500 versionize_all_bins || die
1501 }
1502 fi
1503
1504 if lang_enabled objc
1505 then
1506 src_install_libobjc-common()
1507 {
1508 install_gcc_library "libobjc" || die
1509 }
1510
1511 src_install_libobjc()
1512 {
1513 cd ${SRCDIR}/build
1514 mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-libs || die
1515 if [[ $(mlibdir) != lib ]]
1516 then
1517 mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-libs || die
1518 fi
1519
1520 if [[ ${ENABLE_DEV_PACKAGES} = 1 ]]
1521 then
1522 keep_dev_package_libs 'libobjc.so.*' || die
1523 fi
1524 }
1525
1526 src_install_libobjc-dev()
1527 {
1528 cd ${SRCDIR}/build
1529 mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-libs || die
1530 if [[ $(mlibdir) != lib ]]
1531 then
1532 mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-libs || die
1533 fi
1534 delete_dev_package_libs 'libobjc.so.*' || die
1535 }
1536
1537 src_install_gcc-objc()
1538 {
1539 cd ${SRCDIR}/build
1540 mmake -j1 -C ${CHOST}/libobjc DESTDIR=${BINDIR} install-headers || die
1541 if [[ $(mlibdir) != lib ]]
1542 then
1543 mmake -j1 -C ${CHOST}/32/libobjc DESTDIR=${BINDIR} install-headers || die
1544 fi
1545 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1546 minstallexec gcc/cc1obj /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1547 }
1548
1549 if lang_enabled obj-c++
1550 then
1551 src_install_gcc-objc++()
1552 {
1553 cd ${SRCDIR}/build
1554 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1555 minstallexec gcc/cc1objplus /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1556 }
1557 fi
1558 fi