Statistics
| Branch: | Revision:

root / configure @ 89344d5a

History | View | Annotate | Download (18.5 kB)

1 7d13299d bellard
#!/bin/sh
2 7d13299d bellard
#
3 3ef693a0 bellard
# qemu configure script (c) 2003 Fabrice Bellard
4 7d13299d bellard
#
5 7d13299d bellard
# set temporary file name
6 7d13299d bellard
if test ! -z "$TMPDIR" ; then
7 7d13299d bellard
    TMPDIR1="${TMPDIR}"
8 7d13299d bellard
elif test ! -z "$TEMPDIR" ; then
9 7d13299d bellard
    TMPDIR1="${TEMPDIR}"
10 7d13299d bellard
else
11 7d13299d bellard
    TMPDIR1="/tmp"
12 7d13299d bellard
fi
13 7d13299d bellard
14 3ef693a0 bellard
TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
15 3ef693a0 bellard
TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
16 3ef693a0 bellard
TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
17 3ef693a0 bellard
TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
18 7d13299d bellard
19 7d13299d bellard
# default parameters
20 11d9f695 bellard
prefix=""
21 1e43adfc bellard
interp_prefix="/usr/gnemul/qemu-%M"
22 43ce4dfe bellard
static="no"
23 7d13299d bellard
cross_prefix=""
24 7d13299d bellard
cc="gcc"
25 7d13299d bellard
host_cc="gcc"
26 7d13299d bellard
ar="ar"
27 7d13299d bellard
make="make"
28 7d13299d bellard
strip="strip"
29 7d13299d bellard
cpu=`uname -m`
30 5327cf48 bellard
target_list=""
31 7d13299d bellard
case "$cpu" in
32 7d13299d bellard
  i386|i486|i586|i686|i86pc|BePC)
33 97a847bc bellard
    cpu="i386"
34 7d13299d bellard
  ;;
35 ba68055e bellard
  armv*b)
36 808c4954 bellard
    cpu="armv4b"
37 808c4954 bellard
  ;;
38 ba68055e bellard
  armv*l)
39 7d13299d bellard
    cpu="armv4l"
40 7d13299d bellard
  ;;
41 7d13299d bellard
  alpha)
42 7d13299d bellard
    cpu="alpha"
43 7d13299d bellard
  ;;
44 295defa5 bellard
  "Power Macintosh"|ppc|ppc64)
45 7d13299d bellard
    cpu="powerpc"
46 7d13299d bellard
  ;;
47 7d13299d bellard
  mips)
48 7d13299d bellard
    cpu="mips"
49 7d13299d bellard
  ;;
50 fb3e5849 bellard
  s390)
51 fb3e5849 bellard
    cpu="s390"
52 fb3e5849 bellard
  ;;
53 ae228531 bellard
  sparc)
54 ae228531 bellard
    cpu="sparc"
55 ae228531 bellard
  ;;
56 ae228531 bellard
  sparc64)
57 ae228531 bellard
    cpu="sparc64"
58 ae228531 bellard
  ;;
59 a8baa8c5 bellard
  ia64)
60 a8baa8c5 bellard
    cpu="ia64"
61 a8baa8c5 bellard
  ;;
62 38e584a0 bellard
  m68k)
63 38e584a0 bellard
    cpu="m68k"
64 38e584a0 bellard
  ;;
65 bc51c5c9 bellard
  x86_64|amd64)
66 0b0babc6 bellard
    cpu="x86_64"
67 bc51c5c9 bellard
  ;;
68 7d13299d bellard
  *)
69 7d13299d bellard
    cpu="unknown"
70 7d13299d bellard
  ;;
71 7d13299d bellard
esac
72 7d13299d bellard
gprof="no"
73 7d13299d bellard
bigendian="no"
74 67b915a5 bellard
mingw32="no"
75 67b915a5 bellard
EXESUF=""
76 67b915a5 bellard
gdbstub="yes"
77 443f1376 bellard
slirp="yes"
78 fb065187 bellard
adlib="no"
79 fb065187 bellard
oss="no"
80 102a52e4 bellard
fmod="no"
81 102a52e4 bellard
fmod_lib=""
82 102a52e4 bellard
fmod_inc=""
83 5327cf48 bellard
linux="no"
84 c9ec1fe4 bellard
kqemu="no"
85 c9ec1fe4 bellard
kernel_path=""
86 5b0753e0 bellard
cocoa="no"
87 7d13299d bellard
88 7d13299d bellard
# OS specific
89 7d13299d bellard
targetos=`uname -s`
90 7d13299d bellard
case $targetos in
91 67b915a5 bellard
MINGW32*)
92 67b915a5 bellard
mingw32="yes"
93 67b915a5 bellard
;;
94 7d3505c5 bellard
FreeBSD)
95 7d3505c5 bellard
bsd="yes"
96 fb065187 bellard
oss="yes"
97 07f4ddbf bellard
if [ "$cpu" = "i386" ] ; then
98 07f4ddbf bellard
    kqemu="yes"
