Magellan Linux

Contents of /smage/trunk/core/gcc/gcc-4.8.1-r1.smage2

Parent Directory Parent Directory | Revision Log Revision Log


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