Commit | Line | Data |
---|---|---|
19c5af72 | 1 | dnl Process this file with autoconf to produce a configure script. |
5da9ce07 | 2 | sinclude(../common/aclocal.m4) |
a271d1d9 | 3 | AC_PREREQ(2.5)dnl |
8ad57737 JSC |
4 | AC_INIT(Makefile.in) |
5 | ||
e3d12c65 | 6 | SIM_AC_COMMON |
8ad57737 | 7 | |
50a2a691 | 8 | dnl Options available in this module |
64ed8b6a | 9 | SIM_AC_OPTION_INLINE() |
76a6247f | 10 | SIM_AC_OPTION_ALIGNMENT(NONSTRICT_ALIGNMENT) |
50a2a691 AC |
11 | SIM_AC_OPTION_HOSTENDIAN |
12 | SIM_AC_OPTION_WARNINGS | |
13 | ||
4634263c | 14 | # Ensure a reasonable default simulator is constructed: (DEPRECATED) |
c98ec95d | 15 | case "${target}" in |
b637f306 GRK |
16 | # start-sanitize-tx19 |
17 | mipstx19*-*-*) SIMCONF="-mips1 -mcpu=r1900 -mno-fp --warnings";; | |
18 | # end-sanitize-tx19 | |
6205f379 GRK |
19 | # start-sanitize-tx49 |
20 | mips64tx49*-*-*) SIMCONF="-mips3 --warnings -mcpu=r4900";; | |
21 | # end-sanitize-tx49 | |
276c2d7d | 22 | # start-sanitize-r5900 |
832f05e8 | 23 | mips64r59*-*-*) SIMCONF="-mips3 --warnings -mcpu=r5900";; |
276c2d7d | 24 | # end-sanitize-r5900 |
180d1f0b | 25 | mips64vr4100-*-*) SIMCOMF="-mips0 -mcpu=r4100 -mgp64 --warnings" ;; |
c98ec95d | 26 | mips64*-*-*) SIMCONF="-mips0 --warnings";; |
831f59a2 | 27 | mips16*-*-*) SIMCONF="-mips0 --warnings";; |
c98ec95d JSC |
28 | mips*-*-*) SIMCONF="-mips2 --warnings";; |
29 | *) SIMCONF="-mips0 --warnings";; | |
30 | esac | |
e3d12c65 | 31 | AC_SUBST(SIMCONF) |
8ad57737 | 32 | |
4634263c | 33 | # DEPRECATED |
1a89994e AC |
34 | # |
35 | # Instead of defining a `subtarget' macro, code should be checking | |
36 | # the value of {STATE,CPU}_ARCHITECTURE to identify the architecture | |
37 | # in question. | |
38 | # | |
c476ac55 GRK |
39 | case "${target}" in |
40 | # start-sanitize-tx19 | |
41 | mipstx19*-*-*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";; | |
42 | # end-sanitize-tx19 | |
3fa454e9 | 43 | mips*tx39*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";; |
c476ac55 GRK |
44 | *) SIM_SUBTARGET="";; |
45 | esac | |
46 | AC_SUBST(SIM_SUBTARGET) | |
47 | ||
18c64df6 | 48 | |
4634263c | 49 | |
18c64df6 AC |
50 | # |
51 | # Select the byte order of the target | |
52 | # | |
2d44e12a AC |
53 | mips_endian= |
54 | default_endian= | |
18c64df6 AC |
55 | case "${target}" in |
56 | # start-sanitize-tx19 | |
2d44e12a | 57 | mipstx19*-*-*) default_endian=BIG_ENDIAN ;; |
18c64df6 AC |
58 | # end-sanitize-tx19 |
59 | # start-sanitize-r5900 | |
60 | mips64r59*-*-*) mips_endian=LITTLE_ENDIAN ;; | |
61 | # end-sanitize-r5900 | |
2d44e12a AC |
62 | mips64*-*-*) default_endian=BIG_ENDIAN ;; |
63 | mips16*-*-*) default_endian=BIG_ENDIAN ;; | |
64 | mips*-*-*) default_endian=BIG_ENDIAN ;; | |
65 | *) default_endian=BIG_ENDIAN ;; | |
18c64df6 | 66 | esac |
2d44e12a | 67 | SIM_AC_OPTION_ENDIAN($mips_endian,$default_endian) |
18c64df6 AC |
68 | |
69 | ||
4634263c | 70 | |
18c64df6 AC |
71 | # |
72 | # Select the bitsize of the target | |
73 | # | |
a48e8c8d | 74 | mips_addr_bitsize= |
18c64df6 AC |
75 | case "${target}" in |
76 | # start-sanitize-tx19 | |
77 | mipstx19*-*-*) mips_bitsize=32 ; mips_msb=31 ;; | |
78 | # end-sanitize-tx19 | |
79 | # start-sanitize-r5900 | |
a48e8c8d | 80 | mips64r59*-*-*) mips_bitsize=64 ; mips_msb=63 ; mips_addr_bitsize=32;; |
18c64df6 AC |
81 | # end-sanitize-r5900 |
82 | mips64*-*-*) mips_bitsize=64 ; mips_msb=63 ;; | |
83 | mips16*-*-*) mips_bitsize=64 ; mips_msb=63 ;; | |
84 | mips*-*-*) mips_bitsize=32 ; mips_msb=31 ;; | |
85 | *) mips_bitsize=64 ; mips_msb=63 ;; | |
86 | esac | |
a48e8c8d | 87 | SIM_AC_OPTION_BITSIZE($mips_bitsize,$mips_msb,$mips_addr_bitsize) |
18c64df6 AC |
88 | |
89 | ||
4634263c | 90 | |
18c64df6 AC |
91 | # |
92 | # Select the floating hardware support of the target | |
93 | # | |
94 | mips_fpu=HARDWARE_FLOATING_POINT | |
37379a25 | 95 | mips_fpu_bitsize= |
18c64df6 AC |
96 | case "${target}" in |
97 | # start-sanitize-tx19 | |
98 | mipstx19*-*-*) mips_fpu=SOFT_FLOATING_POINT ;; | |
99 | # end-sanitize-tx19 | |
3fa454e9 | 100 | mips*tx39*) mips_fpu=HARD_FLOATING_POINT |
37379a25 AC |
101 | mips_fpu_bitsize=32 |
102 | ;; | |
18c64df6 | 103 | # start-sanitize-r5900 |
a48e8c8d | 104 | mips64r59*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=32 ;; |
18c64df6 AC |
105 | # end-sanitize-r5900 |
106 | mips64*-*-*) mips_fpu=HARD_FLOATING_POINT ;; | |
107 | mips16*-*-*) mips_fpu=HARD_FLOATING_POINT ;; | |
55ad270f | 108 | mips*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=32 ;; |
18c64df6 AC |
109 | *) mips_fpu=HARD_FLOATING_POINT ;; |
110 | esac | |
37379a25 | 111 | SIM_AC_OPTION_FLOAT($mips_fpu,$mips_fpu_bitsize) |
18c64df6 AC |
112 | |
113 | ||
4634263c | 114 | |
01737f42 AC |
115 | # |
116 | # Select the level of SMP support | |
117 | # | |
118 | case "${target}" in | |
119 | # start-sanitize-r5900 | |
120 | mips64r59*-*-*) mips_smp=1 ;; | |
121 | # end-sanitize-r5900 | |
122 | *) mips_smp=0 ;; | |
123 | esac | |
124 | SIM_AC_OPTION_SMP($mips_smp) | |
125 | ||
126 | ||
4634263c | 127 | |
122edc03 | 128 | # |
44b8585a | 129 | # Select the IGEN architecture |
122edc03 | 130 | # |
37379a25 | 131 | sim_use_gen=IGEN |
c02ed6a8 AC |
132 | sim_igen_machine="-M mipsIV" |
133 | sim_m16_machine="-M mips16" | |
44b8585a AC |
134 | sim_igen_filter="32,64,f" |
135 | sim_m16_filter="16" | |
122edc03 | 136 | case "${target}" in |
90ad43b2 | 137 | # start-sanitize-tx19 |
44b8585a | 138 | mipstx19*-*-*) sim_default_gen=M16 |
c58fa2cc | 139 | sim_use_gen=M16 |
c02ed6a8 AC |
140 | sim_igen_machine="-M tx19" |
141 | sim_m16_machine="-M tx19" | |
44b8585a AC |
142 | sim_igen_filter="32" |
143 | sim_m16_filter="16" | |
144 | ;; | |
90ad43b2 | 145 | # end-sanitize-tx19 |
df26156d | 146 | mips*tx39*) sim_default_gen=IGEN |
69d5a566 | 147 | sim_use_gen=IGEN |
37379a25 AC |
148 | sim_igen_filter="32,f" |
149 | sim_igen_machine="-M r3900" | |
150 | ;; | |
122edc03 | 151 | # start-sanitize-r5900 |
44b8585a | 152 | mips64r59*-*-*) sim_default_gen=IGEN |
c4db5b04 | 153 | sim_use_gen=IGEN |
c02ed6a8 | 154 | sim_igen_machine="-M r5900" |
44b8585a | 155 | ;; |
122edc03 | 156 | # end-sanitize-r5900 |
dd15abd5 GRK |
157 | # start-sanitize-vr4320 |
158 | mips64vr4320-*-*) sim_default_gen=IGEN | |
159 | sim_use_gen=IGEN | |
160 | sim_igen_machine="-M mipsIV,vr4320 -G gen-multi-sim=vr4320" | |
161 | ;; | |
162 | # end-sanitize-vr4320 | |
163 | mips64vr43*-*-*) sim_default_gen=IGEN | |
164 | sim_use_gen=IGEN | |
165 | sim_igen_machine="-M mipsIV" | |
166 | # start-sanitize-vr4320 | |
167 | sim_igen_machine="-M mipsIV,vr4320 -G gen-multi-sim=mipsIV" | |
168 | # end-sanitize-vr4320 | |
169 | ;; | |
3d759c53 | 170 | # start-sanitize-cygnus |
44b8585a AC |
171 | mips64vr54*-*-*) sim_default_gen=IGEN |
172 | sim_use_gen=IGEN | |
c02ed6a8 | 173 | sim_igen_machine="-M vr5000,vr5400 -G gen-multi-sim=vr5400" |
44b8585a | 174 | ;; |
3d759c53 | 175 | # end-sanitize-cygnus |
f23e93da | 176 | mips64vr5*-*-*) sim_default_gen=IGEN |
255cbbf1 | 177 | sim_use_gen=IGEN |
c02ed6a8 | 178 | sim_igen_machine="-M vr5000" |
3d759c53 | 179 | # start-sanitize-cygnus |
255cbbf1 | 180 | sim_igen_machine="-M vr5000,vr5400 -G gen-multi-sim=vr5000" |
3d759c53 | 181 | # end-sanitize-cygnus |
f23e93da | 182 | ;; |
180d1f0b JM |
183 | mips64vr4100-*-*) echo "NOTE: mips64vr4100 still uses gencode" |
184 | sim_default_gen=M16 | |
185 | sim_igen_machine="-M tx19" | |
186 | sim_m16_machine="-M tx19" | |
187 | sim_igen_filter = "32,64,f" | |
188 | sim_m16_filter = "16" | |
189 | sim_use_gen=NO | |
190 | ;; | |
191 | ||
4634263c AC |
192 | mips64*-*-*) sim_default_gen=IGEN |
193 | sim_igen_filter="32,64,f" | |
194 | sim_use_gen=IGEN | |
195 | ;; | |
44b8585a | 196 | mips16*-*-*) sim_default_gen=M16 |
4634263c AC |
197 | sim_igen_filter="32,64,f" |
198 | sim_m16_filter="16" | |
37379a25 | 199 | sim_use_igen=NO |
44b8585a | 200 | ;; |
4634263c | 201 | mips*-*-*) sim_default_gen=IGEN |
44b8585a | 202 | sim_igen_filter="32,f" |
4634263c | 203 | sim_use_gen=IGEN |
44b8585a | 204 | ;; |
122edc03 | 205 | esac |
01737f42 AC |
206 | sim_igen_flags="-F ${sim_igen_filter} ${sim_igen_machine} ${sim_igen_smp}" |
207 | sim_m16_flags=" -F ${sim_m16_filter} ${sim_m16_machine} ${sim_igen_smp}" | |
16bd5d6e AC |
208 | AC_SUBST(sim_igen_flags) |
209 | AC_SUBST(sim_m16_flags) | |
122edc03 | 210 | |
4634263c AC |
211 | |
212 | ||
44b8585a AC |
213 | # |
214 | # Enable igen | |
215 | # | |
216 | AC_ARG_ENABLE(sim-igen, | |
217 | [ --enable-sim-igen=opts Enable IGEN simulator], | |
218 | [case "${enableval}" in | |
219 | yes) sim_gen="${sim_default_gen}";; | |
220 | no) sim_gen=NO;; | |
221 | 16) sim_gen=M16;; | |
9b23b76d | 222 | *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-igen"); sim_gen="";; |
44b8585a AC |
223 | esac |
224 | if test x"$silent" != x"yes" && test x"$sim_gen" != x""; then | |
225 | echo "Setting sim_igen = $sim_gen" 6>&1 | |
226 | fi],[sim_gen="${sim_use_gen}"])dnl | |
227 | AC_SUBST(sim_gen) | |
228 | ||
229 | ||
5759734b DE |
230 | case "${target}" in |
231 | # start-sanitize-sky | |
2c88fae9 | 232 | mips64r59*-sky-*) mips_extra_objs='$(SIM_SKY_OBJS)' ; |
97908603 | 233 | SIM_SUBTARGET="-DTARGET_SKY -DWITH_DEVICES=1 -DDEVICE_INIT=1";; |
2c88fae9 | 234 | |
5759734b DE |
235 | # end-sanitize-sky |
236 | *) mips_extra_objs="" ;; | |
237 | esac | |
238 | AC_SUBST(mips_extra_objs) | |
239 | ||
122edc03 | 240 | |
3fa454e9 | 241 | |
f872d0d6 AC |
242 | # start-sanitize-tx3904 |
243 | # | |
3fa454e9 FCE |
244 | # Add simulated hardware devices |
245 | # | |
f872d0d6 | 246 | hw_enabled=no |
3fa454e9 | 247 | case "${target}" in |
da040f2a | 248 | mips*tx39*) hw_enabled=yes ; hw_extra_devices="tx3904cpu tx3904irc tx3904tmr" ;; |
3fa454e9 FCE |
249 | *) ;; |
250 | esac | |
f872d0d6 AC |
251 | SIM_AC_OPTION_HARDWARE($hw_enabled,$hw_devices,$hw_extra_devices) |
252 | # end-sanitize-tx3904 | |
3fa454e9 FCE |
253 | |
254 | ||
9b23b76d FCE |
255 | AC_PATH_X |
256 | mips_extra_libs="" | |
257 | # start-sanitize-sky | |
258 | # Enable GPU2 library | |
259 | AC_ARG_WITH(sim-gpu2, | |
260 | [ --with-sim-gpu2=path Use GPU2 library under given directory], | |
261 | [if test -d "${withval}" | |
262 | then | |
263 | SIM_SUBTARGET="${SIM_SUBTARGET} -DSKY_GPU2 -I${withval}/include" | |
f915cc91 | 264 | mips_extra_libs="-L${withval}/lib -lgpu2 -L${x_libraries} -lX11 -lXext" |
9b23b76d FCE |
265 | else |
266 | AC_MSG_ERROR("Directory ${withval} does not exist."); | |
267 | fi])dnl | |
3e5fbf91 JL |
268 | # Enable target accurate FP library |
269 | AC_ARG_WITH(sim-funit, | |
270 | [ --with-sim-funit=path Use target FP library under given directory], | |
271 | [if test -d "${withval}" | |
272 | then | |
273 | SIM_SUBTARGET="${SIM_SUBTARGET} -DSKY_FUNIT -I${withval}/include" | |
274 | mips_extra_libs="${mips_extra_libs} -L${withval}/lib -lfunit" | |
275 | else | |
276 | AC_MSG_ERROR("Directory ${withval} does not exist."); | |
277 | fi])dnl | |
9b23b76d FCE |
278 | # end-sanitize-sky |
279 | AC_SUBST(mips_extra_libs) | |
280 | ||
50a2a691 | 281 | AC_CHECK_HEADERS(string.h strings.h stdlib.h stdlib.h) |
4fa134be | 282 | AC_CHECK_LIB(m, fabs) |
617c07c6 | 283 | AC_CHECK_FUNCS(aint anint sqrt) |
4fa134be | 284 | |
e3d12c65 | 285 | SIM_AC_OUTPUT |