99 07f4ddbf bellard
fi
100 7d3505c5 bellard
;;
101 7d3505c5 bellard
NetBSD)
102 7d3505c5 bellard
bsd="yes"
103 fb065187 bellard
oss="yes"
104 7d3505c5 bellard
;;
105 7d3505c5 bellard
OpenBSD)
106 7d3505c5 bellard
bsd="yes"
107 fb065187 bellard
oss="yes"
108 7d3505c5 bellard
;;
109 83fb7adf bellard
Darwin)
110 83fb7adf bellard
bsd="yes"
111 83fb7adf bellard
darwin="yes"
112 83fb7adf bellard
;;
113 fb065187 bellard
*) 
114 fb065187 bellard
oss="yes"
115 5327cf48 bellard
linux="yes"
116 07f4ddbf bellard
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
117 c9ec1fe4 bellard
    kqemu="yes"
118 c9ec1fe4 bellard
fi
119 fb065187 bellard
;;
120 7d13299d bellard
esac
121 7d13299d bellard
122 7d3505c5 bellard
if [ "$bsd" = "yes" ] ; then
123 83fb7adf bellard
  if [ ! "$darwin" = "yes" ] ; then
124 83fb7adf bellard
    make="gmake"
125 83fb7adf bellard
  fi
126 7d3505c5 bellard
fi
127 7d3505c5 bellard
128 7d13299d bellard
# find source path
129 7d13299d bellard
# XXX: we assume an absolute path is given when launching configure, 
130 7d13299d bellard
# except in './configure' case.
131 7d13299d bellard
source_path=${0%configure}
132 7d13299d bellard
source_path=${source_path%/}
133 7d13299d bellard
source_path_used="yes"
134 7d13299d bellard
if test -z "$source_path" -o "$source_path" = "." ; then
135 7d13299d bellard
    source_path=`pwd`
136 7d13299d bellard
    source_path_used="no"
137 7d13299d bellard
fi
138 7d13299d bellard
139 7d13299d bellard
for opt do
140 7d13299d bellard
  case "$opt" in
141 7d13299d bellard
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
142 7d13299d bellard
  ;;
