Commit | Line | Data |
---|---|---|
fbfba508 ILT |
1 | # configure.tgt -- target configuration for gold -*- sh -*- |
2 | ||
36959681 | 3 | # Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc. |
fbfba508 ILT |
4 | # Written by Ian Lance Taylor <iant@google.com>. |
5 | ||
6 | # This file is part of gold. | |
7 | ||
8 | # This program is free software; you can redistribute it and/or modify | |
9 | # it under the terms of the GNU General Public License as published by | |
10 | # the Free Software Foundation; either version 3 of the License, or | |
11 | # (at your option) any later version. | |
12 | ||
13 | # This program is distributed in the hope that it will be useful, | |
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | # GNU General Public License for more details. | |
17 | ||
18 | # You should have received a copy of the GNU General Public License | |
19 | # along with this program; if not, write to the Free Software | |
20 | # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, | |
21 | # MA 02110-1301, USA. | |
22 | ||
23 | # This script handles target configuration for gold. This is shell | |
24 | # code invoked by the autoconf generated configure script. Putting | |
25 | # this in a separate file lets us skip running autoconf when modifying | |
26 | # target specific information. | |
27 | ||
28 | # This file switches on the shell variable ${targ}, which is a | |
29 | # canonicalized GNU configuration triplet. It sets the following | |
30 | # shell variables: | |
31 | ||
f5314dd5 | 32 | # targ_obj object file to include in the link, with no extension |
60b2b4e7 | 33 | # targ_extra_obj extra object file to include |
f5314dd5 DM |
34 | # targ_machine ELF machine code for this target |
35 | # targ_size size of this target--32 or 64 | |
36 | # targ_extra_size extra targ_size setting for the target | |
37 | # targ_big_endian whether the target is big-endian--true or false | |
38 | # targ_extra_big_endian extra targ_big_endian setting for the target | |
36959681 | 39 | # targ_osabi EI_OSABI value |
fbfba508 ILT |
40 | |
41 | # If the target is not recognized targ_obj is set to "UNKNOWN". | |
42 | ||
60b2b4e7 ILT |
43 | targ_extra_obj= |
44 | targ_machine= | |
45 | targ_size= | |
46 | targ_extra_size= | |
47 | targ_big_endian= | |
48 | targ_extra_big_endian= | |
36959681 | 49 | targ_osabi=ELFOSABI_NONE |
fbfba508 ILT |
50 | case "$targ" in |
51 | i?86-*) | |
52 | targ_obj=i386 | |
53 | targ_machine=EM_386 | |
54 | targ_size=32 | |
55 | targ_big_endian=false | |
36959681 ILT |
56 | case "$targ" in |
57 | i?86-*-freebsd*) | |
58 | targ_osabi=ELFOSABI_FREEBSD | |
59 | ;; | |
60 | esac | |
fbfba508 ILT |
61 | ;; |
62 | x86_64*) | |
63 | targ_obj=x86_64 | |
60b2b4e7 | 64 | targ_extra_obj=i386 |
fbfba508 ILT |
65 | targ_machine=EM_X86_64 |
66 | targ_size=64 | |
60b2b4e7 | 67 | targ_extra_size=32 |
fbfba508 | 68 | targ_big_endian=false |
36959681 ILT |
69 | case "$targ" in |
70 | x86_64-*-freebsd*) | |
71 | targ_osabi=ELFOSABI_FREEBSD | |
72 | ;; | |
73 | esac | |
fbfba508 | 74 | ;; |
f5314dd5 DM |
75 | sparc-*) |
76 | targ_obj=sparc | |
77 | targ_machine=EM_SPARC | |
78 | targ_size=32 | |
79 | targ_extra_size=64 | |
80 | targ_big_endian=true | |
81 | targ_extra_big_endian=false | |
82 | ;; | |
83 | sparc64-*) | |
84 | targ_obj=sparc | |
85 | targ_machine=EM_SPARCV9 | |
86 | targ_size=64 | |
87 | targ_extra_size=32 | |
88 | targ_big_endian=true | |
89 | targ_extra_big_endian=false | |
90 | ;; | |
42cacb20 DE |
91 | powerpc-*) |
92 | targ_obj=powerpc | |
93 | targ_machine=EM_PPC | |
94 | targ_size=32 | |
95 | targ_extra_size=64 | |
96 | targ_big_endian=true | |
97 | targ_extra_big_endian=false | |
98 | ;; | |
99 | powerpc64-*) | |
cd536b21 | 100 | targ_obj=powerpc |
42cacb20 DE |
101 | targ_machine=EM_PPC64 |
102 | targ_size=64 | |
103 | targ_extra_size=32 | |
104 | targ_big_endian=true | |
105 | targ_extra_big_endian=false | |
106 | ;; | |
4a657b0d DK |
107 | armeb*-*-*|armbe*-*-*) |
108 | targ_obj=arm | |
109 | targ_machine=EM_ARM | |
110 | targ_size=32 | |
111 | targ_big_endian=true | |
112 | targ_extra_big_endian=false | |
113 | ;; | |
114 | arm*-*-*) | |
115 | targ_obj=arm | |
116 | targ_machine=EM_ARM | |
117 | targ_size=32 | |
118 | targ_big_endian=false | |
119 | targ_extra_big_endian=true | |
120 | ;; | |
fbfba508 ILT |
121 | *) |
122 | targ_obj=UNKNOWN | |
123 | ;; | |
124 | esac |