Commit | Line | Data |
---|---|---|
c906108c SS |
1 | dnl Process this file with autoconf to produce a configure script. |
2 | sinclude(../common/aclocal.m4) | |
3 | AC_PREREQ(2.5)dnl | |
4 | AC_INIT(Makefile.in) | |
5 | ||
6 | SIM_AC_COMMON | |
7 | ||
8 | dnl Options available in this module | |
9 | SIM_AC_OPTION_INLINE() | |
10 | SIM_AC_OPTION_ALIGNMENT(NONSTRICT_ALIGNMENT) | |
11 | SIM_AC_OPTION_HOSTENDIAN | |
12 | SIM_AC_OPTION_WARNINGS | |
e6c674b8 | 13 | SIM_AC_OPTION_RESERVED_BITS(1) |
c906108c SS |
14 | |
15 | # DEPRECATED | |
16 | # | |
17 | # Instead of defining a `subtarget' macro, code should be checking | |
18 | # the value of {STATE,CPU}_ARCHITECTURE to identify the architecture | |
19 | # in question. | |
20 | # | |
21 | case "${target}" in | |
22 | mips*tx39*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";; | |
1e799e28 CD |
23 | mipsisa32*-*-*) SIM_SUBTARGET="-DTARGET_ENABLE_FR=1";; |
24 | mipsisa64*-*-*) SIM_SUBTARGET="-DTARGET_ENABLE_FR=1";; | |
c906108c SS |
25 | *) SIM_SUBTARGET="";; |
26 | esac | |
27 | AC_SUBST(SIM_SUBTARGET) | |
28 | ||
29 | ||
30 | ||
31 | # | |
32 | # Select the byte order of the target | |
33 | # | |
34 | mips_endian= | |
35 | default_endian= | |
36 | case "${target}" in | |
37 | mips64el*-*-*) mips_endian=LITTLE_ENDIAN ;; | |
7a292a7a | 38 | mips64vr*el-*-*) default_endian=LITTLE_ENDIAN ;; |
c906108c SS |
39 | mips64*-*-*) default_endian=BIG_ENDIAN ;; |
40 | mips16*-*-*) default_endian=BIG_ENDIAN ;; | |
1e799e28 CD |
41 | mipsisa32*-*-*) default_endian=BIG_ENDIAN ;; |
42 | mipsisa64*-*-*) default_endian=BIG_ENDIAN ;; | |
c906108c SS |
43 | mips*-*-*) default_endian=BIG_ENDIAN ;; |
44 | *) default_endian=BIG_ENDIAN ;; | |
45 | esac | |
46 | SIM_AC_OPTION_ENDIAN($mips_endian,$default_endian) | |
47 | ||
48 | ||
49 | ||
50 | # | |
51 | # Select the bitsize of the target | |
52 | # | |
53 | mips_addr_bitsize= | |
54 | case "${target}" in | |
55 | mips64*-*-*) mips_bitsize=64 ; mips_msb=63 ;; | |
56 | mips16*-*-*) mips_bitsize=64 ; mips_msb=63 ;; | |
1e799e28 CD |
57 | mipsisa32*-*-*) mips_bitsize=32 ; mips_msb=31 ;; |
58 | mipsisa64*-*-*) mips_bitsize=64 ; mips_msb=63 ;; | |
c906108c SS |
59 | mips*-*-*) mips_bitsize=32 ; mips_msb=31 ;; |
60 | *) mips_bitsize=64 ; mips_msb=63 ;; | |
61 | esac | |
62 | SIM_AC_OPTION_BITSIZE($mips_bitsize,$mips_msb,$mips_addr_bitsize) | |
63 | ||
64 | ||
65 | ||
66 | # | |
67 | # Select the floating hardware support of the target | |
68 | # | |
69 | mips_fpu=HARDWARE_FLOATING_POINT | |
70 | mips_fpu_bitsize= | |
71 | case "${target}" in | |
72 | mips*tx39*) mips_fpu=HARD_FLOATING_POINT | |
73 | mips_fpu_bitsize=32 | |
74 | ;; | |
75 | mips64*-*-*) mips_fpu=HARD_FLOATING_POINT ;; | |
76 | mips16*-*-*) mips_fpu=HARD_FLOATING_POINT ;; | |
1e799e28 CD |
77 | mipsisa32*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=64 ;; |
78 | mipsisa64*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=64 ;; | |
c906108c SS |
79 | mips*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=32 ;; |
80 | *) mips_fpu=HARD_FLOATING_POINT ;; | |
81 | esac | |
82 | SIM_AC_OPTION_FLOAT($mips_fpu,$mips_fpu_bitsize) | |
83 | ||
84 | ||
85 | ||
86 | # | |
87 | # Select the level of SMP support | |
88 | # | |
89 | case "${target}" in | |
90 | *) mips_smp=0 ;; | |
91 | esac | |
92 | SIM_AC_OPTION_SMP($mips_smp) | |
93 | ||
94 | ||
95 | ||
96 | # | |
97 | # Select the IGEN architecture | |
98 | # | |
99 | sim_gen=IGEN | |
100 | sim_igen_machine="-M mipsIV" | |
101 | sim_m16_machine="-M mips16" | |
102 | sim_igen_filter="32,64,f" | |
103 | sim_m16_filter="16" | |
104 | case "${target}" in | |
105 | mips*tx39*) sim_gen=IGEN | |
106 | sim_igen_filter="32,f" | |
107 | sim_igen_machine="-M r3900" | |
108 | ;; | |
109 | mips64vr43*-*-*) sim_gen=IGEN | |
110 | sim_igen_machine="-M mipsIV" | |
111 | ;; | |
112 | mips64vr5*-*-*) sim_gen=IGEN | |
113 | sim_igen_machine="-M vr5000" | |
114 | ;; | |
115 | mips64vr41*) sim_gen=M16 | |
116 | sim_igen_machine="-M vr4100" | |
117 | sim_m16_machine="-M vr4100" | |
118 | sim_igen_filter="32,64,f" | |
119 | sim_m16_filter="16" | |
120 | ;; | |
121 | mips64*-*-*) sim_igen_filter="32,64,f" | |
122 | sim_gen=IGEN | |
123 | ;; | |
124 | mips16*-*-*) sim_gen=M16 | |
125 | sim_igen_filter="32,64,f" | |
126 | sim_m16_filter="16" | |
127 | ;; | |
1e799e28 CD |
128 | mipsisa32*-*-*) sim_gen=IGEN |
129 | sim_igen_machine="-M mips32" | |
130 | sim_igen_filter="32,f" | |
131 | ;; | |
7cbea089 CD |
132 | mipsisa64sb1*-*-*) sim_gen=IGEN |
133 | sim_igen_machine="-M mips64,sb1" | |
134 | sim_igen_filter="32,64,f" | |
135 | ;; | |
1e799e28 | 136 | mipsisa64*-*-*) sim_gen=IGEN |
e7e81181 | 137 | sim_igen_machine="-M mips64,mips3d" |
1e799e28 CD |
138 | sim_igen_filter="32,64,f" |
139 | ;; | |
c906108c SS |
140 | mips*lsi*) sim_gen=M16 |
141 | sim_igen_machine="-M mipsIII,mips16" | |
142 | sim_m16_machine="-M mips16,mipsIII" | |
143 | sim_igen_filter="32,f" | |
144 | sim_m16_filter="16" | |
145 | ;; | |
146 | mips*-*-*) sim_gen=IGEN | |
147 | sim_igen_filter="32,f" | |
148 | ;; | |
149 | esac | |
150 | sim_igen_flags="-F ${sim_igen_filter} ${sim_igen_machine} ${sim_igen_smp}" | |
151 | sim_m16_flags=" -F ${sim_m16_filter} ${sim_m16_machine} ${sim_igen_smp}" | |
152 | AC_SUBST(sim_igen_flags) | |
153 | AC_SUBST(sim_m16_flags) | |
154 | AC_SUBST(sim_gen) | |
155 | ||
156 | ||
157 | # | |
158 | # Add simulated hardware devices | |
159 | # | |
160 | hw_enabled=no | |
161 | case "${target}" in | |
162 | mips*tx39*) | |
163 | hw_enabled=yes | |
164 | hw_extra_devices="tx3904cpu tx3904irc tx3904tmr tx3904sio" | |
165 | mips_extra_objs="dv-sockser.o" | |
166 | SIM_SUBTARGET="$SIM_SUBTARGET -DTARGET_TX3904=1" | |
167 | ;; | |
168 | *) | |
169 | mips_extra_objs="" | |
170 | ;; | |
171 | esac | |
172 | SIM_AC_OPTION_HARDWARE($hw_enabled,$hw_devices,$hw_extra_devices) | |
173 | AC_SUBST(mips_extra_objs) | |
174 | ||
175 | ||
176 | # Choose simulator engine | |
177 | case "${target}" in | |
178 | *) mips_igen_engine="engine.o" | |
179 | ;; | |
180 | esac | |
181 | AC_SUBST(mips_igen_engine) | |
182 | ||
183 | ||
184 | AC_PATH_X | |
185 | mips_extra_libs="" | |
186 | AC_SUBST(mips_extra_libs) | |
187 | ||
188 | AC_CHECK_HEADERS(string.h strings.h stdlib.h stdlib.h) | |
189 | AC_CHECK_LIB(m, fabs) | |
190 | AC_CHECK_FUNCS(aint anint sqrt) | |
191 | ||
192 | SIM_AC_OUTPUT |