143 32ce6337 bellard
  --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2`
144 32ce6337 bellard
  ;;
145 7d13299d bellard
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
146 7d13299d bellard
  ;;
147 7d13299d bellard
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
148 7d13299d bellard
  ;;
149 7d13299d bellard
  --cc=*) cc=`echo $opt | cut -d '=' -f 2`
150 7d13299d bellard
  ;;
151 7d13299d bellard
  --make=*) make=`echo $opt | cut -d '=' -f 2`
152 7d13299d bellard
  ;;
153 7d13299d bellard
  --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
154 7d13299d bellard
  ;;
155 7d13299d bellard
  --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}"
156 7d13299d bellard
  ;;
157 7d13299d bellard
  --extra-libs=*) extralibs=${opt#--extra-libs=}
158 7d13299d bellard
  ;;
159 7d13299d bellard
  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
160 7d13299d bellard
  ;;
161 97a847bc bellard
  --target-list=*) target_list=${opt#--target-list=}
162 de83cd02 bellard
  ;;
163 7d13299d bellard
  --enable-gprof) gprof="yes"
164 7d13299d bellard
  ;;
165 43ce4dfe bellard
  --static) static="yes"
166 43ce4dfe bellard
  ;;
167 97a847bc bellard
  --disable-sdl) sdl="no"
168 97a847bc bellard
  ;;
169 102a52e4 bellard
  --enable-fmod) fmod="yes"
170 102a52e4 bellard
  ;;
171 102a52e4 bellard
  --fmod-lib=*) fmod_lib=${opt#--fmod-lib=}
172 102a52e4 bellard
  ;;
173 102a52e4 bellard
  --fmod-inc=*) fmod_inc=${opt#--fmod-inc=}
174 102a52e4 bellard
  ;;
175 67b915a5 bellard
  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
176 67b915a5 bellard
  ;; 
177 443f1376 bellard
  --disable-slirp) slirp="no"
178 c20709aa bellard
  ;; 
179 fb065187 bellard
  --enable-adlib) adlib="yes"
180 fb065187 bellard
  ;; 
181 c9ec1fe4 bellard
  --disable-kqemu) kqemu="no"
182 c9ec1fe4 bellard
  ;; 
183 c9ec1fe4 bellard
  --kernel-path=*) kernel_path=${opt#--kernel-path=}
184 c9ec1fe4 bellard
  ;; 
185 5b0753e0 bellard
  --enable-cocoa) cocoa="yes" ; sdl="no"
186 5b0753e0 bellard
  ;; 
187 7d13299d bellard
  esac
188 7d13299d bellard
done
189 7d13299d bellard
190 7d13299d bellard
# Checking for CFLAGS
191 7d13299d bellard
if test -z "$CFLAGS"; then
192 7d13299d bellard
    CFLAGS="-O2"
193 7d13299d bellard
fi
194 7d13299d bellard
195 7d13299d bellard
cc="${cross_prefix}${cc}"
196 7d13299d bellard
ar="${cross_prefix}${ar}"
197 7d13299d bellard
strip="${cross_prefix}${strip}"
198 7d13299d bellard
199 67b915a5 bellard
if test "$mingw32" = "yes" ; then
200 5327cf48 bellard
    linux="no"
201 67b915a5 bellard
    EXESUF=".exe"
202 67b915a5 bellard
    gdbstub="no"
203 9f059eca bellard
    oss="no"
204 07f4ddbf bellard
    if [ "$cpu" = "i386" ] ; then
205 07f4ddbf bellard
        kqemu="yes"
206 07f4ddbf bellard
    fi
207 67b915a5 bellard
fi
208 67b915a5 bellard
209 5327cf48 bellard
if test -z "$target_list" ; then
210 5327cf48 bellard
# these targets are portable
211 a20b5524 bellard
    target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu"
212 5327cf48 bellard
# the following are Linux specific
213 5327cf48 bellard
    if [ "$linux" = "yes" ] ; then
214 a20b5524 bellard
        target_list="i386-user arm-user armeb-user sparc-user ppc-user $target_list"
215 5327cf48 bellard
    fi
216 5327cf48 bellard
fi
217 5327cf48 bellard
218 7d13299d bellard
if test -z "$cross_prefix" ; then
219 7d13299d bellard
220 7d13299d bellard
# ---
221 7d13299d bellard
# big/little endian test
222 7d13299d bellard
cat > $TMPC << EOF
223 7d13299d bellard
#include <inttypes.h>
224 7d13299d bellard
int main(int argc, char ** argv){
225 7d13299d bellard
	volatile uint32_t i=0x01234567;
226 7d13299d bellard
	return (*((uint8_t*)(&i))) == 0x67;
227 7d13299d bellard
}
228 7d13299d bellard
EOF
229 7d13299d bellard
230 7d13299d bellard
if $cc -o $TMPE $TMPC 2>/dev/null ; then
231 7d13299d bellard
$TMPE && bigendian="yes"
232 7d13299d bellard
else
233 7d13299d bellard
echo big/little test failed
234 7d13299d bellard
fi
235 7d13299d bellard
236 7d13299d bellard
else
237 7d13299d bellard
238 7d13299d bellard
# if cross compiling, cannot launch a program, so make a static guess
239 808c4954 bellard
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
240 7d13299d bellard
    bigendian="yes"
241 7d13299d bellard
fi
242 7d13299d bellard
243 7d13299d bellard
fi
244 7d13299d bellard
245 e8cd23de bellard
# check gcc options support
246 04369ff2 bellard
cat > $TMPC <<EOF
247 04369ff2 bellard
int main(void) {
248 04369ff2 bellard
}
249 04369ff2 bellard
EOF
250 04369ff2 bellard
251 e8cd23de bellard
have_gcc3_options="no"
252 e8cd23de bellard
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
253 e8cd23de bellard
   have_gcc3_options="yes"
254 04369ff2 bellard
fi
255 ca735206 bellard
256 11d9f695 bellard
##########################################
257 11d9f695 bellard
# SDL probe
258 11d9f695 bellard
259 11d9f695 bellard
sdl_too_old=no
260 11d9f695 bellard
261 11d9f695 bellard
if test -z "$sdl" ; then
262 11d9f695 bellard
263 a6e022ad bellard
sdl_config="sdl-config"
264 a6e022ad bellard
sdl=no
265 7c1f25b4 bellard
sdl_static=no
266 a6e022ad bellard
267 a6e022ad bellard
if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
268 a6e022ad bellard
# win32 cross compilation case
269 a6e022ad bellard
    sdl_config="i386-mingw32msvc-sdl-config"
270 a6e022ad bellard
    sdl=yes
271 a6e022ad bellard
else
272 a6e022ad bellard
# normal SDL probe
273 11d9f695 bellard
cat > $TMPC << EOF
274 11d9f695 bellard
#include <SDL.h>
275 11d9f695 bellard
#undef main /* We don't want SDL to override our main() */
276 11d9f695 bellard
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
277 11d9f695 bellard
EOF
278 11d9f695 bellard
279 a6e022ad bellard
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
280 a6e022ad bellard
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
281 11d9f695 bellard
if test "$_sdlversion" -lt 121 ; then
282 11d9f695 bellard
sdl_too_old=yes
283 11d9f695 bellard
else
284 11d9f695 bellard
sdl=yes
285 11d9f695 bellard
fi
286 7c1f25b4 bellard
287 7c1f25b4 bellard
# static link with sdl ?
288 7c1f25b4 bellard
if test "$sdl" = "yes" ; then
289 7c1f25b4 bellard
aa="no"
290 7c1f25b4 bellard
`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
291 7c1f25b4 bellard
sdl_static_libs=`$sdl_config --static-libs`
292 7c1f25b4 bellard
if [ "$aa" = "yes" ] ; then
293 d8d8aa4e bellard
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
294 7c1f25b4 bellard
fi
295 7c1f25b4 bellard
296 7c1f25b4 bellard
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
297 7c1f25b4 bellard
  sdl_static=yes
