Statistics
| Branch: | Revision:

root / configure @ 0443eaf6

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