| 1 | # Copyright 1999-2004 Gentoo Foundation |
1 | # Copyright 1999-2004 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/multilib.eclass,v 1.41 2005/10/09 04:40:14 vapier Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/multilib.eclass,v 1.42 2005/10/10 21:18:15 vapier Exp $ |
| 4 | # |
4 | # |
| 5 | # Author: Jeremy Huddleston <eradicator@gentoo.org> |
5 | # Author: Jeremy Huddleston <eradicator@gentoo.org> |
| 6 | # |
6 | # |
| 7 | # This eclass is for all functions pertaining to handling multilib. |
7 | # This eclass is for all functions pertaining to handling multilib. |
| 8 | # configurations. |
8 | # configurations. |
| … | |
… | |
| 551 | |
551 | |
| 552 | # This is for the toolchain to setup profile variables when pulling in |
552 | # This is for the toolchain to setup profile variables when pulling in |
| 553 | # a crosscompiler (and thus they aren't set in the profile) |
553 | # a crosscompiler (and thus they aren't set in the profile) |
| 554 | multilib_env() { |
554 | multilib_env() { |
| 555 | local CTARGET=${1:-${CTARGET}} |
555 | local CTARGET=${1:-${CTARGET}} |
| 556 | local CTARGET_post=${CTARGET#*-} |
|
|
| 557 | |
556 | |
| 558 | case ${CTARGET} in |
557 | case ${CTARGET} in |
| 559 | x86_64*) |
558 | x86_64*) |
| 560 | export CFLAGS_x86=${CFLAGS_x86--m32} |
559 | export CFLAGS_x86=${CFLAGS_x86--m32} |
| 561 | export CHOST_x86=i686-${CTARGET_post} |
560 | export CHOST_x86=${CTARGET/x86_64/i686} |
| 562 | export CTARGET_x86=i686-${CTARGET_post} |
561 | export CTARGET_x86=${CHOST_x86} |
| 563 | export CDEFINE_x86="__i386__" |
562 | export CDEFINE_x86="__i386__" |
| 564 | export LIBDIR_x86="lib" |
563 | export LIBDIR_x86="lib" |
| 565 | |
564 | |
| 566 | export CFLAGS_amd64=${CFLAGS_amd64--m64} |
565 | export CFLAGS_amd64=${CFLAGS_amd64--m64} |
| 567 | export CHOST_amd64=x86_64-${CTARGET_post} |
566 | export CHOST_amd64=${CTARGET} |
| 568 | export CTARGET_amd64=x86_64-${CTARGET_post} |
567 | export CTARGET_amd64=${CTARGET_amd64} |
| 569 | export CDEFINE_amd64="__x86_64__" |
568 | export CDEFINE_amd64="__x86_64__" |
| 570 | export LIBDIR_amd64="lib64" |
569 | export LIBDIR_amd64="lib64" |
| 571 | |
570 | |
| 572 | export MULTILIB_ABIS="amd64 x86" |
571 | export MULTILIB_ABIS="amd64 x86" |
| 573 | export DEFAULT_ABI="amd64" |
572 | export DEFAULT_ABI="amd64" |
| 574 | ;; |
573 | ;; |
| 575 | mips64*) |
574 | mips64*) |
| 576 | export CFLAGS_o32=${CFLAGS_o32--mabi=32} |
575 | export CFLAGS_o32=${CFLAGS_o32--mabi=32} |
| 577 | export CHOST_o32=mips-${CTARGET_post} |
576 | export CHOST_o32=${CTARGET/mips64/mips} |
| 578 | export CTARGET_o32=mips-${CTARGET_post} |
577 | export CTARGET_o32=${CHOST_o32} |
| 579 | export CDEFINE_o32="_MIPS_SIM == _ABIO32" |
578 | export CDEFINE_o32="_MIPS_SIM == _ABIO32" |
| 580 | export LIBDIR_o32="lib" |
579 | export LIBDIR_o32="lib" |
| 581 | |
580 | |
| 582 | export CFLAGS_n32=${CFLAGS_n32--mabi=n32} |
581 | export CFLAGS_n32=${CFLAGS_n32--mabi=n32} |
| 583 | export CHOST_n32=mips64-${CTARGET_post} |
582 | export CHOST_n32=${CTARGET} |
| 584 | export CTARGET_n32=mips64-${CTARGET_post} |
583 | export CTARGET_n32=${CHOST_n32} |
| 585 | export CDEFINE_n32="_MIPS_SIM == _ABIN32" |
584 | export CDEFINE_n32="_MIPS_SIM == _ABIN32" |
| 586 | export LIBDIR_n32="lib32" |
585 | export LIBDIR_n32="lib32" |
| 587 | |
586 | |
| 588 | export CFLAGS_n64=${CFLAGS_n64--mabi=64} |
587 | export CFLAGS_n64=${CFLAGS_n64--mabi=64} |
| 589 | export CHOST_n64=mips64-${CTARGET_post} |
588 | export CHOST_n64=${CTARGET} |
| 590 | export CTARGET_n64=mips64-${CTARGET_post} |
589 | export CTARGET_n64=${CHOST_n64} |
| 591 | export CDEFINE_n64="_MIPS_SIM == _ABI64" |
590 | export CDEFINE_n64="_MIPS_SIM == _ABI64" |
| 592 | export LIBDIR_n64="lib64" |
591 | export LIBDIR_n64="lib64" |
| 593 | |
592 | |
| 594 | export MULTILIB_ABIS="n64 n32" # o32 |
593 | export MULTILIB_ABIS="n64 n32" # o32 |
| 595 | export DEFAULT_ABI="n32" |
594 | export DEFAULT_ABI="n32" |
| 596 | ;; |
595 | ;; |
| 597 | powerpc64*) |
596 | powerpc64*) |
| 598 | export CFLAGS_ppc=${CFLAGS_ppc--m32} |
597 | export CFLAGS_ppc=${CFLAGS_ppc--m32} |
| 599 | export CHOST_ppc=powerpc-${CTARGET_post} |
598 | export CHOST_ppc=${CTARGET/powerpc64/powerpc} |
| 600 | export CTARGET_ppc=powerpc-${CTARGET_post} |
599 | export CTARGET_ppc=${CHOST_ppc} |
| 601 | export CDEFINE_ppc="!__powerpc64__" |
600 | export CDEFINE_ppc="!__powerpc64__" |
| 602 | export LIBDIR_ppc="lib" |
601 | export LIBDIR_ppc="lib" |
| 603 | |
602 | |
| 604 | export CFLAGS_ppc64=${CFLAGS_ppc64--m64} |
603 | export CFLAGS_ppc64=${CFLAGS_ppc64--m64} |
| 605 | export CHOST_ppc64=powerpc64-${CTARGET_post} |
604 | export CHOST_ppc64=${CTARGET} |
| 606 | export CTARGET_ppc64=powerpc64-${CTARGET_post} |
605 | export CTARGET_ppc64=${CHOST_ppc64} |
| 607 | export CDEFINE_ppc64="__powerpc64__" |
606 | export CDEFINE_ppc64="__powerpc64__" |
| 608 | export LIBDIR_ppc64="lib64" |
607 | export LIBDIR_ppc64="lib64" |
| 609 | |
608 | |
| 610 | export MULTILIB_ABIS="ppc64 ppc" |
609 | export MULTILIB_ABIS="ppc64 ppc" |
| 611 | export DEFAULT_ABI="ppc64" |
610 | export DEFAULT_ABI="ppc64" |
| 612 | ;; |
611 | ;; |
| 613 | sparc64*) |
612 | sparc64*) |
| 614 | export CFLAGS_sparc32=${CFLAGS_sparc32--m32} |
613 | export CFLAGS_sparc32=${CFLAGS_sparc32--m32} |
| 615 | export CHOST_sparc32=sparc-${CTARGET_post} |
614 | export CHOST_sparc32=${CTARGET/sparc64/sparc} |
| 616 | export CTARGET_sparc32=sparc-${CTARGET_post} |
615 | export CTARGET_sparc32=${CHOST_sparc32} |
| 617 | export CDEFINE_sparc32="!__arch64__" |
616 | export CDEFINE_sparc32="!__arch64__" |
| 618 | export LIBDIR_sparc32="lib" |
617 | export LIBDIR_sparc32="lib" |
| 619 | |
618 | |
| 620 | export CFLAGS_sparc64=${CFLAGS_sparc64--m64} |
619 | export CFLAGS_sparc64=${CFLAGS_sparc64--m64} |
| 621 | export CHOST_sparc64=sparc64-${CTARGET_post} |
620 | export CHOST_sparc64=${CTARGET} |
| 622 | export CTARGET_sparc64=sparc64-${CTARGET_post} |
621 | export CTARGET_sparc64=${CHOST_sparc64} |
| 623 | export CDEFINE_sparc64="__arch64__" |
622 | export CDEFINE_sparc64="__arch64__" |
| 624 | export LIBDIR_sparc64="lib64" |
623 | export LIBDIR_sparc64="lib64" |
| 625 | |
624 | |
| 626 | export MULTILIB_ABIS="sparc64 sparc32" |
625 | export MULTILIB_ABIS="sparc64 sparc32" |
| 627 | export DEFAULT_ABI="sparc64" |
626 | export DEFAULT_ABI="sparc64" |