298 11d9f695 bellard
fi
299 11d9f695 bellard
300 7c1f25b4 bellard
fi # static link
301 7c1f25b4 bellard
302 7c1f25b4 bellard
fi # sdl compile test
303 7c1f25b4 bellard
304 a6e022ad bellard
fi # cross compilation
305 a6e022ad bellard
fi # -z $sdl
306 11d9f695 bellard
307 7d13299d bellard
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
308 7d13299d bellard
cat << EOF
309 7d13299d bellard
310 7d13299d bellard
Usage: configure [options]
311 7d13299d bellard
Options: [defaults in brackets after descriptions]
312 7d13299d bellard
313 7d13299d bellard
EOF
314 7d13299d bellard
echo "Standard options:"
315 7d13299d bellard
echo "  --help                   print this message"
316 7d13299d bellard
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
317 1e43adfc bellard
echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
318 1e43adfc bellard
echo "                           use %M for cpu name [$interp_prefix]"
319 97a847bc bellard
echo "  --target-list=LIST       set target list [$target_list]"
320 7d13299d bellard
echo ""
321 c9ec1fe4 bellard
echo "kqemu kernel acceleration support:"
322 c9ec1fe4 bellard
echo "  --disable-kqemu          disable kqemu build"
323 c9ec1fe4 bellard
echo "  --kernel-path=PATH       set the kernel path (configure probes it)"
324 c9ec1fe4 bellard
echo ""
325 7d13299d bellard
echo "Advanced options (experts only):"
326 7d13299d bellard
echo "  --source-path=PATH       path of source code [$source_path]"
327 7d13299d bellard
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
328 7d13299d bellard
echo "  --cc=CC                  use C compiler CC [$cc]"
329 7d13299d bellard
echo "  --make=MAKE              use specified make [$make]"
330 43ce4dfe bellard
echo "  --static                 enable static build [$static]"
331 67b915a5 bellard
echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
332 102a52e4 bellard
echo "  --enable-fmod            enable FMOD audio output driver"
333 102a52e4 bellard
echo "  --fmod-lib               path to FMOD library"
334 102a52e4 bellard
echo "  --fmod-inc               path to FMOD includes"
335 7d13299d bellard
echo ""
336 7d13299d bellard
echo "NOTE: The object files are build at the place where configure is launched"
337 7d13299d bellard
exit 1
338 7d13299d bellard
fi
339 7d13299d bellard
340 11d9f695 bellard
if test "$mingw32" = "yes" ; then
341 11d9f695 bellard
if test -z "$prefix" ; then
342 11d9f695 bellard
    prefix="/c/Program Files/Qemu"
343 11d9f695 bellard
fi
344 11d9f695 bellard
mandir="$prefix"
345 7efa4387 bellard
datadir="$prefix"
346 1f50f8d1 bellard
docdir="$prefix"
347 11d9f695 bellard
bindir="$prefix"
348 11d9f695 bellard
else
349 11d9f695 bellard
if test -z "$prefix" ; then
350 11d9f695 bellard
    prefix="/usr/local"
351 11d9f695 bellard
fi
352 5a67135a bellard
mandir="$prefix/share/man"
353 7efa4387 bellard
datadir="$prefix/share/qemu"
354 1f50f8d1 bellard
docdir="$prefix/share/doc/qemu"
355 11d9f695 bellard
bindir="$prefix/bin"
356 11d9f695 bellard
fi
357 5a67135a bellard
358 07f4ddbf bellard
# kqemu support
359 c9ec1fe4 bellard
if test $kqemu = "yes" ; then
360 441c72ba bellard
    # test if the source code is installed
361 441c72ba bellard
    if test '!' -f "kqemu/Makefile" ; then 
362 441c72ba bellard
        kqemu="no"
363 441c72ba bellard
    fi
364 441c72ba bellard
fi
365 441c72ba bellard
  
366 07f4ddbf bellard
# Linux specific kqemu configuration
367 07f4ddbf bellard
if test $kqemu = "yes" -a $linux = "yes" ; then
368 c9ec1fe4 bellard
# find the kernel path
369 c9ec1fe4 bellard
if test -z "$kernel_path" ; then
370 c9ec1fe4 bellard
kernel_version=`uname -r`
371 c9ec1fe4 bellard
kernel_path="/lib/modules/$kernel_version/build"
372 c9ec1fe4 bellard
if test '!' -d "$kernel_path/include" ; then 
373 c9ec1fe4 bellard
    kernel_path="/usr/src/linux"
374 c9ec1fe4 bellard
    if test '!' -d "$kernel_path/include" ; then 
375 c9ec1fe4 bellard
        echo "Could not find kernel includes in /lib/modules or /usr/src/linux - cannot build the kqemu module"
376 c9ec1fe4 bellard
        kqemu="no"
377 c9ec1fe4 bellard
    fi
378 c9ec1fe4 bellard
fi
379 c9ec1fe4 bellard
fi
380 c9ec1fe4 bellard
381 c9ec1fe4 bellard
if test $kqemu = "yes" ; then
382 c9ec1fe4 bellard
383 c9ec1fe4 bellard
# test that the kernel config is present
384 c9ec1fe4 bellard
if test '!' -f "$kernel_path/Makefile" ; then
385 f94daedd bellard
    echo "No Makefile file present in $kernel_path - kqemu cannot be built"
386 c9ec1fe4 bellard
    kqemu="no"
