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