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