387 c9ec1fe4 bellard
fi    
388 c9ec1fe4 bellard
389 c9ec1fe4 bellard
# find build system (2.6 or legacy)
390 c9ec1fe4 bellard
kbuild26="yes"
391 c9ec1fe4 bellard
if grep -q "PATCHLEVEL = 4" $kernel_path/Makefile ; then
392 c9ec1fe4 bellard
kbuild26="no"
393 c9ec1fe4 bellard
fi
394 c9ec1fe4 bellard
395 c9ec1fe4 bellard
fi # kqemu
396 c9ec1fe4 bellard
397 07f4ddbf bellard
fi # kqemu and linux
398 c9ec1fe4 bellard
399 c9ec1fe4 bellard
400 43ce4dfe bellard
echo "Install prefix    $prefix"
401 7efa4387 bellard
echo "BIOS directory    $datadir"
402 11d9f695 bellard
echo "binary directory  $bindir"
403 11d9f695 bellard
if test "$mingw32" = "no" ; then
404 11d9f695 bellard
echo "Manual directory  $mandir"
405 43ce4dfe bellard
echo "ELF interp prefix $interp_prefix"
406 11d9f695 bellard
fi
407 5a67135a bellard
echo "Source path       $source_path"
408 43ce4dfe bellard
echo "C compiler        $cc"
409 43ce4dfe bellard
echo "make              $make"
410 43ce4dfe bellard
echo "host CPU          $cpu"
411 de83cd02 bellard
echo "host big endian   $bigendian"
412 97a847bc bellard
echo "target list       $target_list"
413 43ce4dfe bellard
echo "gprof enabled     $gprof"
414 43ce4dfe bellard
echo "static build      $static"
415 5b0753e0 bellard
if test "$darwin" = "yes" ; then
416 5b0753e0 bellard
    echo "Cocoa support     $cocoa"
417 5b0753e0 bellard
fi
418 97a847bc bellard
echo "SDL support       $sdl"
419 7c1f25b4 bellard
echo "SDL static link   $sdl_static"
420 67b915a5 bellard
echo "mingw32 support   $mingw32"
421 fb065187 bellard
echo "Adlib support     $adlib"
422 102a52e4 bellard
echo -n "FMOD support      $fmod"
423 102a52e4 bellard
if test $fmod = "yes"; then
424 102a52e4 bellard
    echo -n " (lib='$fmod_lib' include='$fmod_inc')"
425 102a52e4 bellard
fi
426 102a52e4 bellard
echo ""
427 07f4ddbf bellard
echo "kqemu support     $kqemu"
428 07f4ddbf bellard
if test $kqemu = "yes" -a $linux = "yes" ; then
429 c9ec1fe4 bellard
echo ""
430 07f4ddbf bellard
echo "KQEMU Linux module configuration:"
431 c9ec1fe4 bellard
echo "kernel sources    $kernel_path"
432 c9ec1fe4 bellard
echo -n "kbuild type       "
433 c9ec1fe4 bellard
if test $kbuild26 = "yes"; then
434 c9ec1fe4 bellard
echo "2.6"
435 c9ec1fe4 bellard
else
436 c9ec1fe4 bellard
echo "2.4"
437 c9ec1fe4 bellard
fi
438 c9ec1fe4 bellard
fi
439 67b915a5 bellard
440 97a847bc bellard
if test $sdl_too_old = "yes"; then
441 24b55b96 bellard
echo "-> Your SDL version is too old - please upgrade to have SDL support"
442 7c1f25b4 bellard
fi
443 24b55b96 bellard
#if test "$sdl_static" = "no"; then
444 24b55b96 bellard
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
445 24b55b96 bellard
#fi
446 97a847bc bellard
447 97a847bc bellard
config_mak="config-host.mak"
448 97a847bc bellard
config_h="config-host.h"
449 7d13299d bellard
450 7c1f25b4 bellard
#echo "Creating $config_mak and $config_h"
451 7d13299d bellard
452 97a847bc bellard
echo "# Automatically generated by configure - do not modify" > $config_mak
453 97a847bc bellard
echo "/* Automatically generated by configure - do not modify */" > $config_h
454 7d13299d bellard
455 97a847bc bellard
echo "prefix=$prefix" >> $config_mak
456 11d9f695 bellard
echo "bindir=$bindir" >> $config_mak
457 5a67135a bellard
echo "mandir=$mandir" >> $config_mak
458 7efa4387 bellard
echo "datadir=$datadir" >> $config_mak
459 1f50f8d1 bellard
echo "docdir=$docdir" >> $config_mak
460 7efa4387 bellard
echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
461 97a847bc bellard
echo "MAKE=$make" >> $config_mak
462 97a847bc bellard
echo "CC=$cc" >> $config_mak
463 e8cd23de bellard
if test "$have_gcc3_options" = "yes" ; then
464 97a847bc bellard
  echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
465 e8cd23de bellard
fi
466 97a847bc bellard
echo "HOST_CC=$host_cc" >> $config_mak
467 97a847bc bellard
echo "AR=$ar" >> $config_mak
468 97a847bc bellard
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
469 97a847bc bellard
echo "CFLAGS=$CFLAGS" >> $config_mak
470 97a847bc bellard
echo "LDFLAGS=$LDFLAGS" >> $config_mak
471 67b915a5 bellard
echo "EXESUF=$EXESUF" >> $config_mak
472 97a847bc bellard
if test "$cpu" = "i386" ; then
473 97a847bc bellard
  echo "ARCH=i386" >> $config_mak
