]>
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 | |
13 | ||
14 | # DEPRECATED | |
15 | # | |
16 | # Instead of defining a `subtarget' macro, code should be checking | |
17 | # the value of {STATE,CPU}_ARCHITECTURE to identify the architecture | |
18 | # in question. | |
19 | # | |
20 | case "${target}" in | |
21 | mips*tx39*) SIM_SUBTARGET="-DSUBTARGET_R3900=1";; | |
22 | *) SIM_SUBTARGET="";; | |
23 | esac | |
24 | AC_SUBST(SIM_SUBTARGET) | |
25 | ||
26 | ||
27 | ||
28 | # | |
29 | # Select the byte order of the target | |
30 | # | |
31 | mips_endian= | |
32 | default_endian= | |
33 | case "${target}" in | |
34 | mips64el*-*-*) mips_endian=LITTLE_ENDIAN ;; | |
35 | mips64*-*-*) default_endian=BIG_ENDIAN ;; | |
36 | mips16*-*-*) default_endian=BIG_ENDIAN ;; | |
37 | mips*-*-*) default_endian=BIG_ENDIAN ;; | |
38 | *) default_endian=BIG_ENDIAN ;; | |
39 | esac | |
40 | SIM_AC_OPTION_ENDIAN($mips_endian,$default_endian) | |
41 | ||
42 | ||
43 | ||
44 | # | |
45 | # Select the bitsize of the target | |
46 | # | |
47 | mips_addr_bitsize= | |
48 | case "${target}" in | |
49 | mips64*-*-*) mips_bitsize=64 ; mips_msb=63 ;; | |
50 | mips16*-*-*) mips_bitsize=64 ; mips_msb=63 ;; | |
51 | mips*-*-*) mips_bitsize=32 ; mips_msb=31 ;; | |
52 | *) mips_bitsize=64 ; mips_msb=63 ;; | |
53 | esac | |
54 | SIM_AC_OPTION_BITSIZE($mips_bitsize,$mips_msb,$mips_addr_bitsize) | |
55 | ||
56 | ||
57 | ||
58 | # | |
59 | # Select the floating hardware support of the target | |
60 | # | |
61 | mips_fpu=HARDWARE_FLOATING_POINT | |
62 | mips_fpu_bitsize= | |
63 | case "${target}" in | |
64 | mips*tx39*) mips_fpu=HARD_FLOATING_POINT | |
65 | mips_fpu_bitsize=32 | |
66 | ;; | |
67 | mips64*-*-*) mips_fpu=HARD_FLOATING_POINT ;; | |
68 | mips16*-*-*) mips_fpu=HARD_FLOATING_POINT ;; | |
69 | mips*-*-*) mips_fpu=HARD_FLOATING_POINT ; mips_fpu_bitsize=32 ;; | |
70 | *) mips_fpu=HARD_FLOATING_POINT ;; | |
71 | esac | |
72 | SIM_AC_OPTION_FLOAT($mips_fpu,$mips_fpu_bitsize) | |
73 | ||
74 | ||
75 | ||
76 | # | |
77 | # Select the level of SMP support | |
78 | # | |
79 | case "${target}" in | |
80 | *) mips_smp=0 ;; | |
81 | esac | |
82 | SIM_AC_OPTION_SMP($mips_smp) | |
83 | ||
84 | ||
85 | ||
86 | # | |
87 | # Select the IGEN architecture | |
88 | # | |
89 | sim_gen=IGEN | |
90 | sim_igen_machine="-M mipsIV" | |
91 | sim_m16_machine="-M mips16" | |
92 | sim_igen_filter="32,64,f" | |
93 | sim_m16_filter="16" | |
94 | case "${target}" in | |
95 | mips*tx39*) sim_gen=IGEN | |
96 | sim_igen_filter="32,f" | |
97 | sim_igen_machine="-M r3900" | |
98 | ;; | |
99 | mips64vr43*-*-*) sim_gen=IGEN | |
100 | sim_igen_machine="-M mipsIV" | |
101 | ;; | |
102 | mips64vr5*-*-*) sim_gen=IGEN | |
103 | sim_igen_machine="-M vr5000" | |
104 | ;; | |
105 | mips64vr41*) sim_gen=M16 | |
106 | sim_igen_machine="-M vr4100" | |
107 | sim_m16_machine="-M vr4100" | |
108 | sim_igen_filter="32,64,f" | |
109 | sim_m16_filter="16" | |
110 | ;; | |
111 | mips64*-*-*) sim_igen_filter="32,64,f" | |
112 | sim_gen=IGEN | |
113 | ;; | |
114 | mips16*-*-*) sim_gen=M16 | |
115 | sim_igen_filter="32,64,f" | |
116 | sim_m16_filter="16" | |
117 | ;; | |
118 | mips*lsi*) sim_gen=M16 | |
119 | sim_igen_machine="-M mipsIII,mips16" | |
120 | sim_m16_machine="-M mips16,mipsIII" | |
121 | sim_igen_filter="32,f" | |
122 | sim_m16_filter="16" | |
123 | ;; | |
124 | mips*-*-*) sim_gen=IGEN | |
125 | sim_igen_filter="32,f" | |
126 | ;; | |
127 | esac | |
128 | sim_igen_flags="-F ${sim_igen_filter} ${sim_igen_machine} ${sim_igen_smp}" | |
129 | sim_m16_flags=" -F ${sim_m16_filter} ${sim_m16_machine} ${sim_igen_smp}" | |
130 | AC_SUBST(sim_igen_flags) | |
131 | AC_SUBST(sim_m16_flags) | |
132 | AC_SUBST(sim_gen) | |
133 | ||
134 | ||
135 | # | |
136 | # Add simulated hardware devices | |
137 | # | |
138 | hw_enabled=no | |
139 | case "${target}" in | |
140 | mips*tx39*) | |
141 | hw_enabled=yes | |
142 | hw_extra_devices="tx3904cpu tx3904irc tx3904tmr tx3904sio" | |
143 | mips_extra_objs="dv-sockser.o" | |
144 | SIM_SUBTARGET="$SIM_SUBTARGET -DTARGET_TX3904=1" | |
145 | ;; | |
146 | *) | |
147 | mips_extra_objs="" | |
148 | ;; | |
149 | esac | |
150 | SIM_AC_OPTION_HARDWARE($hw_enabled,$hw_devices,$hw_extra_devices) | |
151 | AC_SUBST(mips_extra_objs) | |
152 | ||
153 | ||
154 | # Choose simulator engine | |
155 | case "${target}" in | |
156 | *) mips_igen_engine="engine.o" | |
157 | ;; | |
158 | esac | |
159 | AC_SUBST(mips_igen_engine) | |
160 | ||
161 | ||
162 | AC_PATH_X | |
163 | mips_extra_libs="" | |
164 | AC_SUBST(mips_extra_libs) | |
165 | ||
166 | AC_CHECK_HEADERS(string.h strings.h stdlib.h stdlib.h) | |
167 | AC_CHECK_LIB(m, fabs) | |
168 | AC_CHECK_FUNCS(aint anint sqrt) | |
169 | ||
170 | SIM_AC_OUTPUT |