aboutsummaryrefslogtreecommitdiff
path: root/sim/configure.in
blob: db35e31907e7b27d1fcae2da6fe267218deffb4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.12.1)dnl
AC_INIT(Makefile.in)

AC_PROG_CC
AC_PROG_INSTALL
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib, :)

AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
AC_CANONICAL_SYSTEM
AC_ARG_PROGRAM
AC_PROG_CC
AC_SUBST(CFLAGS)
AC_SUBST(HDEFINES)
AR=${AR-ar}
AC_SUBST(AR)
AC_PROG_RANLIB

# Put a plausible default for CC_FOR_BUILD in Makefile.
AC_C_CROSS
if test "x$cross_compiling" = "xno"; then
  CC_FOR_BUILD='$(CC)'
else
  CC_FOR_BUILD=gcc
fi
AC_SUBST(CC_FOR_BUILD)

# If a cpu ever has more than one simulator to choose from, use
# --enable-sim=... to choose.
AC_ARG_ENABLE(sim,
[  --enable-sim ],
[case "${enableval}" in
yes | no) ;;
*)	AC_MSG_ERROR(bad value ${enableval} given for --enable-sim option) ;;
esac])

# Assume simulator can be built with cc.
# If the user passes --enable-sim built it regardless of $(CC).
only_if_gcc=no
only_if_enabled=no
extra_subdirs=common

# WHEN ADDING ENTRIES TO THIS MATRIX:
#  Make sure that the left side always has two dashes.  Otherwise you
#  can get spurious matches.  Even for unambiguous cases, do this as a
#  convention, else the table becomes a real mess to understand and maintain.

case "${target}" in
  arm*-*-*)		sim_target=arm ;;
  strongarm*-*-*)	sim_target=arm ;;
  thumb*-*-*)           sim_target=arm ;;
  d10v-*-*)		sim_target=d10v ;;
  d30v-*-*)
	sim_target=d30v
	only_if_gcc=yes
	extra_subdirs="${extra_subdirs} igen"
	;;
  fr30-*-*)		sim_target=fr30 ;;
  h8300*-*-*)		sim_target=h8300 ;;
  h8500-*-*)		sim_target=h8500 ;;
  i960-*-*)		sim_target=i960 ;;
  m32r-*-*)		sim_target=m32r ;;
  mips*-*-*)
	# The MIPS simulator can only be compiled by gcc.
	sim_target=mips
	only_if_gcc=yes
	extra_subdirs="${extra_subdirs} igen"
	;;
  mn10300*-*-*)
	# The mn10300 simulator can only be compiled by gcc.
	sim_target=mn10300
	only_if_gcc=yes
	extra_subdirs="${extra_subdirs} igen"
	;;
  mn10200*-*-*)
	sim_target=mn10200
	;;
  sh*-*-*)		sim_target=sh ;;
  powerpc*-*-eabi* | powerpc*-*-solaris* | powerpc*-*-sysv4* | powerpc*-*-elf* | powerpc*-*-linux* )
	# The PowerPC simulator uses the GCC extension long long as well as
	# ANSI prototypes, so don't enable it for random host compilers
	# unless asked to.
	sim_target=ppc
	only_if_gcc=yes
	#extra_subdirs="${extra_subdirs}"
	;;
# start-sanitize-tic80
  tic80-*-*)
	sim_target=tic80
	only_if_gcc=yes
	extra_subdirs="${extra_subdirs} igen"
	;;
# end-sanitize-tic80
  v850-*-*)
	# The V850 simulator can only be compiled by gcc.
	sim_target=v850
	extra_subdirs="${extra_subdirs} igen"
	only_if_gcc=yes
	;;
  v850e-*-*)
	# The V850 simulator can only be compiled by gcc.
	sim_target=v850
	extra_subdirs="${extra_subdirs} igen"
	only_if_gcc=yes
	;;
  v850ea-*-*)
	# The V850 simulator can only be compiled by gcc.
	sim_target=v850
	extra_subdirs="${extra_subdirs} igen"
	only_if_gcc=yes
	;;
  w65-*-*)
	sim_target=w65
	# The w65 is suffering from gradual decay.
	only_if_enabled=yes
	;;
  z8k*-*-*)		sim_target=z8k ;;
  sparc64-*-*)
	only_if_gcc=yes
	if test "x${with_cgen}" = xyes ; then
		sim_target=sparc
		extra_subdirs="${extra_subdirs} testsuite"
	else
		sim_target=none # Don't build erc32 if sparc64.
	fi
	;;
  sparclite*-*-* | sparc86x*-*-*)
	# The SPARC simulator can only be compiled by gcc.
	only_if_gcc=yes
	if test "x${with_cgen}" = xyes ; then
		sim_target=sparc
		extra_subdirs="${extra_subdirs} testsuite"
	else
		sim_target=erc32
	fi
	;;
  sparc*-*-*)
	# The SPARC simulator can only be compiled by gcc.
	only_if_gcc=yes
	if test "x${with_cgen}" = xyes ; then
		sim_target=sparc
		extra_subdirs="${extra_subdirs} testsuite"
	else
		# Unfortunately erc32 won't build on many hosts, so only enable
		# it if the user really really wants it.
		only_if_enabled=yes
		sim_target=erc32
	fi
	;;
  *)			sim_target=none ;;
esac


# start-sanitize-gxsim
AC_ARG_ENABLE(sim-gx, [],
[case "${enableval}" in
  yes) 
    if test -d ${srcdir}/${sim_target}-gx ; then
       extra_subdirs="${sim_target}-gx"
    else
	AC_MSG_WARN(GX simulator not available for ${sim_target})
    fi ;;
esac])dnl
# end-sanitize-gxsim


# Is there a testsuite directory for the target?
testdir=`echo ${target} | sed -e 's/-.*-/-/'`
if test -r ${srcdir}/testsuite/${testdir}/configure ; then
  extra_subdirs="${extra_subdirs} testsuite"
fi


case "${enable_sim}" in
no)	sim_target=none ;;
yes)
	if test ${only_if_gcc} = yes ; then
		if test "${GCC}" != yes ; then
			echo "Can't enable simulator since not compiling with GCC."
			sim_target=none
		fi
	fi
	;;
*)
	if test ${only_if_enabled} = yes ; then
		sim_target=none
	else
		if test ${only_if_gcc} = yes ; then
			if test "${GCC}" != yes ; then
				sim_target=none
			fi
		fi
	fi
	;;
esac

if test x"${sim_target}" != xnone ; then
	configdirs="${extra_subdirs} ${sim_target}"
	AC_CONFIG_SUBDIRS($configdirs)
fi

AC_OUTPUT(Makefile)

exit 0