474 97a847bc bellard
  echo "#define HOST_I386 1" >> $config_h
475 0b0babc6 bellard
elif test "$cpu" = "x86_64" ; then
476 0b0babc6 bellard
  echo "ARCH=x86_64" >> $config_mak
477 0b0babc6 bellard
  echo "#define HOST_X86_64 1" >> $config_h
478 808c4954 bellard
elif test "$cpu" = "armv4b" ; then
479 808c4954 bellard
  echo "ARCH=arm" >> $config_mak
480 808c4954 bellard
  echo "#define HOST_ARM 1" >> $config_h
481 7d13299d bellard
elif test "$cpu" = "armv4l" ; then
482 97a847bc bellard
  echo "ARCH=arm" >> $config_mak
483 97a847bc bellard
  echo "#define HOST_ARM 1" >> $config_h
484 7d13299d bellard
elif test "$cpu" = "powerpc" ; then
485 97a847bc bellard
  echo "ARCH=ppc" >> $config_mak
486 97a847bc bellard
  echo "#define HOST_PPC 1" >> $config_h
487 7d13299d bellard
elif test "$cpu" = "mips" ; then
488 97a847bc bellard
  echo "ARCH=mips" >> $config_mak
489 97a847bc bellard
  echo "#define HOST_MIPS 1" >> $config_h
490 fb3e5849 bellard
elif test "$cpu" = "s390" ; then
491 97a847bc bellard
  echo "ARCH=s390" >> $config_mak
492 97a847bc bellard
  echo "#define HOST_S390 1" >> $config_h
493 295defa5 bellard
elif test "$cpu" = "alpha" ; then
494 97a847bc bellard
  echo "ARCH=alpha" >> $config_mak
495 97a847bc bellard
  echo "#define HOST_ALPHA 1" >> $config_h
496 ae228531 bellard
elif test "$cpu" = "sparc" ; then
497 97a847bc bellard
  echo "ARCH=sparc" >> $config_mak
498 97a847bc bellard
  echo "#define HOST_SPARC 1" >> $config_h
499 ae228531 bellard
elif test "$cpu" = "sparc64" ; then
500 97a847bc bellard
  echo "ARCH=sparc64" >> $config_mak
501 97a847bc bellard
  echo "#define HOST_SPARC64 1" >> $config_h
502 a8baa8c5 bellard
elif test "$cpu" = "ia64" ; then
503 97a847bc bellard
  echo "ARCH=ia64" >> $config_mak
504 97a847bc bellard
  echo "#define HOST_IA64 1" >> $config_h
505 38e584a0 bellard
elif test "$cpu" = "m68k" ; then
506 38ca2abc bellard
  echo "ARCH=m68k" >> $config_mak
507 38ca2abc bellard
  echo "#define HOST_M68K 1" >> $config_h
508 7d13299d bellard
else
509 7d13299d bellard
  echo "Unsupported CPU"
510 7d13299d bellard
  exit 1
511 7d13299d bellard
fi
512 7d13299d bellard
if test "$bigendian" = "yes" ; then
513 97a847bc bellard
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
514 97a847bc bellard
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
515 97a847bc bellard
fi
516 67b915a5 bellard
if test "$mingw32" = "yes" ; then
517 67b915a5 bellard
  echo "CONFIG_WIN32=yes" >> $config_mak
518 11d9f695 bellard
  echo "#define CONFIG_WIN32 1" >> $config_h
519 7d3505c5 bellard
elif test -f "/usr/include/byteswap.h" ; then
520 67b915a5 bellard
  echo "#define HAVE_BYTESWAP_H 1" >> $config_h
521 67b915a5 bellard
fi
522 83fb7adf bellard
if test "$darwin" = "yes" ; then
523 83fb7adf bellard
  echo "CONFIG_DARWIN=yes" >> $config_mak
524 83fb7adf bellard
  echo "#define CONFIG_DARWIN 1" >> $config_h
525 83fb7adf bellard
fi
526 67b915a5 bellard
if test "$gdbstub" = "yes" ; then
527 67b915a5 bellard
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
528 67b915a5 bellard
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
529 67b915a5 bellard
fi
530 97a847bc bellard
if test "$gprof" = "yes" ; then
531 97a847bc bellard
  echo "TARGET_GPROF=yes" >> $config_mak
532 97a847bc bellard
  echo "#define HAVE_GPROF 1" >> $config_h
533 97a847bc bellard
fi
534 97a847bc bellard
if test "$static" = "yes" ; then
535 97a847bc bellard
  echo "CONFIG_STATIC=yes" >> $config_mak
536 50863472 bellard
  echo "#define CONFIG_STATIC 1" >> $config_h
537 7d13299d bellard
fi
538 c20709aa bellard
if test "$slirp" = "yes" ; then
539 c20709aa bellard
  echo "CONFIG_SLIRP=yes" >> $config_mak
540 c20709aa bellard
  echo "#define CONFIG_SLIRP 1" >> $config_h
541 c20709aa bellard
fi
542 fb065187 bellard
if test "$adlib" = "yes" ; then
543 fb065187 bellard
  echo "CONFIG_ADLIB=yes" >> $config_mak
