Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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