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/toolchain-funcs.eclass,v 1.19 2005/01/10 02:41:58 vapier Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/toolchain-funcs.eclass,v 1.20 2005/01/11 01:07:49 vapier Exp $ |
4 | # |
4 | # |
5 | # Author: Toolchain Ninjas <ninjas@gentoo.org> |
5 | # Author: Toolchain Ninjas <ninjas@gentoo.org> |
6 | # |
6 | # |
7 | # This eclass contains (or should) functions to get common info |
7 | # This eclass contains (or should) functions to get common info |
8 | # about the toolchain (libc/compiler/binutils/etc...) |
8 | # about the toolchain (libc/compiler/binutils/etc...) |
… | |
… | |
86 | fi |
86 | fi |
87 | return 1 |
87 | return 1 |
88 | } |
88 | } |
89 | |
89 | |
90 | |
90 | |
91 | # Translate a CBUILD/CHOST/CTARGET into the kernel/portage |
91 | # Parse information from CBUILD/CHOST/CTARGET rather than |
92 | # equivalent of $ARCH |
92 | # use external variables from the profile. |
93 | ninja_magic_to_arch() { |
93 | tc-ninja_magic_to_arch() { |
94 | ninj() { [[ ${type} = "kern" ]] && echo $1 || echo $2 ; } |
94 | ninj() { [[ ${type} = "kern" ]] && echo $1 || echo $2 ; } |
95 | |
95 | |
96 | local type=$1 |
96 | local type=$1 |
97 | local host=$2 |
97 | local host=$2 |
|
|
98 | [[ -z ${host} ]] && arg=${CHOST} |
98 | |
99 | |
99 | case ${host} in |
100 | case ${host} in |
100 | alpha*) echo alpha;; |
101 | alpha*) echo alpha;; |
101 | x86_64*) ninj x86_64 amd64;; |
102 | x86_64*) ninj x86_64 amd64;; |
102 | arm*) echo arm;; |
103 | arm*) echo arm;; |
… | |
… | |
112 | sh*) echo sh;; |
113 | sh*) echo sh;; |
113 | i?86*) echo x86;; |
114 | i?86*) echo x86;; |
114 | *) echo wtf;; |
115 | *) echo wtf;; |
115 | esac |
116 | esac |
116 | } |
117 | } |
117 | host_to_arch_kernel() { |
118 | tc-arch-kernel() { |
118 | ninja_magic_to_arch kern $@ |
119 | tc-ninja_magic_to_arch kern $@ |
119 | } |
120 | } |
120 | host_to_arch_portage() { |
121 | tc-arch() { |
121 | ninja_magic_to_arch portage $@ |
122 | tc-ninja_magic_to_arch portage $@ |
122 | } |
123 | } |
|
|
124 | tc-endian() { |
|
|
125 | local host=$1 |
|
|
126 | [[ -z ${host} ]] && host=${CHOST} |
123 | |
127 | |
|
|
128 | case ${host} in |
|
|
129 | alpha*) echo big;; |
|
|
130 | x86_64*) echo little;; |
|
|
131 | arm*eb-*) echo big;; |
|
|
132 | arm*) echo little;; |
|
|
133 | hppa*) echo big;; |
|
|
134 | ia64*) echo little;; |
|
|
135 | m68k*) echo big;; |
|
|
136 | mips*el-*) echo little;; |
|
|
137 | mips*) echo big;; |
|
|
138 | powerpc*) echo big;; |
|
|
139 | sparc*) echo big;; |
|
|
140 | s390*) echo big;; |
|
|
141 | sh*el-) echo little;; |
|
|
142 | sh*) echo big;; |
|
|
143 | i?86*) echo little;; |
|
|
144 | *) echo wtf;; |
|
|
145 | esac |
|
|
146 | } |
124 | |
147 | |
125 | # Returns the version as by `$CC -dumpversion` |
148 | # Returns the version as by `$CC -dumpversion` |
126 | gcc-fullversion() { |
149 | gcc-fullversion() { |
127 | echo "$($(tc-getCC) -dumpversion)" |
150 | echo "$($(tc-getCC) -dumpversion)" |
128 | } |
151 | } |