544 fb065187 bellard
  echo "#define CONFIG_ADLIB 1" >> $config_h
545 fb065187 bellard
fi
546 fb065187 bellard
if test "$oss" = "yes" ; then
547 fb065187 bellard
  echo "CONFIG_OSS=yes" >> $config_mak
548 fb065187 bellard
  echo "#define CONFIG_OSS 1" >> $config_h
549 fb065187 bellard
fi
550 102a52e4 bellard
if test "$fmod" = "yes" ; then
551 102a52e4 bellard
  echo "CONFIG_FMOD=yes" >> $config_mak
552 102a52e4 bellard
  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
553 102a52e4 bellard
  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
554 102a52e4 bellard
  echo "#define CONFIG_FMOD 1" >> $config_h
555 102a52e4 bellard
fi
556 97a847bc bellard
echo -n "VERSION=" >>$config_mak
557 97a847bc bellard
head $source_path/VERSION >>$config_mak
558 97a847bc bellard
echo "" >>$config_mak
559 97a847bc bellard
echo -n "#define QEMU_VERSION \"" >> $config_h
560 97a847bc bellard
head $source_path/VERSION >> $config_h
561 97a847bc bellard
echo "\"" >> $config_h
562 97a847bc bellard
563 c9ec1fe4 bellard
if test $kqemu = "yes" ; then
564 c9ec1fe4 bellard
  echo "CONFIG_KQEMU=yes" >> $config_mak
565 c9ec1fe4 bellard
  echo "KERNEL_PATH=$kernel_path" >> $config_mak
566 c9ec1fe4 bellard
  if test $kbuild26 = "yes" ; then
567 c9ec1fe4 bellard
    echo "CONFIG_KBUILD26=yes" >> $config_mak
568 c9ec1fe4 bellard
  fi
569 c9ec1fe4 bellard
fi
570 97a847bc bellard
echo "SRC_PATH=$source_path" >> $config_mak
571 97a847bc bellard
echo "TARGET_DIRS=$target_list" >> $config_mak
572 97a847bc bellard
573 83fb7adf bellard
# XXX: suppress that
574 7d3505c5 bellard
if [ "$bsd" = "yes" ] ; then
575 43003046 bellard
  echo "#define O_LARGEFILE 0" >> $config_h
576 43003046 bellard
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
577 7d3505c5 bellard
  echo "#define _BSD 1" >> $config_h
578 7d3505c5 bellard
fi
579 7d3505c5 bellard
580 97a847bc bellard
for target in $target_list; do 
581 97a847bc bellard
582 97a847bc bellard
target_dir="$target"
583 97a847bc bellard
config_mak=$target_dir/config.mak
584 97a847bc bellard
config_h=$target_dir/config.h
585 97a847bc bellard
target_cpu=`echo $target | cut -d '-' -f 1`
586 97a847bc bellard
target_bigendian="no"
587 808c4954 bellard
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
588 1e43adfc bellard
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
589 64b3ab24 bellard
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
590 67867308 bellard
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
591 97a847bc bellard
target_softmmu="no"
592 97a847bc bellard
if expr $target : '.*-softmmu' > /dev/null ; then
593 97a847bc bellard
  target_softmmu="yes"
594 97a847bc bellard
fi
595 997344f3 bellard
target_user_only="no"
596 997344f3 bellard
if expr $target : '.*-user' > /dev/null ; then
597 997344f3 bellard
  target_user_only="yes"
598 997344f3 bellard
fi
599 97a847bc bellard
600 7c1f25b4 bellard
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
601 97a847bc bellard
602 97a847bc bellard
mkdir -p $target_dir
603 158142c2 bellard
mkdir -p $target_dir/fpu
604 808c4954 bellard
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
605 69de927c bellard
  mkdir -p $target_dir/nwfpe
606 69de927c bellard
fi
607 a7e61ed4 bellard
if test "$target_user_only" = "no" ; then
608 a7e61ed4 bellard
  mkdir -p $target_dir/slirp
609 a7e61ed4 bellard
fi
610 69de927c bellard
611 97a847bc bellard
ln -sf $source_path/Makefile.target $target_dir/Makefile
612 97a847bc bellard
613 97a847bc bellard
echo "# Automatically generated by configure - do not modify" > $config_mak
614 97a847bc bellard
echo "/* Automatically generated by configure - do not modify */" > $config_h
615 97a847bc bellard
616 de83cd02 bellard
617 97a847bc bellard
echo "include ../config-host.mak" >> $config_mak
618 97a847bc bellard
echo "#include \"../config-host.h\"" >> $config_h
619 1e43adfc bellard
620 1e43adfc bellard
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
621 1e43adfc bellard
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
622 97a847bc bellard
623 97a847bc bellard
if test "$target_cpu" = "i386" ; then
624 97a847bc bellard
  echo "TARGET_ARCH=i386" >> $config_mak
625 97a847bc bellard
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
626 97a847bc bellard
  echo "#define TARGET_I386 1" >> $config_h
627 07f4ddbf bellard
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
628 824d560f bellard
    echo "#define USE_KQEMU 1" >> $config_h
629 824d560f bellard
  fi
630 808c4954 bellard
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
631 97a847bc bellard
  echo "TARGET_ARCH=arm" >> $config_mak
