Magellan Linux

Contents of /smage/trunk/core/gcc/gcc-4.7.2-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4485 - (show annotations) (download)
Wed Mar 13 12:28:56 2013 UTC (11 years, 2 months ago) by niro
File size: 34324 byte(s)
auto added: ver bump to 4.7.2-r2
1 # $Id$
2
3 PNAME="gcc"
4 PVER="4.7.2"
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++
14 # obj-c++ requires objc
15 #
16 # while toolchain boostrap, 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=bootsrap ada, using precompiled gnat binaries
21 # 0=no bootstrap, build ada with system gnat - needs sys-dev/gnat
22 ADA_BOOTSTRAP="0"
23
24 SPLIT_PACKAGES="libgcc libgcc-dev libssp libssp-dev libgomp libgomp-dev libmudflap libmudflap-dev libquadmath libquadmath-dev libitm libitm-dev libstdc++ libstdc++-dev gcc"
25
26 # helper functions
27 lang_enabled()
28 {
29 local lang="$1"
30
31 if [[ ${MyLanguages//${lang}} != ${MyLanguages} ]]
32 then
33 return 0
34 else
35 return 1
36 fi
37 }
38
39 versionize_all_bins()
40 {
41 local bin
42
43 for bin in $(find ${BINDIR}/usr/bin -type f)
44 do
45 echo ${bin}
46 mv ${bin} ${bin}-${PVER} || die
47 ln -snf $(basename ${bin}-${PVER}) ${bin} || die
48 done
49 }
50
51 if lang_enabled java
52 then
53 SPLIT_PACKAGES+=" libgcj libgcj-dev gcc-gcj"
54 JAVA_DEPEND=">= dev-java/eclipse-ecj-3.6
55 >= dev-java/fastjar-0.98
56 >= sys-apps/file-5
57 >= app-arch/unzip-6
58 >= app-arch/zip-3
59 >= media-libs/alsa-lib-1.0.26
60 >= x11-libs/libSM-1.2
61 >= x11-libs/libXtst-1.2
62 >= dev-libs/glib2-2.34
63 >= x11-libs/gtk2+-2.24
64 >= media-libs/libart_lgpl-2.3.21"
65
66 # provided java version
67 JAVA_PVER="1.5.0-gcj-1.5.0.0"
68 fi
69
70 if lang_enabled ada
71 then
72 SPLIT_PACKAGES+=" libgnat gcc-gnat"
73 ADA_DEPEND=""
74 if [[ ${ADA_BOOTSTRAP} = 1 ]]
75 then
76 GNAT_BIN_x86="gnatboot-4.3-i686.tar.bz2"
77 GNAT_BIN_x86_64="gnatboot-4.3-amd64.tar.bz2"
78 GNAT_BIN="$(eval echo \$GNAT_BIN_${ARCH/i*86/x86})"
79 GNAT_BIN_SRCDIR="${BUILDDIR}/gnat"
80 SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86} )
81 SRC_URI+=( mirror://${PNAME}/${GNAT_BIN_x86_64} )
82 fi
83 fi
84
85 if lang_enabled fortran
86 then
87 SPLIT_PACKAGES+=" libgfortran libgfortran-dev gcc-gfortran"
88 FORTRAN_DEPEND=""
89 fi
90
91 if lang_enabled go
92 then
93 SPLIT_PACKAGES+=" libgo libgo-dev gcc-go"
94 GO_DEPEND=""
95 fi
96
97 if lang_enabled objc
98 then
99 SPLIT_PACKAGES+=" libobjc libobjc-dev gcc-objc"
100 OBJC_DEPEND=""
101
102 if lang_enabled obj-c++
103 then
104 SPLIT_PACKAGES+=" gcc-objc++"
105 OBJCPP_DEPEND=""
106 fi
107 fi
108
109 COMMON_DEPEND=">= virtual/glibc"
110 LIBGCC_DEPEND="${COMMON_DEPEND}"
111 LIBSSP_DEPEND="${COMMON_DEPEND}"
112 LIBGOMP_DEPEND="${COMMON_DEPEND}"
113 LIBMUDFLAP_DEPEND="${COMMON_DEPEND}"
114 LIBQUADMATH_DEPEND="${COMMON_DEPEND}"
115 LIBITM_DEPEND="${COMMON_DEPEND}"
116 LIBSTDCPP_DEPEND="${COMMON_DEPEND}"
117
118 GCC_DEPEND="${COMMON_DEPEND}
119 >= sys-dev/binutils-2.23
120 >= dev-libs/gmp-5.1
121 >= dev-libs/mpfr-3.1
122 >= dev-libs/mpc-1.0.1
123 >= dev-libs/ppl-1.0
124 >= dev-libs/cloog-0.18
125 >= dev-libs/elfutils-0.155"
126
127 SDEPEND="${LIBGCC_DEPEND}
128 ${LIBSSP_DEPEND}
129 ${LIBGOMP_DEPEND}
130 ${LIBMUDFLAP_DEPEND}
131 ${LIBQUADMATH_DEPEND}
132 ${LIBITM_DEPEND}
133 ${LIBSTDCPP_DEPEND}
134 ${GCC_DEPEND}
135 ${JAVA_DEPEND}
136 ${ADA_DEPEND}
137 ${FORTRAN_DEPEND}
138 ${GO_DEPEND}
139 ${OBJC_DEPEND}
140 ${OBJCPP_DEPEND}
141 >= virtual/kernel-headers"
142
143 if [[ ${ADA_BOOTSTRAP} != 1 ]]
144 then
145 # add gnat to SDEPEND
146 SDEPEND="${SDEPEND}
147 >= sys-dev/gcc-gnat-4.7"
148 fi
149
150 SRCFILE="${PNAME}-${PVER}.tar.bz2"
151 SRCDIR="${BUILDDIR}/${PNAME}-${PVER}"
152
153 # you better off when not using distcc to compile
154 # your new compiler :) maybe not all are the same
155 msetfeature "!distcc"
156
157 sminclude mtools cleanutils libtool
158
159 SRC_URI=(
160 ${SRC_URI[*]}
161 gnu://${PNAME}/${PNAME}-${PVER}/${SRCFILE}
162 mirror://${PNAME}/${SRCFILE}
163 mirror://${PNAME}/${PNAME}-4.5.1-no-fixincludes.patch
164 mirror://${PNAME}/${PNAME}-4.7.0-cloog017.patch
165 mirror://${PNAME}/${PNAME}-4.7.1-libada-pic.patch
166 mirror://${PNAME}/${PNAME}-4.7.1-libgo-write.patch
167 mirror://${PNAME}/${PNAME}-4.7.2-texinfo5.patch
168 mirror://${PNAME}/${PNAME}-4.7.2-gnat-texinfo5.patch
169 )
170
171 UP2DATE="updatecmd \"http://ftp.gnu.org/gnu/${PNAME}/?C=M;O=A\" | sed -n 's/.*${PNAME}-\(.*\)\//\1/;$ p'"
172
173 # gcc don't like strong CFLAGS
174 export CFLAGS="${CFLAGS//-O?} -O2"
175 export CXXFLAGS="${CFLAGS}"
176
177 # check for crosscompile or export default CHOST
178 if [[ -z ${CTARGET} ]]
179 then
180 # no crosscompile defined
181 export CTARGET=${CHOST}
182 else
183 # use crosscompile host
184 export CTARGET=${CTARGET}
185 fi
186
187 split_info_gcc()
188 {
189 DESCRIPTION="Modern C/C++ compiler written by the GNU people."
190 DEPEND="== sys-libs/libgcc-dev-${PVER}
191 == sys-libs/libssp-dev-${PVER}
192 == sys-libs/libgomp-dev-${PVER}
193 == sys-libs/libmudflap-dev-${PVER}
194 == sys-libs/libquadmath-dev-${PVER}
195 == sys-libs/libitm-dev-${PVER}
196 == sys-libs/libstdc++-dev-${PVER}
197 ${GCC_DEPEND}"
198 }
199
200 split_info_libgcc()
201 {
202 DESCRIPTION="GCC shared support library."
203 DEPEND="${LIBGCC_DEPEND}"
204 PCAT="sys-libs"
205 }
206
207 split_info_libgcc-dev()
208 {
209 DESCRIPTION="Development files for libgcc."
210 DEPEND="== sys-libs/libgcc-${PVER}"
211 PCAT="sys-libs"
212 }
213
214 split_info_libssp()
215 {
216 DESCRIPTION="SSP libraries from GCC."
217 DEPEND="${LIBSSP_DEPEND}"
218 PCAT="sys-libs"
219 }
220
221 split_info_libssp-dev()
222 {
223 DESCRIPTION="Development files for libssp."
224 DEPEND="== sys-libs/libssp-${PVER}"
225 PCAT="sys-libs"
226 }
227
228 split_info_libgomp()
229 {
230 DESCRIPTION="GNU OpenMP runtime library."
231 DEPEND="${LIBGOMP_DEPEND}"
232 PCAT="sys-libs"
233 }
234
235 split_info_libgomp-dev()
236 {
237 DESCRIPTION="Development files for libgomp."
238 DEPEND="== sys-libs/libgomp-${PVER}"
239 PCAT="sys-libs"
240 }
241
242 split_info_libmudflap()
243 {
244 DESCRIPTION="GCC mudflap shared support library."
245 DEPEND="${LIBMUDFLAP_DEPEND}"
246 PCAT="sys-libs"
247 }
248
249 split_info_libmudflap-dev()
250 {
251 DESCRIPTION="Development files for libmudflap."
252 DEPEND="== sys-libs/libmudflap-${PVER}"
253 PCAT="sys-libs"
254 }
255
256 split_info_libquadmath()
257 {
258 DESCRIPTION="GCC __float128 shared support library."
259 DEPEND="${LIBQUADMATH_DEPEND}"
260 PCAT="sys-libs"
261 }
262
263 split_info_libquadmath-dev()
264 {
265 DESCRIPTION="Development files for libquadmath."
266 DEPEND="== sys-libs/libquadmath-${PVER}"
267 PCAT="sys-libs"
268 }
269
270 split_info_libitm()
271 {
272 DESCRIPTION="The GNU Transactional Memory library."
273 DEPEND="${LIBITM_DEPEND}"
274 PCAT="sys-libs"
275 }
276
277 split_info_libitm-dev()
278 {
279 DESCRIPTION="Development files for libitm."
280 DEPEND="== sys-libs/libitm-${PVER}"
281 PCAT="sys-libs"
282 }
283
284 split_info_libstdc++()
285 {
286 DESCRIPTION="Standard GNU C and C++ libraries."
287 DEPEND="== sys-libs/libgcc-${PVER}
288 ${LIBSTDCPP_DEPEND}"
289 PCAT="sys-libs"
290 }
291
292 split_info_libstdc++-dev()
293 {
294 DESCRIPTION="Development files for libstdc++."
295 DEPEND="== sys-libs/libstdc++-${PVER}"
296 PCAT="sys-libs"
297 }
298
299 if lang_enabled java
300 then
301 split_info_libgcj()
302 {
303 DESCRIPTION="Java runtime library for GCC."
304 DEPEND="== sys-libs/libgcc-${PVER}
305 ${JAVA_DEPEND}"
306 PCAT="sys-libs"
307 }
308
309 split_info_libgcj-dev()
310 {
311 DESCRIPTION="Development files for libgcj."
312 DEPEND="== sys-libs/libgcj-${PVER}"
313 PCAT="sys-libs"
314 }
315
316 split_info_gcc-gcj()
317 {
318 DESCRIPTION="Java support for GCC."
319 DEPEND="== sys-libs/libgcc-dev-${PVER}
320 == sys-libs/libstdc++-dev-${PVER}
321 == sys-libs/libgcj-dev-${PVER}
322 == sys-dev/gcc-${PVER}
323 ${JAVA_DEPEND}"
324 }
325 fi
326
327 if lang_enabled ada
328 then
329 split_info_libgnat()
330 {
331 DESCRIPTION="Gnu Ada 95 library which is needed to run Ada programs."
332 DEPEND="== sys-libs/libgcc-${PVER}
333 ${ADA_DEPEND}"
334 PCAT="sys-libs"
335 }
336
337 split_info_gcc-gnat()
338 {
339 DESCRIPTION="Ada 95 support for GCC."
340 DEPEND="== sys-libs/libgcc-dev-${PVER}
341 == sys-libs/libstdc++-dev-${PVER}
342 == sys-libs/libgnat-${PVER}
343 == sys-dev/gcc-${PVER}
344 ${ADA_DEPEND}"
345 }
346 fi
347
348 if lang_enabled fortran
349 then
350 split_info_libgfortran()
351 {
352 DESCRIPTION="Gnu Fortran library which is needed to run Fortran programs."
353 DEPEND="== sys-libs/libquadmath-${PVER}
354 ${FORTRAN_DEPEND}"
355 PCAT="sys-libs"
356 }
357
358 split_info_libgfortran-dev()
359 {
360 DESCRIPTION="Development files for libgfortran."
361 DEPEND="== sys-libs/libgfortran-${PVER}"
362 PCAT="sys-libs"
363 }
364
365 split_info_gcc-gfortran()
366 {
367 DESCRIPTION="Fortran support for GCC."
368 DEPEND="== sys-libs/libgcc-dev-${PVER}
369 == sys-libs/libstdc++-dev-${PVER}
370 == sys-libs/libgfortran-dev-${PVER}
371 == sys-dev/gcc-${PVER}
372 ${FORTRAN_DEPEND}"
373 }
374 fi
375
376 if lang_enabled go
377 then
378 split_info_libgo()
379 {
380 DESCRIPTION="Go library which is needed to run Go programs."
381 DEPEND="== sys-libs/libgcc-${PVER}
382 ${GO_DEPEND}"
383 PCAT="sys-libs"
384 }
385
386 split_info_libgo-dev()
387 {
388 DESCRIPTION="Development files for libgo."
389 DEPEND="== sys-libs/libgo-${PVER}"
390 PCAT="sys-libs"
391 }
392
393 split_info_gcc-go()
394 {
395 DESCRIPTION="Go support for GCC."
396 DEPEND="== sys-libs/libgcc-dev-${PVER}
397 == sys-libs/libstdc++-dev-${PVER}
398 == sys-libs/libgo-dev-${PVER}
399 == sys-dev/gcc-${PVER}
400 ${GO_DEPEND}"
401 }
402 fi
403
404 if lang_enabled objc
405 then
406 split_info_libobjc()
407 {
408 DESCRIPTION="Objective-C library which is needed to run Objective-C programs."
409 DEPEND="== sys-libs/libgcc-${PVER}
410 ${OBJC_DEPEND}"
411 PCAT="sys-libs"
412 }
413
414 split_info_libobjc-dev()
415 {
416 DESCRIPTION="Development files for libobjc."
417 DEPEND="== sys-libs/libobjc-${PVER}"
418 PCAT="sys-libs"
419 }
420
421 split_info_gcc-objc()
422 {
423 DESCRIPTION="Objective-C support for GCC."
424 DEPEND="== sys-libs/libgcc-dev-${PVER}
425 == sys-libs/libstdc++-dev-${PVER}
426 == sys-libs/libobjc-dev-${PVER}
427 == sys-dev/gcc-${PVER}
428 ${OBJC_DEPEND}"
429 }
430
431 if lang_enabled obj-c++
432 then
433 split_info_gcc-objc++()
434 {
435 DESCRIPTION="Objective-C++ support for GCC."
436 DEPEND="== sys-libs/libgcc-dev-${PVER}
437 == sys-libs/libstdc++-dev-${PVER}
438 == sys-libs/libobjc-dev-${PVER}
439 == sys-dev/gcc-${PVER}
440 == sys-dev/gcc-objc-${PVER}
441 ${OBJCPP_DEPEND}"
442 }
443 fi
444 fi
445
446 src_prepare()
447 {
448 munpack ${SRCFILE} || die
449
450 if lang_enabled ada
451 then
452 if [[ ${ADA_BOOTSTRAP} = 1 ]]
453 then
454 # setup binary ada if boostrap is enabled
455 install -d ${GNAT_BIN_SRCDIR} || die
456 munpack ${GNAT_BIN} ${GNAT_BIN_SRCDIR} || die
457 # gnat wrapper has problems with quotation
458 sed -i \
459 -e "/-DREVISION/d" \
460 -e "/-DDEVPHASE/d" \
461 -e "s: -DDATESTAMP=\$(DATESTAMP_s)::" \
462 ${SRCDIR}/gcc/Makefile.in || die
463 sed -i \
464 -e "s: DATESTAMP DEVPHASE REVISION::" \
465 -e "s:PKGVERSION:\"\":" \
466 ${SRCDIR}/gcc/version.c || die
467 fi
468 cd ${SRCDIR}
469 fi
470
471 cd ${SRCDIR}
472
473 # generic fixes
474 mpatch ${PNAME}-4.5.1-no-fixincludes.patch || die
475
476 # support cloog-0.17
477 mpatch ${PNAME}-4.7.0-cloog017.patch || die
478
479 # fix pic issues
480 mpatch ${PNAME}-4.7.1-libada-pic.patch || die
481
482 # fix compile issues
483 # see: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53679
484 mpatch ${PNAME}-4.7.1-libgo-write.patch || die
485
486 # fix issues with texinfo-5
487 mpatch ${PNAME}-4.7.2-texinfo5.patch || die
488 mpatch ${PNAME}-4.7.2-gnat-texinfo5.patch || die
489
490 # suppress installation of libiberty, as we will be
491 # using the one from binutils
492 sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in || die
493
494 # suppress installation of libffi, we're using libffi3 instead
495 sed -i 's/\(install.*:\) install-.*recursive/\1/' libffi/Makefile.in || die
496 sed -i 's/\(install-data-am:\).*/\1/' libffi/include/Makefile.in || die
497
498 install -d ${SRCDIR}/build || die
499 }
500
501 src_compile()
502 {
503 if lang_enabled ada
504 then
505 if [[ ${ADA_BOOTSTRAP} = 1 ]]
506 then
507 # export binary gnat pathes
508 export PATH="${GNAT_BIN_SRCDIR}/usr/bin:${PATH}"
509 export CC="${GNAT_BIN_SRCDIR}/usr/bin/gnatgcc"
510 # CPATH is supposed to be applied for any language, thus
511 # superseding either of C/CPLUS/OBJC_INCLUDE_PATHs
512 export CPATH="${GNAT_BIN_SRCDIR}/usr/lib/include"
513 export LIB_DIR="${GNAT_BIN_SRCDIR}/usr/lib"
514 export LDFLAGS="-L${GNAT_BIN_SRCDIR}/usr/lib"
515 export LIBRARY_PATH="${GNAT_BIN_SRCDIR}/usr/lib"
516 export ADA_OBJECTS_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adalib"
517 export ADA_INCLUDE_PATH="${GNAT_BIN_SRCDIR}/usr/lib/adainclude"
518
519 # prepare some tools
520 cd ${GNAT_BIN_SRCDIR}
521 cp ${SRCDIR}/gcc/ada/xtreeprs.adb ${GNAT_BIN_SRCDIR} || die
522 cp ${SRCDIR}/gcc/ada/csinfo.adb ${GNAT_BIN_SRCDIR} || die
523 cp ${SRCDIR}/gcc/ada/ceinfo.adb ${GNAT_BIN_SRCDIR} || die
524 cp ${SRCDIR}/gcc/ada/xsinfo.adb ${GNAT_BIN_SRCDIR} || die
525 cp ${SRCDIR}/gcc/ada/xeinfo.adb ${GNAT_BIN_SRCDIR} || die
526 cp ${SRCDIR}/gcc/ada/xnmake.adb ${GNAT_BIN_SRCDIR} || die
527 cp ${SRCDIR}/gcc/ada/xutil.ad{s,b} ${GNAT_BIN_SRCDIR} || die
528 gnatmake xtreeprs || die
529 gnatmake xsinfo || die
530 gnatmake xeinfo || die
531 gnatmake xnmake || die
532 fi
533 fi
534
535 cd ${SRCDIR}/build
536 local myconf
537
538 # Straight from the GCC install doc:
539 # "GCC has code to correctly determine the correct value for target
540 # for nearly all native systems. Therefore, we highly recommend you
541 # not provide a configure target when configuring a native compiler."
542 if [[ ${CHOST} != ${CTARGET} ]]
543 then
544 myconf+=" --target=${CTARGET}"
545 fi
546
547 if lang_enabled java
548 then
549 myconf+=" --enable-java-awt=gtk
550 --enable-gtk-cairo
551 --enable-libgcj-multifile
552 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
553 --with-fastjar=/usr/bin/fastjar
554 --enable-hash-synchronization"
555 # disable mutilib for java
556 myconf+=" --disable-libjava-multilib"
557 # java home, must be the same of java-gcj-compat
558 myconf+=" --with-java-home=/usr/$(mlibdir)/jvm/java-${JAVA_PVER}/jre"
559 fi
560
561 # # support ppl >= 1.0
562 # myconf+=" --disable-ppl-version-check"
563 # # and ignore version check for cloog too
564 # myconf+=" --disable-cloog-version-check"
565 # # use isl backend
566 # myconf+=" --enable-cloog-backend=isl"
567
568 # gcc >= 4.3 has now configure flags for uri and version - yeah!
569 AR=ar \
570 ../configure \
571 --with-bugurl="http://bugs.magellan-linux.de/" \
572 --with-pkgversion="Magellan-Linux" \
573 --build=${CHOST} \
574 --host=${CHOST} \
575 --prefix=/usr \
576 --sbindir=/usr/bin \
577 --mandir=/usr/share/man \
578 --infodir=/usr/share/info \
579 --libdir=/usr/$(mlibdir) \
580 --libexecdir=/usr/$(mlibdir) \
581 --enable-shared \
582 --enable-threads=posix \
583 --enable-__cxa_atexit \
584 --enable-clocale=gnu \
585 --disable-checking \
586 --with-system-zlib \
587 --enable-long-long \
588 --enable-cstdio=stdio \
589 --enable-languages=${MyLanguages} \
590 --disable-libstdcxx-pch \
591 --enable-gnu-unique-object \
592 --enable-lto \
593 --enable-plugin \
594 --enable-gold \
595 --enable-linker-build-id \
596 ${myconf} \
597 || die
598
599 # parallel builds seems to break sometimes on x86_64
600 local myopts
601 [[ ${ARCH} = x86_64 ]] && myopts=-j1
602
603 mmake ${myopts} bootstrap-lean || die
604 }
605
606 src_install_gcc()
607 {
608 local i
609 local bin
610
611 cd ${SRCDIR}/build
612 minstalldir /$(mlibdir) || die
613
614 # install all targets
615 make DESTDIR=${BINDIR} install || die
616
617 # deletes libstdc++ && libgcc_s && libssp && libgomp libmudflap && libquadmath && libitm
618 rm ${BINDIR}/usr/$(mlibdir)/{libgcc_s*.*,libstdc++*.*,libssp*.*,libgomp*.*,libmudflap*.*,libquadmath*.*,libitm*.*} || die
619 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
620 then
621 rm ${BINDIR}/usr/lib/{libgcc_s*.*,libstdc++*.*,libssp*.*,libgomp*.*,libmudflap*.*,libquadmath*.*,libitm*.*} || die
622 fi
623
624 # deletes all java specific
625 if lang_enabled java
626 then
627 rm -r ${BINDIR}/usr/include/c++/${PVER}/{gcj,gnu,java{,x},org,sun} || die
628 rm ${BINDIR}/usr/$(mlibdir)/{libgcj*.*,libgij*.*} || die
629 rm -r ${BINDIR}/usr/$(mlibdir)/gcj* || die
630 rm ${BINDIR}/usr/$(mlibdir)/logging.properties || die
631 rm ${BINDIR}/usr/$(mlibdir)/pkgconfig/libgcj*.pc || die
632 rm -r ${BINDIR}/usr/$(mlibdir)/security || die
633 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ecj1 || die
634 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jc1 || die
635 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/jvgenmain || die
636 rm -r ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/gcj || die
637 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/{{jawt,jni}{,_md},jvmpi}.h || die
638 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
639 then
640 rm ${BINDIR}/usr/lib/{libgcj*.*,libgij*.*} || die
641 rm -r ${BINDIR}/usr/lib/gcj* || die
642 rm ${BINDIR}/usr/lib/logging.properties || die
643 rm -r ${BINDIR}/usr/lib/security || die
644 fi
645 rm ${BINDIR}/usr/share/info/cp-tools.info || die
646 rm -r ${BINDIR}/usr/share/java || die
647 rm -r ${BINDIR}/usr/share/gcc-${PVER}/python/libjava || die
648 for i in aot-compile gappletviewer gc-analyze gcj gcj-dbtool gcjh gij gjar \
649 gjarsigner gjavah gjdoc gkeytool gnative2ascii gorbd grmic grmid grmiregistry \
650 gserialver gtnameserv jcf-dump jv-convert rebuild-gcj-db ${CHOST}-gcj
651 do
652 if [ -f ${BINDIR}/usr/bin/${i} ]
653 then
654 rm ${BINDIR}/usr/bin/${i} || die
655 fi
656 if [ -f ${BINDIR}/usr/share/man/man1/${i}.1 ]
657 then
658 rm ${BINDIR}/usr/share/man/man1/${i}.1 || die
659 fi
660 done
661 fi
662
663 # deletes all ada specific
664 if lang_enabled ada
665 then
666 rm ${BINDIR}/usr/bin/gnat* || die
667 rm -r ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib || die
668 rm -r ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adainclude || die
669 if [[ $(mlibdir) != lib ]]
670 then
671 rm -r ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib || die
672 rm -r ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adainclude || die
673 fi
674 rm ${BINDIR}/usr/share/info/gnat*.info || die
675 fi
676
677 # deletes all fortran specific
678 if lang_enabled fortran
679 then
680 rm ${BINDIR}/usr/bin/gfortran || die
681 rm ${BINDIR}/usr/bin/${CHOST}-gfortran || die
682 rm ${BINDIR}/usr/$(mlibdir)/libgfortran*.* || die
683 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
684 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/libgfortran*.* || die
685 if [[ $(mlibdir) != lib ]]
686 then
687 rm ${BINDIR}/usr/lib/libgfortran*.* || die
688 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/libgfortran*.* || die
689 fi
690 rm ${BINDIR}/usr/share/info/gfortran.info || die
691 rm ${BINDIR}/usr/share/man/man1/gfortran.1 || die
692 fi
693
694 # deletes all go specific
695 if lang_enabled go
696 then
697 rm ${BINDIR}/usr/bin/gccgo || die
698 rm ${BINDIR}/usr/bin/${CHOST}-gccgo || die
699 rm ${BINDIR}/usr/$(mlibdir)/libgo*.* || die
700 rm -r ${BINDIR}/usr/$(mlibdir)/go || die
701 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/go1 || die
702 if [[ $(mlibdir) != lib ]]
703 then
704 rm ${BINDIR}/usr/lib/libgo*.* || die
705 rm -r ${BINDIR}/usr/lib/go || die
706 fi
707 rm ${BINDIR}/usr/share/info/gccgo.info || die
708 rm ${BINDIR}/usr/share/man/man1/gccgo.1 || die
709 fi
710
711 # deletes all objc + obj-c++
712 if lang_enabled objc
713 then
714 rm ${BINDIR}/usr/$(mlibdir)/libobjc*.* || die
715 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/cc1obj || die
716 rm -r ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/include/objc || die
717 if [[ $(mlibdir) != lib ]]
718 then
719 rm ${BINDIR}/usr/lib/libobjc*.* || die
720 fi
721
722 if lang_enabled obj-c++
723 then
724 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/cc1objplus || die
725 fi
726 fi
727
728 # versionize all bins and symlink them
729 versionize_all_bins || die
730
731 mlink ../usr/bin/cpp-${PVER} /usr/$(mlibdir)/cpp || die
732 # this one is needed on multilib systems.
733 # rpcgen may not find the cpp compiler correctly if not in /lib/cpp
734 if [[ $(mlibdir) != lib ]]
735 then
736 minstalldir /usr/lib || die
737 mlink ../usr/bin/cpp-${PVER} /usr/lib/cpp || die
738 fi
739 mlink gcc-${PVER} /usr/bin/cc || die
740
741 # fix all .la files
742 # they may contain invalid libpathes which are not needed
743 local la
744 for la in $(find ${BINDIR} -name \*.la)
745 do
746 fix_la_file ${la} || die ${la}
747 done
748 }
749
750 src_install_libgcc()
751 {
752 cd ${SRCDIR}/build
753 make DESTDIR=${BINDIR} install-target-libgcc || die
754
755 # cleanup, only keep the libs, everything else get provided by the gcc-package
756 zapmost ${BINDIR}/usr/$(mlibdir) libgcc_s.so.* || die
757 # multilib as well
758 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
759 then
760 zapmost ${BINDIR}/usr/lib libgcc_s.so.* || die
761 fi
762 }
763
764 src_install_libgcc-dev()
765 {
766 cd ${SRCDIR}/build
767 make DESTDIR=${BINDIR} install-target-libgcc || die
768
769 # cleanup, only keep the libs, everything else get provided by the gcc-package
770 zapmost ${BINDIR}/usr/$(mlibdir) libgcc_s.so libgcc_s.la libgcc_s.a || die
771 # multilib as well
772 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
773 then
774 zapmost ${BINDIR}/usr/lib libgcc_s.so libgcc_s.la libgcc_s.a || die
775 fi
776 }
777
778 src_install_libssp()
779 {
780 cd ${SRCDIR}/build
781 make DESTDIR=${BINDIR} install-target-libssp || die
782
783 # cleanup, only keep the libs, everything else get provided by the gcc-package
784 zapmost ${BINDIR}/usr/$(mlibdir) libssp.so.* || die
785 # multilib as well
786 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
787 then
788 zapmost ${BINDIR}/usr/lib libssp.so.* || die
789 fi
790 }
791
792 src_install_libssp-dev()
793 {
794 cd ${SRCDIR}/build
795 make DESTDIR=${BINDIR} install-target-libssp || die
796
797 # cleanup, only keep the libs, everything else get provided by the gcc-package
798 zapmost ${BINDIR}/usr/$(mlibdir) libssp.so libssp.la libssp.a || die
799 # multilib as well
800 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
801 then
802 zapmost ${BINDIR}/usr/lib libssp.so libssp.la libssp.a || die
803 fi
804 }
805
806 src_install_libgomp()
807 {
808 cd ${SRCDIR}/build
809 make DESTDIR=${BINDIR} install-target-libgomp || die
810
811 # cleanup, only keep the libs, everything else get provided by the gcc-package
812 zapmost ${BINDIR}/usr/$(mlibdir) libgomp.so.* || die
813 # multilib as well
814 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
815 then
816 zapmost ${BINDIR}/usr/lib libgomp.so.* || die
817 fi
818 }
819
820 src_install_libgomp-dev()
821 {
822 cd ${SRCDIR}/build
823 make DESTDIR=${BINDIR} install-target-libgomp || die
824
825 # cleanup, only keep the libs, everything else get provided by the gcc-package
826 zapmost ${BINDIR}/usr/$(mlibdir) libgomp.so libgomp.la libgomp.a || die
827 # multilib as well
828 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
829 then
830 zapmost ${BINDIR}/usr/lib libgomp.so libgomp.la libgomp.a || die
831 fi
832 }
833
834 src_install_libmudflap()
835 {
836 cd ${SRCDIR}/build
837 make DESTDIR=${BINDIR} install-target-libmudflap || die
838
839 # cleanup, only keep the libs, everything else get provided by the gcc-package
840 zapmost ${BINDIR}/usr/$(mlibdir) libmudflap.so.* || die
841 # multilib as well
842 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
843 then
844 zapmost ${BINDIR}/usr/lib libmudflap.so.* || die
845 fi
846 }
847
848 src_install_libmudflap-dev()
849 {
850 cd ${SRCDIR}/build
851 make DESTDIR=${BINDIR} install-target-libmudflap || die
852
853 # cleanup, only keep the libs, everything else get provided by the gcc-package
854 zapmost ${BINDIR}/usr/$(mlibdir) libmudflap.so libmudflap.la libmudflap.a || die
855 # multilib as well
856 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
857 then
858 zapmost ${BINDIR}/usr/lib libmudflap.so libmudflap.la libmudflap.a || die
859 fi
860 }
861
862 src_install_libquadmath()
863 {
864 cd ${SRCDIR}/build
865 make DESTDIR=${BINDIR} install-target-libquadmath || die
866
867 # cleanup, only keep the libs, everything else get provided by the gcc-package
868 zapmost ${BINDIR}/usr/$(mlibdir) libquadmath.so.* || die
869 # multilib as well
870 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
871 then
872 zapmost ${BINDIR}/usr/lib libquadmath.so.* || die
873 fi
874 }
875
876 src_install_libquadmath-dev()
877 {
878 cd ${SRCDIR}/build
879 make DESTDIR=${BINDIR} install-target-libquadmath || die
880
881 # cleanup, only keep the libs, everything else get provided by the gcc-package
882 zapmost ${BINDIR}/usr/$(mlibdir) libquadmath.so libquadmath.la libquadmath.a || die
883 # multilib as well
884 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
885 then
886 zapmost ${BINDIR}/usr/lib libquadmath.so libquadmath.la libquadmath.a || die
887 fi
888 }
889
890 src_install_libitm()
891 {
892 cd ${SRCDIR}/build
893 make DESTDIR=${BINDIR} install-target-libitm || die
894
895 # cleanup, only keep the libs, everything else get provided by the gcc-package
896 zapmost ${BINDIR}/usr/$(mlibdir) libitm.so.* || die
897 # multilib as well
898 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
899 then
900 zapmost ${BINDIR}/usr/lib libitm.so.* || die
901 fi
902 }
903
904 src_install_libitm-dev()
905 {
906 cd ${SRCDIR}/build
907 make DESTDIR=${BINDIR} install-target-libitm || die
908
909 # cleanup, only keep the libs, everything else get provided by the gcc-package
910 zapmost ${BINDIR}/usr/$(mlibdir) libitm.so libitm.la libitm.a || die
911 # multilib as well
912 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
913 then
914 zapmost ${BINDIR}/usr/lib libitm.so libitm.la libitm.a || die
915 fi
916 }
917
918 src_install_libstdc++()
919 {
920 cd ${SRCDIR}/build
921 make DESTDIR=${BINDIR} install-target-libstdc++-v3 || die
922
923 # move gdb scripts to a proper location and to pretty-print ldconfig
924 minstalldir /usr/share/gdb/auto-load/usr/$(mlibdir) || die
925 mv ${BINDIR}/usr/$(mlibdir)/libstdc++*gdb.py* ${BINDIR}/usr/share/gdb/auto-load/usr/$(mlibdir)/ || die
926 # multilib as well
927 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
928 then
929 minstalldir /usr/share/gdb/auto-load/usr/lib || die
930 mv ${BINDIR}/usr/lib/libstdc++*gdb.py* ${BINDIR}/usr/share/gdb/auto-load/usr/lib/ || die
931 fi
932
933 # cleanup, only keep the libs, everything else get provided by the gcc-package
934 zapmost ${BINDIR}/usr/$(mlibdir) libstdc++.so.* || die
935 # multilib as well
936 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
937 then
938 zapmost ${BINDIR}/usr/lib libstdc++.so.* || die
939 fi
940
941 # clean up everything else
942 zapmost ${BINDIR} usr/$(mlibdir) $([[ $(mlibdir) != lib ]] && echo "usr/lib") || die
943 }
944
945 src_install_libstdc++-dev()
946 {
947 cd ${SRCDIR}/build
948 make DESTDIR=${BINDIR} install-target-libstdc++-v3 || die
949
950 # move gdb scripts to a proper location and to pretty-print ldconfig
951 minstalldir /usr/share/gdb/auto-load/usr/$(mlibdir) || die
952 mv ${BINDIR}/usr/$(mlibdir)/libstdc++*gdb.py* ${BINDIR}/usr/share/gdb/auto-load/usr/$(mlibdir)/ || die
953 # multilib as well
954 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
955 then
956 minstalldir /usr/share/gdb/auto-load/usr/lib || die
957 mv ${BINDIR}/usr/lib/libstdc++*gdb.py* ${BINDIR}/usr/share/gdb/auto-load/usr/lib/ || die
958 fi
959
960 # cleanup, only keep the libs, everything else get provided by the gcc-package
961 zapmost ${BINDIR}/usr/$(mlibdir) libstdc++.so libstdc++.la libstdc++.a || die
962 # multilib as well
963 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
964 then
965 zapmost ${BINDIR}/usr/lib libstdc++.so libstdc++.la libstdc++.a || die
966 fi
967
968 # clean up everything else
969 zapmost ${BINDIR} usr/share/gdb/auto-load usr/$(mlibdir) $([[ $(mlibdir) != lib ]] && echo "usr/lib") || die
970 }
971
972 if lang_enabled java
973 then
974 src_install_libgcj()
975 {
976 cd ${SRCDIR}/build
977 mmake DESTDIR=${BINDIR} install-target-libjava || die
978
979 zapmost ${BINDIR}/usr/$(mlibdir) libgcj.so.* libgij.so.* || die
980 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
981 then
982 zapmost ${BINDIR}/usr/lib libgcj.so.* libgij.so.* || die
983 fi
984 # other stuff
985 rm -r ${BINDIR}/usr/{bin,include,share} || die
986 }
987
988 src_install_libgcj-dev()
989 {
990 cd ${SRCDIR}/build
991 mmake DESTDIR=${BINDIR} install-target-libjava || die
992
993 zapmost ${BINDIR}/usr/$(mlibdir) libgcj.so libgcj.la libgcj.a libgij.so libgij.la libgij.a || die
994 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
995 then
996 zapmost ${BINDIR}/usr/lib libgcj.so libgcj.la libgcj.a libgij.so libgij.la libgij.a || die
997 fi
998 # other stuff
999 rm -r ${BINDIR}/usr/{bin,include,share} || die
1000 }
1001
1002 src_install_gcc-gcj()
1003 {
1004 cd ${SRCDIR}/build
1005
1006 # install only java targets
1007 make DESTDIR=${BINDIR} install-target-libjava || die
1008 make -C gcc DESTDIR=${BINDIR} java.install-common || die
1009 make -C gcc DESTDIR=${BINDIR} java.install-man || die
1010
1011 # missing bins
1012 minstallexec gcc/jc1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1013 minstallexec gcc/jvgenmain /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1014
1015 # remove libraries already included elsewhere
1016 rm ${BINDIR}/usr/$(mlibdir)/libgcj*.* || die
1017 rm ${BINDIR}/usr/$(mlibdir)/libgij*.* || die
1018 if [[ $(mlibdir) != lib ]]
1019 then
1020 rm ${BINDIR}/usr/lib/libgcj*.* || die
1021 rm ${BINDIR}/usr/lib/libgij*.* || die
1022 fi
1023
1024 # versionize all bins and symlink them
1025 versionize_all_bins || die
1026 }
1027 fi
1028
1029 if lang_enabled ada
1030 then
1031 src_install_libgnat()
1032 {
1033 cd ${SRCDIR}/build
1034 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1035 if [[ $(mlibdir) != lib ]]
1036 then
1037 # install 32bit libgnat
1038 # make tries to execute the libs, which fails
1039 # we override the INSTALL commands to *not* do that
1040 mmake -C ${CHOST}/32/libada DESTDIR=${BINDIR} INSTALL="install" INSTALL_DATA="install -m0644" install-gnatlib || die
1041 fi
1042 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib libgnarl*.* libgnat*.* || die
1043
1044 # remove other
1045 rm -r ${BINDIR}/usr/bin || die
1046
1047 # move so-libs to the right location
1048 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so /usr/$(mlibdir) || die
1049 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so /usr/$(mlibdir) || die
1050 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/lib{gnarl,gnat}.so || die
1051 mlink libgnarl-${PVER%.*}.so /usr/$(mlibdir)/libgnarl.so || die
1052 mlink libgnat-${PVER%.*}.so /usr/$(mlibdir)/libgnat.so || die
1053 mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl-${PVER%.*}.so || die
1054 mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat-${PVER%.*}.so || die
1055 mlink ../../../../libgnarl-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl.so || die
1056 mlink ../../../../libgnat-${PVER%.*}.so /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat.so || die
1057 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
1058 then
1059 zapmost ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib libgnarl*.* libgnat*.* || die
1060
1061 # move so-libs to the right location
1062 minstalldir /usr/lib || die
1063 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so /usr/lib || die
1064 mmove ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so /usr/lib || die
1065 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/32/adalib/lib{gnarl,gnat}.so || die
1066 mlink libgnarl-${PVER%.*}.so /usr/lib/libgnarl.so || die
1067 mlink libgnat-${PVER%.*}.so /usr/lib/libgnat.so || die
1068 mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/lib/gcc/${CHOST}/${PVER}/32/adalib/libgnarl-${PVER%.*}.so || die
1069 mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/lib/gcc/${CHOST}/${PVER}/32/adalib/libgnat-${PVER%.*}.so || die
1070 mlink ../../../../../../lib/libgnarl-${PVER%.*}.so /usr/lib/gcc/${CHOST}/${PVER}/32/adalib/libgnarl.so || die
1071 mlink ../../../../../../lib/libgnat-${PVER%.*}.so /usr/lib/gcc/${CHOST}/${PVER}/32/adalib/libgnat.so || die
1072 fi
1073 }
1074
1075 src_install_gcc-gnat()
1076 {
1077 cd ${SRCDIR}/build
1078 mmake -C gcc DESTDIR=${BINDIR} ada.install-common || die
1079 mmake -C gcc DESTDIR=${BINDIR} ada.install-info || die
1080 minstallexec gcc/gnat1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER} || die
1081
1082 # remove libraries already included elsewhere
1083 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnarl*.* || die
1084 rm ${BINDIR}/usr/$(mlibdir)/gcc/${CHOST}/${PVER}/adalib/libgnat*.* || die
1085
1086 # versionize all bins and symlink them
1087 versionize_all_bins || die
1088 }
1089 fi
1090
1091 if lang_enabled fortran
1092 then
1093 src_install_libgfortran()
1094 {
1095 cd ${SRCDIR}/build
1096 mmake DESTDIR=${BINDIR} install-target-libgfortran || die
1097
1098 zapmost ${BINDIR}/usr/$(mlibdir) libgfortran.so.* || die
1099 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
1100 then
1101 zapmost ${BINDIR}/usr/lib libgfortran.so.* || die
1102 fi
1103 }
1104
1105 src_install_libgfortran-dev()
1106 {
1107 cd ${SRCDIR}/build
1108 mmake DESTDIR=${BINDIR} install-target-libgfortran || die
1109
1110 zapmost ${BINDIR}/usr/$(mlibdir) libgfortran.so libgfortran.la libgfortran.a || die
1111 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
1112 then
1113 zapmost ${BINDIR}/usr/lib libgfortran.so libgfortran.la libgfortran.a || die
1114 fi
1115 }
1116
1117 src_install_gcc-gfortran()
1118 {
1119 cd ${SRCDIR}/build
1120 mmake DESTDIR=${BINDIR} install-target-libgfortran || die
1121
1122 # omp headers needed by fortran
1123 mmake -C ${CHOST}/libgomp DESTDIR=${BINDIR} install-nodist_fincludeHEADERS || die
1124 mmake -C gcc DESTDIR=${BINDIR} fortran.install-common || die
1125 mmake -C gcc DESTDIR=${BINDIR} fortran.install-man || die
1126 mmake -C gcc DESTDIR=${BINDIR} fortran.install-info || die
1127 # missing binary
1128 minstallexec gcc/f951 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/f951 || die
1129
1130 # remove libraries already included elsewhere
1131 rm ${BINDIR}/usr/$(mlibdir)/libgfortran*.* || die
1132 if [[ $(mlibdir) != lib ]]
1133 then
1134 rm ${BINDIR}/usr/lib/libgfortran*.* || die
1135 fi
1136
1137 # versionize all bins and symlink them
1138 versionize_all_bins || die
1139 }
1140 fi
1141
1142 if lang_enabled go
1143 then
1144 src_install_libgo()
1145 {
1146 cd ${SRCDIR}/build
1147 mmake DESTDIR=${BINDIR} install-target-libgo || die
1148
1149 zapmost ${BINDIR}/usr/$(mlibdir) libgo.so.* || die
1150 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
1151 then
1152 zapmost ${BINDIR}/usr/lib libgo.so.* || die
1153 fi
1154 }
1155
1156 src_install_libgo-dev()
1157 {
1158 cd ${SRCDIR}/build
1159 mmake DESTDIR=${BINDIR} install-target-libgo || die
1160
1161 zapmost ${BINDIR}/usr/$(mlibdir) libgo.so libgo.la libgo.a || die
1162 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
1163 then
1164 zapmost ${BINDIR}/usr/lib libgo.so libgo.la libgo.a || die
1165 fi
1166 }
1167
1168 src_install_gcc-go()
1169 {
1170 cd ${SRCDIR}/build
1171 mmake DESTDIR=${BINDIR} install-target-libgo || die
1172 mmake -C gcc DESTDIR=${BINDIR} go.install-common || die
1173 mmake -C gcc DESTDIR=${BINDIR} go.install-man || die
1174 mmake -C gcc DESTDIR=${BINDIR} go.install-info || die
1175 minstallexec gcc/go1 /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1176
1177 # remove libraries already included elsewhere
1178 rm ${BINDIR}/usr/$(mlibdir)/libgo*.* || die
1179 if [[ $(mlibdir) != lib ]]
1180 then
1181 rm ${BINDIR}/usr/lib/libgo*.* || die
1182 fi
1183
1184 # versionize all bins and symlink them
1185 versionize_all_bins || die
1186 }
1187 fi
1188
1189 if lang_enabled objc
1190 then
1191 src_install_libobjc()
1192 {
1193 cd ${SRCDIR}/build
1194 mmake DESTDIR=${BINDIR} install-target-libobjc || die
1195
1196 zapmost ${BINDIR}/usr/$(mlibdir) libobjc.so.* || die
1197 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
1198 then
1199 zapmost ${BINDIR}/usr/lib libobjc.so.* || die
1200 fi
1201 }
1202
1203 src_install_libobjc-dev()
1204 {
1205 cd ${SRCDIR}/build
1206 mmake DESTDIR=${BINDIR} install-target-libobjc || die
1207
1208 zapmost ${BINDIR}/usr/$(mlibdir) libobjc.so libobjc.la libobjc.a || die
1209 if [[ $(mlibdir) != lib ]] && [[ -d ${BINDIR}/usr/lib ]]
1210 then
1211 zapmost ${BINDIR}/usr/lib libobjc.so libobjc.la libobjc.a || die
1212 fi
1213 }
1214
1215 src_install_gcc-objc()
1216 {
1217 cd ${SRCDIR}/build
1218 # only needed for install, gets removed later on
1219 mmake DESTDIR=${BINDIR} install-target-libobjc || die
1220
1221 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1222 minstallexec gcc/cc1obj /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1223
1224 # remove libraries already included elsewhere
1225 rm ${BINDIR}/usr/$(mlibdir)/libobjc*.* || die
1226 if [[ $(mlibdir) != lib ]]
1227 then
1228 rm ${BINDIR}/usr/lib/libobjc*.* || die
1229 fi
1230 }
1231
1232 if lang_enabled obj-c++
1233 then
1234 src_install_gcc-objc++()
1235 {
1236 cd ${SRCDIR}/build
1237 minstalldir /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1238 minstallexec gcc/cc1objplus /usr/$(mlibdir)/gcc/${CHOST}/${PVER}/ || die
1239 }
1240 fi
1241 fi