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