632 97a847bc bellard
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
633 97a847bc bellard
  echo "#define TARGET_ARM 1" >> $config_h
634 1e43adfc bellard
elif test "$target_cpu" = "sparc" ; then
635 1e43adfc bellard
  echo "TARGET_ARCH=sparc" >> $config_mak
636 1e43adfc bellard
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
637 1e43adfc bellard
  echo "#define TARGET_SPARC 1" >> $config_h
638 64b3ab24 bellard
elif test "$target_cpu" = "sparc64" ; then
639 64b3ab24 bellard
  echo "TARGET_ARCH=sparc64" >> $config_mak
640 64b3ab24 bellard
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
641 64b3ab24 bellard
  echo "#define TARGET_SPARC 1" >> $config_h
642 64b3ab24 bellard
  echo "#define TARGET_SPARC64 1" >> $config_h
643 67867308 bellard
elif test "$target_cpu" = "ppc" ; then
644 67867308 bellard
  echo "TARGET_ARCH=ppc" >> $config_mak
645 67867308 bellard
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
646 67867308 bellard
  echo "#define TARGET_PPC 1" >> $config_h
647 0b0babc6 bellard
elif test "$target_cpu" = "x86_64" ; then
648 0b0babc6 bellard
  echo "TARGET_ARCH=x86_64" >> $config_mak
649 0b0babc6 bellard
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
650 0b0babc6 bellard
  echo "#define TARGET_I386 1" >> $config_h
651 0b0babc6 bellard
  echo "#define TARGET_X86_64 1" >> $config_h
652 07f4ddbf bellard
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
653 07f4ddbf bellard
    echo "#define USE_KQEMU 1" >> $config_h
654 07f4ddbf bellard
  fi
655 de83cd02 bellard
else
656 de83cd02 bellard
  echo "Unsupported target CPU"
657 de83cd02 bellard
  exit 1
658 de83cd02 bellard
fi
659 de83cd02 bellard
if test "$target_bigendian" = "yes" ; then
660 97a847bc bellard
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
661 97a847bc bellard
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
662 de83cd02 bellard
fi
663 97a847bc bellard
if test "$target_softmmu" = "yes" ; then
664 97a847bc bellard
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
665 97a847bc bellard
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
666 43ce4dfe bellard
fi
667 997344f3 bellard
if test "$target_user_only" = "yes" ; then
668 997344f3 bellard
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
669 997344f3 bellard
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
670 997344f3 bellard
fi
671 97a847bc bellard
672 158142c2 bellard
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
673 158142c2 bellard
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
674 158142c2 bellard
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
675 158142c2 bellard
fi
676 7c1f25b4 bellard
# sdl defines
677 7c1f25b4 bellard
678 7c1f25b4 bellard
if test "$target_user_only" = "no"; then
679 7c1f25b4 bellard
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
680 dbb2c921 bellard
        sdl1=$sdl_static
681 7c1f25b4 bellard
    else
682 dbb2c921 bellard
        sdl1=$sdl
683 dbb2c921 bellard
    fi
684 dbb2c921 bellard
    if test "$sdl1" = "yes" ; then
685 dbb2c921 bellard
        echo "#define CONFIG_SDL 1" >> $config_h
686 dbb2c921 bellard
        echo "CONFIG_SDL=yes" >> $config_mak
687 dbb2c921 bellard
        if test "$target_softmmu" = "no" -o "$static" = "yes"; then
688 dbb2c921 bellard
            echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
689 dbb2c921 bellard
        else
690 7c1f25b4 bellard
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
691 7c1f25b4 bellard
        fi
692 dbb2c921 bellard
        echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
693 dbb2c921 bellard
        if [ "${aa}" = "yes" ] ; then
694 dbb2c921 bellard
            echo -n " `aalib-config --cflags`" >> $config_mak ;
695 dbb2c921 bellard
        fi
696 dbb2c921 bellard
        echo "" >> $config_mak
697 7c1f25b4 bellard
    fi
698 7c1f25b4 bellard
fi
699 7c1f25b4 bellard
700 5b0753e0 bellard
if test "$cocoa" = "yes" ; then
701 5b0753e0 bellard
    echo "#define CONFIG_COCOA 1" >> $config_h
702 5b0753e0 bellard
    echo "CONFIG_COCOA=yes" >> $config_mak
703 5b0753e0 bellard
fi
704 5b0753e0 bellard
705 97a847bc bellard
done # for target in $targets
706 7d13299d bellard
707 7d13299d bellard
# build tree in object directory if source path is different from current one
708 7d13299d bellard
if test "$source_path_used" = "yes" ; then
709 7d13299d bellard
    DIRS="tests"
710 7d13299d bellard
    FILES="Makefile tests/Makefile"
711 7d13299d bellard
    for dir in $DIRS ; do
712 7d13299d bellard
            mkdir -p $dir
713 7d13299d bellard
    done
714 7d13299d bellard
    for f in $FILES ; do
715 7d13299d bellard
        ln -sf $source_path/$f $f
716 7d13299d bellard
    done
717 7d13299d bellard
fi
718 7d13299d bellard
719 97a847bc bellard
rm -f $TMPO $TMPC $TMPE $TMPS