* configure.in (SUBTARGET_R3900): Define for mipstx39 target.
[binutils-gdb.git] / sim / mips / configure.in
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
13
14
15 # Ensure a reasonable default simulator is constructed: (DEPRECATED)
16 case "${target}" in
17 # start-sanitize-tx19
18 mipstx19*-*-*) SIMCONF="-mips1 -mcpu=r1900 -mno-fp --warnings";;
19 # end-sanitize-tx19
20 # start-sanitize-tx49
21 mips64tx49*-*-*) SIMCONF="-mips3 --warnings -mcpu=r4900";;
22 # end-sanitize-tx49
23 # start-sanitize-r5900
24 mips64r59*-*-*) SIMCONF="-mips3 --warnings -mcpu=r5900";;
25 # end-sanitize-r5900
26 mips64vr4100-*-*) SIMCOMF="-mips0 -mcpu=r4100 -mgp64 --warnings" ;;
27 mips64*-*-*) SIMCONF="-mips0 --warnings";;
28 mips16*-*-*) SIMCONF="-mips0 --warnings";;
29 mips*-*-*) SIMCONF="-mips2 --warnings";;
30 *) SIMCONF="-mips0 --warnings";;
31 esac
32 AC_SUBST(SIMCONF)
33
34 # DEPRECATED
35 #
36 # Instead of defining a `subtarget' macro, code should be checking
37 # the value of {STATE,CPU}_ARCHITECTURE to identify the architecture
38 # in question.
39 #
40 case "${target}" in
41 # start-sanitize-tx19
42 mipstx19*-*-*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";;
43 # end-sanitize-tx19
44 mipstx39*-*-*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";;
45 *) SIM_SUBTARGET="";;
46 esac
47 AC_SUBST(SIM_SUBTARGET)
48
49
50
51 #
52 # Select the byte order of the target
53 #
54 mips_endian=
55 default_endian=
56 case "${target}" in
57 # start-sanitize-tx19
58 mipstx19*-*-*) default_endian=BIG_ENDIAN ;;
59 # end-sanitize-tx19
60 # start-sanitize-r5900
61 mips64r59*-*-*) mips_endian=LITTLE_ENDIAN ;;
62 # end-sanitize-r5900
63 mips64*-*-*) default_endian=BIG_ENDIAN ;;
64 mips16*-*-*) default_endian=BIG_ENDIAN ;;
65 mips*-*-*) default_endian=BIG_ENDIAN ;;
66 *) default_endian=BIG_ENDIAN ;;
67 esac
68 SIM_AC_OPTION_ENDIAN($mips_endian,$default_endian)
69
70
71
72 #
73 # Select the bitsize of the target
74 #
75 mips_addr_bitsize=
76 case "${target}" in
77 # start-sanitize-tx19
78 mipstx19*-*-*) mips_bitsize=32 ; mips_msb=31 ;;
79 # end-sanitize-tx19
80 # start-sanitize-r5900
81 mips64r59*-*-*) mips_bitsize=64 ; mips_msb=63 ; mips_addr_bitsize=32;;
82 # end-sanitize-r5900
83 mips64*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
84 mips16*-*-*) mips_bitsize=64 ; mips_msb=63 ;;
85 mips*-*-*) mips_bitsize=32 ; mips_msb=31 ;;
86 *) mips_bitsize=64 ; mips_msb=63 ;;
87 esac
88 SIM_AC_OPTION_BITSIZE($mips_bitsize,$mips_msb,$mips_addr_bitsize)
89
90
91
92 #
93 # Select the floating hardware support of the target
94 #
95 mips_fpu=HARDWARE_FLOATING_POINT
96 mips_fpu_bitsize=
97 case "${target}" in
98 # start-sanitize-tx19
99 mipstx19*-*-*) mips_fpu=SOFT_FLOATING_POINT ;;
100 # end-sanitize-tx19
101 mipstx39*-*-*) mips_fpu=HARD_FLOATING_POINT
102 mips_fpu_bitsize=32
103 ;;
104 # start-sanitize-r5900
105 mips64r59*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=32 ;;
106 # end-sanitize-r5900
107 mips64*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
108 mips16*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
109 mips*-*-*) mips_fpu=HARD_FLOATING_POINT ;;
110 *) mips_fpu=HARD_FLOATING_POINT ;;
111 esac
112 SIM_AC_OPTION_FLOAT($mips_fpu,$mips_fpu_bitsize)
113
114
115
116 #
117 # Select the level of SMP support
118 #
119 case "${target}" in
120 # start-sanitize-r5900
121 mips64r59*-*-*) mips_smp=1 ;;
122 # end-sanitize-r5900
123 *) mips_smp=0 ;;
124 esac
125 SIM_AC_OPTION_SMP($mips_smp)
126
127
128
129 #
130 # Select the IGEN architecture
131 #
132 sim_use_gen=IGEN
133 sim_igen_machine="-M mipsIV"
134 sim_m16_machine="-M mips16"
135 sim_igen_filter="32,64,f"
136 sim_m16_filter="16"
137 case "${target}" in
138 # start-sanitize-tx19
139 mipstx19*-*-*) sim_default_gen=M16
140 sim_use_gen=M16
141 sim_igen_machine="-M tx19"
142 sim_m16_machine="-M tx19"
143 sim_igen_filter="32"
144 sim_m16_filter="16"
145 ;;
146 # end-sanitize-tx19
147 mipstx39*-*-*) sim_default_gen=IGEN
148 sim_use_gen=IGEN
149 sim_igen_filter="32,f"
150 sim_igen_machine="-M r3900"
151 ;;
152 # start-sanitize-r5900
153 mips64r59*-*-*) sim_default_gen=IGEN
154 sim_use_gen=IGEN
155 sim_igen_machine="-M r5900"
156 ;;
157 # end-sanitize-r5900
158 # start-sanitize-vr4320
159 mips64vr4320-*-*) sim_default_gen=IGEN
160 sim_use_gen=IGEN
161 sim_igen_machine="-M mipsIV,vr4320 -G gen-multi-sim=vr4320"
162 ;;
163 # end-sanitize-vr4320
164 mips64vr43*-*-*) sim_default_gen=IGEN
165 sim_use_gen=IGEN
166 sim_igen_machine="-M mipsIV"
167 # start-sanitize-vr4320
168 sim_igen_machine="-M mipsIV,vr4320 -G gen-multi-sim=mipsIV"
169 # end-sanitize-vr4320
170 ;;
171 # start-sanitize-vr5400
172 mips64vr54*-*-*) sim_default_gen=IGEN
173 sim_use_gen=IGEN
174 sim_igen_machine="-M vr5000,vr5400 -G gen-multi-sim=vr5400"
175 ;;
176 # end-sanitize-vr5400
177 mips64vr5*-*-*) sim_default_gen=IGEN
178 sim_use_gen=IGEN
179 sim_igen_machine="-M vr5000"
180 # start-sanitize-vr5400
181 sim_igen_machine="-M vr5000,vr5400 -G gen-multi-sim=vr5000"
182 # end-sanitize-vr5400
183 ;;
184 mips64vr4100-*-*) echo "NOTE: mips64vr4100 still uses gencode"
185 sim_default_gen=M16
186 sim_igen_machine="-M tx19"
187 sim_m16_machine="-M tx19"
188 sim_igen_filter = "32,64,f"
189 sim_m16_filter = "16"
190 sim_use_gen=NO
191 ;;
192
193 mips64*-*-*) sim_default_gen=IGEN
194 sim_igen_filter="32,64,f"
195 sim_use_gen=IGEN
196 ;;
197 mips16*-*-*) sim_default_gen=M16
198 sim_igen_filter="32,64,f"
199 sim_m16_filter="16"
200 sim_use_igen=NO
201 ;;
202 mips*-*-*) sim_default_gen=IGEN
203 sim_igen_filter="32,f"
204 sim_use_gen=IGEN
205 ;;
206 esac
207 sim_igen_flags="-F ${sim_igen_filter} ${sim_igen_machine} ${sim_igen_smp}"
208 sim_m16_flags=" -F ${sim_m16_filter} ${sim_m16_machine} ${sim_igen_smp}"
209 AC_SUBST(sim_igen_flags)
210 AC_SUBST(sim_m16_flags)
211
212
213
214 #
215 # Enable igen
216 #
217 AC_ARG_ENABLE(sim-igen,
218 [ --enable-sim-igen=opts Enable IGEN simulator],
219 [case "${enableval}" in
220 yes) sim_gen="${sim_default_gen}";;
221 no) sim_gen=NO;;
222 16) sim_gen=M16;;
223 *) AC_MSG_ERROR("Unknown value $enableval passed to --enable-sim-igen"); sim_gen="";;
224 esac
225 if test x"$silent" != x"yes" && test x"$sim_gen" != x""; then
226 echo "Setting sim_igen = $sim_gen" 6>&1
227 fi],[sim_gen="${sim_use_gen}"])dnl
228 AC_SUBST(sim_gen)
229
230
231 case "${target}" in
232 # start-sanitize-sky
233 mips64r59*-sky-*) mips_extra_objs='$(SIM_SKY_OBJS)' ;
234 SIM_SUBTARGET="-DTARGET_SKY -DWITH_DEVICES=1 -DDEVICE_INIT=1";;
235
236 # end-sanitize-sky
237 *) mips_extra_objs="" ;;
238 esac
239 AC_SUBST(mips_extra_objs)
240
241
242 AC_PATH_X
243 mips_extra_libs=""
244 # start-sanitize-sky
245 # Enable GPU2 library
246 AC_ARG_WITH(sim-gpu2,
247 [ --with-sim-gpu2=path Use GPU2 library under given directory],
248 [if test -d "${withval}"
249 then
250 SIM_SUBTARGET="${SIM_SUBTARGET} -DSKY_GPU2 -I${withval}/include"
251 mips_extra_libs="-L${withval}/lib -lgpu2 -L${x_libraries} -lX11"
252 else
253 AC_MSG_ERROR("Directory ${withval} does not exist.");
254 fi])dnl
255 # Enable target accurate FP library
256 AC_ARG_WITH(sim-funit,
257 [ --with-sim-funit=path Use target FP library under given directory],
258 [if test -d "${withval}"
259 then
260 SIM_SUBTARGET="${SIM_SUBTARGET} -DSKY_FUNIT -I${withval}/include"
261 mips_extra_libs="${mips_extra_libs} -L${withval}/lib -lfunit"
262 else
263 AC_MSG_ERROR("Directory ${withval} does not exist.");
264 fi])dnl
265 # end-sanitize-sky
266 AC_SUBST(mips_extra_libs)
267
268 AC_CHECK_HEADERS(string.h strings.h stdlib.h stdlib.h)
269 AC_CHECK_LIB(m, fabs)
270 AC_CHECK_FUNCS(aint anint sqrt)
271
272 SIM_AC_OUTPUT