Statistics
| Branch: | Revision:

root / configure @ 9af8025e

History | View | Annotate | Download (90.9 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 a91b857c malc
TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.exe"
17 7d13299d bellard
18 0ba8681e Loïc Minier
# NB: do not call "exit" in the trap handler; this is buggy with some shells;
19 0ba8681e Loïc Minier
# see <1285349658-3122-1-git-send-email-loic.minier@linaro.org>
20 0ba8681e Loïc Minier
trap "rm -f $TMPC $TMPO $TMPE" EXIT INT QUIT TERM
21 da1d85e3 Gerd Hoffmann
rm -f config.log
22 9ac81bbb malc
23 52166aa0 Juan Quintela
compile_object() {
24 da1d85e3 Gerd Hoffmann
  echo $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log
25 da1d85e3 Gerd Hoffmann
  $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 2>&1
26 52166aa0 Juan Quintela
}
27 52166aa0 Juan Quintela
28 52166aa0 Juan Quintela
compile_prog() {
29 52166aa0 Juan Quintela
  local_cflags="$1"
30 52166aa0 Juan Quintela
  local_ldflags="$2"
31 da1d85e3 Gerd Hoffmann
  echo $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log
32 da1d85e3 Gerd Hoffmann
  $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 2>&1
33 52166aa0 Juan Quintela
}
34 52166aa0 Juan Quintela
35 11568d6d Paolo Bonzini
# symbolically link $1 to $2.  Portable version of "ln -sf".
36 11568d6d Paolo Bonzini
symlink() {
37 11568d6d Paolo Bonzini
  rm -f $2
38 11568d6d Paolo Bonzini
  ln -s $1 $2
39 11568d6d Paolo Bonzini
}
40 11568d6d Paolo Bonzini
41 0dba6195 Loïc Minier
# check whether a command is available to this shell (may be either an
42 0dba6195 Loïc Minier
# executable or a builtin)
43 0dba6195 Loïc Minier
has() {
44 0dba6195 Loïc Minier
    type "$1" >/dev/null 2>&1
45 0dba6195 Loïc Minier
}
46 0dba6195 Loïc Minier
47 0dba6195 Loïc Minier
# search for an executable in PATH
48 0dba6195 Loïc Minier
path_of() {
49 0dba6195 Loïc Minier
    local_command="$1"
50 0dba6195 Loïc Minier
    local_ifs="$IFS"
51 0dba6195 Loïc Minier
    local_dir=""
52 0dba6195 Loïc Minier
53 0dba6195 Loïc Minier
    # pathname has a dir component?
54 0dba6195 Loïc Minier
    if [ "${local_command#*/}" != "$local_command" ]; then
55 0dba6195 Loïc Minier
        if [ -x "$local_command" ] && [ ! -d "$local_command" ]; then
56 0dba6195 Loïc Minier
            echo "$local_command"
57 0dba6195 Loïc Minier
            return 0
58 0dba6195 Loïc Minier
        fi
59 0dba6195 Loïc Minier
    fi
60 0dba6195 Loïc Minier
    if [ -z "$local_command" ]; then
61 0dba6195 Loïc Minier
        return 1
62 0dba6195 Loïc Minier
    fi
63 0dba6195 Loïc Minier
64 0dba6195 Loïc Minier
    IFS=:
65 0dba6195 Loïc Minier
    for local_dir in $PATH; do
66 0dba6195 Loïc Minier
        if [ -x "$local_dir/$local_command" ] && [ ! -d "$local_dir/$local_command" ]; then
67 0dba6195 Loïc Minier
            echo "$local_dir/$local_command"
68 0dba6195 Loïc Minier
            IFS="${local_ifs:-$(printf ' \t\n')}"
69 0dba6195 Loïc Minier
            return 0
70 0dba6195 Loïc Minier
        fi
71 0dba6195 Loïc Minier
    done
72 0dba6195 Loïc Minier
    # not found
73 0dba6195 Loïc Minier
    IFS="${local_ifs:-$(printf ' \t\n')}"
74 0dba6195 Loïc Minier
    return 1
75 0dba6195 Loïc Minier
}
76 0dba6195 Loïc Minier
77 7d13299d bellard
# default parameters
78 ca4deeb1 Paolo Bonzini
source_path=`dirname "$0"`
79 2ff6b91e Juan Quintela
cpu=""
80 1e43adfc bellard
interp_prefix="/usr/gnemul/qemu-%M"
81 43ce4dfe bellard
static="no"
82 ed968ff1 Juan Quintela
sparc_cpu=""
83 7d13299d bellard
cross_prefix=""
84 0c58ac1c malc
audio_drv_list=""
85 d61a4ce8 Gerd Hoffmann
audio_card_list="ac97 es1370 sb16 hda"
86 d61a4ce8 Gerd Hoffmann
audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus hda"
87 eb852011 Markus Armbruster
block_drv_whitelist=""
88 7d13299d bellard
host_cc="gcc"
89 c81da56e Juan Quintela
helper_cflags=""
90 73da375e Juan Quintela
libs_softmmu=""
91 3e2e0e6b Juan Quintela
libs_tools=""
92 67f86e8e Juan Quintela
audio_pt_int=""
93 d5631638 malc
audio_win_int=""
94 2b2e59e6 Paolo Bonzini
cc_i386=i386-pc-linux-gnu-gcc
95 ac0df51d aliguori
96 377529c0 Paolo Bonzini
target_list=""
97 377529c0 Paolo Bonzini
98 377529c0 Paolo Bonzini
# Default value for a variable defining feature "foo".
99 377529c0 Paolo Bonzini
#  * foo="no"  feature will only be used if --enable-foo arg is given
100 377529c0 Paolo Bonzini
#  * foo=""    feature will be searched for, and if found, will be used
101 377529c0 Paolo Bonzini
#              unless --disable-foo is given
102 377529c0 Paolo Bonzini
#  * foo="yes" this value will only be set by --enable-foo flag.
103 377529c0 Paolo Bonzini
#              feature will searched for,
104 377529c0 Paolo Bonzini
#              if not found, configure exits with error
105 377529c0 Paolo Bonzini
#
106 377529c0 Paolo Bonzini
# Always add --enable-foo and --disable-foo command line args.
107 377529c0 Paolo Bonzini
# Distributions want to ensure that several features are compiled in, and it
108 377529c0 Paolo Bonzini
# is impossible without a --enable-foo that exits if a feature is not found.
109 377529c0 Paolo Bonzini
110 377529c0 Paolo Bonzini
bluez=""
111 377529c0 Paolo Bonzini
brlapi=""
112 377529c0 Paolo Bonzini
curl=""
113 377529c0 Paolo Bonzini
curses=""
114 377529c0 Paolo Bonzini
docs=""
115 377529c0 Paolo Bonzini
fdt=""
116 af2be207 Jan Kiszka
kvm=""
117 377529c0 Paolo Bonzini
nptl=""
118 377529c0 Paolo Bonzini
sdl=""
119 821601ea Jes Sorensen
vnc="yes"
120 377529c0 Paolo Bonzini
sparse="no"
121 377529c0 Paolo Bonzini
uuid=""
122 377529c0 Paolo Bonzini
vde=""
123 377529c0 Paolo Bonzini
vnc_tls=""
124 377529c0 Paolo Bonzini
vnc_sasl=""
125 377529c0 Paolo Bonzini
vnc_jpeg=""
126 377529c0 Paolo Bonzini
vnc_png=""
127 377529c0 Paolo Bonzini
vnc_thread="no"
128 377529c0 Paolo Bonzini
xen=""
129 d5b93ddf Anthony PERARD
xen_ctrl_version=""
130 377529c0 Paolo Bonzini
linux_aio=""
131 377529c0 Paolo Bonzini
attr=""
132 af2be207 Jan Kiszka
vhost_net=""
133 377529c0 Paolo Bonzini
xfs=""
134 377529c0 Paolo Bonzini
135 377529c0 Paolo Bonzini
gprof="no"
136 377529c0 Paolo Bonzini
debug_tcg="no"
137 377529c0 Paolo Bonzini
debug_mon="no"
138 377529c0 Paolo Bonzini
debug="no"
139 377529c0 Paolo Bonzini
strip_opt="yes"
140 377529c0 Paolo Bonzini
bigendian="no"
141 377529c0 Paolo Bonzini
mingw32="no"
142 377529c0 Paolo Bonzini
EXESUF=""
143 377529c0 Paolo Bonzini
prefix="/usr/local"
144 377529c0 Paolo Bonzini
mandir="\${prefix}/share/man"
145 377529c0 Paolo Bonzini
datadir="\${prefix}/share/qemu"
146 377529c0 Paolo Bonzini
docdir="\${prefix}/share/doc/qemu"
147 377529c0 Paolo Bonzini
bindir="\${prefix}/bin"
148 3aa5d2be Alon Levy
libdir="\${prefix}/lib"
149 0f94d6da Alon Levy
includedir="\${prefix}/include"
150 377529c0 Paolo Bonzini
sysconfdir="\${prefix}/etc"
151 377529c0 Paolo Bonzini
confsuffix="/qemu"
152 377529c0 Paolo Bonzini
slirp="yes"
153 377529c0 Paolo Bonzini
fmod_lib=""
154 377529c0 Paolo Bonzini
fmod_inc=""
155 377529c0 Paolo Bonzini
oss_lib=""
156 377529c0 Paolo Bonzini
bsd="no"
157 377529c0 Paolo Bonzini
linux="no"
158 377529c0 Paolo Bonzini
solaris="no"
159 377529c0 Paolo Bonzini
profiler="no"
160 377529c0 Paolo Bonzini
cocoa="no"
161 377529c0 Paolo Bonzini
softmmu="yes"
162 377529c0 Paolo Bonzini
linux_user="no"
163 377529c0 Paolo Bonzini
darwin_user="no"
164 377529c0 Paolo Bonzini
bsd_user="no"
165 377529c0 Paolo Bonzini
guest_base=""
166 377529c0 Paolo Bonzini
uname_release=""
167 377529c0 Paolo Bonzini
io_thread="no"
168 377529c0 Paolo Bonzini
mixemu="no"
169 377529c0 Paolo Bonzini
aix="no"
170 377529c0 Paolo Bonzini
blobs="yes"
171 377529c0 Paolo Bonzini
pkgversion=""
172 377529c0 Paolo Bonzini
check_utests="no"
173 377529c0 Paolo Bonzini
user_pie="no"
174 377529c0 Paolo Bonzini
zero_malloc=""
175 377529c0 Paolo Bonzini
trace_backend="nop"
176 377529c0 Paolo Bonzini
trace_file="trace"
177 377529c0 Paolo Bonzini
spice=""
178 377529c0 Paolo Bonzini
rbd=""
179 36707144 Alon Levy
smartcard=""
180 111a38b0 Robert Relyea
smartcard_nss=""
181 69354a83 Hans de Goede
usb_redir=""
182 430a3c18 Michael Walle
opengl=""
183 1ece9905 Alon Levy
zlib="yes"
184 377529c0 Paolo Bonzini
185 ac0df51d aliguori
# parse CC options first
186 ac0df51d aliguori
for opt do
187 ac0df51d aliguori
  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
188 ac0df51d aliguori
  case "$opt" in
189 ac0df51d aliguori
  --cross-prefix=*) cross_prefix="$optarg"
190 ac0df51d aliguori
  ;;
191 3d8df640 Paolo Bonzini
  --cc=*) CC="$optarg"
192 ac0df51d aliguori
  ;;
193 ca4deeb1 Paolo Bonzini
  --source-path=*) source_path="$optarg"
194 ca4deeb1 Paolo Bonzini
  ;;
195 2ff6b91e Juan Quintela
  --cpu=*) cpu="$optarg"
196 2ff6b91e Juan Quintela
  ;;
197 a558ee17 Juan Quintela
  --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
198 e2a2ed06 Juan Quintela
  ;;
199 e2a2ed06 Juan Quintela
  --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
200 e2a2ed06 Juan Quintela
  ;;
201 50e7b1a0 Juan Quintela
  --sparc_cpu=*)
202 50e7b1a0 Juan Quintela
    sparc_cpu="$optarg"
203 50e7b1a0 Juan Quintela
    case $sparc_cpu in
204 ed968ff1 Juan Quintela
    v7|v8|v8plus|v8plusa)
205 50e7b1a0 Juan Quintela
      cpu="sparc"
206 50e7b1a0 Juan Quintela
    ;;
207 50e7b1a0 Juan Quintela
    v9)
208 50e7b1a0 Juan Quintela
      cpu="sparc64"
209 50e7b1a0 Juan Quintela
    ;;
210 50e7b1a0 Juan Quintela
    *)
211 50e7b1a0 Juan Quintela
      echo "undefined SPARC architecture. Exiting";
212 50e7b1a0 Juan Quintela
      exit 1
213 50e7b1a0 Juan Quintela
    ;;
214 50e7b1a0 Juan Quintela
    esac
215 50e7b1a0 Juan Quintela
  ;;
216 ac0df51d aliguori
  esac
217 ac0df51d aliguori
done
218 ac0df51d aliguori
# OS specific
219 ac0df51d aliguori
# Using uname is really, really broken.  Once we have the right set of checks
220 ac0df51d aliguori
# we can eliminate it's usage altogether
221 ac0df51d aliguori
222 3d8df640 Paolo Bonzini
cc="${cross_prefix}${CC-gcc}"
223 3d8df640 Paolo Bonzini
ar="${cross_prefix}${AR-ar}"
224 3d8df640 Paolo Bonzini
objcopy="${cross_prefix}${OBJCOPY-objcopy}"
225 3d8df640 Paolo Bonzini
ld="${cross_prefix}${LD-ld}"
226 3d8df640 Paolo Bonzini
strip="${cross_prefix}${STRIP-strip}"
227 3d8df640 Paolo Bonzini
windres="${cross_prefix}${WINDRES-windres}"
228 a8bd70ad Paolo Bonzini
pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
229 3ec87ffe Paolo Bonzini
sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
230 ac0df51d aliguori
231 be17dc90 Michael S. Tsirkin
# default flags for all hosts
232 be17dc90 Michael S. Tsirkin
QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
233 be17dc90 Michael S. Tsirkin
CFLAGS="-g $CFLAGS"
234 f9188227 Mike Frysinger
QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
235 be17dc90 Michael S. Tsirkin
QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
236 be17dc90 Michael S. Tsirkin
QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
237 84958305 Kirill A. Shutemov
QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
238 cbbab922 Paolo Bonzini
QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
239 be17dc90 Michael S. Tsirkin
LDFLAGS="-g $LDFLAGS"
240 be17dc90 Michael S. Tsirkin
241 ca4deeb1 Paolo Bonzini
# make source path absolute
242 ca4deeb1 Paolo Bonzini
source_path=`cd "$source_path"; pwd`
243 ca4deeb1 Paolo Bonzini
244 ac0df51d aliguori
check_define() {
245 ac0df51d aliguori
cat > $TMPC <<EOF
246 ac0df51d aliguori
#if !defined($1)
247 ac0df51d aliguori
#error Not defined
248 ac0df51d aliguori
#endif
249 ac0df51d aliguori
int main(void) { return 0; }
250 ac0df51d aliguori
EOF
251 52166aa0 Juan Quintela
  compile_object
252 ac0df51d aliguori
}
253 ac0df51d aliguori
254 2ff6b91e Juan Quintela
if test ! -z "$cpu" ; then
255 2ff6b91e Juan Quintela
  # command line argument
256 2ff6b91e Juan Quintela
  :
257 2ff6b91e Juan Quintela
elif check_define __i386__ ; then
258 ac0df51d aliguori
  cpu="i386"
259 ac0df51d aliguori
elif check_define __x86_64__ ; then
260 ac0df51d aliguori
  cpu="x86_64"
261 3aa9bd6c blueswir1
elif check_define __sparc__ ; then
262 3aa9bd6c blueswir1
  # We can't check for 64 bit (when gcc is biarch) or V8PLUSA
263 3aa9bd6c blueswir1
  # They must be specified using --sparc_cpu
264 3aa9bd6c blueswir1
  if check_define __arch64__ ; then
265 3aa9bd6c blueswir1
    cpu="sparc64"
266 3aa9bd6c blueswir1
  else
267 3aa9bd6c blueswir1
    cpu="sparc"
268 3aa9bd6c blueswir1
  fi
269 fdf7ed96 malc
elif check_define _ARCH_PPC ; then
270 fdf7ed96 malc
  if check_define _ARCH_PPC64 ; then
271 fdf7ed96 malc
    cpu="ppc64"
272 fdf7ed96 malc
  else
273 fdf7ed96 malc
    cpu="ppc"
274 fdf7ed96 malc
  fi
275 afa05235 Aurelien Jarno
elif check_define __mips__ ; then
276 afa05235 Aurelien Jarno
  cpu="mips"
277 477ba620 Aurelien Jarno
elif check_define __ia64__ ; then
278 477ba620 Aurelien Jarno
  cpu="ia64"
279 d66ed0ea Aurelien Jarno
elif check_define __s390__ ; then
280 d66ed0ea Aurelien Jarno
  if check_define __s390x__ ; then
281 d66ed0ea Aurelien Jarno
    cpu="s390x"
282 d66ed0ea Aurelien Jarno
  else
283 d66ed0ea Aurelien Jarno
    cpu="s390"
284 d66ed0ea Aurelien Jarno
  fi
285 ac0df51d aliguori
else
286 fdf7ed96 malc
  cpu=`uname -m`
287 ac0df51d aliguori
fi
288 ac0df51d aliguori
289 7d13299d bellard
case "$cpu" in
290 d2fbca94 Guan Xuetao
  alpha|cris|ia64|lm32|m68k|microblaze|ppc|ppc64|sparc64|unicore32)
291 ea8f20f8 Juan Quintela
    cpu="$cpu"
292 ea8f20f8 Juan Quintela
  ;;
293 7d13299d bellard
  i386|i486|i586|i686|i86pc|BePC)
294 97a847bc bellard
    cpu="i386"
295 7d13299d bellard
  ;;
296 aaa5fa14 aurel32
  x86_64|amd64)
297 aaa5fa14 aurel32
    cpu="x86_64"
298 aaa5fa14 aurel32
  ;;
299 ba68055e bellard
  armv*b)
300 808c4954 bellard
    cpu="armv4b"
301 808c4954 bellard
  ;;
302 ba68055e bellard
  armv*l)
303 7d13299d bellard
    cpu="armv4l"
304 7d13299d bellard
  ;;
305 f54b3f92 aurel32
  parisc|parisc64)
306 f54b3f92 aurel32
    cpu="hppa"
307 f54b3f92 aurel32
  ;;
308 afa05235 Aurelien Jarno
  mips*)
309 afa05235 Aurelien Jarno
    cpu="mips"
310 afa05235 Aurelien Jarno
  ;;
311 24e804ec Alexander Graf
  s390)
312 fb3e5849 bellard
    cpu="s390"
313 fb3e5849 bellard
  ;;
314 24e804ec Alexander Graf
  s390x)
315 24e804ec Alexander Graf
    cpu="s390x"
316 24e804ec Alexander Graf
  ;;
317 3142255c blueswir1
  sparc|sun4[cdmuv])
318 ae228531 bellard
    cpu="sparc"
319 ae228531 bellard
  ;;
320 7d13299d bellard
  *)
321 a447d4dc Paolo Bonzini
    echo "Unsupported CPU = $cpu"
322 a447d4dc Paolo Bonzini
    exit 1
323 7d13299d bellard
  ;;
324 7d13299d bellard
esac
325 e2d52ad3 Juan Quintela
326 7d13299d bellard
# OS specific
327 ac0df51d aliguori
if check_define __linux__ ; then
328 ac0df51d aliguori
  targetos="Linux"
329 ac0df51d aliguori
elif check_define _WIN32 ; then
330 ac0df51d aliguori
  targetos='MINGW32'
331 169dc5d3 blueswir1
elif check_define __OpenBSD__ ; then
332 169dc5d3 blueswir1
  targetos='OpenBSD'
333 169dc5d3 blueswir1
elif check_define __sun__ ; then
334 169dc5d3 blueswir1
  targetos='SunOS'
335 179cf400 Andreas Färber
elif check_define __HAIKU__ ; then
336 179cf400 Andreas Färber
  targetos='Haiku'
337 ac0df51d aliguori
else
338 ac0df51d aliguori
  targetos=`uname -s`
339 ac0df51d aliguori
fi
340 0dbfc675 Juan Quintela
341 7d13299d bellard
case $targetos in
342 c326e0af bellard
CYGWIN*)
343 0dbfc675 Juan Quintela
  mingw32="yes"
344 a558ee17 Juan Quintela
  QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS"
345 d5631638 malc
  audio_possible_drivers="winwave sdl"
346 d5631638 malc
  audio_drv_list="winwave"
347 c326e0af bellard
;;
348 67b915a5 bellard
MINGW32*)
349 0dbfc675 Juan Quintela
  mingw32="yes"
350 d5631638 malc
  audio_possible_drivers="winwave dsound sdl fmod"
351 d5631638 malc
  audio_drv_list="winwave"
352 67b915a5 bellard
;;
353 5c40d2bd ths
GNU/kFreeBSD)
354 a167ba50 Aurelien Jarno
  bsd="yes"
355 0dbfc675 Juan Quintela
  audio_drv_list="oss"
356 0dbfc675 Juan Quintela
  audio_possible_drivers="oss sdl esd pa"
357 5c40d2bd ths
;;
358 7d3505c5 bellard
FreeBSD)
359 0dbfc675 Juan Quintela
  bsd="yes"
360 0db4a067 Paolo Bonzini
  make="${MAKE-gmake}"
361 0dbfc675 Juan Quintela
  audio_drv_list="oss"
362 0dbfc675 Juan Quintela
  audio_possible_drivers="oss sdl esd pa"
363 f01576f1 Juergen Lock
  # needed for kinfo_getvmmap(3) in libutil.h
364 f01576f1 Juergen Lock
  LIBS="-lutil $LIBS"
365 7d3505c5 bellard
;;
366 c5e97233 blueswir1
DragonFly)
367 0dbfc675 Juan Quintela
  bsd="yes"
368 0db4a067 Paolo Bonzini
  make="${MAKE-gmake}"
369 0dbfc675 Juan Quintela
  audio_drv_list="oss"
370 0dbfc675 Juan Quintela
  audio_possible_drivers="oss sdl esd pa"
371 c5e97233 blueswir1
;;
372 7d3505c5 bellard
NetBSD)
373 0dbfc675 Juan Quintela
  bsd="yes"
374 0db4a067 Paolo Bonzini
  make="${MAKE-gmake}"
375 0dbfc675 Juan Quintela
  audio_drv_list="oss"
376 0dbfc675 Juan Quintela
  audio_possible_drivers="oss sdl esd"
377 0dbfc675 Juan Quintela
  oss_lib="-lossaudio"
378 7d3505c5 bellard
;;
379 7d3505c5 bellard
OpenBSD)
380 0dbfc675 Juan Quintela
  bsd="yes"
381 0db4a067 Paolo Bonzini
  make="${MAKE-gmake}"
382 0dbfc675 Juan Quintela
  audio_drv_list="oss"
383 0dbfc675 Juan Quintela
  audio_possible_drivers="oss sdl esd"
384 0dbfc675 Juan Quintela
  oss_lib="-lossaudio"
385 7d3505c5 bellard
;;
386 83fb7adf bellard
Darwin)
387 0dbfc675 Juan Quintela
  bsd="yes"
388 0dbfc675 Juan Quintela
  darwin="yes"
389 0dbfc675 Juan Quintela
  # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can
390 0dbfc675 Juan Quintela
  # run 64-bit userspace code
391 0dbfc675 Juan Quintela
  if [ "$cpu" = "i386" ] ; then
392 aab8588a malc
    is_x86_64=`sysctl -n hw.optional.x86_64`
393 aab8588a malc
    [ "$is_x86_64" = "1" ] && cpu=x86_64
394 0dbfc675 Juan Quintela
  fi
395 0dbfc675 Juan Quintela
  if [ "$cpu" = "x86_64" ] ; then
396 a558ee17 Juan Quintela
    QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
397 0c439cbf Juan Quintela
    LDFLAGS="-arch x86_64 $LDFLAGS"
398 0dbfc675 Juan Quintela
  else
399 a558ee17 Juan Quintela
    QEMU_CFLAGS="-mdynamic-no-pic $QEMU_CFLAGS"
400 0dbfc675 Juan Quintela
  fi
401 0dbfc675 Juan Quintela
  darwin_user="yes"
402 0dbfc675 Juan Quintela
  cocoa="yes"
403 0dbfc675 Juan Quintela
  audio_drv_list="coreaudio"
404 0dbfc675 Juan Quintela
  audio_possible_drivers="coreaudio sdl fmod"
405 0dbfc675 Juan Quintela
  LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS"
406 7973f21c Juan Quintela
  libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu"
407 83fb7adf bellard
;;
408 ec530c81 bellard
SunOS)
409 0dbfc675 Juan Quintela
  solaris="yes"
410 0db4a067 Paolo Bonzini
  make="${MAKE-gmake}"
411 0db4a067 Paolo Bonzini
  install="${INSTALL-ginstall}"
412 fa58948d Blue Swirl
  ld="gld"
413 0dbfc675 Juan Quintela
  needs_libsunmath="no"
414 0dbfc675 Juan Quintela
  solarisrev=`uname -r | cut -f2 -d.`
415 0dbfc675 Juan Quintela
  # have to select again, because `uname -m` returns i86pc
416 0dbfc675 Juan Quintela
  # even on an x86_64 box.
417 0dbfc675 Juan Quintela
  solariscpu=`isainfo -k`
418 0dbfc675 Juan Quintela
  if test "${solariscpu}" = "amd64" ; then
419 0dbfc675 Juan Quintela
    cpu="x86_64"
420 0dbfc675 Juan Quintela
  fi
421 0dbfc675 Juan Quintela
  if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
422 0dbfc675 Juan Quintela
    if test "$solarisrev" -le 9 ; then
423 0dbfc675 Juan Quintela
      if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
424 0dbfc675 Juan Quintela
        needs_libsunmath="yes"
425 f14bfdf9 Juan Quintela
        QEMU_CFLAGS="-I/opt/SUNWspro/prod/include/cc $QEMU_CFLAGS"
426 f14bfdf9 Juan Quintela
        LDFLAGS="-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib $LDFLAGS"
427 f14bfdf9 Juan Quintela
        LIBS="-lsunmath $LIBS"
428 0dbfc675 Juan Quintela
      else
429 0dbfc675 Juan Quintela
        echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
430 0dbfc675 Juan Quintela
        echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
431 0dbfc675 Juan Quintela
        echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
432 0dbfc675 Juan Quintela
        echo "Studio 11 can be downloaded from www.sun.com."
433 0dbfc675 Juan Quintela
        exit 1
434 0dbfc675 Juan Quintela
      fi
435 86b2bd93 ths
    fi
436 0dbfc675 Juan Quintela
  fi
437 0dbfc675 Juan Quintela
  if test -f /usr/include/sys/soundcard.h ; then
438 0dbfc675 Juan Quintela
    audio_drv_list="oss"
439 0dbfc675 Juan Quintela
  fi
440 0dbfc675 Juan Quintela
  audio_possible_drivers="oss sdl"
441 d741429a Blue Swirl
# needed for CMSG_ macros in sys/socket.h
442 d741429a Blue Swirl
  QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
443 d741429a Blue Swirl
# needed for TIOCWIN* defines in termios.h
444 d741429a Blue Swirl
  QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS"
445 a558ee17 Juan Quintela
  QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS"
446 e174c0bb Juan Quintela
  LIBS="-lsocket -lnsl -lresolv $LIBS"
447 86b2bd93 ths
;;
448 b29fe3ed malc
AIX)
449 0dbfc675 Juan Quintela
  aix="yes"
450 0db4a067 Paolo Bonzini
  make="${MAKE-gmake}"
451 b29fe3ed malc
;;
452 179cf400 Andreas Färber
Haiku)
453 179cf400 Andreas Färber
  haiku="yes"
454 179cf400 Andreas Färber
  QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS"
455 179cf400 Andreas Färber
  LIBS="-lposix_error_mapper -lnetwork $LIBS"
456 179cf400 Andreas Färber
;;
457 1d14ffa9 bellard
*)
458 0dbfc675 Juan Quintela
  audio_drv_list="oss"
459 0dbfc675 Juan Quintela
  audio_possible_drivers="oss alsa sdl esd pa"
460 0dbfc675 Juan Quintela
  linux="yes"
461 0dbfc675 Juan Quintela
  linux_user="yes"
462 0dbfc675 Juan Quintela
  usb="linux"
463 af2be207 Jan Kiszka
  kvm="yes"
464 af2be207 Jan Kiszka
  vhost_net="yes"
465 0dbfc675 Juan Quintela
  if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
466 c2de5c91 malc
    audio_possible_drivers="$audio_possible_drivers fmod"
467 0dbfc675 Juan Quintela
  fi
468 fb065187 bellard
;;
469 7d13299d bellard
esac
470 7d13299d bellard
471 7d3505c5 bellard
if [ "$bsd" = "yes" ] ; then
472 b1a550a0 pbrook
  if [ "$darwin" != "yes" ] ; then
473 68063649 blueswir1
    usb="bsd"
474 83fb7adf bellard
  fi
475 84778508 blueswir1
  bsd_user="yes"
476 7d3505c5 bellard
fi
477 7d3505c5 bellard
478 0db4a067 Paolo Bonzini
: ${make=${MAKE-make}}
479 0db4a067 Paolo Bonzini
: ${install=${INSTALL-install}}
480 c886edfb Blue Swirl
: ${python=${PYTHON-python}}
481 0db4a067 Paolo Bonzini
482 3457a3f8 Juan Quintela
if test "$mingw32" = "yes" ; then
483 3457a3f8 Juan Quintela
  EXESUF=".exe"
484 a558ee17 Juan Quintela
  QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
485 e94a7936 Stefan Weil
  # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later)
486 e94a7936 Stefan Weil
  QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS"
487 08f3896a Stefan Weil
  LIBS="-lwinmm -lws2_32 -liberty -liphlpapi $LIBS"
488 683035de Paolo Bonzini
  prefix="c:/Program Files/Qemu"
489 683035de Paolo Bonzini
  mandir="\${prefix}"
490 683035de Paolo Bonzini
  datadir="\${prefix}"
491 683035de Paolo Bonzini
  docdir="\${prefix}"
492 683035de Paolo Bonzini
  bindir="\${prefix}"
493 683035de Paolo Bonzini
  sysconfdir="\${prefix}"
494 683035de Paolo Bonzini
  confsuffix=""
495 3457a3f8 Juan Quintela
fi
496 3457a3f8 Juan Quintela
497 487fefdb Anthony Liguori
werror=""
498 85aa5189 bellard
499 7d13299d bellard
for opt do
500 a46e4035 pbrook
  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
501 7d13299d bellard
  case "$opt" in
502 2efc3265 bellard
  --help|-h) show_help=yes
503 2efc3265 bellard
  ;;
504 99123e13 Mike Frysinger
  --version|-V) exec cat $source_path/VERSION
505 99123e13 Mike Frysinger
  ;;
506 b1a550a0 pbrook
  --prefix=*) prefix="$optarg"
507 7d13299d bellard
  ;;
508 b1a550a0 pbrook
  --interp-prefix=*) interp_prefix="$optarg"
509 32ce6337 bellard
  ;;
510 ca4deeb1 Paolo Bonzini
  --source-path=*)
511 7d13299d bellard
  ;;
512 ac0df51d aliguori
  --cross-prefix=*)
513 7d13299d bellard
  ;;
514 ac0df51d aliguori
  --cc=*)
515 7d13299d bellard
  ;;
516 b1a550a0 pbrook
  --host-cc=*) host_cc="$optarg"
517 83469015 bellard
  ;;
518 b1a550a0 pbrook
  --make=*) make="$optarg"
519 7d13299d bellard
  ;;
520 6a882643 pbrook
  --install=*) install="$optarg"
521 6a882643 pbrook
  ;;
522 c886edfb Blue Swirl
  --python=*) python="$optarg"
523 c886edfb Blue Swirl
  ;;
524 e2a2ed06 Juan Quintela
  --extra-cflags=*)
525 7d13299d bellard
  ;;
526 e2a2ed06 Juan Quintela
  --extra-ldflags=*)
527 7d13299d bellard
  ;;
528 2ff6b91e Juan Quintela
  --cpu=*)
529 7d13299d bellard
  ;;
530 b1a550a0 pbrook
  --target-list=*) target_list="$optarg"
531 de83cd02 bellard
  ;;
532 74242e0f Paolo Bonzini
  --enable-trace-backend=*) trace_backend="$optarg"
533 94a420b1 Stefan Hajnoczi
  ;;
534 74242e0f Paolo Bonzini
  --with-trace-file=*) trace_file="$optarg"
535 9410b56c Prerna Saxena
  ;;
536 7d13299d bellard
  --enable-gprof) gprof="yes"
537 7d13299d bellard
  ;;
538 79427693 Loïc Minier
  --static)
539 79427693 Loïc Minier
    static="yes"
540 79427693 Loïc Minier
    LDFLAGS="-static $LDFLAGS"
541 43ce4dfe bellard
  ;;
542 0b24e75f Paolo Bonzini
  --mandir=*) mandir="$optarg"
543 0b24e75f Paolo Bonzini
  ;;
544 0b24e75f Paolo Bonzini
  --bindir=*) bindir="$optarg"
545 0b24e75f Paolo Bonzini
  ;;
546 3aa5d2be Alon Levy
  --libdir=*) libdir="$optarg"
547 3aa5d2be Alon Levy
  ;;
548 0f94d6da Alon Levy
  --includedir=*) includedir="$optarg"
549 0f94d6da Alon Levy
  ;;
550 0b24e75f Paolo Bonzini
  --datadir=*) datadir="$optarg"
551 0b24e75f Paolo Bonzini
  ;;
552 0b24e75f Paolo Bonzini
  --docdir=*) docdir="$optarg"
553 0b24e75f Paolo Bonzini
  ;;
554 ca2fb938 Andre Przywara
  --sysconfdir=*) sysconfdir="$optarg"
555 07381cc1 Anthony Liguori
  ;;
556 97a847bc bellard
  --disable-sdl) sdl="no"
557 97a847bc bellard
  ;;
558 c4198157 Juan Quintela
  --enable-sdl) sdl="yes"
559 c4198157 Juan Quintela
  ;;
560 821601ea Jes Sorensen
  --disable-vnc) vnc="no"
561 821601ea Jes Sorensen
  ;;
562 821601ea Jes Sorensen
  --enable-vnc) vnc="yes"
563 821601ea Jes Sorensen
  ;;
564 0c58ac1c malc
  --fmod-lib=*) fmod_lib="$optarg"
565 1d14ffa9 bellard
  ;;
566 c2de5c91 malc
  --fmod-inc=*) fmod_inc="$optarg"
567 c2de5c91 malc
  ;;
568 2f6a1ab0 blueswir1
  --oss-lib=*) oss_lib="$optarg"
569 2f6a1ab0 blueswir1
  ;;
570 2fa7d3bf malc
  --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
571 102a52e4 bellard
  ;;
572 0c58ac1c malc
  --audio-drv-list=*) audio_drv_list="$optarg"
573 102a52e4 bellard
  ;;
574 eb852011 Markus Armbruster
  --block-drv-whitelist=*) block_drv_whitelist=`echo "$optarg" | sed -e 's/,/ /g'`
575 eb852011 Markus Armbruster
  ;;
576 f8393946 aurel32
  --enable-debug-tcg) debug_tcg="yes"
577 f8393946 aurel32
  ;;
578 f8393946 aurel32
  --disable-debug-tcg) debug_tcg="no"
579 f8393946 aurel32
  ;;
580 b4475aa2 Luiz Capitulino
  --enable-debug-mon) debug_mon="yes"
581 b4475aa2 Luiz Capitulino
  ;;
582 b4475aa2 Luiz Capitulino
  --disable-debug-mon) debug_mon="no"
583 b4475aa2 Luiz Capitulino
  ;;
584 f3d08ee6 Paul Brook
  --enable-debug)
585 f3d08ee6 Paul Brook
      # Enable debugging options that aren't excessively noisy
586 f3d08ee6 Paul Brook
      debug_tcg="yes"
587 b4475aa2 Luiz Capitulino
      debug_mon="yes"
588 f3d08ee6 Paul Brook
      debug="yes"
589 f3d08ee6 Paul Brook
      strip_opt="no"
590 f3d08ee6 Paul Brook
  ;;
591 03b4fe7d aliguori
  --enable-sparse) sparse="yes"
592 03b4fe7d aliguori
  ;;
593 03b4fe7d aliguori
  --disable-sparse) sparse="no"
594 03b4fe7d aliguori
  ;;
595 1625af87 aliguori
  --disable-strip) strip_opt="no"
596 1625af87 aliguori
  ;;
597 8d5d2d4c ths
  --disable-vnc-tls) vnc_tls="no"
598 8d5d2d4c ths
  ;;
599 1be10ad2 Juan Quintela
  --enable-vnc-tls) vnc_tls="yes"
600 1be10ad2 Juan Quintela
  ;;
601 2f9606b3 aliguori
  --disable-vnc-sasl) vnc_sasl="no"
602 2f9606b3 aliguori
  ;;
603 ea784e3b Juan Quintela
  --enable-vnc-sasl) vnc_sasl="yes"
604 ea784e3b Juan Quintela
  ;;
605 2f6f5c7a Corentin Chary
  --disable-vnc-jpeg) vnc_jpeg="no"
606 2f6f5c7a Corentin Chary
  ;;
607 2f6f5c7a Corentin Chary
  --enable-vnc-jpeg) vnc_jpeg="yes"
608 2f6f5c7a Corentin Chary
  ;;
609 efe556ad Corentin Chary
  --disable-vnc-png) vnc_png="no"
610 efe556ad Corentin Chary
  ;;
611 efe556ad Corentin Chary
  --enable-vnc-png) vnc_png="yes"
612 efe556ad Corentin Chary
  ;;
613 bd023f95 Corentin Chary
  --disable-vnc-thread) vnc_thread="no"
614 bd023f95 Corentin Chary
  ;;
615 bd023f95 Corentin Chary
  --enable-vnc-thread) vnc_thread="yes"
616 bd023f95 Corentin Chary
  ;;
617 443f1376 bellard
  --disable-slirp) slirp="no"
618 1d14ffa9 bellard
  ;;
619 ee682d27 Stefan Weil
  --disable-uuid) uuid="no"
620 ee682d27 Stefan Weil
  ;;
621 ee682d27 Stefan Weil
  --enable-uuid) uuid="yes"
622 ee682d27 Stefan Weil
  ;;
623 e0e6c8c0 aliguori
  --disable-vde) vde="no"
624 8a16d273 ths
  ;;
625 dfb278bd Juan Quintela
  --enable-vde) vde="yes"
626 dfb278bd Juan Quintela
  ;;
627 e37630ca aliguori
  --disable-xen) xen="no"
628 e37630ca aliguori
  ;;
629 fc321b4b Juan Quintela
  --enable-xen) xen="yes"
630 fc321b4b Juan Quintela
  ;;
631 2e4d9fb1 aurel32
  --disable-brlapi) brlapi="no"
632 2e4d9fb1 aurel32
  ;;
633 4ffcedb6 Juan Quintela
  --enable-brlapi) brlapi="yes"
634 4ffcedb6 Juan Quintela
  ;;
635 fb599c9a balrog
  --disable-bluez) bluez="no"
636 fb599c9a balrog
  ;;
637 a20a6f46 Juan Quintela
  --enable-bluez) bluez="yes"
638 a20a6f46 Juan Quintela
  ;;
639 7ba1e619 aliguori
  --disable-kvm) kvm="no"
640 7ba1e619 aliguori
  ;;
641 b31a0277 Juan Quintela
  --enable-kvm) kvm="yes"
642 b31a0277 Juan Quintela
  ;;
643 cd4ec0b4 Gerd Hoffmann
  --disable-spice) spice="no"
644 cd4ec0b4 Gerd Hoffmann
  ;;
645 cd4ec0b4 Gerd Hoffmann
  --enable-spice) spice="yes"
646 cd4ec0b4 Gerd Hoffmann
  ;;
647 05c2a3e7 bellard
  --enable-profiler) profiler="yes"
648 05c2a3e7 bellard
  ;;
649 c2de5c91 malc
  --enable-cocoa)
650 c2de5c91 malc
      cocoa="yes" ;
651 c2de5c91 malc
      sdl="no" ;
652 c2de5c91 malc
      audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
653 1d14ffa9 bellard
  ;;
654 cad25d69 pbrook
  --disable-system) softmmu="no"
655 0a8e90f4 pbrook
  ;;
656 cad25d69 pbrook
  --enable-system) softmmu="yes"
657 0a8e90f4 pbrook
  ;;
658 0953a80f Zachary Amsden
  --disable-user)
659 0953a80f Zachary Amsden
      linux_user="no" ;
660 0953a80f Zachary Amsden
      bsd_user="no" ;
661 0953a80f Zachary Amsden
      darwin_user="no"
662 0953a80f Zachary Amsden
  ;;
663 0953a80f Zachary Amsden
  --enable-user) ;;
664 831b7825 ths
  --disable-linux-user) linux_user="no"
665 0a8e90f4 pbrook
  ;;
666 831b7825 ths
  --enable-linux-user) linux_user="yes"
667 831b7825 ths
  ;;
668 831b7825 ths
  --disable-darwin-user) darwin_user="no"
669 831b7825 ths
  ;;
670 831b7825 ths
  --enable-darwin-user) darwin_user="yes"
671 0a8e90f4 pbrook
  ;;
672 84778508 blueswir1
  --disable-bsd-user) bsd_user="no"
673 84778508 blueswir1
  ;;
674 84778508 blueswir1
  --enable-bsd-user) bsd_user="yes"
675 84778508 blueswir1
  ;;
676 379f6698 Paul Brook
  --enable-guest-base) guest_base="yes"
677 379f6698 Paul Brook
  ;;
678 379f6698 Paul Brook
  --disable-guest-base) guest_base="no"
679 379f6698 Paul Brook
  ;;
680 34005a00 Kirill A. Shutemov
  --enable-user-pie) user_pie="yes"
681 34005a00 Kirill A. Shutemov
  ;;
682 34005a00 Kirill A. Shutemov
  --disable-user-pie) user_pie="no"
683 34005a00 Kirill A. Shutemov
  ;;
684 c5937220 pbrook
  --enable-uname-release=*) uname_release="$optarg"
685 c5937220 pbrook
  ;;
686 3142255c blueswir1
  --sparc_cpu=*)
687 3142255c blueswir1
  ;;
688 85aa5189 bellard
  --enable-werror) werror="yes"
689 85aa5189 bellard
  ;;
690 85aa5189 bellard
  --disable-werror) werror="no"
691 85aa5189 bellard
  ;;
692 4d3b6f6e balrog
  --disable-curses) curses="no"
693 4d3b6f6e balrog
  ;;
694 c584a6d0 Juan Quintela
  --enable-curses) curses="yes"
695 c584a6d0 Juan Quintela
  ;;
696 769ce76d Alexander Graf
  --disable-curl) curl="no"
697 769ce76d Alexander Graf
  ;;
698 788c8196 Juan Quintela
  --enable-curl) curl="yes"
699 788c8196 Juan Quintela
  ;;
700 2df87df7 Juan Quintela
  --disable-fdt) fdt="no"
701 2df87df7 Juan Quintela
  ;;
702 2df87df7 Juan Quintela
  --enable-fdt) fdt="yes"
703 2df87df7 Juan Quintela
  ;;
704 5495ed11 Luiz Capitulino
  --disable-check-utests) check_utests="no"
705 5495ed11 Luiz Capitulino
  ;;
706 5495ed11 Luiz Capitulino
  --enable-check-utests) check_utests="yes"
707 5495ed11 Luiz Capitulino
  ;;
708 bd0c5661 pbrook
  --disable-nptl) nptl="no"
709 bd0c5661 pbrook
  ;;
710 b0a47e79 Juan Quintela
  --enable-nptl) nptl="yes"
711 b0a47e79 Juan Quintela
  ;;
712 8ff9cbf7 malc
  --enable-mixemu) mixemu="yes"
713 8ff9cbf7 malc
  ;;
714 5c6c3a6c Christoph Hellwig
  --disable-linux-aio) linux_aio="no"
715 5c6c3a6c Christoph Hellwig
  ;;
716 5c6c3a6c Christoph Hellwig
  --enable-linux-aio) linux_aio="yes"
717 5c6c3a6c Christoph Hellwig
  ;;
718 758e8e38 Venkateswararao Jujjuri (JV)
  --disable-attr) attr="no"
719 758e8e38 Venkateswararao Jujjuri (JV)
  ;;
720 758e8e38 Venkateswararao Jujjuri (JV)
  --enable-attr) attr="yes"
721 758e8e38 Venkateswararao Jujjuri (JV)
  ;;
722 e5d355d1 aliguori
  --enable-io-thread) io_thread="yes"
723 e5d355d1 aliguori
  ;;
724 77755340 ths
  --disable-blobs) blobs="no"
725 77755340 ths
  ;;
726 4a19f1ec pbrook
  --with-pkgversion=*) pkgversion=" ($optarg)"
727 4a19f1ec pbrook
  ;;
728 a25dba17 Juan Quintela
  --disable-docs) docs="no"
729 70ec5dc0 Anthony Liguori
  ;;
730 a25dba17 Juan Quintela
  --enable-docs) docs="yes"
731 83a3ab8b Juan Quintela
  ;;
732 d5970055 Michael S. Tsirkin
  --disable-vhost-net) vhost_net="no"
733 d5970055 Michael S. Tsirkin
  ;;
734 d5970055 Michael S. Tsirkin
  --enable-vhost-net) vhost_net="yes"
735 d5970055 Michael S. Tsirkin
  ;;
736 20ff075b Michael Walle
  --disable-opengl) opengl="no"
737 20ff075b Michael Walle
  ;;
738 20ff075b Michael Walle
  --enable-opengl) opengl="yes"
739 20ff075b Michael Walle
  ;;
740 6bde81cb Paolo Bonzini
  --*dir)
741 6bde81cb Paolo Bonzini
  ;;
742 f27aaf4b Christian Brunner
  --disable-rbd) rbd="no"
743 f27aaf4b Christian Brunner
  ;;
744 f27aaf4b Christian Brunner
  --enable-rbd) rbd="yes"
745 f27aaf4b Christian Brunner
  ;;
746 36707144 Alon Levy
  --disable-smartcard) smartcard="no"
747 36707144 Alon Levy
  ;;
748 36707144 Alon Levy
  --enable-smartcard) smartcard="yes"
749 36707144 Alon Levy
  ;;
750 111a38b0 Robert Relyea
  --disable-smartcard-nss) smartcard_nss="no"
751 111a38b0 Robert Relyea
  ;;
752 111a38b0 Robert Relyea
  --enable-smartcard-nss) smartcard_nss="yes"
753 111a38b0 Robert Relyea
  ;;
754 69354a83 Hans de Goede
  --disable-usb-redir) usb_redir="no"
755 69354a83 Hans de Goede
  ;;
756 69354a83 Hans de Goede
  --enable-usb-redir) usb_redir="yes"
757 69354a83 Hans de Goede
  ;;
758 1ece9905 Alon Levy
  --disable-zlib-test) zlib="no"
759 1ece9905 Alon Levy
  ;;
760 7f1559c6 balrog
  *) echo "ERROR: unknown option $opt"; show_help="yes"
761 7f1559c6 balrog
  ;;
762 7d13299d bellard
  esac
763 7d13299d bellard
done
764 7d13299d bellard
765 3142255c blueswir1
#
766 3142255c blueswir1
# If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
767 a558ee17 Juan Quintela
# QEMU_CFLAGS/LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
768 3142255c blueswir1
#
769 379f6698 Paul Brook
host_guest_base="no"
770 40293e58 bellard
case "$cpu" in
771 ed968ff1 Juan Quintela
    sparc) case $sparc_cpu in
772 ed968ff1 Juan Quintela
           v7|v8)
773 a558ee17 Juan Quintela
             QEMU_CFLAGS="-mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
774 ed968ff1 Juan Quintela
           ;;
775 ed968ff1 Juan Quintela
           v8plus|v8plusa)
776 a558ee17 Juan Quintela
             QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
777 ed968ff1 Juan Quintela
           ;;
778 ed968ff1 Juan Quintela
           *) # sparc_cpu not defined in the command line
779 a558ee17 Juan Quintela
             QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS"
780 ed968ff1 Juan Quintela
           esac
781 ed968ff1 Juan Quintela
           LDFLAGS="-m32 $LDFLAGS"
782 a558ee17 Juan Quintela
           QEMU_CFLAGS="-m32 -ffixed-g2 -ffixed-g3 $QEMU_CFLAGS"
783 762e8230 blueswir1
           if test "$solaris" = "no" ; then
784 a558ee17 Juan Quintela
             QEMU_CFLAGS="-ffixed-g1 -ffixed-g6 $QEMU_CFLAGS"
785 c81da56e Juan Quintela
             helper_cflags="-ffixed-i0"
786 762e8230 blueswir1
           fi
787 3142255c blueswir1
           ;;
788 ed968ff1 Juan Quintela
    sparc64)
789 a558ee17 Juan Quintela
           QEMU_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS"
790 ed968ff1 Juan Quintela
           LDFLAGS="-m64 $LDFLAGS"
791 a558ee17 Juan Quintela
           QEMU_CFLAGS="-ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS"
792 ed968ff1 Juan Quintela
           if test "$solaris" != "no" ; then
793 a558ee17 Juan Quintela
             QEMU_CFLAGS="-ffixed-g1 $QEMU_CFLAGS"
794 762e8230 blueswir1
           fi
795 3142255c blueswir1
           ;;
796 76d83bde ths
    s390)
797 28d7cc49 Richard Henderson
           QEMU_CFLAGS="-m31 -march=z990 $QEMU_CFLAGS"
798 28d7cc49 Richard Henderson
           LDFLAGS="-m31 $LDFLAGS"
799 48bb3750 Richard Henderson
           host_guest_base="yes"
800 28d7cc49 Richard Henderson
           ;;
801 28d7cc49 Richard Henderson
    s390x)
802 28d7cc49 Richard Henderson
           QEMU_CFLAGS="-m64 -march=z990 $QEMU_CFLAGS"
803 28d7cc49 Richard Henderson
           LDFLAGS="-m64 $LDFLAGS"
804 48bb3750 Richard Henderson
           host_guest_base="yes"
805 76d83bde ths
           ;;
806 40293e58 bellard
    i386)
807 a558ee17 Juan Quintela
           QEMU_CFLAGS="-m32 $QEMU_CFLAGS"
808 0c439cbf Juan Quintela
           LDFLAGS="-m32 $LDFLAGS"
809 2b2e59e6 Paolo Bonzini
           cc_i386='$(CC) -m32'
810 c81da56e Juan Quintela
           helper_cflags="-fomit-frame-pointer"
811 379f6698 Paul Brook
           host_guest_base="yes"
812 40293e58 bellard
           ;;
813 40293e58 bellard
    x86_64)
814 a558ee17 Juan Quintela
           QEMU_CFLAGS="-m64 $QEMU_CFLAGS"
815 0c439cbf Juan Quintela
           LDFLAGS="-m64 $LDFLAGS"
816 2b2e59e6 Paolo Bonzini
           cc_i386='$(CC) -m32'
817 379f6698 Paul Brook
           host_guest_base="yes"
818 379f6698 Paul Brook
           ;;
819 379f6698 Paul Brook
    arm*)
820 379f6698 Paul Brook
           host_guest_base="yes"
821 40293e58 bellard
           ;;
822 f6548c0a malc
    ppc*)
823 f6548c0a malc
           host_guest_base="yes"
824 f6548c0a malc
           ;;
825 cc01cc8e Aurelien Jarno
    mips*)
826 cc01cc8e Aurelien Jarno
           host_guest_base="yes"
827 cc01cc8e Aurelien Jarno
           ;;
828 477ba620 Aurelien Jarno
    ia64*)
829 477ba620 Aurelien Jarno
           host_guest_base="yes"
830 477ba620 Aurelien Jarno
           ;;
831 fd76e73a Richard Henderson
    hppa*)
832 fd76e73a Richard Henderson
           host_guest_base="yes"
833 fd76e73a Richard Henderson
           ;;
834 d2fbca94 Guan Xuetao
    unicore32*)
835 d2fbca94 Guan Xuetao
           host_guest_base="yes"
836 d2fbca94 Guan Xuetao
           ;;
837 3142255c blueswir1
esac
838 3142255c blueswir1
839 379f6698 Paul Brook
[ -z "$guest_base" ] && guest_base="$host_guest_base"
840 379f6698 Paul Brook
841 60e0df25 Peter Maydell
842 60e0df25 Peter Maydell
default_target_list=""
843 60e0df25 Peter Maydell
844 60e0df25 Peter Maydell
# these targets are portable
845 60e0df25 Peter Maydell
if [ "$softmmu" = "yes" ] ; then
846 60e0df25 Peter Maydell
    default_target_list="\
847 60e0df25 Peter Maydell
i386-softmmu \
848 60e0df25 Peter Maydell
x86_64-softmmu \
849 60e0df25 Peter Maydell
arm-softmmu \
850 60e0df25 Peter Maydell
cris-softmmu \
851 60e0df25 Peter Maydell
lm32-softmmu \
852 60e0df25 Peter Maydell
m68k-softmmu \
853 60e0df25 Peter Maydell
microblaze-softmmu \
854 60e0df25 Peter Maydell
microblazeel-softmmu \
855 60e0df25 Peter Maydell
mips-softmmu \
856 60e0df25 Peter Maydell
mipsel-softmmu \
857 60e0df25 Peter Maydell
mips64-softmmu \
858 60e0df25 Peter Maydell
mips64el-softmmu \
859 60e0df25 Peter Maydell
ppc-softmmu \
860 60e0df25 Peter Maydell
ppcemb-softmmu \
861 60e0df25 Peter Maydell
ppc64-softmmu \
862 60e0df25 Peter Maydell
sh4-softmmu \
863 60e0df25 Peter Maydell
sh4eb-softmmu \
864 60e0df25 Peter Maydell
sparc-softmmu \
865 60e0df25 Peter Maydell
sparc64-softmmu \
866 0f3301d4 Alexander Graf
s390x-softmmu \
867 60e0df25 Peter Maydell
"
868 60e0df25 Peter Maydell
fi
869 60e0df25 Peter Maydell
# the following are Linux specific
870 60e0df25 Peter Maydell
if [ "$linux_user" = "yes" ] ; then
871 60e0df25 Peter Maydell
    default_target_list="${default_target_list}\
872 60e0df25 Peter Maydell
i386-linux-user \
873 60e0df25 Peter Maydell
x86_64-linux-user \
874 60e0df25 Peter Maydell
alpha-linux-user \
875 60e0df25 Peter Maydell
arm-linux-user \
876 60e0df25 Peter Maydell
armeb-linux-user \
877 60e0df25 Peter Maydell
cris-linux-user \
878 60e0df25 Peter Maydell
m68k-linux-user \
879 60e0df25 Peter Maydell
microblaze-linux-user \
880 60e0df25 Peter Maydell
microblazeel-linux-user \
881 60e0df25 Peter Maydell
mips-linux-user \
882 60e0df25 Peter Maydell
mipsel-linux-user \
883 60e0df25 Peter Maydell
ppc-linux-user \
884 60e0df25 Peter Maydell
ppc64-linux-user \
885 60e0df25 Peter Maydell
ppc64abi32-linux-user \
886 60e0df25 Peter Maydell
sh4-linux-user \
887 60e0df25 Peter Maydell
sh4eb-linux-user \
888 60e0df25 Peter Maydell
sparc-linux-user \
889 60e0df25 Peter Maydell
sparc64-linux-user \
890 60e0df25 Peter Maydell
sparc32plus-linux-user \
891 60e0df25 Peter Maydell
unicore32-linux-user \
892 0f3301d4 Alexander Graf
s390x-linux-user \
893 60e0df25 Peter Maydell
"
894 60e0df25 Peter Maydell
fi
895 60e0df25 Peter Maydell
# the following are Darwin specific
896 60e0df25 Peter Maydell
if [ "$darwin_user" = "yes" ] ; then
897 60e0df25 Peter Maydell
    default_target_list="$default_target_list i386-darwin-user ppc-darwin-user "
898 60e0df25 Peter Maydell
fi
899 60e0df25 Peter Maydell
# the following are BSD specific
900 60e0df25 Peter Maydell
if [ "$bsd_user" = "yes" ] ; then
901 60e0df25 Peter Maydell
    default_target_list="${default_target_list}\
902 60e0df25 Peter Maydell
i386-bsd-user \
903 60e0df25 Peter Maydell
x86_64-bsd-user \
904 60e0df25 Peter Maydell
sparc-bsd-user \
905 60e0df25 Peter Maydell
sparc64-bsd-user \
906 60e0df25 Peter Maydell
"
907 60e0df25 Peter Maydell
fi
908 60e0df25 Peter Maydell
909 af5db58e pbrook
if test x"$show_help" = x"yes" ; then
910 af5db58e pbrook
cat << EOF
911 af5db58e pbrook
912 af5db58e pbrook
Usage: configure [options]
913 af5db58e pbrook
Options: [defaults in brackets after descriptions]
914 af5db58e pbrook
915 af5db58e pbrook
EOF
916 af5db58e pbrook
echo "Standard options:"
917 af5db58e pbrook
echo "  --help                   print this message"
918 af5db58e pbrook
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
919 af5db58e pbrook
echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
920 af5db58e pbrook
echo "                           use %M for cpu name [$interp_prefix]"
921 60e0df25 Peter Maydell
echo "  --target-list=LIST       set target list (default: build everything)"
922 60e0df25 Peter Maydell
echo "Available targets: $default_target_list" | \
923 60e0df25 Peter Maydell
    fold -s -w 53 | sed -e 's/^/                           /'
924 af5db58e pbrook
echo ""
925 af5db58e pbrook
echo "Advanced options (experts only):"
926 af5db58e pbrook
echo "  --source-path=PATH       path of source code [$source_path]"
927 af5db58e pbrook
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
928 af5db58e pbrook
echo "  --cc=CC                  use C compiler CC [$cc]"
929 0bfe8cc0 Paolo Bonzini
echo "  --host-cc=CC             use C compiler CC [$host_cc] for code run at"
930 0bfe8cc0 Paolo Bonzini
echo "                           build time"
931 a558ee17 Juan Quintela
echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
932 e3fc14c3 Jan Kiszka
echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
933 af5db58e pbrook
echo "  --make=MAKE              use specified make [$make]"
934 6a882643 pbrook
echo "  --install=INSTALL        use specified install [$install]"
935 c886edfb Blue Swirl
echo "  --python=PYTHON          use specified python [$python]"
936 af5db58e pbrook
echo "  --static                 enable static build [$static]"
937 0b24e75f Paolo Bonzini
echo "  --mandir=PATH            install man pages in PATH"
938 0b24e75f Paolo Bonzini
echo "  --datadir=PATH           install firmware in PATH"
939 0b24e75f Paolo Bonzini
echo "  --docdir=PATH            install documentation in PATH"
940 0b24e75f Paolo Bonzini
echo "  --bindir=PATH            install binaries in PATH"
941 0b24e75f Paolo Bonzini
echo "  --sysconfdir=PATH        install config in PATH/qemu"
942 f8393946 aurel32
echo "  --enable-debug-tcg       enable TCG debugging"
943 f8393946 aurel32
echo "  --disable-debug-tcg      disable TCG debugging (default)"
944 09695a4a Stefan Weil
echo "  --enable-debug           enable common debug build options"
945 890b1658 aliguori
echo "  --enable-sparse          enable sparse checker"
946 890b1658 aliguori
echo "  --disable-sparse         disable sparse checker (default)"
947 1625af87 aliguori
echo "  --disable-strip          disable stripping binaries"
948 85aa5189 bellard
echo "  --disable-werror         disable compilation abort on warning"
949 fe8f78e4 balrog
echo "  --disable-sdl            disable SDL"
950 c4198157 Juan Quintela
echo "  --enable-sdl             enable SDL"
951 821601ea Jes Sorensen
echo "  --disable-vnc            disable VNC"
952 821601ea Jes Sorensen
echo "  --enable-vnc             enable VNC"
953 af5db58e pbrook
echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
954 c2de5c91 malc
echo "  --audio-drv-list=LIST    set audio drivers list:"
955 c2de5c91 malc
echo "                           Available drivers: $audio_possible_drivers"
956 4c9b53e3 malc
echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
957 4c9b53e3 malc
echo "                           Available cards: $audio_possible_cards"
958 eb852011 Markus Armbruster
echo "  --block-drv-whitelist=L  set block driver whitelist"
959 eb852011 Markus Armbruster
echo "                           (affects only QEMU, not qemu-img)"
960 8ff9cbf7 malc
echo "  --enable-mixemu          enable mixer emulation"
961 e37630ca aliguori
echo "  --disable-xen            disable xen backend driver support"
962 fc321b4b Juan Quintela
echo "  --enable-xen             enable xen backend driver support"
963 2e4d9fb1 aurel32
echo "  --disable-brlapi         disable BrlAPI"
964 4ffcedb6 Juan Quintela
echo "  --enable-brlapi          enable BrlAPI"
965 8d5d2d4c ths
echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
966 1be10ad2 Juan Quintela
echo "  --enable-vnc-tls         enable TLS encryption for VNC server"
967 2f9606b3 aliguori
echo "  --disable-vnc-sasl       disable SASL encryption for VNC server"
968 ea784e3b Juan Quintela
echo "  --enable-vnc-sasl        enable SASL encryption for VNC server"
969 2f6f5c7a Corentin Chary
echo "  --disable-vnc-jpeg       disable JPEG lossy compression for VNC server"
970 2f6f5c7a Corentin Chary
echo "  --enable-vnc-jpeg        enable JPEG lossy compression for VNC server"
971 96763cf9 Corentin Chary
echo "  --disable-vnc-png        disable PNG compression for VNC server (default)"
972 efe556ad Corentin Chary
echo "  --enable-vnc-png         enable PNG compression for VNC server"
973 bd023f95 Corentin Chary
echo "  --disable-vnc-thread     disable threaded VNC server"
974 bd023f95 Corentin Chary
echo "  --enable-vnc-thread      enable threaded VNC server"
975 af896aaa pbrook
echo "  --disable-curses         disable curses output"
976 c584a6d0 Juan Quintela
echo "  --enable-curses          enable curses output"
977 769ce76d Alexander Graf
echo "  --disable-curl           disable curl connectivity"
978 788c8196 Juan Quintela
echo "  --enable-curl            enable curl connectivity"
979 2df87df7 Juan Quintela
echo "  --disable-fdt            disable fdt device tree"
980 2df87df7 Juan Quintela
echo "  --enable-fdt             enable fdt device tree"
981 5495ed11 Luiz Capitulino
echo "  --disable-check-utests   disable check unit-tests"
982 5495ed11 Luiz Capitulino
echo "  --enable-check-utests    enable check unit-tests"
983 fb599c9a balrog
echo "  --disable-bluez          disable bluez stack connectivity"
984 a20a6f46 Juan Quintela
echo "  --enable-bluez           enable bluez stack connectivity"
985 6093d3d4 Peter Maydell
echo "  --disable-slirp          disable SLIRP userspace network connectivity"
986 7ba1e619 aliguori
echo "  --disable-kvm            disable KVM acceleration support"
987 b31a0277 Juan Quintela
echo "  --enable-kvm             enable KVM acceleration support"
988 bd0c5661 pbrook
echo "  --disable-nptl           disable usermode NPTL support"
989 e5934d33 Andre Przywara
echo "  --enable-nptl            enable usermode NPTL support"
990 af5db58e pbrook
echo "  --enable-system          enable all system emulation targets"
991 af5db58e pbrook
echo "  --disable-system         disable all system emulation targets"
992 0953a80f Zachary Amsden
echo "  --enable-user            enable supported user emulation targets"
993 0953a80f Zachary Amsden
echo "  --disable-user           disable all user emulation targets"
994 831b7825 ths
echo "  --enable-linux-user      enable all linux usermode emulation targets"
995 831b7825 ths
echo "  --disable-linux-user     disable all linux usermode emulation targets"
996 831b7825 ths
echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
997 831b7825 ths
echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
998 84778508 blueswir1
echo "  --enable-bsd-user        enable all BSD usermode emulation targets"
999 84778508 blueswir1
echo "  --disable-bsd-user       disable all BSD usermode emulation targets"
1000 379f6698 Paul Brook
echo "  --enable-guest-base      enable GUEST_BASE support for usermode"
1001 379f6698 Paul Brook
echo "                           emulation targets"
1002 379f6698 Paul Brook
echo "  --disable-guest-base     disable GUEST_BASE support"
1003 34005a00 Kirill A. Shutemov
echo "  --enable-user-pie        build usermode emulation targets as PIE"
1004 34005a00 Kirill A. Shutemov
echo "  --disable-user-pie       do not build usermode emulation targets as PIE"
1005 af5db58e pbrook
echo "  --fmod-lib               path to FMOD library"
1006 af5db58e pbrook
echo "  --fmod-inc               path to FMOD includes"
1007 2f6a1ab0 blueswir1
echo "  --oss-lib                path to OSS library"
1008 c5937220 pbrook
echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
1009 3142255c blueswir1
echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
1010 ee682d27 Stefan Weil
echo "  --disable-uuid           disable uuid support"
1011 ee682d27 Stefan Weil
echo "  --enable-uuid            enable uuid support"
1012 e0e6c8c0 aliguori
echo "  --disable-vde            disable support for vde network"
1013 dfb278bd Juan Quintela
echo "  --enable-vde             enable support for vde network"
1014 5c6c3a6c Christoph Hellwig
echo "  --disable-linux-aio      disable Linux AIO support"
1015 5c6c3a6c Christoph Hellwig
echo "  --enable-linux-aio       enable Linux AIO support"
1016 758e8e38 Venkateswararao Jujjuri (JV)
echo "  --disable-attr           disables attr and xattr support"
1017 758e8e38 Venkateswararao Jujjuri (JV)
echo "  --enable-attr            enable attr and xattr support"
1018 e5d355d1 aliguori
echo "  --enable-io-thread       enable IO thread"
1019 77755340 ths
echo "  --disable-blobs          disable installing provided firmware blobs"
1020 d2807bc9 Dirk Ullrich
echo "  --enable-docs            enable documentation build"
1021 d2807bc9 Dirk Ullrich
echo "  --disable-docs           disable documentation build"
1022 d5970055 Michael S. Tsirkin
echo "  --disable-vhost-net      disable vhost-net acceleration support"
1023 d5970055 Michael S. Tsirkin
echo "  --enable-vhost-net       enable vhost-net acceleration support"
1024 320fba2a Fabien Chouteau
echo "  --enable-trace-backend=B Set trace backend"
1025 320fba2a Fabien Chouteau
echo "                           Available backends:" $("$source_path"/scripts/tracetool --list-backends)
1026 74242e0f Paolo Bonzini
echo "  --with-trace-file=NAME   Full PATH,NAME of file to store traces"
1027 9410b56c Prerna Saxena
echo "                           Default:trace-<pid>"
1028 cd4ec0b4 Gerd Hoffmann
echo "  --disable-spice          disable spice"
1029 cd4ec0b4 Gerd Hoffmann
echo "  --enable-spice           enable spice"
1030 f27aaf4b Christian Brunner
echo "  --enable-rbd             enable building the rados block device (rbd)"
1031 36707144 Alon Levy
echo "  --disable-smartcard      disable smartcard support"
1032 36707144 Alon Levy
echo "  --enable-smartcard       enable smartcard support"
1033 111a38b0 Robert Relyea
echo "  --disable-smartcard-nss  disable smartcard nss support"
1034 111a38b0 Robert Relyea
echo "  --enable-smartcard-nss   enable smartcard nss support"
1035 69354a83 Hans de Goede
echo "  --disable-usb-redir      disable usb network redirection support"
1036 69354a83 Hans de Goede
echo "  --enable-usb-redir       enable usb network redirection support"
1037 af5db58e pbrook
echo ""
1038 5bf08934 ths
echo "NOTE: The object files are built at the place where configure is launched"
1039 af5db58e pbrook
exit 1
1040 af5db58e pbrook
fi
1041 af5db58e pbrook
1042 8d05095c Paolo Bonzini
# check that the C compiler works.
1043 8d05095c Paolo Bonzini
cat > $TMPC <<EOF
1044 8d05095c Paolo Bonzini
int main(void) {}
1045 8d05095c Paolo Bonzini
EOF
1046 8d05095c Paolo Bonzini
1047 8d05095c Paolo Bonzini
if compile_object ; then
1048 8d05095c Paolo Bonzini
  : C compiler works ok
1049 8d05095c Paolo Bonzini
else
1050 8d05095c Paolo Bonzini
    echo "ERROR: \"$cc\" either does not exist or does not work"
1051 8d05095c Paolo Bonzini
    exit 1
1052 8d05095c Paolo Bonzini
fi
1053 8d05095c Paolo Bonzini
1054 8d05095c Paolo Bonzini
gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
1055 8d05095c Paolo Bonzini
gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
1056 8d05095c Paolo Bonzini
gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
1057 f9188227 Mike Frysinger
gcc_flags="-fstack-protector-all -Wendif-labels $gcc_flags"
1058 8d05095c Paolo Bonzini
cat > $TMPC << EOF
1059 8d05095c Paolo Bonzini
int main(void) { return 0; }
1060 8d05095c Paolo Bonzini
EOF
1061 8d05095c Paolo Bonzini
for flag in $gcc_flags; do
1062 8d05095c Paolo Bonzini
    if compile_prog "-Werror $QEMU_CFLAGS" "-Werror $flag" ; then
1063 8d05095c Paolo Bonzini
	QEMU_CFLAGS="$QEMU_CFLAGS $flag"
1064 8d05095c Paolo Bonzini
    fi
1065 8d05095c Paolo Bonzini
done
1066 8d05095c Paolo Bonzini
1067 ec530c81 bellard
#
1068 ec530c81 bellard
# Solaris specific configure tool chain decisions
1069 ec530c81 bellard
#
1070 ec530c81 bellard
if test "$solaris" = "yes" ; then
1071 6792aa11 Loïc Minier
  if has $install; then
1072 6792aa11 Loïc Minier
    :
1073 6792aa11 Loïc Minier
  else
1074 ec530c81 bellard
    echo "Solaris install program not found. Use --install=/usr/ucb/install or"
1075 ec530c81 bellard
    echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
1076 ec530c81 bellard
    echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
1077 ec530c81 bellard
    exit 1
1078 ec530c81 bellard
  fi
1079 6792aa11 Loïc Minier
  if test "`path_of $install`" = "/usr/sbin/install" ; then
1080 ec530c81 bellard
    echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
1081 ec530c81 bellard
    echo "try ginstall from the GNU fileutils available from www.blastwave.org"
1082 ec530c81 bellard
    echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
1083 ec530c81 bellard
    exit 1
1084 ec530c81 bellard
  fi
1085 6792aa11 Loïc Minier
  if has ar; then
1086 6792aa11 Loïc Minier
    :
1087 6792aa11 Loïc Minier
  else
1088 ec530c81 bellard
    echo "Error: No path includes ar"
1089 ec530c81 bellard
    if test -f /usr/ccs/bin/ar ; then
1090 ec530c81 bellard
      echo "Add /usr/ccs/bin to your path and rerun configure"
1091 ec530c81 bellard
    fi
1092 ec530c81 bellard
    exit 1
1093 ec530c81 bellard
  fi
1094 5fafdf24 ths
fi
1095 ec530c81 bellard
1096 c886edfb Blue Swirl
if has $python; then
1097 c886edfb Blue Swirl
  :
1098 c886edfb Blue Swirl
else
1099 c886edfb Blue Swirl
  echo "Python not found. Use --python=/path/to/python"
1100 c886edfb Blue Swirl
  exit 1
1101 c886edfb Blue Swirl
fi
1102 c886edfb Blue Swirl
1103 5327cf48 bellard
if test -z "$target_list" ; then
1104 60e0df25 Peter Maydell
    target_list="$default_target_list"
1105 6e20a45f bellard
else
1106 b1a550a0 pbrook
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
1107 5327cf48 bellard
fi
1108 0a8e90f4 pbrook
if test -z "$target_list" ; then
1109 0a8e90f4 pbrook
    echo "No targets enabled"
1110 0a8e90f4 pbrook
    exit 1
1111 0a8e90f4 pbrook
fi
1112 f55fe278 Paolo Bonzini
# see if system emulation was really requested
1113 f55fe278 Paolo Bonzini
case " $target_list " in
1114 f55fe278 Paolo Bonzini
  *"-softmmu "*) softmmu=yes
1115 f55fe278 Paolo Bonzini
  ;;
1116 f55fe278 Paolo Bonzini
  *) softmmu=no
1117 f55fe278 Paolo Bonzini
  ;;
1118 f55fe278 Paolo Bonzini
esac
1119 5327cf48 bellard
1120 249247c9 Juan Quintela
feature_not_found() {
1121 249247c9 Juan Quintela
  feature=$1
1122 249247c9 Juan Quintela
1123 249247c9 Juan Quintela
  echo "ERROR"
1124 249247c9 Juan Quintela
  echo "ERROR: User requested feature $feature"
1125 9332f6a2 Sebastian Herbszt
  echo "ERROR: configure was not able to find it"
1126 249247c9 Juan Quintela
  echo "ERROR"
1127 249247c9 Juan Quintela
  exit 1;
1128 249247c9 Juan Quintela
}
1129 249247c9 Juan Quintela
1130 7d13299d bellard
if test -z "$cross_prefix" ; then
1131 7d13299d bellard
1132 7d13299d bellard
# ---
1133 7d13299d bellard
# big/little endian test
1134 7d13299d bellard
cat > $TMPC << EOF
1135 7d13299d bellard
#include <inttypes.h>
1136 7d13299d bellard
int main(int argc, char ** argv){
1137 1d14ffa9 bellard
        volatile uint32_t i=0x01234567;
1138 1d14ffa9 bellard
        return (*((uint8_t*)(&i))) == 0x67;
1139 7d13299d bellard
}
1140 7d13299d bellard
EOF
1141 7d13299d bellard
1142 52166aa0 Juan Quintela
if compile_prog "" "" ; then
1143 7d13299d bellard
$TMPE && bigendian="yes"
1144 7d13299d bellard
else
1145 7d13299d bellard
echo big/little test failed
1146 7d13299d bellard
fi
1147 7d13299d bellard
1148 7d13299d bellard
else
1149 7d13299d bellard
1150 7d13299d bellard
# if cross compiling, cannot launch a program, so make a static guess
1151 ea8f20f8 Juan Quintela
case "$cpu" in
1152 24e804ec Alexander Graf
  armv4b|hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64)
1153 ea8f20f8 Juan Quintela
    bigendian=yes
1154 ea8f20f8 Juan Quintela
  ;;
1155 ea8f20f8 Juan Quintela
esac
1156 7d13299d bellard
1157 7d13299d bellard
fi
1158 7d13299d bellard
1159 70be1a2e Paolo Bonzini
# host long bits test, actually a pointer size test
1160 70be1a2e Paolo Bonzini
cat > $TMPC << EOF
1161 70be1a2e Paolo Bonzini
int sizeof_pointer_is_8[sizeof(void *) == 8 ? 1 : -1];
1162 70be1a2e Paolo Bonzini
EOF
1163 70be1a2e Paolo Bonzini
if compile_object; then
1164 70be1a2e Paolo Bonzini
hostlongbits=64
1165 70be1a2e Paolo Bonzini
else
1166 70be1a2e Paolo Bonzini
hostlongbits=32
1167 70be1a2e Paolo Bonzini
fi
1168 b6853697 bellard
1169 b0a47e79 Juan Quintela
1170 b0a47e79 Juan Quintela
##########################################
1171 b0a47e79 Juan Quintela
# NPTL probe
1172 b0a47e79 Juan Quintela
1173 b0a47e79 Juan Quintela
if test "$nptl" != "no" ; then
1174 b0a47e79 Juan Quintela
  cat > $TMPC <<EOF
1175 bd0c5661 pbrook
#include <sched.h>
1176 30813cea pbrook
#include <linux/futex.h>
1177 bd0c5661 pbrook
void foo()
1178 bd0c5661 pbrook
{
1179 bd0c5661 pbrook
#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
1180 bd0c5661 pbrook
#error bork
1181 bd0c5661 pbrook
#endif
1182 bd0c5661 pbrook
}
1183 bd0c5661 pbrook
EOF
1184 bd0c5661 pbrook
1185 b0a47e79 Juan Quintela
  if compile_object ; then
1186 b0a47e79 Juan Quintela
    nptl=yes
1187 b0a47e79 Juan Quintela
  else
1188 b0a47e79 Juan Quintela
    if test "$nptl" = "yes" ; then
1189 b0a47e79 Juan Quintela
      feature_not_found "nptl"
1190 b0a47e79 Juan Quintela
    fi
1191 b0a47e79 Juan Quintela
    nptl=no
1192 b0a47e79 Juan Quintela
  fi
1193 bd0c5661 pbrook
fi
1194 bd0c5661 pbrook
1195 11d9f695 bellard
##########################################
1196 ac62922e balrog
# zlib check
1197 ac62922e balrog
1198 1ece9905 Alon Levy
if test "$zlib" != "no" ; then
1199 1ece9905 Alon Levy
    cat > $TMPC << EOF
1200 ac62922e balrog
#include <zlib.h>
1201 ac62922e balrog
int main(void) { zlibVersion(); return 0; }
1202 ac62922e balrog
EOF
1203 1ece9905 Alon Levy
    if compile_prog "" "-lz" ; then
1204 1ece9905 Alon Levy
        :
1205 1ece9905 Alon Levy
    else
1206 1ece9905 Alon Levy
        echo
1207 1ece9905 Alon Levy
        echo "Error: zlib check failed"
1208 1ece9905 Alon Levy
        echo "Make sure to have the zlib libs and headers installed."
1209 1ece9905 Alon Levy
        echo
1210 1ece9905 Alon Levy
        exit 1
1211 1ece9905 Alon Levy
    fi
1212 ac62922e balrog
fi
1213 ac62922e balrog
1214 ac62922e balrog
##########################################
1215 e37630ca aliguori
# xen probe
1216 e37630ca aliguori
1217 fc321b4b Juan Quintela
if test "$xen" != "no" ; then
1218 b2266bee Juan Quintela
  xen_libs="-lxenstore -lxenctrl -lxenguest"
1219 d5b93ddf Anthony PERARD
1220 d5b93ddf Anthony PERARD
  # Xen unstable
1221 b2266bee Juan Quintela
  cat > $TMPC <<EOF
1222 e37630ca aliguori
#include <xenctrl.h>
1223 e37630ca aliguori
#include <xs.h>
1224 d5b93ddf Anthony PERARD
#include <stdint.h>
1225 d5b93ddf Anthony PERARD
#include <xen/hvm/hvm_info_table.h>
1226 d5b93ddf Anthony PERARD
#if !defined(HVM_MAX_VCPUS)
1227 d5b93ddf Anthony PERARD
# error HVM_MAX_VCPUS not defined
1228 d5b93ddf Anthony PERARD
#endif
1229 d5b93ddf Anthony PERARD
int main(void) {
1230 d5b93ddf Anthony PERARD
  xc_interface *xc;
1231 d5b93ddf Anthony PERARD
  xs_daemon_open();
1232 d5b93ddf Anthony PERARD
  xc = xc_interface_open(0, 0, 0);
1233 d5b93ddf Anthony PERARD
  xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
1234 d5b93ddf Anthony PERARD
  xc_gnttab_open(NULL, 0);
1235 b87de24e Anthony PERARD
  xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0);
1236 d5b93ddf Anthony PERARD
  return 0;
1237 d5b93ddf Anthony PERARD
}
1238 e37630ca aliguori
EOF
1239 52166aa0 Juan Quintela
  if compile_prog "" "$xen_libs" ; then
1240 d5b93ddf Anthony PERARD
    xen_ctrl_version=410
1241 fc321b4b Juan Quintela
    xen=yes
1242 d5b93ddf Anthony PERARD
1243 d5b93ddf Anthony PERARD
  # Xen 4.0.0
1244 d5b93ddf Anthony PERARD
  elif (
1245 d5b93ddf Anthony PERARD
      cat > $TMPC <<EOF
1246 d5b93ddf Anthony PERARD
#include <xenctrl.h>
1247 d5b93ddf Anthony PERARD
#include <xs.h>
1248 d5b93ddf Anthony PERARD
#include <stdint.h>
1249 d5b93ddf Anthony PERARD
#include <xen/hvm/hvm_info_table.h>
1250 d5b93ddf Anthony PERARD
#if !defined(HVM_MAX_VCPUS)
1251 d5b93ddf Anthony PERARD
# error HVM_MAX_VCPUS not defined
1252 d5b93ddf Anthony PERARD
#endif
1253 d5b93ddf Anthony PERARD
int main(void) {
1254 b87de24e Anthony PERARD
  struct xen_add_to_physmap xatp = {
1255 b87de24e Anthony PERARD
    .domid = 0, .space = XENMAPSPACE_gmfn, .idx = 0, .gpfn = 0,
1256 b87de24e Anthony PERARD
  };
1257 d5b93ddf Anthony PERARD
  xs_daemon_open();
1258 d5b93ddf Anthony PERARD
  xc_interface_open();
1259 d5b93ddf Anthony PERARD
  xc_gnttab_open();
1260 d5b93ddf Anthony PERARD
  xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
1261 b87de24e Anthony PERARD
  xc_memory_op(0, XENMEM_add_to_physmap, &xatp);
1262 d5b93ddf Anthony PERARD
  return 0;
1263 d5b93ddf Anthony PERARD
}
1264 d5b93ddf Anthony PERARD
EOF
1265 d5b93ddf Anthony PERARD
      compile_prog "" "$xen_libs"
1266 d5b93ddf Anthony PERARD
    ) ; then
1267 d5b93ddf Anthony PERARD
    xen_ctrl_version=400
1268 d5b93ddf Anthony PERARD
    xen=yes
1269 d5b93ddf Anthony PERARD
1270 b87de24e Anthony PERARD
  # Xen 3.4.0
1271 b87de24e Anthony PERARD
  elif (
1272 b87de24e Anthony PERARD
      cat > $TMPC <<EOF
1273 b87de24e Anthony PERARD
#include <xenctrl.h>
1274 b87de24e Anthony PERARD
#include <xs.h>
1275 b87de24e Anthony PERARD
int main(void) {
1276 b87de24e Anthony PERARD
  struct xen_add_to_physmap xatp = {
1277 b87de24e Anthony PERARD
    .domid = 0, .space = XENMAPSPACE_gmfn, .idx = 0, .gpfn = 0,
1278 b87de24e Anthony PERARD
  };
1279 b87de24e Anthony PERARD
  xs_daemon_open();
1280 b87de24e Anthony PERARD
  xc_interface_open();
1281 b87de24e Anthony PERARD
  xc_gnttab_open();
1282 b87de24e Anthony PERARD
  xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
1283 b87de24e Anthony PERARD
  xc_memory_op(0, XENMEM_add_to_physmap, &xatp);
1284 b87de24e Anthony PERARD
  return 0;
1285 b87de24e Anthony PERARD
}
1286 b87de24e Anthony PERARD
EOF
1287 b87de24e Anthony PERARD
      compile_prog "" "$xen_libs"
1288 b87de24e Anthony PERARD
    ) ; then
1289 b87de24e Anthony PERARD
    xen_ctrl_version=340
1290 b87de24e Anthony PERARD
    xen=yes
1291 b87de24e Anthony PERARD
1292 b87de24e Anthony PERARD
  # Xen 3.3.0
1293 d5b93ddf Anthony PERARD
  elif (
1294 d5b93ddf Anthony PERARD
      cat > $TMPC <<EOF
1295 d5b93ddf Anthony PERARD
#include <xenctrl.h>
1296 d5b93ddf Anthony PERARD
#include <xs.h>
1297 d5b93ddf Anthony PERARD
int main(void) {
1298 d5b93ddf Anthony PERARD
  xs_daemon_open();
1299 d5b93ddf Anthony PERARD
  xc_interface_open();
1300 d5b93ddf Anthony PERARD
  xc_gnttab_open();
1301 d5b93ddf Anthony PERARD
  xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0);
1302 d5b93ddf Anthony PERARD
  return 0;
1303 d5b93ddf Anthony PERARD
}
1304 d5b93ddf Anthony PERARD
EOF
1305 d5b93ddf Anthony PERARD
      compile_prog "" "$xen_libs"
1306 d5b93ddf Anthony PERARD
    ) ; then
1307 d5b93ddf Anthony PERARD
    xen_ctrl_version=330
1308 d5b93ddf Anthony PERARD
    xen=yes
1309 d5b93ddf Anthony PERARD
1310 d5b93ddf Anthony PERARD
  # Xen not found or unsupported
1311 b2266bee Juan Quintela
  else
1312 fc321b4b Juan Quintela
    if test "$xen" = "yes" ; then
1313 fc321b4b Juan Quintela
      feature_not_found "xen"
1314 fc321b4b Juan Quintela
    fi
1315 fc321b4b Juan Quintela
    xen=no
1316 b2266bee Juan Quintela
  fi
1317 d5b93ddf Anthony PERARD
1318 d5b93ddf Anthony PERARD
  if test "$xen" = yes; then
1319 d5b93ddf Anthony PERARD
    libs_softmmu="$xen_libs $libs_softmmu"
1320 d5b93ddf Anthony PERARD
  fi
1321 e37630ca aliguori
fi
1322 e37630ca aliguori
1323 e37630ca aliguori
##########################################
1324 a8bd70ad Paolo Bonzini
# pkg-config probe
1325 f91672e5 Paolo Bonzini
1326 a8bd70ad Paolo Bonzini
if ! has $pkg_config; then
1327 08421541 Paolo Bonzini
  echo warning: proceeding without "$pkg_config" >&2
1328 08421541 Paolo Bonzini
  pkg_config=/bin/false
1329 f91672e5 Paolo Bonzini
fi
1330 f91672e5 Paolo Bonzini
1331 f91672e5 Paolo Bonzini
##########################################
1332 44dc0ca3 Alon Levy
# libtool probe
1333 44dc0ca3 Alon Levy
1334 44dc0ca3 Alon Levy
if ! has libtool; then
1335 44dc0ca3 Alon Levy
    libtool=
1336 44dc0ca3 Alon Levy
else
1337 44dc0ca3 Alon Levy
    libtool=libtool
1338 44dc0ca3 Alon Levy
fi
1339 44dc0ca3 Alon Levy
1340 44dc0ca3 Alon Levy
##########################################
1341 dfffc653 Juan Quintela
# Sparse probe
1342 dfffc653 Juan Quintela
if test "$sparse" != "no" ; then
1343 0dba6195 Loïc Minier
  if has cgcc; then
1344 dfffc653 Juan Quintela
    sparse=yes
1345 dfffc653 Juan Quintela
  else
1346 dfffc653 Juan Quintela
    if test "$sparse" = "yes" ; then
1347 dfffc653 Juan Quintela
      feature_not_found "sparse"
1348 dfffc653 Juan Quintela
    fi
1349 dfffc653 Juan Quintela
    sparse=no
1350 dfffc653 Juan Quintela
  fi
1351 dfffc653 Juan Quintela
fi
1352 dfffc653 Juan Quintela
1353 dfffc653 Juan Quintela
##########################################
1354 11d9f695 bellard
# SDL probe
1355 11d9f695 bellard
1356 3ec87ffe Paolo Bonzini
# Look for sdl configuration program (pkg-config or sdl-config).  Try
1357 3ec87ffe Paolo Bonzini
# sdl-config even without cross prefix, and favour pkg-config over sdl-config.
1358 3ec87ffe Paolo Bonzini
if test "`basename $sdl_config`" != sdl-config && ! has ${sdl_config}; then
1359 3ec87ffe Paolo Bonzini
  sdl_config=sdl-config
1360 3ec87ffe Paolo Bonzini
fi
1361 3ec87ffe Paolo Bonzini
1362 3ec87ffe Paolo Bonzini
if $pkg_config sdl --modversion >/dev/null 2>&1; then
1363 a8bd70ad Paolo Bonzini
  sdlconfig="$pkg_config sdl"
1364 9316f803 Paolo Bonzini
  _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'`
1365 3ec87ffe Paolo Bonzini
elif has ${sdl_config}; then
1366 3ec87ffe Paolo Bonzini
  sdlconfig="$sdl_config"
1367 9316f803 Paolo Bonzini
  _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'`
1368 a0dfd8a4 Loïc Minier
else
1369 a0dfd8a4 Loïc Minier
  if test "$sdl" = "yes" ; then
1370 a0dfd8a4 Loïc Minier
    feature_not_found "sdl"
1371 a0dfd8a4 Loïc Minier
  fi
1372 a0dfd8a4 Loïc Minier
  sdl=no
1373 9316f803 Paolo Bonzini
fi
1374 29e5bada Scott Wood
if test -n "$cross_prefix" && test "$(basename "$sdlconfig")" = sdl-config; then
1375 3ec87ffe Paolo Bonzini
  echo warning: using "\"$sdlconfig\"" to detect cross-compiled sdl >&2
1376 3ec87ffe Paolo Bonzini
fi
1377 11d9f695 bellard
1378 9316f803 Paolo Bonzini
sdl_too_old=no
1379 c4198157 Juan Quintela
if test "$sdl" != "no" ; then
1380 ac119f9d Juan Quintela
  cat > $TMPC << EOF
1381 11d9f695 bellard
#include <SDL.h>
1382 11d9f695 bellard
#undef main /* We don't want SDL to override our main() */
1383 11d9f695 bellard
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
1384 11d9f695 bellard
EOF
1385 9316f803 Paolo Bonzini
  sdl_cflags=`$sdlconfig --cflags 2> /dev/null`
1386 74f42e18 TeLeMan
  if test "$static" = "yes" ; then
1387 74f42e18 TeLeMan
    sdl_libs=`$sdlconfig --static-libs 2>/dev/null`
1388 74f42e18 TeLeMan
  else
1389 74f42e18 TeLeMan
    sdl_libs=`$sdlconfig --libs 2> /dev/null`
1390 74f42e18 TeLeMan
  fi
1391 52166aa0 Juan Quintela
  if compile_prog "$sdl_cflags" "$sdl_libs" ; then
1392 ac119f9d Juan Quintela
    if test "$_sdlversion" -lt 121 ; then
1393 ac119f9d Juan Quintela
      sdl_too_old=yes
1394 ac119f9d Juan Quintela
    else
1395 ac119f9d Juan Quintela
      if test "$cocoa" = "no" ; then
1396 ac119f9d Juan Quintela
        sdl=yes
1397 ac119f9d Juan Quintela
      fi
1398 ac119f9d Juan Quintela
    fi
1399 cd01b4a3 aliguori
1400 67c274d3 Paolo Bonzini
    # static link with sdl ? (note: sdl.pc's --static --libs is broken)
1401 ac119f9d Juan Quintela
    if test "$sdl" = "yes" -a "$static" = "yes" ; then
1402 67c274d3 Paolo Bonzini
      if test $? = 0 && echo $sdl_libs | grep -- -laa > /dev/null; then
1403 f8aa6c7b Stefan Weil
         sdl_libs="$sdl_libs `aalib-config --static-libs 2>/dev/null`"
1404 f8aa6c7b Stefan Weil
         sdl_cflags="$sdl_cflags `aalib-config --cflags 2>/dev/null`"
1405 ac119f9d Juan Quintela
      fi
1406 52166aa0 Juan Quintela
      if compile_prog "$sdl_cflags" "$sdl_libs" ; then
1407 ac119f9d Juan Quintela
	:
1408 ac119f9d Juan Quintela
      else
1409 ac119f9d Juan Quintela
        sdl=no
1410 ac119f9d Juan Quintela
      fi
1411 ac119f9d Juan Quintela
    fi # static link
1412 c4198157 Juan Quintela
  else # sdl not found
1413 c4198157 Juan Quintela
    if test "$sdl" = "yes" ; then
1414 c4198157 Juan Quintela
      feature_not_found "sdl"
1415 c4198157 Juan Quintela
    fi
1416 c4198157 Juan Quintela
    sdl=no
1417 ac119f9d Juan Quintela
  fi # sdl compile test
1418 a68551bc Juan Quintela
fi
1419 11d9f695 bellard
1420 5368a422 aliguori
if test "$sdl" = "yes" ; then
1421 ac119f9d Juan Quintela
  cat > $TMPC <<EOF
1422 5368a422 aliguori
#include <SDL.h>
1423 5368a422 aliguori
#if defined(SDL_VIDEO_DRIVER_X11)
1424 5368a422 aliguori
#include <X11/XKBlib.h>
1425 5368a422 aliguori
#else
1426 5368a422 aliguori
#error No x11 support
1427 5368a422 aliguori
#endif
1428 5368a422 aliguori
int main(void) { return 0; }
1429 5368a422 aliguori
EOF
1430 52166aa0 Juan Quintela
  if compile_prog "$sdl_cflags" "$sdl_libs" ; then
1431 ac119f9d Juan Quintela
    sdl_libs="$sdl_libs -lX11"
1432 ac119f9d Juan Quintela
  fi
1433 07d9ac44 Juan Quintela
  if test "$mingw32" = "yes" ; then
1434 07d9ac44 Juan Quintela
    sdl_libs="`echo $sdl_libs | sed s/-mwindows//g` -mconsole"
1435 07d9ac44 Juan Quintela
  fi
1436 0705667e Juan Quintela
  libs_softmmu="$sdl_libs $libs_softmmu"
1437 5368a422 aliguori
fi
1438 5368a422 aliguori
1439 8f28f3fb ths
##########################################
1440 8d5d2d4c ths
# VNC TLS detection
1441 821601ea Jes Sorensen
if test "$vnc" = "yes" -a "$vnc_tls" != "no" ; then
1442 1be10ad2 Juan Quintela
  cat > $TMPC <<EOF
1443 ae6b5e5a aliguori
#include <gnutls/gnutls.h>
1444 ae6b5e5a aliguori
int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
1445 ae6b5e5a aliguori
EOF
1446 a8bd70ad Paolo Bonzini
  vnc_tls_cflags=`$pkg_config --cflags gnutls 2> /dev/null`
1447 a8bd70ad Paolo Bonzini
  vnc_tls_libs=`$pkg_config --libs gnutls 2> /dev/null`
1448 1be10ad2 Juan Quintela
  if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then
1449 1be10ad2 Juan Quintela
    vnc_tls=yes
1450 1be10ad2 Juan Quintela
    libs_softmmu="$vnc_tls_libs $libs_softmmu"
1451 1be10ad2 Juan Quintela
  else
1452 1be10ad2 Juan Quintela
    if test "$vnc_tls" = "yes" ; then
1453 1be10ad2 Juan Quintela
      feature_not_found "vnc-tls"
1454 ae6b5e5a aliguori
    fi
1455 1be10ad2 Juan Quintela
    vnc_tls=no
1456 1be10ad2 Juan Quintela
  fi
1457 8d5d2d4c ths
fi
1458 8d5d2d4c ths
1459 8d5d2d4c ths
##########################################
1460 2f9606b3 aliguori
# VNC SASL detection
1461 821601ea Jes Sorensen
if test "$vnc" = "yes" -a "$vnc_sasl" != "no" ; then
1462 ea784e3b Juan Quintela
  cat > $TMPC <<EOF
1463 2f9606b3 aliguori
#include <sasl/sasl.h>
1464 2f9606b3 aliguori
#include <stdio.h>
1465 2f9606b3 aliguori
int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
1466 2f9606b3 aliguori
EOF
1467 ea784e3b Juan Quintela
  # Assuming Cyrus-SASL installed in /usr prefix
1468 ea784e3b Juan Quintela
  vnc_sasl_cflags=""
1469 ea784e3b Juan Quintela
  vnc_sasl_libs="-lsasl2"
1470 ea784e3b Juan Quintela
  if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
1471 ea784e3b Juan Quintela
    vnc_sasl=yes
1472 ea784e3b Juan Quintela
    libs_softmmu="$vnc_sasl_libs $libs_softmmu"
1473 ea784e3b Juan Quintela
  else
1474 ea784e3b Juan Quintela
    if test "$vnc_sasl" = "yes" ; then
1475 ea784e3b Juan Quintela
      feature_not_found "vnc-sasl"
1476 2f9606b3 aliguori
    fi
1477 ea784e3b Juan Quintela
    vnc_sasl=no
1478 ea784e3b Juan Quintela
  fi
1479 2f9606b3 aliguori
fi
1480 2f9606b3 aliguori
1481 2f9606b3 aliguori
##########################################
1482 2f6f5c7a Corentin Chary
# VNC JPEG detection
1483 821601ea Jes Sorensen
if test "$vnc" = "yes" -a "$vnc_jpeg" != "no" ; then
1484 2f6f5c7a Corentin Chary
cat > $TMPC <<EOF
1485 2f6f5c7a Corentin Chary
#include <stdio.h>
1486 2f6f5c7a Corentin Chary
#include <jpeglib.h>
1487 2f6f5c7a Corentin Chary
int main(void) { struct jpeg_compress_struct s; jpeg_create_compress(&s); return 0; }
1488 2f6f5c7a Corentin Chary
EOF
1489 2f6f5c7a Corentin Chary
    vnc_jpeg_cflags=""
1490 2f6f5c7a Corentin Chary
    vnc_jpeg_libs="-ljpeg"
1491 2f6f5c7a Corentin Chary
  if compile_prog "$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then
1492 2f6f5c7a Corentin Chary
    vnc_jpeg=yes
1493 2f6f5c7a Corentin Chary
    libs_softmmu="$vnc_jpeg_libs $libs_softmmu"
1494 2f6f5c7a Corentin Chary
  else
1495 2f6f5c7a Corentin Chary
    if test "$vnc_jpeg" = "yes" ; then
1496 2f6f5c7a Corentin Chary
      feature_not_found "vnc-jpeg"
1497 2f6f5c7a Corentin Chary
    fi
1498 2f6f5c7a Corentin Chary
    vnc_jpeg=no
1499 2f6f5c7a Corentin Chary
  fi
1500 2f6f5c7a Corentin Chary
fi
1501 2f6f5c7a Corentin Chary
1502 2f6f5c7a Corentin Chary
##########################################
1503 efe556ad Corentin Chary
# VNC PNG detection
1504 821601ea Jes Sorensen
if test "$vnc" = "yes" -a "$vnc_png" != "no" ; then
1505 efe556ad Corentin Chary
cat > $TMPC <<EOF
1506 efe556ad Corentin Chary
//#include <stdio.h>
1507 efe556ad Corentin Chary
#include <png.h>
1508 832ce9c2 Scott Wood
#include <stddef.h>
1509 efe556ad Corentin Chary
int main(void) {
1510 efe556ad Corentin Chary
    png_structp png_ptr;
1511 efe556ad Corentin Chary
    png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
1512 efe556ad Corentin Chary
    return 0;
1513 efe556ad Corentin Chary
}
1514 efe556ad Corentin Chary
EOF
1515 9af8025e Brad
  if $pkg_config libpng --modversion >/dev/null 2>&1; then
1516 9af8025e Brad
    vnc_png_cflags=`$pkg_config libpng --cflags 2> /dev/null`
1517 9af8025e Brad
    vnc_png_libs=`$pkg_config libpng --libs 2> /dev/null`
1518 9af8025e Brad
  else
1519 efe556ad Corentin Chary
    vnc_png_cflags=""
1520 efe556ad Corentin Chary
    vnc_png_libs="-lpng"
1521 9af8025e Brad
  fi
1522 efe556ad Corentin Chary
  if compile_prog "$vnc_png_cflags" "$vnc_png_libs" ; then
1523 efe556ad Corentin Chary
    vnc_png=yes
1524 efe556ad Corentin Chary
    libs_softmmu="$vnc_png_libs $libs_softmmu"
1525 9af8025e Brad
    QEMU_CFLAGS="$QEMU_CFLAGS $vnc_png_cflags"
1526 efe556ad Corentin Chary
  else
1527 efe556ad Corentin Chary
    if test "$vnc_png" = "yes" ; then
1528 efe556ad Corentin Chary
      feature_not_found "vnc-png"
1529 efe556ad Corentin Chary
    fi
1530 efe556ad Corentin Chary
    vnc_png=no
1531 efe556ad Corentin Chary
  fi
1532 efe556ad Corentin Chary
fi
1533 efe556ad Corentin Chary
1534 efe556ad Corentin Chary
##########################################
1535 76655d6d aliguori
# fnmatch() probe, used for ACL routines
1536 76655d6d aliguori
fnmatch="no"
1537 76655d6d aliguori
cat > $TMPC << EOF
1538 76655d6d aliguori
#include <fnmatch.h>
1539 76655d6d aliguori
int main(void)
1540 76655d6d aliguori
{
1541 76655d6d aliguori
    fnmatch("foo", "foo", 0);
1542 76655d6d aliguori
    return 0;
1543 76655d6d aliguori
}
1544 76655d6d aliguori
EOF
1545 52166aa0 Juan Quintela
if compile_prog "" "" ; then
1546 76655d6d aliguori
   fnmatch="yes"
1547 76655d6d aliguori
fi
1548 76655d6d aliguori
1549 76655d6d aliguori
##########################################
1550 ee682d27 Stefan Weil
# uuid_generate() probe, used for vdi block driver
1551 ee682d27 Stefan Weil
if test "$uuid" != "no" ; then
1552 ee682d27 Stefan Weil
  uuid_libs="-luuid"
1553 ee682d27 Stefan Weil
  cat > $TMPC << EOF
1554 ee682d27 Stefan Weil
#include <uuid/uuid.h>
1555 ee682d27 Stefan Weil
int main(void)
1556 ee682d27 Stefan Weil
{
1557 ee682d27 Stefan Weil
    uuid_t my_uuid;
1558 ee682d27 Stefan Weil
    uuid_generate(my_uuid);
1559 ee682d27 Stefan Weil
    return 0;
1560 ee682d27 Stefan Weil
}
1561 ee682d27 Stefan Weil
EOF
1562 ee682d27 Stefan Weil
  if compile_prog "" "$uuid_libs" ; then
1563 ee682d27 Stefan Weil
    uuid="yes"
1564 ee682d27 Stefan Weil
    libs_softmmu="$uuid_libs $libs_softmmu"
1565 ee682d27 Stefan Weil
    libs_tools="$uuid_libs $libs_tools"
1566 ee682d27 Stefan Weil
  else
1567 ee682d27 Stefan Weil
    if test "$uuid" = "yes" ; then
1568 ee682d27 Stefan Weil
      feature_not_found "uuid"
1569 ee682d27 Stefan Weil
    fi
1570 ee682d27 Stefan Weil
    uuid=no
1571 ee682d27 Stefan Weil
  fi
1572 ee682d27 Stefan Weil
fi
1573 ee682d27 Stefan Weil
1574 ee682d27 Stefan Weil
##########################################
1575 dce512de Christoph Hellwig
# xfsctl() probe, used for raw-posix
1576 dce512de Christoph Hellwig
if test "$xfs" != "no" ; then
1577 dce512de Christoph Hellwig
  cat > $TMPC << EOF
1578 dce512de Christoph Hellwig
#include <xfs/xfs.h>
1579 dce512de Christoph Hellwig
int main(void)
1580 dce512de Christoph Hellwig
{
1581 dce512de Christoph Hellwig
    xfsctl(NULL, 0, 0, NULL);
1582 dce512de Christoph Hellwig
    return 0;
1583 dce512de Christoph Hellwig
}
1584 dce512de Christoph Hellwig
EOF
1585 dce512de Christoph Hellwig
  if compile_prog "" "" ; then
1586 dce512de Christoph Hellwig
    xfs="yes"
1587 dce512de Christoph Hellwig
  else
1588 dce512de Christoph Hellwig
    if test "$xfs" = "yes" ; then
1589 dce512de Christoph Hellwig
      feature_not_found "xfs"
1590 dce512de Christoph Hellwig
    fi
1591 dce512de Christoph Hellwig
    xfs=no
1592 dce512de Christoph Hellwig
  fi
1593 dce512de Christoph Hellwig
fi
1594 dce512de Christoph Hellwig
1595 dce512de Christoph Hellwig
##########################################
1596 8a16d273 ths
# vde libraries probe
1597 dfb278bd Juan Quintela
if test "$vde" != "no" ; then
1598 4baae0ac Juan Quintela
  vde_libs="-lvdeplug"
1599 8a16d273 ths
  cat > $TMPC << EOF
1600 8a16d273 ths
#include <libvdeplug.h>
1601 4a7f0e06 pbrook
int main(void)
1602 4a7f0e06 pbrook
{
1603 4a7f0e06 pbrook
    struct vde_open_args a = {0, 0, 0};
1604 4a7f0e06 pbrook
    vde_open("", "", &a);
1605 4a7f0e06 pbrook
    return 0;
1606 4a7f0e06 pbrook
}
1607 8a16d273 ths
EOF
1608 52166aa0 Juan Quintela
  if compile_prog "" "$vde_libs" ; then
1609 4baae0ac Juan Quintela
    vde=yes
1610 8e02e54c Juan Quintela
    libs_softmmu="$vde_libs $libs_softmmu"
1611 8e02e54c Juan Quintela
    libs_tools="$vde_libs $libs_tools"
1612 dfb278bd Juan Quintela
  else
1613 dfb278bd Juan Quintela
    if test "$vde" = "yes" ; then
1614 dfb278bd Juan Quintela
      feature_not_found "vde"
1615 dfb278bd Juan Quintela
    fi
1616 dfb278bd Juan Quintela
    vde=no
1617 4baae0ac Juan Quintela
  fi
1618 8a16d273 ths
fi
1619 8a16d273 ths
1620 8a16d273 ths
##########################################
1621 c2de5c91 malc
# Sound support libraries probe
1622 8f28f3fb ths
1623 c2de5c91 malc
audio_drv_probe()
1624 c2de5c91 malc
{
1625 c2de5c91 malc
    drv=$1
1626 c2de5c91 malc
    hdr=$2
1627 c2de5c91 malc
    lib=$3
1628 c2de5c91 malc
    exp=$4
1629 c2de5c91 malc
    cfl=$5
1630 c2de5c91 malc
        cat > $TMPC << EOF
1631 c2de5c91 malc
#include <$hdr>
1632 c2de5c91 malc
int main(void) { $exp }
1633 8f28f3fb ths
EOF
1634 52166aa0 Juan Quintela
    if compile_prog "$cfl" "$lib" ; then
1635 c2de5c91 malc
        :
1636 c2de5c91 malc
    else
1637 c2de5c91 malc
        echo
1638 c2de5c91 malc
        echo "Error: $drv check failed"
1639 c2de5c91 malc
        echo "Make sure to have the $drv libs and headers installed."
1640 c2de5c91 malc
        echo
1641 c2de5c91 malc
        exit 1
1642 c2de5c91 malc
    fi
1643 c2de5c91 malc
}
1644 c2de5c91 malc
1645 2fa7d3bf malc
audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
1646 c2de5c91 malc
for drv in $audio_drv_list; do
1647 c2de5c91 malc
    case $drv in
1648 c2de5c91 malc
    alsa)
1649 c2de5c91 malc
    audio_drv_probe $drv alsa/asoundlib.h -lasound \
1650 c2de5c91 malc
        "snd_pcm_t **handle; return snd_pcm_close(*handle);"
1651 a4bf6780 Juan Quintela
    libs_softmmu="-lasound $libs_softmmu"
1652 c2de5c91 malc
    ;;
1653 c2de5c91 malc
1654 c2de5c91 malc
    fmod)
1655 c2de5c91 malc
    if test -z $fmod_lib || test -z $fmod_inc; then
1656 c2de5c91 malc
        echo
1657 c2de5c91 malc
        echo "Error: You must specify path to FMOD library and headers"
1658 c2de5c91 malc
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
1659 c2de5c91 malc
        echo
1660 c2de5c91 malc
        exit 1
1661 c2de5c91 malc
    fi
1662 c2de5c91 malc
    audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
1663 a4bf6780 Juan Quintela
    libs_softmmu="$fmod_lib $libs_softmmu"
1664 c2de5c91 malc
    ;;
1665 c2de5c91 malc
1666 c2de5c91 malc
    esd)
1667 c2de5c91 malc
    audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
1668 a4bf6780 Juan Quintela
    libs_softmmu="-lesd $libs_softmmu"
1669 67f86e8e Juan Quintela
    audio_pt_int="yes"
1670 c2de5c91 malc
    ;;
1671 b8e59f18 malc
1672 b8e59f18 malc
    pa)
1673 493abda6 Aurelien Jarno
    audio_drv_probe $drv pulse/simple.h "-lpulse-simple -lpulse" \
1674 20fa53ec Marc-Antoine Perennou
        "pa_simple *s = 0; pa_simple_free(s); return 0;"
1675 493abda6 Aurelien Jarno
    libs_softmmu="-lpulse -lpulse-simple $libs_softmmu"
1676 67f86e8e Juan Quintela
    audio_pt_int="yes"
1677 b8e59f18 malc
    ;;
1678 b8e59f18 malc
1679 997e690a Juan Quintela
    coreaudio)
1680 997e690a Juan Quintela
      libs_softmmu="-framework CoreAudio $libs_softmmu"
1681 997e690a Juan Quintela
    ;;
1682 997e690a Juan Quintela
1683 a4bf6780 Juan Quintela
    dsound)
1684 a4bf6780 Juan Quintela
      libs_softmmu="-lole32 -ldxguid $libs_softmmu"
1685 d5631638 malc
      audio_win_int="yes"
1686 a4bf6780 Juan Quintela
    ;;
1687 a4bf6780 Juan Quintela
1688 a4bf6780 Juan Quintela
    oss)
1689 a4bf6780 Juan Quintela
      libs_softmmu="$oss_lib $libs_softmmu"
1690 a4bf6780 Juan Quintela
    ;;
1691 a4bf6780 Juan Quintela
1692 a4bf6780 Juan Quintela
    sdl|wav)
1693 2f6a1ab0 blueswir1
    # XXX: Probes for CoreAudio, DirectSound, SDL(?)
1694 2f6a1ab0 blueswir1
    ;;
1695 2f6a1ab0 blueswir1
1696 d5631638 malc
    winwave)
1697 d5631638 malc
      libs_softmmu="-lwinmm $libs_softmmu"
1698 d5631638 malc
      audio_win_int="yes"
1699 d5631638 malc
    ;;
1700 d5631638 malc
1701 e4c63a6a malc
    *)
1702 1c9b2a52 malc
    echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
1703 e4c63a6a malc
        echo
1704 e4c63a6a malc
        echo "Error: Unknown driver '$drv' selected"
1705 e4c63a6a malc
        echo "Possible drivers are: $audio_possible_drivers"
1706 e4c63a6a malc
        echo
1707 e4c63a6a malc
        exit 1
1708 e4c63a6a malc
    }
1709 e4c63a6a malc
    ;;
1710 c2de5c91 malc
    esac
1711 c2de5c91 malc
done
1712 8f28f3fb ths
1713 4d3b6f6e balrog
##########################################
1714 2e4d9fb1 aurel32
# BrlAPI probe
1715 2e4d9fb1 aurel32
1716 4ffcedb6 Juan Quintela
if test "$brlapi" != "no" ; then
1717 eb82284f Juan Quintela
  brlapi_libs="-lbrlapi"
1718 eb82284f Juan Quintela
  cat > $TMPC << EOF
1719 2e4d9fb1 aurel32
#include <brlapi.h>
1720 832ce9c2 Scott Wood
#include <stddef.h>
1721 2e4d9fb1 aurel32
int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
1722 2e4d9fb1 aurel32
EOF
1723 52166aa0 Juan Quintela
  if compile_prog "" "$brlapi_libs" ; then
1724 eb82284f Juan Quintela
    brlapi=yes
1725 264606b3 Juan Quintela
    libs_softmmu="$brlapi_libs $libs_softmmu"
1726 4ffcedb6 Juan Quintela
  else
1727 4ffcedb6 Juan Quintela
    if test "$brlapi" = "yes" ; then
1728 4ffcedb6 Juan Quintela
      feature_not_found "brlapi"
1729 4ffcedb6 Juan Quintela
    fi
1730 4ffcedb6 Juan Quintela
    brlapi=no
1731 eb82284f Juan Quintela
  fi
1732 eb82284f Juan Quintela
fi
1733 2e4d9fb1 aurel32
1734 2e4d9fb1 aurel32
##########################################
1735 4d3b6f6e balrog
# curses probe
1736 e095e2f3 Stefan Weil
if test "$mingw32" = "yes" ; then
1737 e095e2f3 Stefan Weil
    curses_list="-lpdcurses"
1738 e095e2f3 Stefan Weil
else
1739 e095e2f3 Stefan Weil
    curses_list="-lncurses -lcurses"
1740 e095e2f3 Stefan Weil
fi
1741 4d3b6f6e balrog
1742 c584a6d0 Juan Quintela
if test "$curses" != "no" ; then
1743 c584a6d0 Juan Quintela
  curses_found=no
1744 4d3b6f6e balrog
  cat > $TMPC << EOF
1745 4d3b6f6e balrog
#include <curses.h>
1746 5a8ff3aa blueswir1
#ifdef __OpenBSD__
1747 5a8ff3aa blueswir1
#define resize_term resizeterm
1748 5a8ff3aa blueswir1
#endif
1749 5a8ff3aa blueswir1
int main(void) { resize_term(0, 0); return curses_version(); }
1750 4d3b6f6e balrog
EOF
1751 4f78ef9a Juan Quintela
  for curses_lib in $curses_list; do
1752 4f78ef9a Juan Quintela
    if compile_prog "" "$curses_lib" ; then
1753 c584a6d0 Juan Quintela
      curses_found=yes
1754 4f78ef9a Juan Quintela
      libs_softmmu="$curses_lib $libs_softmmu"
1755 4f78ef9a Juan Quintela
      break
1756 4f78ef9a Juan Quintela
    fi
1757 4f78ef9a Juan Quintela
  done
1758 c584a6d0 Juan Quintela
  if test "$curses_found" = "yes" ; then
1759 c584a6d0 Juan Quintela
    curses=yes
1760 c584a6d0 Juan Quintela
  else
1761 c584a6d0 Juan Quintela
    if test "$curses" = "yes" ; then
1762 c584a6d0 Juan Quintela
      feature_not_found "curses"
1763 c584a6d0 Juan Quintela
    fi
1764 c584a6d0 Juan Quintela
    curses=no
1765 c584a6d0 Juan Quintela
  fi
1766 4f78ef9a Juan Quintela
fi
1767 4d3b6f6e balrog
1768 414f0dab blueswir1
##########################################
1769 769ce76d Alexander Graf
# curl probe
1770 769ce76d Alexander Graf
1771 a8bd70ad Paolo Bonzini
if $pkg_config libcurl --modversion >/dev/null 2>&1; then
1772 a8bd70ad Paolo Bonzini
  curlconfig="$pkg_config libcurl"
1773 4e2b0658 Paolo Bonzini
else
1774 4e2b0658 Paolo Bonzini
  curlconfig=curl-config
1775 4e2b0658 Paolo Bonzini
fi
1776 4e2b0658 Paolo Bonzini
1777 788c8196 Juan Quintela
if test "$curl" != "no" ; then
1778 769ce76d Alexander Graf
  cat > $TMPC << EOF
1779 769ce76d Alexander Graf
#include <curl/curl.h>
1780 0b862ced Peter Maydell
int main(void) { curl_easy_init(); curl_multi_setopt(0, 0, 0); return 0; }
1781 769ce76d Alexander Graf
EOF
1782 4e2b0658 Paolo Bonzini
  curl_cflags=`$curlconfig --cflags 2>/dev/null`
1783 4e2b0658 Paolo Bonzini
  curl_libs=`$curlconfig --libs 2>/dev/null`
1784 b1d5a277 Juan Quintela
  if compile_prog "$curl_cflags" "$curl_libs" ; then
1785 769ce76d Alexander Graf
    curl=yes
1786 f0302935 Juan Quintela
    libs_tools="$curl_libs $libs_tools"
1787 f0302935 Juan Quintela
    libs_softmmu="$curl_libs $libs_softmmu"
1788 788c8196 Juan Quintela
  else
1789 788c8196 Juan Quintela
    if test "$curl" = "yes" ; then
1790 788c8196 Juan Quintela
      feature_not_found "curl"
1791 788c8196 Juan Quintela
    fi
1792 788c8196 Juan Quintela
    curl=no
1793 769ce76d Alexander Graf
  fi
1794 769ce76d Alexander Graf
fi # test "$curl"
1795 769ce76d Alexander Graf
1796 769ce76d Alexander Graf
##########################################
1797 5495ed11 Luiz Capitulino
# check framework probe
1798 5495ed11 Luiz Capitulino
1799 5495ed11 Luiz Capitulino
if test "$check_utests" != "no" ; then
1800 5495ed11 Luiz Capitulino
  cat > $TMPC << EOF
1801 5495ed11 Luiz Capitulino
#include <check.h>
1802 5495ed11 Luiz Capitulino
int main(void) { suite_create("qemu test"); return 0; }
1803 5495ed11 Luiz Capitulino
EOF
1804 a8bd70ad Paolo Bonzini
  check_libs=`$pkg_config --libs check`
1805 5495ed11 Luiz Capitulino
  if compile_prog "" $check_libs ; then
1806 5495ed11 Luiz Capitulino
    check_utests=yes
1807 5495ed11 Luiz Capitulino
    libs_tools="$check_libs $libs_tools"
1808 5495ed11 Luiz Capitulino
  else
1809 5495ed11 Luiz Capitulino
    if test "$check_utests" = "yes" ; then
1810 5495ed11 Luiz Capitulino
      feature_not_found "check"
1811 5495ed11 Luiz Capitulino
    fi
1812 5495ed11 Luiz Capitulino
    check_utests=no
1813 5495ed11 Luiz Capitulino
  fi
1814 5495ed11 Luiz Capitulino
fi # test "$check_utests"
1815 5495ed11 Luiz Capitulino
1816 5495ed11 Luiz Capitulino
##########################################
1817 fb599c9a balrog
# bluez support probe
1818 a20a6f46 Juan Quintela
if test "$bluez" != "no" ; then
1819 e820e3f4 balrog
  cat > $TMPC << EOF
1820 e820e3f4 balrog
#include <bluetooth/bluetooth.h>
1821 e820e3f4 balrog
int main(void) { return bt_error(0); }
1822 e820e3f4 balrog
EOF
1823 a8bd70ad Paolo Bonzini
  bluez_cflags=`$pkg_config --cflags bluez 2> /dev/null`
1824 a8bd70ad Paolo Bonzini
  bluez_libs=`$pkg_config --libs bluez 2> /dev/null`
1825 52166aa0 Juan Quintela
  if compile_prog "$bluez_cflags" "$bluez_libs" ; then
1826 a20a6f46 Juan Quintela
    bluez=yes
1827 e482d56a Juan Quintela
    libs_softmmu="$bluez_libs $libs_softmmu"
1828 e820e3f4 balrog
  else
1829 a20a6f46 Juan Quintela
    if test "$bluez" = "yes" ; then
1830 a20a6f46 Juan Quintela
      feature_not_found "bluez"
1831 a20a6f46 Juan Quintela
    fi
1832 e820e3f4 balrog
    bluez="no"
1833 e820e3f4 balrog
  fi
1834 fb599c9a balrog
fi
1835 fb599c9a balrog
1836 fb599c9a balrog
##########################################
1837 e18df141 Anthony Liguori
# glib support probe
1838 1fc7bd4a Anthony Liguori
if $pkg_config --modversion glib-2.0 > /dev/null 2>&1 ; then
1839 1fc7bd4a Anthony Liguori
    glib_cflags=`$pkg_config --cflags glib-2.0 2>/dev/null`
1840 1fc7bd4a Anthony Liguori
    glib_libs=`$pkg_config --libs glib-2.0 2>/dev/null`
1841 e18df141 Anthony Liguori
    libs_softmmu="$glib_libs $libs_softmmu"
1842 e18df141 Anthony Liguori
    libs_tools="$glib_libs $libs_tools"
1843 e18df141 Anthony Liguori
else
1844 e18df141 Anthony Liguori
    echo "glib-2.0 required to compile QEMU"
1845 e18df141 Anthony Liguori
    exit 1
1846 e18df141 Anthony Liguori
fi
1847 e18df141 Anthony Liguori
1848 e18df141 Anthony Liguori
##########################################
1849 e5d355d1 aliguori
# pthread probe
1850 de65fe0f Sebastian Herbszt
PTHREADLIBS_LIST="-lpthread -lpthreadGC2"
1851 3c529d93 aliguori
1852 4dd75c70 Christoph Hellwig
pthread=no
1853 e5d355d1 aliguori
cat > $TMPC << EOF
1854 3c529d93 aliguori
#include <pthread.h>
1855 de65fe0f Sebastian Herbszt
int main(void) { pthread_create(0,0,0,0); return 0; }
1856 414f0dab blueswir1
EOF
1857 bd00d539 Andreas Färber
if compile_prog "" "" ; then
1858 bd00d539 Andreas Färber
  pthread=yes
1859 bd00d539 Andreas Färber
else
1860 bd00d539 Andreas Färber
  for pthread_lib in $PTHREADLIBS_LIST; do
1861 bd00d539 Andreas Färber
    if compile_prog "" "$pthread_lib" ; then
1862 bd00d539 Andreas Färber
      pthread=yes
1863 bd00d539 Andreas Färber
      LIBS="$pthread_lib $LIBS"
1864 bd00d539 Andreas Färber
      break
1865 bd00d539 Andreas Färber
    fi
1866 bd00d539 Andreas Färber
  done
1867 bd00d539 Andreas Färber
fi
1868 414f0dab blueswir1
1869 4617e593 Anthony Liguori
if test "$mingw32" != yes -a "$pthread" = no; then
1870 4dd75c70 Christoph Hellwig
  echo
1871 4dd75c70 Christoph Hellwig
  echo "Error: pthread check failed"
1872 4dd75c70 Christoph Hellwig
  echo "Make sure to have the pthread libs and headers installed."
1873 4dd75c70 Christoph Hellwig
  echo
1874 4dd75c70 Christoph Hellwig
  exit 1
1875 e5d355d1 aliguori
fi
1876 e5d355d1 aliguori
1877 bf9298b9 aliguori
##########################################
1878 f27aaf4b Christian Brunner
# rbd probe
1879 f27aaf4b Christian Brunner
if test "$rbd" != "no" ; then
1880 f27aaf4b Christian Brunner
  cat > $TMPC <<EOF
1881 f27aaf4b Christian Brunner
#include <stdio.h>
1882 ad32e9c0 Josh Durgin
#include <rbd/librbd.h>
1883 f27aaf4b Christian Brunner
int main(void) {
1884 ad32e9c0 Josh Durgin
    rados_t cluster;
1885 ad32e9c0 Josh Durgin
    rados_create(&cluster, NULL);
1886 f27aaf4b Christian Brunner
    return 0;
1887 f27aaf4b Christian Brunner
}
1888 f27aaf4b Christian Brunner
EOF
1889 ad32e9c0 Josh Durgin
  rbd_libs="-lrbd -lrados"
1890 ad32e9c0 Josh Durgin
  if compile_prog "" "$rbd_libs" ; then
1891 ad32e9c0 Josh Durgin
    rbd=yes
1892 ad32e9c0 Josh Durgin
    libs_tools="$rbd_libs $libs_tools"
1893 ad32e9c0 Josh Durgin
    libs_softmmu="$rbd_libs $libs_softmmu"
1894 f27aaf4b Christian Brunner
  else
1895 f27aaf4b Christian Brunner
    if test "$rbd" = "yes" ; then
1896 f27aaf4b Christian Brunner
      feature_not_found "rados block device"
1897 f27aaf4b Christian Brunner
    fi
1898 f27aaf4b Christian Brunner
    rbd=no
1899 f27aaf4b Christian Brunner
  fi
1900 f27aaf4b Christian Brunner
fi
1901 f27aaf4b Christian Brunner
1902 f27aaf4b Christian Brunner
##########################################
1903 5c6c3a6c Christoph Hellwig
# linux-aio probe
1904 5c6c3a6c Christoph Hellwig
1905 5c6c3a6c Christoph Hellwig
if test "$linux_aio" != "no" ; then
1906 5c6c3a6c Christoph Hellwig
  cat > $TMPC <<EOF
1907 5c6c3a6c Christoph Hellwig
#include <libaio.h>
1908 5c6c3a6c Christoph Hellwig
#include <sys/eventfd.h>
1909 832ce9c2 Scott Wood
#include <stddef.h>
1910 5c6c3a6c Christoph Hellwig
int main(void) { io_setup(0, NULL); io_set_eventfd(NULL, 0); eventfd(0, 0); return 0; }
1911 5c6c3a6c Christoph Hellwig
EOF
1912 5c6c3a6c Christoph Hellwig
  if compile_prog "" "-laio" ; then
1913 5c6c3a6c Christoph Hellwig
    linux_aio=yes
1914 048d179f Paul Brook
    libs_softmmu="$libs_softmmu -laio"
1915 048d179f Paul Brook
    libs_tools="$libs_tools -laio"
1916 5c6c3a6c Christoph Hellwig
  else
1917 5c6c3a6c Christoph Hellwig
    if test "$linux_aio" = "yes" ; then
1918 5c6c3a6c Christoph Hellwig
      feature_not_found "linux AIO"
1919 5c6c3a6c Christoph Hellwig
    fi
1920 3cfcae3c Luiz Capitulino
    linux_aio=no
1921 5c6c3a6c Christoph Hellwig
  fi
1922 5c6c3a6c Christoph Hellwig
fi
1923 5c6c3a6c Christoph Hellwig
1924 5c6c3a6c Christoph Hellwig
##########################################
1925 758e8e38 Venkateswararao Jujjuri (JV)
# attr probe
1926 758e8e38 Venkateswararao Jujjuri (JV)
1927 758e8e38 Venkateswararao Jujjuri (JV)
if test "$attr" != "no" ; then
1928 758e8e38 Venkateswararao Jujjuri (JV)
  cat > $TMPC <<EOF
1929 758e8e38 Venkateswararao Jujjuri (JV)
#include <stdio.h>
1930 758e8e38 Venkateswararao Jujjuri (JV)
#include <sys/types.h>
1931 758e8e38 Venkateswararao Jujjuri (JV)
#include <attr/xattr.h>
1932 758e8e38 Venkateswararao Jujjuri (JV)
int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; }
1933 758e8e38 Venkateswararao Jujjuri (JV)
EOF
1934 758e8e38 Venkateswararao Jujjuri (JV)
  if compile_prog "" "-lattr" ; then
1935 758e8e38 Venkateswararao Jujjuri (JV)
    attr=yes
1936 758e8e38 Venkateswararao Jujjuri (JV)
    LIBS="-lattr $LIBS"
1937 758e8e38 Venkateswararao Jujjuri (JV)
  else
1938 758e8e38 Venkateswararao Jujjuri (JV)
    if test "$attr" = "yes" ; then
1939 758e8e38 Venkateswararao Jujjuri (JV)
      feature_not_found "ATTR"
1940 758e8e38 Venkateswararao Jujjuri (JV)
    fi
1941 758e8e38 Venkateswararao Jujjuri (JV)
    attr=no
1942 758e8e38 Venkateswararao Jujjuri (JV)
  fi
1943 758e8e38 Venkateswararao Jujjuri (JV)
fi
1944 758e8e38 Venkateswararao Jujjuri (JV)
1945 758e8e38 Venkateswararao Jujjuri (JV)
##########################################
1946 bf9298b9 aliguori
# iovec probe
1947 bf9298b9 aliguori
cat > $TMPC <<EOF
1948 db34f0b3 blueswir1
#include <sys/types.h>
1949 bf9298b9 aliguori
#include <sys/uio.h>
1950 db34f0b3 blueswir1
#include <unistd.h>
1951 bf9298b9 aliguori
int main(void) { struct iovec iov; return 0; }
1952 bf9298b9 aliguori
EOF
1953 bf9298b9 aliguori
iovec=no
1954 52166aa0 Juan Quintela
if compile_prog "" "" ; then
1955 bf9298b9 aliguori
  iovec=yes
1956 bf9298b9 aliguori
fi
1957 bf9298b9 aliguori
1958 f652e6af aurel32
##########################################
1959 ceb42de8 aliguori
# preadv probe
1960 ceb42de8 aliguori
cat > $TMPC <<EOF
1961 ceb42de8 aliguori
#include <sys/types.h>
1962 ceb42de8 aliguori
#include <sys/uio.h>
1963 ceb42de8 aliguori
#include <unistd.h>
1964 ceb42de8 aliguori
int main(void) { preadv; }
1965 ceb42de8 aliguori
EOF
1966 ceb42de8 aliguori
preadv=no
1967 52166aa0 Juan Quintela
if compile_prog "" "" ; then
1968 ceb42de8 aliguori
  preadv=yes
1969 ceb42de8 aliguori
fi
1970 ceb42de8 aliguori
1971 ceb42de8 aliguori
##########################################
1972 f652e6af aurel32
# fdt probe
1973 2df87df7 Juan Quintela
if test "$fdt" != "no" ; then
1974 b41af4ba Juan Quintela
  fdt_libs="-lfdt"
1975 b41af4ba Juan Quintela
  cat > $TMPC << EOF
1976 f652e6af aurel32
int main(void) { return 0; }
1977 f652e6af aurel32
EOF
1978 52166aa0 Juan Quintela
  if compile_prog "" "$fdt_libs" ; then
1979 f652e6af aurel32
    fdt=yes
1980 2df87df7 Juan Quintela
  else
1981 2df87df7 Juan Quintela
    if test "$fdt" = "yes" ; then
1982 2df87df7 Juan Quintela
      feature_not_found "fdt"
1983 2df87df7 Juan Quintela
    fi
1984 de3a354a Michael Walle
    fdt_libs=
1985 2df87df7 Juan Quintela
    fdt=no
1986 f652e6af aurel32
  fi
1987 f652e6af aurel32
fi
1988 f652e6af aurel32
1989 20ff075b Michael Walle
##########################################
1990 20ff075b Michael Walle
# opengl probe, used by milkymist-tmu2
1991 20ff075b Michael Walle
if test "$opengl" != "no" ; then
1992 20ff075b Michael Walle
  opengl_libs="-lGL"
1993 20ff075b Michael Walle
  cat > $TMPC << EOF
1994 20ff075b Michael Walle
#include <X11/Xlib.h>
1995 20ff075b Michael Walle
#include <GL/gl.h>
1996 20ff075b Michael Walle
#include <GL/glx.h>
1997 20ff075b Michael Walle
int main(void) { GL_VERSION; return 0; }
1998 20ff075b Michael Walle
EOF
1999 20ff075b Michael Walle
  if compile_prog "" "-lGL" ; then
2000 20ff075b Michael Walle
    opengl=yes
2001 20ff075b Michael Walle
  else
2002 20ff075b Michael Walle
    if test "$opengl" = "yes" ; then
2003 20ff075b Michael Walle
      feature_not_found "opengl"
2004 20ff075b Michael Walle
    fi
2005 de3a354a Michael Walle
    opengl_libs=
2006 20ff075b Michael Walle
    opengl=no
2007 20ff075b Michael Walle
  fi
2008 20ff075b Michael Walle
fi
2009 20ff075b Michael Walle
2010 3b3f24ad aurel32
#
2011 3b3f24ad aurel32
# Check for xxxat() functions when we are building linux-user
2012 3b3f24ad aurel32
# emulator.  This is done because older glibc versions don't
2013 3b3f24ad aurel32
# have syscall stubs for these implemented.
2014 3b3f24ad aurel32
#
2015 3b3f24ad aurel32
atfile=no
2016 67ba57f6 Riku Voipio
cat > $TMPC << EOF
2017 3b3f24ad aurel32
#define _ATFILE_SOURCE
2018 3b3f24ad aurel32
#include <sys/types.h>
2019 3b3f24ad aurel32
#include <fcntl.h>
2020 3b3f24ad aurel32
#include <unistd.h>
2021 3b3f24ad aurel32
2022 3b3f24ad aurel32
int
2023 3b3f24ad aurel32
main(void)
2024 3b3f24ad aurel32
{
2025 3b3f24ad aurel32
	/* try to unlink nonexisting file */
2026 3b3f24ad aurel32
	return (unlinkat(AT_FDCWD, "nonexistent_file", 0));
2027 3b3f24ad aurel32
}
2028 3b3f24ad aurel32
EOF
2029 52166aa0 Juan Quintela
if compile_prog "" "" ; then
2030 67ba57f6 Riku Voipio
  atfile=yes
2031 3b3f24ad aurel32
fi
2032 3b3f24ad aurel32
2033 39386ac7 aurel32
# Check for inotify functions when we are building linux-user
2034 3b3f24ad aurel32
# emulator.  This is done because older glibc versions don't
2035 3b3f24ad aurel32
# have syscall stubs for these implemented.  In that case we
2036 3b3f24ad aurel32
# don't provide them even if kernel supports them.
2037 3b3f24ad aurel32
#
2038 3b3f24ad aurel32
inotify=no
2039 67ba57f6 Riku Voipio
cat > $TMPC << EOF
2040 3b3f24ad aurel32
#include <sys/inotify.h>
2041 3b3f24ad aurel32
2042 3b3f24ad aurel32
int
2043 3b3f24ad aurel32
main(void)
2044 3b3f24ad aurel32
{
2045 3b3f24ad aurel32
	/* try to start inotify */
2046 8690e420 aurel32
	return inotify_init();
2047 3b3f24ad aurel32
}
2048 3b3f24ad aurel32
EOF
2049 52166aa0 Juan Quintela
if compile_prog "" "" ; then
2050 67ba57f6 Riku Voipio
  inotify=yes
2051 3b3f24ad aurel32
fi
2052 3b3f24ad aurel32
2053 c05c7a73 Riku Voipio
inotify1=no
2054 c05c7a73 Riku Voipio
cat > $TMPC << EOF
2055 c05c7a73 Riku Voipio
#include <sys/inotify.h>
2056 c05c7a73 Riku Voipio
2057 c05c7a73 Riku Voipio
int
2058 c05c7a73 Riku Voipio
main(void)
2059 c05c7a73 Riku Voipio
{
2060 c05c7a73 Riku Voipio
    /* try to start inotify */
2061 c05c7a73 Riku Voipio
    return inotify_init1(0);
2062 c05c7a73 Riku Voipio
}
2063 c05c7a73 Riku Voipio
EOF
2064 c05c7a73 Riku Voipio
if compile_prog "" "" ; then
2065 c05c7a73 Riku Voipio
  inotify1=yes
2066 c05c7a73 Riku Voipio
fi
2067 c05c7a73 Riku Voipio
2068 ebc996f3 Riku Voipio
# check if utimensat and futimens are supported
2069 ebc996f3 Riku Voipio
utimens=no
2070 ebc996f3 Riku Voipio
cat > $TMPC << EOF
2071 ebc996f3 Riku Voipio
#define _ATFILE_SOURCE
2072 ebc996f3 Riku Voipio
#include <stddef.h>
2073 ebc996f3 Riku Voipio
#include <fcntl.h>
2074 ebc996f3 Riku Voipio
2075 ebc996f3 Riku Voipio
int main(void)
2076 ebc996f3 Riku Voipio
{
2077 ebc996f3 Riku Voipio
    utimensat(AT_FDCWD, "foo", NULL, 0);
2078 ebc996f3 Riku Voipio
    futimens(0, NULL);
2079 ebc996f3 Riku Voipio
    return 0;
2080 ebc996f3 Riku Voipio
}
2081 ebc996f3 Riku Voipio
EOF
2082 52166aa0 Juan Quintela
if compile_prog "" "" ; then
2083 ebc996f3 Riku Voipio
  utimens=yes
2084 ebc996f3 Riku Voipio
fi
2085 ebc996f3 Riku Voipio
2086 099d6b0f Riku Voipio
# check if pipe2 is there
2087 099d6b0f Riku Voipio
pipe2=no
2088 099d6b0f Riku Voipio
cat > $TMPC << EOF
2089 099d6b0f Riku Voipio
#include <unistd.h>
2090 099d6b0f Riku Voipio
#include <fcntl.h>
2091 099d6b0f Riku Voipio
2092 099d6b0f Riku Voipio
int main(void)
2093 099d6b0f Riku Voipio
{
2094 099d6b0f Riku Voipio
    int pipefd[2];
2095 099d6b0f Riku Voipio
    pipe2(pipefd, O_CLOEXEC);
2096 099d6b0f Riku Voipio
    return 0;
2097 099d6b0f Riku Voipio
}
2098 099d6b0f Riku Voipio
EOF
2099 52166aa0 Juan Quintela
if compile_prog "" "" ; then
2100 099d6b0f Riku Voipio
  pipe2=yes
2101 099d6b0f Riku Voipio
fi
2102 099d6b0f Riku Voipio
2103 40ff6d7e Kevin Wolf
# check if accept4 is there
2104 40ff6d7e Kevin Wolf
accept4=no
2105 40ff6d7e Kevin Wolf
cat > $TMPC << EOF
2106 40ff6d7e Kevin Wolf
#include <sys/socket.h>
2107 40ff6d7e Kevin Wolf
#include <stddef.h>
2108 40ff6d7e Kevin Wolf
2109 40ff6d7e Kevin Wolf
int main(void)
2110 40ff6d7e Kevin Wolf
{
2111 40ff6d7e Kevin Wolf
    accept4(0, NULL, NULL, SOCK_CLOEXEC);
2112 40ff6d7e Kevin Wolf
    return 0;
2113 40ff6d7e Kevin Wolf
}
2114 40ff6d7e Kevin Wolf
EOF
2115 40ff6d7e Kevin Wolf
if compile_prog "" "" ; then
2116 40ff6d7e Kevin Wolf
  accept4=yes
2117 40ff6d7e Kevin Wolf
fi
2118 40ff6d7e Kevin Wolf
2119 3ce34dfb vibisreenivasan
# check if tee/splice is there. vmsplice was added same time.
2120 3ce34dfb vibisreenivasan
splice=no
2121 3ce34dfb vibisreenivasan
cat > $TMPC << EOF
2122 3ce34dfb vibisreenivasan
#include <unistd.h>
2123 3ce34dfb vibisreenivasan
#include <fcntl.h>
2124 3ce34dfb vibisreenivasan
#include <limits.h>
2125 3ce34dfb vibisreenivasan
2126 3ce34dfb vibisreenivasan
int main(void)
2127 3ce34dfb vibisreenivasan
{
2128 3ce34dfb vibisreenivasan
    int len, fd;
2129 3ce34dfb vibisreenivasan
    len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK);
2130 3ce34dfb vibisreenivasan
    splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE);
2131 3ce34dfb vibisreenivasan
    return 0;
2132 3ce34dfb vibisreenivasan
}
2133 3ce34dfb vibisreenivasan
EOF
2134 52166aa0 Juan Quintela
if compile_prog "" "" ; then
2135 3ce34dfb vibisreenivasan
  splice=yes
2136 3ce34dfb vibisreenivasan
fi
2137 3ce34dfb vibisreenivasan
2138 dcc38d1c Marcelo Tosatti
##########################################
2139 dcc38d1c Marcelo Tosatti
# signalfd probe
2140 dcc38d1c Marcelo Tosatti
signalfd="no"
2141 dcc38d1c Marcelo Tosatti
cat > $TMPC << EOF
2142 dcc38d1c Marcelo Tosatti
#define _GNU_SOURCE
2143 dcc38d1c Marcelo Tosatti
#include <unistd.h>
2144 dcc38d1c Marcelo Tosatti
#include <sys/syscall.h>
2145 dcc38d1c Marcelo Tosatti
#include <signal.h>
2146 dcc38d1c Marcelo Tosatti
int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
2147 dcc38d1c Marcelo Tosatti
EOF
2148 dcc38d1c Marcelo Tosatti
2149 dcc38d1c Marcelo Tosatti
if compile_prog "" "" ; then
2150 dcc38d1c Marcelo Tosatti
  signalfd=yes
2151 de758970 Jan Kiszka
elif test "$kvm" = "yes" -a "$io_thread" != "yes"; then
2152 de758970 Jan Kiszka
  echo
2153 de758970 Jan Kiszka
  echo "ERROR: Host kernel lacks signalfd() support,"
2154 de758970 Jan Kiszka
  echo "but KVM depends on it when the IO thread is disabled."
2155 de758970 Jan Kiszka
  echo
2156 de758970 Jan Kiszka
  exit 1
2157 dcc38d1c Marcelo Tosatti
fi
2158 dcc38d1c Marcelo Tosatti
2159 c2882b96 Riku Voipio
# check if eventfd is supported
2160 c2882b96 Riku Voipio
eventfd=no
2161 c2882b96 Riku Voipio
cat > $TMPC << EOF
2162 c2882b96 Riku Voipio
#include <sys/eventfd.h>
2163 c2882b96 Riku Voipio
2164 c2882b96 Riku Voipio
int main(void)
2165 c2882b96 Riku Voipio
{
2166 c2882b96 Riku Voipio
    int efd = eventfd(0, 0);
2167 c2882b96 Riku Voipio
    return 0;
2168 c2882b96 Riku Voipio
}
2169 c2882b96 Riku Voipio
EOF
2170 c2882b96 Riku Voipio
if compile_prog "" "" ; then
2171 c2882b96 Riku Voipio
  eventfd=yes
2172 c2882b96 Riku Voipio
fi
2173 c2882b96 Riku Voipio
2174 d0927938 Ulrich Hecht
# check for fallocate
2175 d0927938 Ulrich Hecht
fallocate=no
2176 d0927938 Ulrich Hecht
cat > $TMPC << EOF
2177 d0927938 Ulrich Hecht
#include <fcntl.h>
2178 d0927938 Ulrich Hecht
2179 d0927938 Ulrich Hecht
int main(void)
2180 d0927938 Ulrich Hecht
{
2181 d0927938 Ulrich Hecht
    fallocate(0, 0, 0, 0);
2182 d0927938 Ulrich Hecht
    return 0;
2183 d0927938 Ulrich Hecht
}
2184 d0927938 Ulrich Hecht
EOF
2185 be17dc90 Michael S. Tsirkin
if compile_prog "$ARCH_CFLAGS" "" ; then
2186 d0927938 Ulrich Hecht
  fallocate=yes
2187 d0927938 Ulrich Hecht
fi
2188 d0927938 Ulrich Hecht
2189 c727f47d Peter Maydell
# check for sync_file_range
2190 c727f47d Peter Maydell
sync_file_range=no
2191 c727f47d Peter Maydell
cat > $TMPC << EOF
2192 c727f47d Peter Maydell
#include <fcntl.h>
2193 c727f47d Peter Maydell
2194 c727f47d Peter Maydell
int main(void)
2195 c727f47d Peter Maydell
{
2196 c727f47d Peter Maydell
    sync_file_range(0, 0, 0, 0);
2197 c727f47d Peter Maydell
    return 0;
2198 c727f47d Peter Maydell
}
2199 c727f47d Peter Maydell
EOF
2200 c727f47d Peter Maydell
if compile_prog "$ARCH_CFLAGS" "" ; then
2201 c727f47d Peter Maydell
  sync_file_range=yes
2202 c727f47d Peter Maydell
fi
2203 c727f47d Peter Maydell
2204 dace20dc Peter Maydell
# check for linux/fiemap.h and FS_IOC_FIEMAP
2205 dace20dc Peter Maydell
fiemap=no
2206 dace20dc Peter Maydell
cat > $TMPC << EOF
2207 dace20dc Peter Maydell
#include <sys/ioctl.h>
2208 dace20dc Peter Maydell
#include <linux/fs.h>
2209 dace20dc Peter Maydell
#include <linux/fiemap.h>
2210 dace20dc Peter Maydell
2211 dace20dc Peter Maydell
int main(void)
2212 dace20dc Peter Maydell
{
2213 dace20dc Peter Maydell
    ioctl(0, FS_IOC_FIEMAP, 0);
2214 dace20dc Peter Maydell
    return 0;
2215 dace20dc Peter Maydell
}
2216 dace20dc Peter Maydell
EOF
2217 dace20dc Peter Maydell
if compile_prog "$ARCH_CFLAGS" "" ; then
2218 dace20dc Peter Maydell
  fiemap=yes
2219 dace20dc Peter Maydell
fi
2220 dace20dc Peter Maydell
2221 d0927938 Ulrich Hecht
# check for dup3
2222 d0927938 Ulrich Hecht
dup3=no
2223 d0927938 Ulrich Hecht
cat > $TMPC << EOF
2224 d0927938 Ulrich Hecht
#include <unistd.h>
2225 d0927938 Ulrich Hecht
2226 d0927938 Ulrich Hecht
int main(void)
2227 d0927938 Ulrich Hecht
{
2228 d0927938 Ulrich Hecht
    dup3(0, 0, 0);
2229 d0927938 Ulrich Hecht
    return 0;
2230 d0927938 Ulrich Hecht
}
2231 d0927938 Ulrich Hecht
EOF
2232 78f5d726 Jan Kiszka
if compile_prog "" "" ; then
2233 d0927938 Ulrich Hecht
  dup3=yes
2234 d0927938 Ulrich Hecht
fi
2235 d0927938 Ulrich Hecht
2236 3b6edd16 Peter Maydell
# check for epoll support
2237 3b6edd16 Peter Maydell
epoll=no
2238 3b6edd16 Peter Maydell
cat > $TMPC << EOF
2239 3b6edd16 Peter Maydell
#include <sys/epoll.h>
2240 3b6edd16 Peter Maydell
2241 3b6edd16 Peter Maydell
int main(void)
2242 3b6edd16 Peter Maydell
{
2243 3b6edd16 Peter Maydell
    epoll_create(0);
2244 3b6edd16 Peter Maydell
    return 0;
2245 3b6edd16 Peter Maydell
}
2246 3b6edd16 Peter Maydell
EOF
2247 3b6edd16 Peter Maydell
if compile_prog "$ARCH_CFLAGS" "" ; then
2248 3b6edd16 Peter Maydell
  epoll=yes
2249 3b6edd16 Peter Maydell
fi
2250 3b6edd16 Peter Maydell
2251 3b6edd16 Peter Maydell
# epoll_create1 and epoll_pwait are later additions
2252 3b6edd16 Peter Maydell
# so we must check separately for their presence
2253 3b6edd16 Peter Maydell
epoll_create1=no
2254 3b6edd16 Peter Maydell
cat > $TMPC << EOF
2255 3b6edd16 Peter Maydell
#include <sys/epoll.h>
2256 3b6edd16 Peter Maydell
2257 3b6edd16 Peter Maydell
int main(void)
2258 3b6edd16 Peter Maydell
{
2259 19e83f6b Peter Maydell
    /* Note that we use epoll_create1 as a value, not as
2260 19e83f6b Peter Maydell
     * a function being called. This is necessary so that on
2261 19e83f6b Peter Maydell
     * old SPARC glibc versions where the function was present in
2262 19e83f6b Peter Maydell
     * the library but not declared in the header file we will
2263 19e83f6b Peter Maydell
     * fail the configure check. (Otherwise we will get a compiler
2264 19e83f6b Peter Maydell
     * warning but not an error, and will proceed to fail the
2265 19e83f6b Peter Maydell
     * qemu compile where we compile with -Werror.)
2266 19e83f6b Peter Maydell
     */
2267 19e83f6b Peter Maydell
    epoll_create1;
2268 3b6edd16 Peter Maydell
    return 0;
2269 3b6edd16 Peter Maydell
}
2270 3b6edd16 Peter Maydell
EOF
2271 3b6edd16 Peter Maydell
if compile_prog "$ARCH_CFLAGS" "" ; then
2272 3b6edd16 Peter Maydell
  epoll_create1=yes
2273 3b6edd16 Peter Maydell
fi
2274 3b6edd16 Peter Maydell
2275 3b6edd16 Peter Maydell
epoll_pwait=no
2276 3b6edd16 Peter Maydell
cat > $TMPC << EOF
2277 3b6edd16 Peter Maydell
#include <sys/epoll.h>
2278 3b6edd16 Peter Maydell
2279 3b6edd16 Peter Maydell
int main(void)
2280 3b6edd16 Peter Maydell
{
2281 3b6edd16 Peter Maydell
    epoll_pwait(0, 0, 0, 0, 0);
2282 3b6edd16 Peter Maydell
    return 0;
2283 3b6edd16 Peter Maydell
}
2284 3b6edd16 Peter Maydell
EOF
2285 3b6edd16 Peter Maydell
if compile_prog "$ARCH_CFLAGS" "" ; then
2286 3b6edd16 Peter Maydell
  epoll_pwait=yes
2287 3b6edd16 Peter Maydell
fi
2288 3b6edd16 Peter Maydell
2289 cc8ae6de pbrook
# Check if tools are available to build documentation.
2290 a25dba17 Juan Quintela
if test "$docs" != "no" ; then
2291 01668d98 Stefan Weil
  if has makeinfo && has pod2man; then
2292 a25dba17 Juan Quintela
    docs=yes
2293 83a3ab8b Juan Quintela
  else
2294 a25dba17 Juan Quintela
    if test "$docs" = "yes" ; then
2295 a25dba17 Juan Quintela
      feature_not_found "docs"
2296 83a3ab8b Juan Quintela
    fi
2297 a25dba17 Juan Quintela
    docs=no
2298 83a3ab8b Juan Quintela
  fi
2299 cc8ae6de pbrook
fi
2300 cc8ae6de pbrook
2301 f514f41c Stefan Weil
# Search for bswap_32 function
2302 6ae9a1f4 Juan Quintela
byteswap_h=no
2303 6ae9a1f4 Juan Quintela
cat > $TMPC << EOF
2304 6ae9a1f4 Juan Quintela
#include <byteswap.h>
2305 6ae9a1f4 Juan Quintela
int main(void) { return bswap_32(0); }
2306 6ae9a1f4 Juan Quintela
EOF
2307 52166aa0 Juan Quintela
if compile_prog "" "" ; then
2308 6ae9a1f4 Juan Quintela
  byteswap_h=yes
2309 6ae9a1f4 Juan Quintela
fi
2310 6ae9a1f4 Juan Quintela
2311 f514f41c Stefan Weil
# Search for bswap_32 function
2312 6ae9a1f4 Juan Quintela
bswap_h=no
2313 6ae9a1f4 Juan Quintela
cat > $TMPC << EOF
2314 6ae9a1f4 Juan Quintela
#include <sys/endian.h>
2315 6ae9a1f4 Juan Quintela
#include <sys/types.h>
2316 6ae9a1f4 Juan Quintela
#include <machine/bswap.h>
2317 6ae9a1f4 Juan Quintela
int main(void) { return bswap32(0); }
2318 6ae9a1f4 Juan Quintela
EOF
2319 52166aa0 Juan Quintela
if compile_prog "" "" ; then
2320 6ae9a1f4 Juan Quintela
  bswap_h=yes
2321 6ae9a1f4 Juan Quintela
fi
2322 6ae9a1f4 Juan Quintela
2323 da93a1fd aliguori
##########################################
2324 da93a1fd aliguori
# Do we need librt
2325 da93a1fd aliguori
cat > $TMPC <<EOF
2326 da93a1fd aliguori
#include <signal.h>
2327 da93a1fd aliguori
#include <time.h>
2328 da93a1fd aliguori
int main(void) { clockid_t id; return clock_gettime(id, NULL); }
2329 da93a1fd aliguori
EOF
2330 da93a1fd aliguori
2331 52166aa0 Juan Quintela
if compile_prog "" "" ; then
2332 07ffa4bd Juan Quintela
  :
2333 52166aa0 Juan Quintela
elif compile_prog "" "-lrt" ; then
2334 07ffa4bd Juan Quintela
  LIBS="-lrt $LIBS"
2335 da93a1fd aliguori
fi
2336 da93a1fd aliguori
2337 31ff504d Blue Swirl
if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \
2338 179cf400 Andreas Färber
        "$aix" != "yes" -a "$haiku" != "yes" ; then
2339 6362a53f Juan Quintela
    libs_softmmu="-lutil $libs_softmmu"
2340 6362a53f Juan Quintela
fi
2341 6362a53f Juan Quintela
2342 de5071c5 Blue Swirl
##########################################
2343 de5071c5 Blue Swirl
# check if the compiler defines offsetof
2344 de5071c5 Blue Swirl
2345 de5071c5 Blue Swirl
need_offsetof=yes
2346 de5071c5 Blue Swirl
cat > $TMPC << EOF
2347 de5071c5 Blue Swirl
#include <stddef.h>
2348 de5071c5 Blue Swirl
int main(void) { struct s { int f; }; return offsetof(struct s, f); }
2349 de5071c5 Blue Swirl
EOF
2350 de5071c5 Blue Swirl
if compile_prog "" "" ; then
2351 de5071c5 Blue Swirl
    need_offsetof=no
2352 de5071c5 Blue Swirl
fi
2353 de5071c5 Blue Swirl
2354 5f6b9e8f Blue Swirl
##########################################
2355 747bbdf7 Blue Swirl
# check if the compiler understands attribute warn_unused_result
2356 747bbdf7 Blue Swirl
#
2357 747bbdf7 Blue Swirl
# This could be smarter, but gcc -Werror does not error out even when warning
2358 747bbdf7 Blue Swirl
# about attribute warn_unused_result
2359 747bbdf7 Blue Swirl
2360 747bbdf7 Blue Swirl
gcc_attribute_warn_unused_result=no
2361 747bbdf7 Blue Swirl
cat > $TMPC << EOF
2362 747bbdf7 Blue Swirl
#if defined(__GNUC__) && (__GNUC__ < 4) && defined(__GNUC_MINOR__) && (__GNUC__ < 4)
2363 747bbdf7 Blue Swirl
#error gcc 3.3 or older
2364 747bbdf7 Blue Swirl
#endif
2365 747bbdf7 Blue Swirl
int main(void) { return 0;}
2366 747bbdf7 Blue Swirl
EOF
2367 747bbdf7 Blue Swirl
if compile_prog "" ""; then
2368 747bbdf7 Blue Swirl
    gcc_attribute_warn_unused_result=yes
2369 747bbdf7 Blue Swirl
fi
2370 747bbdf7 Blue Swirl
2371 cd4ec0b4 Gerd Hoffmann
# spice probe
2372 cd4ec0b4 Gerd Hoffmann
if test "$spice" != "no" ; then
2373 cd4ec0b4 Gerd Hoffmann
  cat > $TMPC << EOF
2374 cd4ec0b4 Gerd Hoffmann
#include <spice.h>
2375 cd4ec0b4 Gerd Hoffmann
int main(void) { spice_server_new(); return 0; }
2376 cd4ec0b4 Gerd Hoffmann
EOF
2377 710fc4f5 Jiri Denemark
  spice_cflags=$($pkg_config --cflags spice-protocol spice-server 2>/dev/null)
2378 710fc4f5 Jiri Denemark
  spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null)
2379 012b80d3 Gerd Hoffmann
  if $pkg_config --atleast-version=0.6.0 spice-server >/dev/null 2>&1 && \
2380 cd4ec0b4 Gerd Hoffmann
     compile_prog "$spice_cflags" "$spice_libs" ; then
2381 cd4ec0b4 Gerd Hoffmann
    spice="yes"
2382 cd4ec0b4 Gerd Hoffmann
    libs_softmmu="$libs_softmmu $spice_libs"
2383 cd4ec0b4 Gerd Hoffmann
    QEMU_CFLAGS="$QEMU_CFLAGS $spice_cflags"
2384 cd4ec0b4 Gerd Hoffmann
  else
2385 cd4ec0b4 Gerd Hoffmann
    if test "$spice" = "yes" ; then
2386 cd4ec0b4 Gerd Hoffmann
      feature_not_found "spice"
2387 cd4ec0b4 Gerd Hoffmann
    fi
2388 cd4ec0b4 Gerd Hoffmann
    spice="no"
2389 cd4ec0b4 Gerd Hoffmann
  fi
2390 cd4ec0b4 Gerd Hoffmann
fi
2391 cd4ec0b4 Gerd Hoffmann
2392 111a38b0 Robert Relyea
# check for libcacard for smartcard support
2393 111a38b0 Robert Relyea
if test "$smartcard" != "no" ; then
2394 111a38b0 Robert Relyea
    smartcard="yes"
2395 111a38b0 Robert Relyea
    smartcard_cflags=""
2396 111a38b0 Robert Relyea
    # TODO - what's the minimal nss version we support?
2397 111a38b0 Robert Relyea
    if test "$smartcard_nss" != "no"; then
2398 111a38b0 Robert Relyea
        if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 ; then
2399 111a38b0 Robert Relyea
            smartcard_nss="yes"
2400 111a38b0 Robert Relyea
            smartcard_cflags="-I\$(SRC_PATH)/libcacard"
2401 111a38b0 Robert Relyea
            libcacard_libs=$($pkg_config --libs nss 2>/dev/null)
2402 111a38b0 Robert Relyea
            libcacard_cflags=$($pkg_config --cflags nss 2>/dev/null)
2403 111a38b0 Robert Relyea
            QEMU_CFLAGS="$QEMU_CFLAGS $smartcard_cflags $libcacard_cflags"
2404 111a38b0 Robert Relyea
            LIBS="$libcacard_libs $LIBS"
2405 111a38b0 Robert Relyea
        else
2406 111a38b0 Robert Relyea
            if test "$smartcard_nss" = "yes"; then
2407 111a38b0 Robert Relyea
                feature_not_found "nss"
2408 111a38b0 Robert Relyea
            fi
2409 111a38b0 Robert Relyea
            smartcard_nss="no"
2410 111a38b0 Robert Relyea
        fi
2411 111a38b0 Robert Relyea
    fi
2412 111a38b0 Robert Relyea
fi
2413 111a38b0 Robert Relyea
if test "$smartcard" = "no" ; then
2414 111a38b0 Robert Relyea
    smartcard_nss="no"
2415 111a38b0 Robert Relyea
fi
2416 111a38b0 Robert Relyea
2417 69354a83 Hans de Goede
# check for usbredirparser for usb network redirection support
2418 69354a83 Hans de Goede
if test "$usb_redir" != "no" ; then
2419 69354a83 Hans de Goede
    if $pkg_config libusbredirparser >/dev/null 2>&1 ; then
2420 69354a83 Hans de Goede
        usb_redir="yes"
2421 69354a83 Hans de Goede
        usb_redir_cflags=$($pkg_config --cflags libusbredirparser 2>/dev/null)
2422 69354a83 Hans de Goede
        usb_redir_libs=$($pkg_config --libs libusbredirparser 2>/dev/null)
2423 69354a83 Hans de Goede
        QEMU_CFLAGS="$QEMU_CFLAGS $usb_redir_cflags"
2424 69354a83 Hans de Goede
        LIBS="$LIBS $usb_redir_libs"
2425 69354a83 Hans de Goede
    else
2426 69354a83 Hans de Goede
        if test "$usb_redir" = "yes"; then
2427 69354a83 Hans de Goede
            feature_not_found "usb-redir"
2428 69354a83 Hans de Goede
        fi
2429 69354a83 Hans de Goede
        usb_redir="no"
2430 69354a83 Hans de Goede
    fi
2431 69354a83 Hans de Goede
fi
2432 69354a83 Hans de Goede
2433 cd4ec0b4 Gerd Hoffmann
##########################################
2434 cd4ec0b4 Gerd Hoffmann
2435 747bbdf7 Blue Swirl
##########################################
2436 5f6b9e8f Blue Swirl
# check if we have fdatasync
2437 5f6b9e8f Blue Swirl
2438 5f6b9e8f Blue Swirl
fdatasync=no
2439 5f6b9e8f Blue Swirl
cat > $TMPC << EOF
2440 5f6b9e8f Blue Swirl
#include <unistd.h>
2441 d1722a27 Alexandre Raymond
int main(void) {
2442 d1722a27 Alexandre Raymond
#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0
2443 d1722a27 Alexandre Raymond
return fdatasync(0);
2444 d1722a27 Alexandre Raymond
#else
2445 d1722a27 Alexandre Raymond
#abort Not supported
2446 d1722a27 Alexandre Raymond
#endif
2447 d1722a27 Alexandre Raymond
}
2448 5f6b9e8f Blue Swirl
EOF
2449 5f6b9e8f Blue Swirl
if compile_prog "" "" ; then
2450 5f6b9e8f Blue Swirl
    fdatasync=yes
2451 5f6b9e8f Blue Swirl
fi
2452 5f6b9e8f Blue Swirl
2453 94a420b1 Stefan Hajnoczi
##########################################
2454 e78815a5 Andreas Färber
# check if we have madvise
2455 e78815a5 Andreas Färber
2456 e78815a5 Andreas Färber
madvise=no
2457 e78815a5 Andreas Färber
cat > $TMPC << EOF
2458 e78815a5 Andreas Färber
#include <sys/types.h>
2459 e78815a5 Andreas Färber
#include <sys/mman.h>
2460 832ce9c2 Scott Wood
#include <stddef.h>
2461 e78815a5 Andreas Färber
int main(void) { return madvise(NULL, 0, MADV_DONTNEED); }
2462 e78815a5 Andreas Färber
EOF
2463 e78815a5 Andreas Färber
if compile_prog "" "" ; then
2464 e78815a5 Andreas Färber
    madvise=yes
2465 e78815a5 Andreas Färber
fi
2466 e78815a5 Andreas Färber
2467 e78815a5 Andreas Färber
##########################################
2468 e78815a5 Andreas Färber
# check if we have posix_madvise
2469 e78815a5 Andreas Färber
2470 e78815a5 Andreas Färber
posix_madvise=no
2471 e78815a5 Andreas Färber
cat > $TMPC << EOF
2472 e78815a5 Andreas Färber
#include <sys/mman.h>
2473 832ce9c2 Scott Wood
#include <stddef.h>
2474 e78815a5 Andreas Färber
int main(void) { return posix_madvise(NULL, 0, POSIX_MADV_DONTNEED); }
2475 e78815a5 Andreas Färber
EOF
2476 e78815a5 Andreas Färber
if compile_prog "" "" ; then
2477 e78815a5 Andreas Färber
    posix_madvise=yes
2478 e78815a5 Andreas Färber
fi
2479 e78815a5 Andreas Färber
2480 e78815a5 Andreas Färber
##########################################
2481 94a420b1 Stefan Hajnoczi
# check if trace backend exists
2482 94a420b1 Stefan Hajnoczi
2483 4c3b5a48 Blue Swirl
sh "$source_path/scripts/tracetool" "--$trace_backend" --check-backend > /dev/null 2> /dev/null
2484 94a420b1 Stefan Hajnoczi
if test "$?" -ne 0 ; then
2485 94a420b1 Stefan Hajnoczi
  echo
2486 94a420b1 Stefan Hajnoczi
  echo "Error: invalid trace backend"
2487 94a420b1 Stefan Hajnoczi
  echo "Please choose a supported trace backend."
2488 94a420b1 Stefan Hajnoczi
  echo
2489 94a420b1 Stefan Hajnoczi
  exit 1
2490 94a420b1 Stefan Hajnoczi
fi
2491 94a420b1 Stefan Hajnoczi
2492 7e24e92a Stefan Hajnoczi
##########################################
2493 7e24e92a Stefan Hajnoczi
# For 'ust' backend, test if ust headers are present
2494 7e24e92a Stefan Hajnoczi
if test "$trace_backend" = "ust"; then
2495 7e24e92a Stefan Hajnoczi
  cat > $TMPC << EOF
2496 7e24e92a Stefan Hajnoczi
#include <ust/tracepoint.h>
2497 7e24e92a Stefan Hajnoczi
#include <ust/marker.h>
2498 7e24e92a Stefan Hajnoczi
int main(void) { return 0; }
2499 7e24e92a Stefan Hajnoczi
EOF
2500 7e24e92a Stefan Hajnoczi
  if compile_prog "" "" ; then
2501 7e24e92a Stefan Hajnoczi
    LIBS="-lust $LIBS"
2502 7e24e92a Stefan Hajnoczi
  else
2503 7e24e92a Stefan Hajnoczi
    echo
2504 7e24e92a Stefan Hajnoczi
    echo "Error: Trace backend 'ust' missing libust header files"
2505 7e24e92a Stefan Hajnoczi
    echo
2506 7e24e92a Stefan Hajnoczi
    exit 1
2507 7e24e92a Stefan Hajnoczi
  fi
2508 7e24e92a Stefan Hajnoczi
fi
2509 b3d08c02 Daniel P. Berrange
2510 b3d08c02 Daniel P. Berrange
##########################################
2511 b3d08c02 Daniel P. Berrange
# For 'dtrace' backend, test if 'dtrace' command is present
2512 b3d08c02 Daniel P. Berrange
if test "$trace_backend" = "dtrace"; then
2513 b3d08c02 Daniel P. Berrange
  if ! has 'dtrace' ; then
2514 b3d08c02 Daniel P. Berrange
    echo
2515 b3d08c02 Daniel P. Berrange
    echo "Error: dtrace command is not found in PATH $PATH"
2516 b3d08c02 Daniel P. Berrange
    echo
2517 b3d08c02 Daniel P. Berrange
    exit 1
2518 b3d08c02 Daniel P. Berrange
  fi
2519 c276b17d Daniel P. Berrange
  trace_backend_stap="no"
2520 c276b17d Daniel P. Berrange
  if has 'stap' ; then
2521 c276b17d Daniel P. Berrange
    trace_backend_stap="yes"
2522 c276b17d Daniel P. Berrange
  fi
2523 b3d08c02 Daniel P. Berrange
fi
2524 b3d08c02 Daniel P. Berrange
2525 7e24e92a Stefan Hajnoczi
##########################################
2526 023367e6 Wolfgang Mauerer
# __sync_fetch_and_and requires at least -march=i486. Many toolchains
2527 023367e6 Wolfgang Mauerer
# use i686 as default anyway, but for those that don't, an explicit
2528 023367e6 Wolfgang Mauerer
# specification is necessary
2529 1ba16968 Stefan Weil
if test "$vhost_net" = "yes" && test "$cpu" = "i386"; then
2530 023367e6 Wolfgang Mauerer
  cat > $TMPC << EOF
2531 023367e6 Wolfgang Mauerer
int sfaa(unsigned *ptr)
2532 023367e6 Wolfgang Mauerer
{
2533 023367e6 Wolfgang Mauerer
  return __sync_fetch_and_and(ptr, 0);
2534 023367e6 Wolfgang Mauerer
}
2535 023367e6 Wolfgang Mauerer
2536 023367e6 Wolfgang Mauerer
int main(int argc, char **argv)
2537 023367e6 Wolfgang Mauerer
{
2538 023367e6 Wolfgang Mauerer
  int val = 42;
2539 023367e6 Wolfgang Mauerer
  sfaa(&val);
2540 023367e6 Wolfgang Mauerer
  return val;
2541 023367e6 Wolfgang Mauerer
}
2542 023367e6 Wolfgang Mauerer
EOF
2543 023367e6 Wolfgang Mauerer
  if ! compile_prog "" "" ; then
2544 023367e6 Wolfgang Mauerer
    CFLAGS+="-march=i486"
2545 023367e6 Wolfgang Mauerer
  fi
2546 023367e6 Wolfgang Mauerer
fi
2547 023367e6 Wolfgang Mauerer
2548 023367e6 Wolfgang Mauerer
##########################################
2549 e86ecd4b Juan Quintela
# End of CC checks
2550 e86ecd4b Juan Quintela
# After here, no more $cc or $ld runs
2551 e86ecd4b Juan Quintela
2552 e86ecd4b Juan Quintela
if test "$debug" = "no" ; then
2553 1156c669 Juan Quintela
  CFLAGS="-O2 $CFLAGS"
2554 e86ecd4b Juan Quintela
fi
2555 a316e378 Juan Quintela
2556 e86ecd4b Juan Quintela
# Consult white-list to determine whether to enable werror
2557 e86ecd4b Juan Quintela
# by default.  Only enable by default for git builds
2558 20ff6c80 Anthony Liguori
z_version=`cut -f3 -d. $source_path/VERSION`
2559 20ff6c80 Anthony Liguori
2560 e86ecd4b Juan Quintela
if test -z "$werror" ; then
2561 e86ecd4b Juan Quintela
    if test "$z_version" = "50" -a \
2562 e86ecd4b Juan Quintela
        "$linux" = "yes" ; then
2563 e86ecd4b Juan Quintela
        werror="yes"
2564 e86ecd4b Juan Quintela
    else
2565 e86ecd4b Juan Quintela
        werror="no"
2566 e86ecd4b Juan Quintela
    fi
2567 e86ecd4b Juan Quintela
fi
2568 e86ecd4b Juan Quintela
2569 20ff6c80 Anthony Liguori
# Disable zero malloc errors for official releases unless explicitly told to
2570 20ff6c80 Anthony Liguori
# enable/disable
2571 20ff6c80 Anthony Liguori
if test -z "$zero_malloc" ; then
2572 20ff6c80 Anthony Liguori
    if test "$z_version" = "50" ; then
2573 20ff6c80 Anthony Liguori
	zero_malloc="no"
2574 20ff6c80 Anthony Liguori
    else
2575 20ff6c80 Anthony Liguori
	zero_malloc="yes"
2576 20ff6c80 Anthony Liguori
    fi
2577 20ff6c80 Anthony Liguori
fi
2578 20ff6c80 Anthony Liguori
2579 e86ecd4b Juan Quintela
if test "$werror" = "yes" ; then
2580 a558ee17 Juan Quintela
    QEMU_CFLAGS="-Werror $QEMU_CFLAGS"
2581 e86ecd4b Juan Quintela
fi
2582 e86ecd4b Juan Quintela
2583 e86ecd4b Juan Quintela
if test "$solaris" = "no" ; then
2584 e86ecd4b Juan Quintela
    if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
2585 1156c669 Juan Quintela
        LDFLAGS="-Wl,--warn-common $LDFLAGS"
2586 e86ecd4b Juan Quintela
    fi
2587 e86ecd4b Juan Quintela
fi
2588 e86ecd4b Juan Quintela
2589 952afb71 Blue Swirl
# Use ASLR, no-SEH and DEP if available
2590 952afb71 Blue Swirl
if test "$mingw32" = "yes" ; then
2591 952afb71 Blue Swirl
    for flag in --dynamicbase --no-seh --nxcompat; do
2592 952afb71 Blue Swirl
        if $ld --help 2>/dev/null | grep ".$flag" >/dev/null 2>/dev/null ; then
2593 952afb71 Blue Swirl
            LDFLAGS="-Wl,$flag $LDFLAGS"
2594 952afb71 Blue Swirl
        fi
2595 952afb71 Blue Swirl
    done
2596 952afb71 Blue Swirl
fi
2597 952afb71 Blue Swirl
2598 190e9c59 Paolo Bonzini
confdir=$sysconfdir$confsuffix
2599 e7b45cc4 Paolo Bonzini
2600 ca35f780 Paolo Bonzini
tools=
2601 ca35f780 Paolo Bonzini
if test "$softmmu" = yes ; then
2602 ca35f780 Paolo Bonzini
  tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools"
2603 ca35f780 Paolo Bonzini
  if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then
2604 ca35f780 Paolo Bonzini
      tools="qemu-nbd\$(EXESUF) $tools"
2605 48ff7a62 Michael Roth
      tools="qemu-ga\$(EXESUF) $tools"
2606 ca35f780 Paolo Bonzini
    if [ "$check_utests" = "yes" ]; then
2607 ca35f780 Paolo Bonzini
      tools="check-qint check-qstring check-qdict check-qlist $tools"
2608 ca35f780 Paolo Bonzini
      tools="check-qfloat check-qjson $tools"
2609 ca35f780 Paolo Bonzini
    fi
2610 ca35f780 Paolo Bonzini
  fi
2611 ca35f780 Paolo Bonzini
fi
2612 ca35f780 Paolo Bonzini
2613 ca35f780 Paolo Bonzini
# Mac OS X ships with a broken assembler
2614 ca35f780 Paolo Bonzini
roms=
2615 ca35f780 Paolo Bonzini
if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \
2616 ca35f780 Paolo Bonzini
        "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \
2617 ca35f780 Paolo Bonzini
        "$softmmu" = yes ; then
2618 ca35f780 Paolo Bonzini
  roms="optionrom"
2619 ca35f780 Paolo Bonzini
fi
2620 d0384d1d Andreas Färber
if test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then
2621 39ac8455 David Gibson
  roms="$roms spapr-rtas"
2622 39ac8455 David Gibson
fi
2623 ca35f780 Paolo Bonzini
2624 43ce4dfe bellard
echo "Install prefix    $prefix"
2625 f2b9e1e3 Paolo Bonzini
echo "BIOS directory    `eval echo $datadir`"
2626 f2b9e1e3 Paolo Bonzini
echo "binary directory  `eval echo $bindir`"
2627 3aa5d2be Alon Levy
echo "library directory `eval echo $libdir`"
2628 0f94d6da Alon Levy
echo "include directory `eval echo $includedir`"
2629 1c0fd160 Aurelien Jarno
echo "config directory  `eval echo $sysconfdir`"
2630 11d9f695 bellard
if test "$mingw32" = "no" ; then
2631 f2b9e1e3 Paolo Bonzini
echo "Manual directory  `eval echo $mandir`"
2632 43ce4dfe bellard
echo "ELF interp prefix $interp_prefix"
2633 11d9f695 bellard
fi
2634 5a67135a bellard
echo "Source path       $source_path"
2635 43ce4dfe bellard
echo "C compiler        $cc"
2636 83469015 bellard
echo "Host C compiler   $host_cc"
2637 0c439cbf Juan Quintela
echo "CFLAGS            $CFLAGS"
2638 a558ee17 Juan Quintela
echo "QEMU_CFLAGS       $QEMU_CFLAGS"
2639 0c439cbf Juan Quintela
echo "LDFLAGS           $LDFLAGS"
2640 43ce4dfe bellard
echo "make              $make"
2641 6a882643 pbrook
echo "install           $install"
2642 c886edfb Blue Swirl
echo "python            $python"
2643 43ce4dfe bellard
echo "host CPU          $cpu"
2644 de83cd02 bellard
echo "host big endian   $bigendian"
2645 97a847bc bellard
echo "target list       $target_list"
2646 ade25b0d aurel32
echo "tcg debug enabled $debug_tcg"
2647 b4475aa2 Luiz Capitulino
echo "Mon debug enabled $debug_mon"
2648 43ce4dfe bellard
echo "gprof enabled     $gprof"
2649 03b4fe7d aliguori
echo "sparse enabled    $sparse"
2650 1625af87 aliguori
echo "strip binaries    $strip_opt"
2651 05c2a3e7 bellard
echo "profiler          $profiler"
2652 43ce4dfe bellard
echo "static build      $static"
2653 85aa5189 bellard
echo "-Werror enabled   $werror"
2654 5b0753e0 bellard
if test "$darwin" = "yes" ; then
2655 5b0753e0 bellard
    echo "Cocoa support     $cocoa"
2656 5b0753e0 bellard
fi
2657 97a847bc bellard
echo "SDL support       $sdl"
2658 4d3b6f6e balrog
echo "curses support    $curses"
2659 769ce76d Alexander Graf
echo "curl support      $curl"
2660 5495ed11 Luiz Capitulino
echo "check support     $check_utests"
2661 67b915a5 bellard
echo "mingw32 support   $mingw32"
2662 0c58ac1c malc
echo "Audio drivers     $audio_drv_list"
2663 0c58ac1c malc
echo "Extra audio cards $audio_card_list"
2664 eb852011 Markus Armbruster
echo "Block whitelist   $block_drv_whitelist"
2665 8ff9cbf7 malc
echo "Mixer emulation   $mixemu"
2666 821601ea Jes Sorensen
echo "VNC support       $vnc"
2667 821601ea Jes Sorensen
if test "$vnc" = "yes" ; then
2668 821601ea Jes Sorensen
    echo "VNC TLS support   $vnc_tls"
2669 821601ea Jes Sorensen
    echo "VNC SASL support  $vnc_sasl"
2670 821601ea Jes Sorensen
    echo "VNC JPEG support  $vnc_jpeg"
2671 821601ea Jes Sorensen
    echo "VNC PNG support   $vnc_png"
2672 821601ea Jes Sorensen
    echo "VNC thread        $vnc_thread"
2673 821601ea Jes Sorensen
fi
2674 3142255c blueswir1
if test -n "$sparc_cpu"; then
2675 3142255c blueswir1
    echo "Target Sparc Arch $sparc_cpu"
2676 3142255c blueswir1
fi
2677 e37630ca aliguori
echo "xen support       $xen"
2678 2e4d9fb1 aurel32
echo "brlapi support    $brlapi"
2679 a20a6f46 Juan Quintela
echo "bluez  support    $bluez"
2680 a25dba17 Juan Quintela
echo "Documentation     $docs"
2681 c5937220 pbrook
[ ! -z "$uname_release" ] && \
2682 c5937220 pbrook
echo "uname -r          $uname_release"
2683 bd0c5661 pbrook
echo "NPTL support      $nptl"
2684 379f6698 Paul Brook
echo "GUEST_BASE        $guest_base"
2685 34005a00 Kirill A. Shutemov
echo "PIE user targets  $user_pie"
2686 8a16d273 ths
echo "vde support       $vde"
2687 e5d355d1 aliguori
echo "IO thread         $io_thread"
2688 5c6c3a6c Christoph Hellwig
echo "Linux AIO support $linux_aio"
2689 758e8e38 Venkateswararao Jujjuri (JV)
echo "ATTR/XATTR support $attr"
2690 77755340 ths
echo "Install blobs     $blobs"
2691 b31a0277 Juan Quintela
echo "KVM support       $kvm"
2692 f652e6af aurel32
echo "fdt support       $fdt"
2693 ceb42de8 aliguori
echo "preadv support    $preadv"
2694 5f6b9e8f Blue Swirl
echo "fdatasync         $fdatasync"
2695 e78815a5 Andreas Färber
echo "madvise           $madvise"
2696 e78815a5 Andreas Färber
echo "posix_madvise     $posix_madvise"
2697 ee682d27 Stefan Weil
echo "uuid support      $uuid"
2698 d5970055 Michael S. Tsirkin
echo "vhost-net support $vhost_net"
2699 94a420b1 Stefan Hajnoczi
echo "Trace backend     $trace_backend"
2700 9410b56c Prerna Saxena
echo "Trace output file $trace_file-<pid>"
2701 cd4ec0b4 Gerd Hoffmann
echo "spice support     $spice"
2702 f27aaf4b Christian Brunner
echo "rbd support       $rbd"
2703 dce512de Christoph Hellwig
echo "xfsctl support    $xfs"
2704 111a38b0 Robert Relyea
echo "nss used          $smartcard_nss"
2705 69354a83 Hans de Goede
echo "usb net redir     $usb_redir"
2706 20ff075b Michael Walle
echo "OpenGL support    $opengl"
2707 67b915a5 bellard
2708 1ba16968 Stefan Weil
if test "$sdl_too_old" = "yes"; then
2709 24b55b96 bellard
echo "-> Your SDL version is too old - please upgrade to have SDL support"
2710 7c1f25b4 bellard
fi
2711 7d13299d bellard
2712 98ec69ac Juan Quintela
config_host_mak="config-host.mak"
2713 4bf6b55b Juan Quintela
config_host_ld="config-host.ld"
2714 98ec69ac Juan Quintela
2715 98ec69ac Juan Quintela
echo "# Automatically generated by configure - do not modify" > $config_host_mak
2716 98ec69ac Juan Quintela
printf "# Configured with:" >> $config_host_mak
2717 98ec69ac Juan Quintela
printf " '%s'" "$0" "$@" >> $config_host_mak
2718 98ec69ac Juan Quintela
echo >> $config_host_mak
2719 98ec69ac Juan Quintela
2720 e6c3b0f7 Paolo Bonzini
echo all: >> $config_host_mak
2721 99d7cc75 Paolo Bonzini
echo "prefix=$prefix" >> $config_host_mak
2722 99d7cc75 Paolo Bonzini
echo "bindir=$bindir" >> $config_host_mak
2723 3aa5d2be Alon Levy
echo "libdir=$libdir" >> $config_host_mak
2724 0f94d6da Alon Levy
echo "includedir=$includedir" >> $config_host_mak
2725 99d7cc75 Paolo Bonzini
echo "mandir=$mandir" >> $config_host_mak
2726 99d7cc75 Paolo Bonzini
echo "datadir=$datadir" >> $config_host_mak
2727 99d7cc75 Paolo Bonzini
echo "sysconfdir=$sysconfdir" >> $config_host_mak
2728 99d7cc75 Paolo Bonzini
echo "docdir=$docdir" >> $config_host_mak
2729 1dabe05c Paolo Bonzini
echo "confdir=$confdir" >> $config_host_mak
2730 804edf29 Juan Quintela
2731 2408a527 aurel32
case "$cpu" in
2732 d2fbca94 Guan Xuetao
  i386|x86_64|alpha|cris|hppa|ia64|lm32|m68k|microblaze|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64|unicore32)
2733 e0da9dd3 Juan Quintela
    ARCH=$cpu
2734 2408a527 aurel32
  ;;
2735 a302c32d Laurent Desnogues
  armv4b|armv4l)
2736 16dbd14f Juan Quintela
    ARCH=arm
2737 2408a527 aurel32
  ;;
2738 2408a527 aurel32
esac
2739 98ec69ac Juan Quintela
echo "ARCH=$ARCH" >> $config_host_mak
2740 f8393946 aurel32
if test "$debug_tcg" = "yes" ; then
2741 2358a494 Juan Quintela
  echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
2742 f8393946 aurel32
fi
2743 b4475aa2 Luiz Capitulino
if test "$debug_mon" = "yes" ; then
2744 b4475aa2 Luiz Capitulino
  echo "CONFIG_DEBUG_MONITOR=y" >> $config_host_mak
2745 b4475aa2 Luiz Capitulino
fi
2746 f3d08ee6 Paul Brook
if test "$debug" = "yes" ; then
2747 2358a494 Juan Quintela
  echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
2748 f3d08ee6 Paul Brook
fi
2749 1625af87 aliguori
if test "$strip_opt" = "yes" ; then
2750 52ba784d Hollis Blanchard
  echo "STRIP=${strip}" >> $config_host_mak
2751 1625af87 aliguori
fi
2752 7d13299d bellard
if test "$bigendian" = "yes" ; then
2753 e2542fe2 Juan Quintela
  echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
2754 97a847bc bellard
fi
2755 2358a494 Juan Quintela
echo "HOST_LONG_BITS=$hostlongbits" >> $config_host_mak
2756 67b915a5 bellard
if test "$mingw32" = "yes" ; then
2757 98ec69ac Juan Quintela
  echo "CONFIG_WIN32=y" >> $config_host_mak
2758 9fe6de94 Blue Swirl
  rc_version=`cat $source_path/VERSION`
2759 9fe6de94 Blue Swirl
  version_major=${rc_version%%.*}
2760 9fe6de94 Blue Swirl
  rc_version=${rc_version#*.}
2761 9fe6de94 Blue Swirl
  version_minor=${rc_version%%.*}
2762 9fe6de94 Blue Swirl
  rc_version=${rc_version#*.}
2763 9fe6de94 Blue Swirl
  version_subminor=${rc_version%%.*}
2764 9fe6de94 Blue Swirl
  version_micro=0
2765 9fe6de94 Blue Swirl
  echo "CONFIG_FILEVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
2766 9fe6de94 Blue Swirl
  echo "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
2767 210fa556 pbrook
else
2768 35f4df27 Juan Quintela
  echo "CONFIG_POSIX=y" >> $config_host_mak
2769 dffcb71c Mark McLoughlin
fi
2770 dffcb71c Mark McLoughlin
2771 dffcb71c Mark McLoughlin
if test "$linux" = "yes" ; then
2772 dffcb71c Mark McLoughlin
  echo "CONFIG_LINUX=y" >> $config_host_mak
2773 67b915a5 bellard
fi
2774 128ab2ff blueswir1
2775 83fb7adf bellard
if test "$darwin" = "yes" ; then
2776 98ec69ac Juan Quintela
  echo "CONFIG_DARWIN=y" >> $config_host_mak
2777 83fb7adf bellard
fi
2778 b29fe3ed malc
2779 b29fe3ed malc
if test "$aix" = "yes" ; then
2780 98ec69ac Juan Quintela
  echo "CONFIG_AIX=y" >> $config_host_mak
2781 b29fe3ed malc
fi
2782 b29fe3ed malc
2783 ec530c81 bellard
if test "$solaris" = "yes" ; then
2784 98ec69ac Juan Quintela
  echo "CONFIG_SOLARIS=y" >> $config_host_mak
2785 2358a494 Juan Quintela
  echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak
2786 0475a5ca ths
  if test "$needs_libsunmath" = "yes" ; then
2787 75b5a697 Juan Quintela
    echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak
2788 0475a5ca ths
  fi
2789 ec530c81 bellard
fi
2790 179cf400 Andreas Färber
if test "$haiku" = "yes" ; then
2791 179cf400 Andreas Färber
  echo "CONFIG_HAIKU=y" >> $config_host_mak
2792 179cf400 Andreas Färber
fi
2793 97a847bc bellard
if test "$static" = "yes" ; then
2794 98ec69ac Juan Quintela
  echo "CONFIG_STATIC=y" >> $config_host_mak
2795 7d13299d bellard
fi
2796 1ba16968 Stefan Weil
if test "$profiler" = "yes" ; then
2797 2358a494 Juan Quintela
  echo "CONFIG_PROFILER=y" >> $config_host_mak
2798 05c2a3e7 bellard
fi
2799 c20709aa bellard
if test "$slirp" = "yes" ; then
2800 98ec69ac Juan Quintela
  echo "CONFIG_SLIRP=y" >> $config_host_mak
2801 f9728943 Paolo Bonzini
  QEMU_INCLUDES="-I\$(SRC_PATH)/slirp $QEMU_INCLUDES"
2802 c20709aa bellard
fi
2803 8a16d273 ths
if test "$vde" = "yes" ; then
2804 98ec69ac Juan Quintela
  echo "CONFIG_VDE=y" >> $config_host_mak
2805 8a16d273 ths
fi
2806 0c58ac1c malc
for card in $audio_card_list; do
2807 f6e5889e pbrook
    def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
2808 98ec69ac Juan Quintela
    echo "$def=y" >> $config_host_mak
2809 0c58ac1c malc
done
2810 2358a494 Juan Quintela
echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
2811 0c58ac1c malc
for drv in $audio_drv_list; do
2812 f6e5889e pbrook
    def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
2813 98ec69ac Juan Quintela
    echo "$def=y" >> $config_host_mak
2814 923e4521 malc
    if test "$drv" = "fmod"; then
2815 7aac6cb1 Juan Quintela
        echo "FMOD_CFLAGS=-I$fmod_inc" >> $config_host_mak
2816 0c58ac1c malc
    fi
2817 0c58ac1c malc
done
2818 67f86e8e Juan Quintela
if test "$audio_pt_int" = "yes" ; then
2819 67f86e8e Juan Quintela
  echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak
2820 67f86e8e Juan Quintela
fi
2821 d5631638 malc
if test "$audio_win_int" = "yes" ; then
2822 d5631638 malc
  echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak
2823 d5631638 malc
fi
2824 eb852011 Markus Armbruster
echo "CONFIG_BDRV_WHITELIST=$block_drv_whitelist" >> $config_host_mak
2825 8ff9cbf7 malc
if test "$mixemu" = "yes" ; then
2826 98ec69ac Juan Quintela
  echo "CONFIG_MIXEMU=y" >> $config_host_mak
2827 8ff9cbf7 malc
fi
2828 821601ea Jes Sorensen
if test "$vnc" = "yes" ; then
2829 821601ea Jes Sorensen
  echo "CONFIG_VNC=y" >> $config_host_mak
2830 821601ea Jes Sorensen
fi
2831 8d5d2d4c ths
if test "$vnc_tls" = "yes" ; then
2832 98ec69ac Juan Quintela
  echo "CONFIG_VNC_TLS=y" >> $config_host_mak
2833 525061bf Juan Quintela
  echo "VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_host_mak
2834 8d5d2d4c ths
fi
2835 2f9606b3 aliguori
if test "$vnc_sasl" = "yes" ; then
2836 98ec69ac Juan Quintela
  echo "CONFIG_VNC_SASL=y" >> $config_host_mak
2837 60ddf533 Juan Quintela
  echo "VNC_SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak
2838 2f9606b3 aliguori
fi
2839 821601ea Jes Sorensen
if test "$vnc_jpeg" = "yes" ; then
2840 2f6f5c7a Corentin Chary
  echo "CONFIG_VNC_JPEG=y" >> $config_host_mak
2841 2f6f5c7a Corentin Chary
  echo "VNC_JPEG_CFLAGS=$vnc_jpeg_cflags" >> $config_host_mak
2842 2f6f5c7a Corentin Chary
fi
2843 821601ea Jes Sorensen
if test "$vnc_png" = "yes" ; then
2844 efe556ad Corentin Chary
  echo "CONFIG_VNC_PNG=y" >> $config_host_mak
2845 efe556ad Corentin Chary
  echo "VNC_PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak
2846 efe556ad Corentin Chary
fi
2847 821601ea Jes Sorensen
if test "$vnc_thread" = "yes" ; then
2848 bd023f95 Corentin Chary
  echo "CONFIG_VNC_THREAD=y" >> $config_host_mak
2849 bd023f95 Corentin Chary
fi
2850 76655d6d aliguori
if test "$fnmatch" = "yes" ; then
2851 2358a494 Juan Quintela
  echo "CONFIG_FNMATCH=y" >> $config_host_mak
2852 76655d6d aliguori
fi
2853 ee682d27 Stefan Weil
if test "$uuid" = "yes" ; then
2854 ee682d27 Stefan Weil
  echo "CONFIG_UUID=y" >> $config_host_mak
2855 ee682d27 Stefan Weil
fi
2856 dce512de Christoph Hellwig
if test "$xfs" = "yes" ; then
2857 dce512de Christoph Hellwig
  echo "CONFIG_XFS=y" >> $config_host_mak
2858 dce512de Christoph Hellwig
fi
2859 b1a550a0 pbrook
qemu_version=`head $source_path/VERSION`
2860 98ec69ac Juan Quintela
echo "VERSION=$qemu_version" >>$config_host_mak
2861 2358a494 Juan Quintela
echo "PKGVERSION=$pkgversion" >>$config_host_mak
2862 98ec69ac Juan Quintela
echo "SRC_PATH=$source_path" >> $config_host_mak
2863 98ec69ac Juan Quintela
echo "TARGET_DIRS=$target_list" >> $config_host_mak
2864 a25dba17 Juan Quintela
if [ "$docs" = "yes" ] ; then
2865 98ec69ac Juan Quintela
  echo "BUILD_DOCS=yes" >> $config_host_mak
2866 cc8ae6de pbrook
fi
2867 1ac88f28 Juan Quintela
if test "$sdl" = "yes" ; then
2868 98ec69ac Juan Quintela
  echo "CONFIG_SDL=y" >> $config_host_mak
2869 1ac88f28 Juan Quintela
  echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
2870 49ecc3fa bellard
fi
2871 49ecc3fa bellard
if test "$cocoa" = "yes" ; then
2872 98ec69ac Juan Quintela
  echo "CONFIG_COCOA=y" >> $config_host_mak
2873 4d3b6f6e balrog
fi
2874 4d3b6f6e balrog
if test "$curses" = "yes" ; then
2875 98ec69ac Juan Quintela
  echo "CONFIG_CURSES=y" >> $config_host_mak
2876 49ecc3fa bellard
fi
2877 3b3f24ad aurel32
if test "$atfile" = "yes" ; then
2878 2358a494 Juan Quintela
  echo "CONFIG_ATFILE=y" >> $config_host_mak
2879 3b3f24ad aurel32
fi
2880 ebc996f3 Riku Voipio
if test "$utimens" = "yes" ; then
2881 2358a494 Juan Quintela
  echo "CONFIG_UTIMENSAT=y" >> $config_host_mak
2882 ebc996f3 Riku Voipio
fi
2883 099d6b0f Riku Voipio
if test "$pipe2" = "yes" ; then
2884 2358a494 Juan Quintela
  echo "CONFIG_PIPE2=y" >> $config_host_mak
2885 099d6b0f Riku Voipio
fi
2886 40ff6d7e Kevin Wolf
if test "$accept4" = "yes" ; then
2887 40ff6d7e Kevin Wolf
  echo "CONFIG_ACCEPT4=y" >> $config_host_mak
2888 40ff6d7e Kevin Wolf
fi
2889 3ce34dfb vibisreenivasan
if test "$splice" = "yes" ; then
2890 2358a494 Juan Quintela
  echo "CONFIG_SPLICE=y" >> $config_host_mak
2891 3ce34dfb vibisreenivasan
fi
2892 c2882b96 Riku Voipio
if test "$eventfd" = "yes" ; then
2893 c2882b96 Riku Voipio
  echo "CONFIG_EVENTFD=y" >> $config_host_mak
2894 c2882b96 Riku Voipio
fi
2895 d0927938 Ulrich Hecht
if test "$fallocate" = "yes" ; then
2896 d0927938 Ulrich Hecht
  echo "CONFIG_FALLOCATE=y" >> $config_host_mak
2897 d0927938 Ulrich Hecht
fi
2898 c727f47d Peter Maydell
if test "$sync_file_range" = "yes" ; then
2899 c727f47d Peter Maydell
  echo "CONFIG_SYNC_FILE_RANGE=y" >> $config_host_mak
2900 c727f47d Peter Maydell
fi
2901 dace20dc Peter Maydell
if test "$fiemap" = "yes" ; then
2902 dace20dc Peter Maydell
  echo "CONFIG_FIEMAP=y" >> $config_host_mak
2903 dace20dc Peter Maydell
fi
2904 d0927938 Ulrich Hecht
if test "$dup3" = "yes" ; then
2905 d0927938 Ulrich Hecht
  echo "CONFIG_DUP3=y" >> $config_host_mak
2906 d0927938 Ulrich Hecht
fi
2907 3b6edd16 Peter Maydell
if test "$epoll" = "yes" ; then
2908 3b6edd16 Peter Maydell
  echo "CONFIG_EPOLL=y" >> $config_host_mak
2909 3b6edd16 Peter Maydell
fi
2910 3b6edd16 Peter Maydell
if test "$epoll_create1" = "yes" ; then
2911 3b6edd16 Peter Maydell
  echo "CONFIG_EPOLL_CREATE1=y" >> $config_host_mak
2912 3b6edd16 Peter Maydell
fi
2913 3b6edd16 Peter Maydell
if test "$epoll_pwait" = "yes" ; then
2914 3b6edd16 Peter Maydell
  echo "CONFIG_EPOLL_PWAIT=y" >> $config_host_mak
2915 3b6edd16 Peter Maydell
fi
2916 3b3f24ad aurel32
if test "$inotify" = "yes" ; then
2917 2358a494 Juan Quintela
  echo "CONFIG_INOTIFY=y" >> $config_host_mak
2918 3b3f24ad aurel32
fi
2919 c05c7a73 Riku Voipio
if test "$inotify1" = "yes" ; then
2920 c05c7a73 Riku Voipio
  echo "CONFIG_INOTIFY1=y" >> $config_host_mak
2921 c05c7a73 Riku Voipio
fi
2922 6ae9a1f4 Juan Quintela
if test "$byteswap_h" = "yes" ; then
2923 6ae9a1f4 Juan Quintela
  echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak
2924 6ae9a1f4 Juan Quintela
fi
2925 6ae9a1f4 Juan Quintela
if test "$bswap_h" = "yes" ; then
2926 6ae9a1f4 Juan Quintela
  echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
2927 6ae9a1f4 Juan Quintela
fi
2928 769ce76d Alexander Graf
if test "$curl" = "yes" ; then
2929 98ec69ac Juan Quintela
  echo "CONFIG_CURL=y" >> $config_host_mak
2930 b1d5a277 Juan Quintela
  echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
2931 769ce76d Alexander Graf
fi
2932 2e4d9fb1 aurel32
if test "$brlapi" = "yes" ; then
2933 98ec69ac Juan Quintela
  echo "CONFIG_BRLAPI=y" >> $config_host_mak
2934 2e4d9fb1 aurel32
fi
2935 fb599c9a balrog
if test "$bluez" = "yes" ; then
2936 98ec69ac Juan Quintela
  echo "CONFIG_BLUEZ=y" >> $config_host_mak
2937 ef7635ec Juan Quintela
  echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak
2938 fb599c9a balrog
fi
2939 e18df141 Anthony Liguori
echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
2940 e37630ca aliguori
if test "$xen" = "yes" ; then
2941 6dbd588a Jan Kiszka
  echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak
2942 d5b93ddf Anthony PERARD
  echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> $config_host_mak
2943 e37630ca aliguori
fi
2944 e5d355d1 aliguori
if test "$io_thread" = "yes" ; then
2945 98ec69ac Juan Quintela
  echo "CONFIG_IOTHREAD=y" >> $config_host_mak
2946 e5d355d1 aliguori
fi
2947 5c6c3a6c Christoph Hellwig
if test "$linux_aio" = "yes" ; then
2948 5c6c3a6c Christoph Hellwig
  echo "CONFIG_LINUX_AIO=y" >> $config_host_mak
2949 5c6c3a6c Christoph Hellwig
fi
2950 758e8e38 Venkateswararao Jujjuri (JV)
if test "$attr" = "yes" ; then
2951 758e8e38 Venkateswararao Jujjuri (JV)
  echo "CONFIG_ATTR=y" >> $config_host_mak
2952 758e8e38 Venkateswararao Jujjuri (JV)
fi
2953 758e8e38 Venkateswararao Jujjuri (JV)
if test "$linux" = "yes" ; then
2954 758e8e38 Venkateswararao Jujjuri (JV)
  if test "$attr" = "yes" ; then
2955 758e8e38 Venkateswararao Jujjuri (JV)
    echo "CONFIG_VIRTFS=y" >> $config_host_mak
2956 758e8e38 Venkateswararao Jujjuri (JV)
  fi
2957 758e8e38 Venkateswararao Jujjuri (JV)
fi
2958 77755340 ths
if test "$blobs" = "yes" ; then
2959 98ec69ac Juan Quintela
  echo "INSTALL_BLOBS=yes" >> $config_host_mak
2960 77755340 ths
fi
2961 bf9298b9 aliguori
if test "$iovec" = "yes" ; then
2962 2358a494 Juan Quintela
  echo "CONFIG_IOVEC=y" >> $config_host_mak
2963 bf9298b9 aliguori
fi
2964 ceb42de8 aliguori
if test "$preadv" = "yes" ; then
2965 2358a494 Juan Quintela
  echo "CONFIG_PREADV=y" >> $config_host_mak
2966 ceb42de8 aliguori
fi
2967 f652e6af aurel32
if test "$fdt" = "yes" ; then
2968 3f0855b1 Juan Quintela
  echo "CONFIG_FDT=y" >> $config_host_mak
2969 f652e6af aurel32
fi
2970 dcc38d1c Marcelo Tosatti
if test "$signalfd" = "yes" ; then
2971 dcc38d1c Marcelo Tosatti
  echo "CONFIG_SIGNALFD=y" >> $config_host_mak
2972 dcc38d1c Marcelo Tosatti
fi
2973 de5071c5 Blue Swirl
if test "$need_offsetof" = "yes" ; then
2974 de5071c5 Blue Swirl
  echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak
2975 de5071c5 Blue Swirl
fi
2976 747bbdf7 Blue Swirl
if test "$gcc_attribute_warn_unused_result" = "yes" ; then
2977 747bbdf7 Blue Swirl
  echo "CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT=y" >> $config_host_mak
2978 747bbdf7 Blue Swirl
fi
2979 5f6b9e8f Blue Swirl
if test "$fdatasync" = "yes" ; then
2980 5f6b9e8f Blue Swirl
  echo "CONFIG_FDATASYNC=y" >> $config_host_mak
2981 5f6b9e8f Blue Swirl
fi
2982 e78815a5 Andreas Färber
if test "$madvise" = "yes" ; then
2983 e78815a5 Andreas Färber
  echo "CONFIG_MADVISE=y" >> $config_host_mak
2984 e78815a5 Andreas Färber
fi
2985 e78815a5 Andreas Färber
if test "$posix_madvise" = "yes" ; then
2986 e78815a5 Andreas Färber
  echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak
2987 e78815a5 Andreas Färber
fi
2988 97a847bc bellard
2989 cd4ec0b4 Gerd Hoffmann
if test "$spice" = "yes" ; then
2990 cd4ec0b4 Gerd Hoffmann
  echo "CONFIG_SPICE=y" >> $config_host_mak
2991 cd4ec0b4 Gerd Hoffmann
fi
2992 36707144 Alon Levy
2993 36707144 Alon Levy
if test "$smartcard" = "yes" ; then
2994 36707144 Alon Levy
  echo "CONFIG_SMARTCARD=y" >> $config_host_mak
2995 36707144 Alon Levy
fi
2996 cd4ec0b4 Gerd Hoffmann
2997 111a38b0 Robert Relyea
if test "$smartcard_nss" = "yes" ; then
2998 111a38b0 Robert Relyea
  echo "CONFIG_SMARTCARD_NSS=y" >> $config_host_mak
2999 111a38b0 Robert Relyea
fi
3000 111a38b0 Robert Relyea
3001 69354a83 Hans de Goede
if test "$usb_redir" = "yes" ; then
3002 69354a83 Hans de Goede
  echo "CONFIG_USB_REDIR=y" >> $config_host_mak
3003 69354a83 Hans de Goede
fi
3004 69354a83 Hans de Goede
3005 20ff075b Michael Walle
if test "$opengl" = "yes" ; then
3006 20ff075b Michael Walle
  echo "CONFIG_OPENGL=y" >> $config_host_mak
3007 20ff075b Michael Walle
fi
3008 20ff075b Michael Walle
3009 83fb7adf bellard
# XXX: suppress that
3010 7d3505c5 bellard
if [ "$bsd" = "yes" ] ; then
3011 2358a494 Juan Quintela
  echo "CONFIG_BSD=y" >> $config_host_mak
3012 7d3505c5 bellard
fi
3013 7d3505c5 bellard
3014 2358a494 Juan Quintela
echo "CONFIG_UNAME_RELEASE=\"$uname_release\"" >> $config_host_mak
3015 c5937220 pbrook
3016 20ff6c80 Anthony Liguori
if test "$zero_malloc" = "yes" ; then
3017 20ff6c80 Anthony Liguori
  echo "CONFIG_ZERO_MALLOC=y" >> $config_host_mak
3018 20ff6c80 Anthony Liguori
fi
3019 f27aaf4b Christian Brunner
if test "$rbd" = "yes" ; then
3020 f27aaf4b Christian Brunner
  echo "CONFIG_RBD=y" >> $config_host_mak
3021 f27aaf4b Christian Brunner
fi
3022 20ff6c80 Anthony Liguori
3023 68063649 blueswir1
# USB host support
3024 68063649 blueswir1
case "$usb" in
3025 68063649 blueswir1
linux)
3026 98ec69ac Juan Quintela
  echo "HOST_USB=linux" >> $config_host_mak
3027 68063649 blueswir1
;;
3028 68063649 blueswir1
bsd)
3029 98ec69ac Juan Quintela
  echo "HOST_USB=bsd" >> $config_host_mak
3030 68063649 blueswir1
;;
3031 68063649 blueswir1
*)
3032 98ec69ac Juan Quintela
  echo "HOST_USB=stub" >> $config_host_mak
3033 68063649 blueswir1
;;
3034 68063649 blueswir1
esac
3035 68063649 blueswir1
3036 94a420b1 Stefan Hajnoczi
echo "TRACE_BACKEND=$trace_backend" >> $config_host_mak
3037 22890ab5 Prerna Saxena
if test "$trace_backend" = "simple"; then
3038 22890ab5 Prerna Saxena
  echo "CONFIG_SIMPLE_TRACE=y" >> $config_host_mak
3039 22890ab5 Prerna Saxena
fi
3040 9410b56c Prerna Saxena
# Set the appropriate trace file.
3041 9410b56c Prerna Saxena
if test "$trace_backend" = "simple"; then
3042 953ffe0f Andreas Färber
  trace_file="\"$trace_file-\" FMT_pid"
3043 9410b56c Prerna Saxena
fi
3044 c276b17d Daniel P. Berrange
if test "$trace_backend" = "dtrace" -a "$trace_backend_stap" = "yes" ; then
3045 c276b17d Daniel P. Berrange
  echo "CONFIG_SYSTEMTAP_TRACE=y" >> $config_host_mak
3046 c276b17d Daniel P. Berrange
fi
3047 9410b56c Prerna Saxena
echo "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak
3048 9410b56c Prerna Saxena
3049 98ec69ac Juan Quintela
echo "TOOLS=$tools" >> $config_host_mak
3050 98ec69ac Juan Quintela
echo "ROMS=$roms" >> $config_host_mak
3051 804edf29 Juan Quintela
echo "MAKE=$make" >> $config_host_mak
3052 804edf29 Juan Quintela
echo "INSTALL=$install" >> $config_host_mak
3053 804edf29 Juan Quintela
echo "INSTALL_DIR=$install -d -m0755 -p" >> $config_host_mak
3054 804edf29 Juan Quintela
echo "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak
3055 804edf29 Juan Quintela
echo "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak
3056 c886edfb Blue Swirl
echo "PYTHON=$python" >> $config_host_mak
3057 804edf29 Juan Quintela
echo "CC=$cc" >> $config_host_mak
3058 2b2e59e6 Paolo Bonzini
echo "CC_I386=$cc_i386" >> $config_host_mak
3059 804edf29 Juan Quintela
echo "HOST_CC=$host_cc" >> $config_host_mak
3060 804edf29 Juan Quintela
echo "AR=$ar" >> $config_host_mak
3061 804edf29 Juan Quintela
echo "OBJCOPY=$objcopy" >> $config_host_mak
3062 804edf29 Juan Quintela
echo "LD=$ld" >> $config_host_mak
3063 9fe6de94 Blue Swirl
echo "WINDRES=$windres" >> $config_host_mak
3064 44dc0ca3 Alon Levy
echo "LIBTOOL=$libtool" >> $config_host_mak
3065 e2a2ed06 Juan Quintela
echo "CFLAGS=$CFLAGS" >> $config_host_mak
3066 a558ee17 Juan Quintela
echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
3067 f9728943 Paolo Bonzini
echo "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak
3068 e39f0062 Paolo Bonzini
if test "$sparse" = "yes" ; then
3069 e39f0062 Paolo Bonzini
  echo "CC           := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
3070 e39f0062 Paolo Bonzini
  echo "HOST_CC      := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
3071 e39f0062 Paolo Bonzini
  echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
3072 e39f0062 Paolo Bonzini
fi
3073 c81da56e Juan Quintela
echo "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak
3074 e2a2ed06 Juan Quintela
echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
3075 a36abbbb Juan Quintela
echo "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak
3076 a36abbbb Juan Quintela
echo "ARLIBS_END=$arlibs_end" >> $config_host_mak
3077 73da375e Juan Quintela
echo "LIBS+=$LIBS" >> $config_host_mak
3078 3e2e0e6b Juan Quintela
echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
3079 804edf29 Juan Quintela
echo "EXESUF=$EXESUF" >> $config_host_mak
3080 804edf29 Juan Quintela
3081 4bf6b55b Juan Quintela
# generate list of library paths for linker script
3082 4bf6b55b Juan Quintela
3083 4bf6b55b Juan Quintela
$ld --verbose -v 2> /dev/null | grep SEARCH_DIR > ${config_host_ld}
3084 4bf6b55b Juan Quintela
3085 4bf6b55b Juan Quintela
if test -f ${config_host_ld}~ ; then
3086 4bf6b55b Juan Quintela
  if cmp -s $config_host_ld ${config_host_ld}~ ; then
3087 4bf6b55b Juan Quintela
    mv ${config_host_ld}~ $config_host_ld
3088 4bf6b55b Juan Quintela
  else
3089 4bf6b55b Juan Quintela
    rm ${config_host_ld}~
3090 4bf6b55b Juan Quintela
  fi
3091 4bf6b55b Juan Quintela
fi
3092 4bf6b55b Juan Quintela
3093 4d904533 Blue Swirl
for d in libdis libdis-user; do
3094 4d904533 Blue Swirl
    mkdir -p $d
3095 11568d6d Paolo Bonzini
    symlink $source_path/Makefile.dis $d/Makefile
3096 4d904533 Blue Swirl
    echo > $d/config.mak
3097 4d904533 Blue Swirl
done
3098 d44cff22 Richard Henderson
if test "$static" = "no" -a "$user_pie" = "yes" ; then
3099 d44cff22 Richard Henderson
  echo "QEMU_CFLAGS+=-fpie" > libdis-user/config.mak
3100 d44cff22 Richard Henderson
fi
3101 4d904533 Blue Swirl
3102 1d14ffa9 bellard
for target in $target_list; do
3103 97a847bc bellard
target_dir="$target"
3104 25be210f Juan Quintela
config_target_mak=$target_dir/config-target.mak
3105 600309b6 Blue Swirl
target_arch2=`echo $target | cut -d '-' -f 1`
3106 97a847bc bellard
target_bigendian="no"
3107 1f3d3c8f Juan Quintela
3108 ea2d6a39 Juan Quintela
case "$target_arch2" in
3109 613a22c9 Michael Walle
  armeb|lm32|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus)
3110 ea2d6a39 Juan Quintela
  target_bigendian=yes
3111 ea2d6a39 Juan Quintela
  ;;
3112 ea2d6a39 Juan Quintela
esac
3113 97a847bc bellard
target_softmmu="no"
3114 997344f3 bellard
target_user_only="no"
3115 831b7825 ths
target_linux_user="no"
3116 831b7825 ths
target_darwin_user="no"
3117 84778508 blueswir1
target_bsd_user="no"
3118 9e407a85 pbrook
case "$target" in
3119 600309b6 Blue Swirl
  ${target_arch2}-softmmu)
3120 9e407a85 pbrook
    target_softmmu="yes"
3121 9e407a85 pbrook
    ;;
3122 600309b6 Blue Swirl
  ${target_arch2}-linux-user)
3123 9c7a4202 Blue Swirl
    if test "$linux" != "yes" ; then
3124 9c7a4202 Blue Swirl
      echo "ERROR: Target '$target' is only available on a Linux host"
3125 9c7a4202 Blue Swirl
      exit 1
3126 9c7a4202 Blue Swirl
    fi
3127 9e407a85 pbrook
    target_user_only="yes"
3128 9e407a85 pbrook
    target_linux_user="yes"
3129 9e407a85 pbrook
    ;;
3130 600309b6 Blue Swirl
  ${target_arch2}-darwin-user)
3131 9c7a4202 Blue Swirl
    if test "$darwin" != "yes" ; then
3132 9c7a4202 Blue Swirl
      echo "ERROR: Target '$target' is only available on a Darwin host"
3133 9c7a4202 Blue Swirl
      exit 1
3134 9c7a4202 Blue Swirl
    fi
3135 9e407a85 pbrook
    target_user_only="yes"
3136 9e407a85 pbrook
    target_darwin_user="yes"
3137 9e407a85 pbrook
    ;;
3138 600309b6 Blue Swirl
  ${target_arch2}-bsd-user)
3139 9cf55765 Blue Swirl
    if test "$bsd" != "yes" ; then
3140 9c7a4202 Blue Swirl
      echo "ERROR: Target '$target' is only available on a BSD host"
3141 9c7a4202 Blue Swirl
      exit 1
3142 9c7a4202 Blue Swirl
    fi
3143 84778508 blueswir1
    target_user_only="yes"
3144 84778508 blueswir1
    target_bsd_user="yes"
3145 84778508 blueswir1
    ;;
3146 9e407a85 pbrook
  *)
3147 9e407a85 pbrook
    echo "ERROR: Target '$target' not recognised"
3148 9e407a85 pbrook
    exit 1
3149 9e407a85 pbrook
    ;;
3150 9e407a85 pbrook
esac
3151 831b7825 ths
3152 97a847bc bellard
mkdir -p $target_dir
3153 158142c2 bellard
mkdir -p $target_dir/fpu
3154 57fec1fe bellard
mkdir -p $target_dir/tcg
3155 59f2a787 Gerd Hoffmann
mkdir -p $target_dir/ide
3156 353ac78d Aneesh Kumar K.V
mkdir -p $target_dir/9pfs
3157 84778508 blueswir1
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
3158 69de927c bellard
  mkdir -p $target_dir/nwfpe
3159 69de927c bellard
fi
3160 11568d6d Paolo Bonzini
symlink $source_path/Makefile.target $target_dir/Makefile
3161 ec530c81 bellard
3162 97a847bc bellard
3163 25be210f Juan Quintela
echo "# Automatically generated by configure - do not modify" > $config_target_mak
3164 de83cd02 bellard
3165 e5fe0c52 pbrook
bflt="no"
3166 bd0c5661 pbrook
target_nptl="no"
3167 600309b6 Blue Swirl
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
3168 7ee2822c Paolo Bonzini
echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak
3169 56aebc89 pbrook
gdb_xml_files=""
3170 c2e3dee6 Laurent Vivier
target_short_alignment=2
3171 c2e3dee6 Laurent Vivier
target_int_alignment=4
3172 c2e3dee6 Laurent Vivier
target_long_alignment=4
3173 c2e3dee6 Laurent Vivier
target_llong_alignment=8
3174 de3a354a Michael Walle
target_libs_softmmu=
3175 7ba1e619 aliguori
3176 938b1edd Juan Quintela
TARGET_ARCH="$target_arch2"
3177 6acff7da Juan Quintela
TARGET_BASE_ARCH=""
3178 e6e91b9c Juan Quintela
TARGET_ABI_DIR=""
3179 e73aae67 Juan Quintela
3180 600309b6 Blue Swirl
case "$target_arch2" in
3181 2408a527 aurel32
  i386)
3182 71deff27 Aurelien Jarno
    target_phys_bits=64
3183 2408a527 aurel32
  ;;
3184 2408a527 aurel32
  x86_64)
3185 6acff7da Juan Quintela
    TARGET_BASE_ARCH=i386
3186 1ad2134f Paul Brook
    target_phys_bits=64
3187 c2e3dee6 Laurent Vivier
    target_long_alignment=8
3188 2408a527 aurel32
  ;;
3189 2408a527 aurel32
  alpha)
3190 1ad2134f Paul Brook
    target_phys_bits=64
3191 c2e3dee6 Laurent Vivier
    target_long_alignment=8
3192 a4b388ff Richard Henderson
    target_nptl="yes"
3193 2408a527 aurel32
  ;;
3194 2408a527 aurel32
  arm|armeb)
3195 b498c8a0 Juan Quintela
    TARGET_ARCH=arm
3196 2408a527 aurel32
    bflt="yes"
3197 bd0c5661 pbrook
    target_nptl="yes"
3198 56aebc89 pbrook
    gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
3199 1ad2134f Paul Brook
    target_phys_bits=32
3200 c2e3dee6 Laurent Vivier
    target_llong_alignment=4
3201 2408a527 aurel32
  ;;
3202 2408a527 aurel32
  cris)
3203 253bd7f8 edgar_igl
    target_nptl="yes"
3204 1ad2134f Paul Brook
    target_phys_bits=32
3205 2408a527 aurel32
  ;;
3206 613a22c9 Michael Walle
  lm32)
3207 613a22c9 Michael Walle
    target_phys_bits=32
3208 de3a354a Michael Walle
    target_libs_softmmu="$opengl_libs"
3209 613a22c9 Michael Walle
  ;;
3210 2408a527 aurel32
  m68k)
3211 2408a527 aurel32
    bflt="yes"
3212 56aebc89 pbrook
    gdb_xml_files="cf-core.xml cf-fp.xml"
3213 1ad2134f Paul Brook
    target_phys_bits=32
3214 c2e3dee6 Laurent Vivier
    target_int_alignment=2
3215 c2e3dee6 Laurent Vivier
    target_long_alignment=2
3216 c2e3dee6 Laurent Vivier
    target_llong_alignment=2
3217 2408a527 aurel32
  ;;
3218 877fdc12 Edgar E. Iglesias
  microblaze|microblazeel)
3219 877fdc12 Edgar E. Iglesias
    TARGET_ARCH=microblaze
3220 72b675ca Edgar E. Iglesias
    bflt="yes"
3221 72b675ca Edgar E. Iglesias
    target_nptl="yes"
3222 72b675ca Edgar E. Iglesias
    target_phys_bits=32
3223 de3a354a Michael Walle
    target_libs_softmmu="$fdt_libs"
3224 72b675ca Edgar E. Iglesias
  ;;
3225 0adcffb1 Juan Quintela
  mips|mipsel)
3226 b498c8a0 Juan Quintela
    TARGET_ARCH=mips
3227 25be210f Juan Quintela
    echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak
3228 f04dc72f Paul Brook
    target_nptl="yes"
3229 1ad2134f Paul Brook
    target_phys_bits=64
3230 2408a527 aurel32
  ;;
3231 2408a527 aurel32
  mipsn32|mipsn32el)
3232 b498c8a0 Juan Quintela
    TARGET_ARCH=mipsn32
3233 6acff7da Juan Quintela
    TARGET_BASE_ARCH=mips
3234 25be210f Juan Quintela
    echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak
3235 1ad2134f Paul Brook
    target_phys_bits=64
3236 2408a527 aurel32
  ;;
3237 2408a527 aurel32
  mips64|mips64el)
3238 b498c8a0 Juan Quintela
    TARGET_ARCH=mips64
3239 6acff7da Juan Quintela
    TARGET_BASE_ARCH=mips
3240 25be210f Juan Quintela
    echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak
3241 1ad2134f Paul Brook
    target_phys_bits=64
3242 c2e3dee6 Laurent Vivier
    target_long_alignment=8
3243 2408a527 aurel32
  ;;
3244 2408a527 aurel32
  ppc)
3245 c8b3532d aurel32
    gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
3246 1ad2134f Paul Brook
    target_phys_bits=32
3247 d6630708 Nathan Froyd
    target_nptl="yes"
3248 de3a354a Michael Walle
    target_libs_softmmu="$fdt_libs"
3249 2408a527 aurel32
  ;;
3250 2408a527 aurel32
  ppcemb)
3251 6acff7da Juan Quintela
    TARGET_BASE_ARCH=ppc
3252 e6e91b9c Juan Quintela
    TARGET_ABI_DIR=ppc
3253 c8b3532d aurel32
    gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
3254 1ad2134f Paul Brook
    target_phys_bits=64
3255 d6630708 Nathan Froyd
    target_nptl="yes"
3256 de3a354a Michael Walle
    target_libs_softmmu="$fdt_libs"
3257 2408a527 aurel32
  ;;
3258 2408a527 aurel32
  ppc64)
3259 6acff7da Juan Quintela
    TARGET_BASE_ARCH=ppc
3260 e6e91b9c Juan Quintela
    TARGET_ABI_DIR=ppc
3261 c8b3532d aurel32
    gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
3262 1ad2134f Paul Brook
    target_phys_bits=64
3263 c2e3dee6 Laurent Vivier
    target_long_alignment=8
3264 de3a354a Michael Walle
    target_libs_softmmu="$fdt_libs"
3265 2408a527 aurel32
  ;;
3266 2408a527 aurel32
  ppc64abi32)
3267 b498c8a0 Juan Quintela
    TARGET_ARCH=ppc64
3268 6acff7da Juan Quintela
    TARGET_BASE_ARCH=ppc
3269 e6e91b9c Juan Quintela
    TARGET_ABI_DIR=ppc
3270 25be210f Juan Quintela
    echo "TARGET_ABI32=y" >> $config_target_mak
3271 c8b3532d aurel32
    gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
3272 1ad2134f Paul Brook
    target_phys_bits=64
3273 de3a354a Michael Walle
    target_libs_softmmu="$fdt_libs"
3274 2408a527 aurel32
  ;;
3275 2408a527 aurel32
  sh4|sh4eb)
3276 b498c8a0 Juan Quintela
    TARGET_ARCH=sh4
3277 2408a527 aurel32
    bflt="yes"
3278 0b6d3ae0 aurel32
    target_nptl="yes"
3279 1ad2134f Paul Brook
    target_phys_bits=32
3280 2408a527 aurel32
  ;;
3281 2408a527 aurel32
  sparc)
3282 1ad2134f Paul Brook
    target_phys_bits=64
3283 2408a527 aurel32
  ;;
3284 2408a527 aurel32
  sparc64)
3285 6acff7da Juan Quintela
    TARGET_BASE_ARCH=sparc
3286 1ad2134f Paul Brook
    target_phys_bits=64
3287 c2e3dee6 Laurent Vivier
    target_long_alignment=8
3288 2408a527 aurel32
  ;;
3289 2408a527 aurel32
  sparc32plus)
3290 b498c8a0 Juan Quintela
    TARGET_ARCH=sparc64
3291 6acff7da Juan Quintela
    TARGET_BASE_ARCH=sparc
3292 e6e91b9c Juan Quintela
    TARGET_ABI_DIR=sparc
3293 25be210f Juan Quintela
    echo "TARGET_ABI32=y" >> $config_target_mak
3294 1ad2134f Paul Brook
    target_phys_bits=64
3295 2408a527 aurel32
  ;;
3296 24e804ec Alexander Graf
  s390x)
3297 bc434676 Ulrich Hecht
    target_nptl="yes"
3298 24e804ec Alexander Graf
    target_phys_bits=64
3299 7b3da903 Alexander Graf
    target_long_alignment=8
3300 24e804ec Alexander Graf
  ;;
3301 d2fbca94 Guan Xuetao
  unicore32)
3302 d2fbca94 Guan Xuetao
    target_phys_bits=32
3303 d2fbca94 Guan Xuetao
  ;;
3304 2408a527 aurel32
  *)
3305 2408a527 aurel32
    echo "Unsupported target CPU"
3306 2408a527 aurel32
    exit 1
3307 2408a527 aurel32
  ;;
3308 2408a527 aurel32
esac
3309 c2e3dee6 Laurent Vivier
echo "TARGET_SHORT_ALIGNMENT=$target_short_alignment" >> $config_target_mak
3310 c2e3dee6 Laurent Vivier
echo "TARGET_INT_ALIGNMENT=$target_int_alignment" >> $config_target_mak
3311 c2e3dee6 Laurent Vivier
echo "TARGET_LONG_ALIGNMENT=$target_long_alignment" >> $config_target_mak
3312 c2e3dee6 Laurent Vivier
echo "TARGET_LLONG_ALIGNMENT=$target_llong_alignment" >> $config_target_mak
3313 25be210f Juan Quintela
echo "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak
3314 053dd92e Juan Quintela
target_arch_name="`echo $TARGET_ARCH | tr '[:lower:]' '[:upper:]'`"
3315 25be210f Juan Quintela
echo "TARGET_$target_arch_name=y" >> $config_target_mak
3316 25be210f Juan Quintela
echo "TARGET_ARCH2=$target_arch2" >> $config_target_mak
3317 42bc608b Juan Quintela
# TARGET_BASE_ARCH needs to be defined after TARGET_ARCH
3318 6acff7da Juan Quintela
if [ "$TARGET_BASE_ARCH" = "" ]; then
3319 6acff7da Juan Quintela
  TARGET_BASE_ARCH=$TARGET_ARCH
3320 6acff7da Juan Quintela
fi
3321 25be210f Juan Quintela
echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak
3322 e6e91b9c Juan Quintela
if [ "$TARGET_ABI_DIR" = "" ]; then
3323 e6e91b9c Juan Quintela
  TARGET_ABI_DIR=$TARGET_ARCH
3324 e6e91b9c Juan Quintela
fi
3325 25be210f Juan Quintela
echo "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_target_mak
3326 1b0c87fc Juan Quintela
case "$target_arch2" in
3327 1b0c87fc Juan Quintela
  i386|x86_64)
3328 1b0c87fc Juan Quintela
    if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then
3329 64b3cfdb Anthony PERARD
      target_phys_bits=64
3330 25be210f Juan Quintela
      echo "CONFIG_XEN=y" >> $config_target_mak
3331 59d21e53 Alexander Graf
    else
3332 59d21e53 Alexander Graf
      echo "CONFIG_NO_XEN=y" >> $config_target_mak
3333 1b0c87fc Juan Quintela
    fi
3334 59d21e53 Alexander Graf
    ;;
3335 59d21e53 Alexander Graf
  *)
3336 59d21e53 Alexander Graf
    echo "CONFIG_NO_XEN=y" >> $config_target_mak
3337 1b0c87fc Juan Quintela
esac
3338 c59249f9 Juan Quintela
case "$target_arch2" in
3339 0e60a699 Alexander Graf
  i386|x86_64|ppcemb|ppc|ppc64|s390x)
3340 c59249f9 Juan Quintela
    # Make sure the target and host cpus are compatible
3341 c59249f9 Juan Quintela
    if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
3342 c59249f9 Juan Quintela
      \( "$target_arch2" = "$cpu" -o \
3343 c59249f9 Juan Quintela
      \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc" \) -o \
3344 5f114bc6 Alexander Graf
      \( "$target_arch2" = "ppc64"  -a "$cpu" = "ppc" \) -o \
3345 adf82011 René Rebe
      \( "$target_arch2" = "ppc"    -a "$cpu" = "ppc64" \) -o \
3346 adf82011 René Rebe
      \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc64" \) -o \
3347 c59249f9 Juan Quintela
      \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
3348 c59249f9 Juan Quintela
      \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
3349 25be210f Juan Quintela
      echo "CONFIG_KVM=y" >> $config_target_mak
3350 1ba16968 Stefan Weil
      if test "$vhost_net" = "yes" ; then
3351 d5970055 Michael S. Tsirkin
        echo "CONFIG_VHOST_NET=y" >> $config_target_mak
3352 d5970055 Michael S. Tsirkin
      fi
3353 c59249f9 Juan Quintela
    fi
3354 c59249f9 Juan Quintela
esac
3355 de83cd02 bellard
if test "$target_bigendian" = "yes" ; then
3356 25be210f Juan Quintela
  echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak
3357 de83cd02 bellard
fi
3358 97a847bc bellard
if test "$target_softmmu" = "yes" ; then
3359 b1aa27c4 Paul Brook
  echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_target_mak
3360 25be210f Juan Quintela
  echo "CONFIG_SOFTMMU=y" >> $config_target_mak
3361 de3a354a Michael Walle
  echo "LIBS+=$libs_softmmu $target_libs_softmmu" >> $config_target_mak
3362 0e8c9214 Andreas Färber
  echo "HWDIR=../libhw$target_phys_bits" >> $config_target_mak
3363 5791f45b Kirill A. Shutemov
  echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak
3364 43ce4dfe bellard
fi
3365 997344f3 bellard
if test "$target_user_only" = "yes" ; then
3366 25be210f Juan Quintela
  echo "CONFIG_USER_ONLY=y" >> $config_target_mak
3367 997344f3 bellard
fi
3368 831b7825 ths
if test "$target_linux_user" = "yes" ; then
3369 25be210f Juan Quintela
  echo "CONFIG_LINUX_USER=y" >> $config_target_mak
3370 831b7825 ths
fi
3371 831b7825 ths
if test "$target_darwin_user" = "yes" ; then
3372 25be210f Juan Quintela
  echo "CONFIG_DARWIN_USER=y" >> $config_target_mak
3373 831b7825 ths
fi
3374 111a38b0 Robert Relyea
if test "$smartcard_nss" = "yes" ; then
3375 111a38b0 Robert Relyea
  echo "subdir-$target: subdir-libcacard" >> $config_host_mak
3376 111a38b0 Robert Relyea
  echo "libcacard_libs=$libcacard_libs" >> $config_host_mak
3377 111a38b0 Robert Relyea
  echo "libcacard_cflags=$libcacard_cflags" >> $config_host_mak
3378 111a38b0 Robert Relyea
fi
3379 56aebc89 pbrook
list=""
3380 56aebc89 pbrook
if test ! -z "$gdb_xml_files" ; then
3381 56aebc89 pbrook
  for x in $gdb_xml_files; do
3382 56aebc89 pbrook
    list="$list $source_path/gdb-xml/$x"
3383 56aebc89 pbrook
  done
3384 3d0f1517 Juan Quintela
  echo "TARGET_XML_FILES=$list" >> $config_target_mak
3385 56aebc89 pbrook
fi
3386 97a847bc bellard
3387 e5fe0c52 pbrook
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
3388 25be210f Juan Quintela
  echo "TARGET_HAS_BFLT=y" >> $config_target_mak
3389 e5fe0c52 pbrook
fi
3390 bd0c5661 pbrook
if test "$target_user_only" = "yes" \
3391 bd0c5661 pbrook
        -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
3392 25be210f Juan Quintela
  echo "CONFIG_USE_NPTL=y" >> $config_target_mak
3393 bd0c5661 pbrook
fi
3394 379f6698 Paul Brook
if test "$target_user_only" = "yes" -a "$guest_base" = "yes"; then
3395 25be210f Juan Quintela
  echo "CONFIG_USE_GUEST_BASE=y" >> $config_target_mak
3396 379f6698 Paul Brook
fi
3397 84778508 blueswir1
if test "$target_bsd_user" = "yes" ; then
3398 25be210f Juan Quintela
  echo "CONFIG_BSD_USER=y" >> $config_target_mak
3399 84778508 blueswir1
fi
3400 5b0753e0 bellard
3401 4afddb55 Juan Quintela
# generate QEMU_CFLAGS/LDFLAGS for targets
3402 fa282484 Juan Quintela
3403 4afddb55 Juan Quintela
cflags=""
3404 f9728943 Paolo Bonzini
includes=""
3405 fa282484 Juan Quintela
ldflags=""
3406 9b8e111f Juan Quintela
3407 57ddfbf7 Juan Quintela
if test "$ARCH" = "sparc64" ; then
3408 f9728943 Paolo Bonzini
  includes="-I\$(SRC_PATH)/tcg/sparc $includes"
3409 24e804ec Alexander Graf
elif test "$ARCH" = "s390x" ; then
3410 f9728943 Paolo Bonzini
  includes="-I\$(SRC_PATH)/tcg/s390 $includes"
3411 5d8a4f8f Richard Henderson
elif test "$ARCH" = "x86_64" ; then
3412 f9728943 Paolo Bonzini
  includes="-I\$(SRC_PATH)/tcg/i386 $includes"
3413 57ddfbf7 Juan Quintela
else
3414 f9728943 Paolo Bonzini
  includes="-I\$(SRC_PATH)/tcg/\$(ARCH) $includes"
3415 57ddfbf7 Juan Quintela
fi
3416 f9728943 Paolo Bonzini
includes="-I\$(SRC_PATH)/tcg $includes"
3417 57ddfbf7 Juan Quintela
3418 4d904533 Blue Swirl
if test "$target_user_only" = "yes" ; then
3419 4d904533 Blue Swirl
    libdis_config_mak=libdis-user/config.mak
3420 4d904533 Blue Swirl
else
3421 4d904533 Blue Swirl
    libdis_config_mak=libdis/config.mak
3422 4d904533 Blue Swirl
fi
3423 4d904533 Blue Swirl
3424 64656024 Juan Quintela
for i in $ARCH $TARGET_BASE_ARCH ; do
3425 64656024 Juan Quintela
  case "$i" in
3426 64656024 Juan Quintela
  alpha)
3427 25be210f Juan Quintela
    echo "CONFIG_ALPHA_DIS=y"  >> $config_target_mak
3428 4d904533 Blue Swirl
    echo "CONFIG_ALPHA_DIS=y"  >> $libdis_config_mak
3429 64656024 Juan Quintela
  ;;
3430 64656024 Juan Quintela
  arm)
3431 25be210f Juan Quintela
    echo "CONFIG_ARM_DIS=y"  >> $config_target_mak
3432 4d904533 Blue Swirl
    echo "CONFIG_ARM_DIS=y"  >> $libdis_config_mak
3433 64656024 Juan Quintela
  ;;
3434 64656024 Juan Quintela
  cris)
3435 25be210f Juan Quintela
    echo "CONFIG_CRIS_DIS=y"  >> $config_target_mak
3436 4d904533 Blue Swirl
    echo "CONFIG_CRIS_DIS=y"  >> $libdis_config_mak
3437 64656024 Juan Quintela
  ;;
3438 64656024 Juan Quintela
  hppa)
3439 25be210f Juan Quintela
    echo "CONFIG_HPPA_DIS=y"  >> $config_target_mak
3440 4d904533 Blue Swirl
    echo "CONFIG_HPPA_DIS=y"  >> $libdis_config_mak
3441 64656024 Juan Quintela
  ;;
3442 64656024 Juan Quintela
  i386|x86_64)
3443 25be210f Juan Quintela
    echo "CONFIG_I386_DIS=y"  >> $config_target_mak
3444 4d904533 Blue Swirl
    echo "CONFIG_I386_DIS=y"  >> $libdis_config_mak
3445 64656024 Juan Quintela
  ;;
3446 903ec55c Aurelien Jarno
  ia64*)
3447 903ec55c Aurelien Jarno
    echo "CONFIG_IA64_DIS=y"  >> $config_target_mak
3448 903ec55c Aurelien Jarno
    echo "CONFIG_IA64_DIS=y"  >> $libdis_config_mak
3449 903ec55c Aurelien Jarno
  ;;
3450 64656024 Juan Quintela
  m68k)
3451 25be210f Juan Quintela
    echo "CONFIG_M68K_DIS=y"  >> $config_target_mak
3452 4d904533 Blue Swirl
    echo "CONFIG_M68K_DIS=y"  >> $libdis_config_mak
3453 64656024 Juan Quintela
  ;;
3454 877fdc12 Edgar E. Iglesias
  microblaze*)
3455 25be210f Juan Quintela
    echo "CONFIG_MICROBLAZE_DIS=y"  >> $config_target_mak
3456 4d904533 Blue Swirl
    echo "CONFIG_MICROBLAZE_DIS=y"  >> $libdis_config_mak
3457 64656024 Juan Quintela
  ;;
3458 64656024 Juan Quintela
  mips*)
3459 25be210f Juan Quintela
    echo "CONFIG_MIPS_DIS=y"  >> $config_target_mak
3460 4d904533 Blue Swirl
    echo "CONFIG_MIPS_DIS=y"  >> $libdis_config_mak
3461 64656024 Juan Quintela
  ;;
3462 64656024 Juan Quintela
  ppc*)
3463 25be210f Juan Quintela
    echo "CONFIG_PPC_DIS=y"  >> $config_target_mak
3464 4d904533 Blue Swirl
    echo "CONFIG_PPC_DIS=y"  >> $libdis_config_mak
3465 64656024 Juan Quintela
  ;;
3466 24e804ec Alexander Graf
  s390*)
3467 25be210f Juan Quintela
    echo "CONFIG_S390_DIS=y"  >> $config_target_mak
3468 4d904533 Blue Swirl
    echo "CONFIG_S390_DIS=y"  >> $libdis_config_mak
3469 64656024 Juan Quintela
  ;;
3470 64656024 Juan Quintela
  sh4)
3471 25be210f Juan Quintela
    echo "CONFIG_SH4_DIS=y"  >> $config_target_mak
3472 4d904533 Blue Swirl
    echo "CONFIG_SH4_DIS=y"  >> $libdis_config_mak
3473 64656024 Juan Quintela
  ;;
3474 64656024 Juan Quintela
  sparc*)
3475 25be210f Juan Quintela
    echo "CONFIG_SPARC_DIS=y"  >> $config_target_mak
3476 4d904533 Blue Swirl
    echo "CONFIG_SPARC_DIS=y"  >> $libdis_config_mak
3477 64656024 Juan Quintela
  ;;
3478 64656024 Juan Quintela
  esac
3479 64656024 Juan Quintela
done
3480 64656024 Juan Quintela
3481 6ee7126f Juan Quintela
case "$ARCH" in
3482 6ee7126f Juan Quintela
alpha)
3483 6ee7126f Juan Quintela
  # Ensure there's only a single GP
3484 6ee7126f Juan Quintela
  cflags="-msmall-data $cflags"
3485 6ee7126f Juan Quintela
;;
3486 6ee7126f Juan Quintela
esac
3487 6ee7126f Juan Quintela
3488 55d9c04b Juan Quintela
if test "$target_softmmu" = "yes" ; then
3489 55d9c04b Juan Quintela
  case "$TARGET_BASE_ARCH" in
3490 55d9c04b Juan Quintela
  arm)
3491 55d9c04b Juan Quintela
    cflags="-DHAS_AUDIO $cflags"
3492 25a8bb96 Michael Walle
  ;;
3493 25a8bb96 Michael Walle
  lm32)
3494 25a8bb96 Michael Walle
    cflags="-DHAS_AUDIO $cflags"
3495 55d9c04b Juan Quintela
  ;;
3496 55d9c04b Juan Quintela
  i386|mips|ppc)
3497 55d9c04b Juan Quintela
    cflags="-DHAS_AUDIO -DHAS_AUDIO_CHOICE $cflags"
3498 55d9c04b Juan Quintela
  ;;
3499 55d9c04b Juan Quintela
  esac
3500 55d9c04b Juan Quintela
fi
3501 55d9c04b Juan Quintela
3502 34005a00 Kirill A. Shutemov
if test "$target_user_only" = "yes" -a "$static" = "no" -a \
3503 50108930 Blue Swirl
	"$user_pie" = "yes" ; then
3504 34005a00 Kirill A. Shutemov
  cflags="-fpie $cflags"
3505 34005a00 Kirill A. Shutemov
  ldflags="-pie $ldflags"
3506 34005a00 Kirill A. Shutemov
fi
3507 34005a00 Kirill A. Shutemov
3508 471857dd Juan Quintela
if test "$target_softmmu" = "yes" -a \( \
3509 471857dd Juan Quintela
        "$TARGET_ARCH" = "microblaze" -o \
3510 471857dd Juan Quintela
        "$TARGET_ARCH" = "cris" \) ; then
3511 25be210f Juan Quintela
  echo "CONFIG_NEED_MMU=y" >> $config_target_mak
3512 471857dd Juan Quintela
fi
3513 471857dd Juan Quintela
3514 d02c1db3 Juan Quintela
if test "$gprof" = "yes" ; then
3515 25be210f Juan Quintela
  echo "TARGET_GPROF=yes" >> $config_target_mak
3516 d02c1db3 Juan Quintela
  if test "$target_linux_user" = "yes" ; then
3517 d02c1db3 Juan Quintela
    cflags="-p $cflags"
3518 d02c1db3 Juan Quintela
    ldflags="-p $ldflags"
3519 d02c1db3 Juan Quintela
  fi
3520 d02c1db3 Juan Quintela
  if test "$target_softmmu" = "yes" ; then
3521 d02c1db3 Juan Quintela
    ldflags="-p $ldflags"
3522 25be210f Juan Quintela
    echo "GPROF_CFLAGS=-p" >> $config_target_mak
3523 d02c1db3 Juan Quintela
  fi
3524 d02c1db3 Juan Quintela
fi
3525 d02c1db3 Juan Quintela
3526 6ee7126f Juan Quintela
linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld"
3527 9b8e111f Juan Quintela
if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
3528 fa282484 Juan Quintela
  case "$ARCH" in
3529 fa282484 Juan Quintela
  sparc)
3530 fa282484 Juan Quintela
    # -static is used to avoid g1/g3 usage by the dynamic linker
3531 322e5878 Juan Quintela
    ldflags="$linker_script -static $ldflags"
3532 fa282484 Juan Quintela
    ;;
3533 4d58be06 Richard Henderson
  alpha | s390x)
3534 4d58be06 Richard Henderson
    # The default placement of the application is fine.
3535 4d58be06 Richard Henderson
    ;;
3536 fd76e73a Richard Henderson
  *)
3537 322e5878 Juan Quintela
    ldflags="$linker_script $ldflags"
3538 fa282484 Juan Quintela
    ;;
3539 fa282484 Juan Quintela
  esac
3540 fa282484 Juan Quintela
fi
3541 fa282484 Juan Quintela
3542 e205c790 Jan Kiszka
# use included Linux headers
3543 af2be207 Jan Kiszka
if test "$linux" = "yes" ; then
3544 af2be207 Jan Kiszka
  includes="-I\$(SRC_PATH)/linux-headers $includes"
3545 af2be207 Jan Kiszka
  mkdir -p linux-headers
3546 af2be207 Jan Kiszka
  case "$cpu" in
3547 af2be207 Jan Kiszka
  i386|x86_64)
3548 af2be207 Jan Kiszka
    symlink $source_path/linux-headers/asm-x86 linux-headers/asm
3549 af2be207 Jan Kiszka
    ;;
3550 af2be207 Jan Kiszka
  ppcemb|ppc|ppc64)
3551 af2be207 Jan Kiszka
    symlink $source_path/linux-headers/asm-powerpc linux-headers/asm
3552 af2be207 Jan Kiszka
    ;;
3553 af2be207 Jan Kiszka
  s390x)
3554 af2be207 Jan Kiszka
    symlink $source_path/linux-headers/asm-s390 linux-headers/asm
3555 af2be207 Jan Kiszka
    ;;
3556 af2be207 Jan Kiszka
  esac
3557 af2be207 Jan Kiszka
fi
3558 e205c790 Jan Kiszka
3559 25be210f Juan Quintela
echo "LDFLAGS+=$ldflags" >> $config_target_mak
3560 25be210f Juan Quintela
echo "QEMU_CFLAGS+=$cflags" >> $config_target_mak
3561 f9728943 Paolo Bonzini
echo "QEMU_INCLUDES+=$includes" >> $config_target_mak
3562 fa282484 Juan Quintela
3563 97a847bc bellard
done # for target in $targets
3564 7d13299d bellard
3565 d1807a4f Paolo Bonzini
# build tree in object directory in case the source is not in the current directory
3566 d1807a4f Paolo Bonzini
DIRS="tests tests/cris slirp audio block net pc-bios/optionrom"
3567 446b9165 Andreas Färber
DIRS="$DIRS pc-bios/spapr-rtas"
3568 d1807a4f Paolo Bonzini
DIRS="$DIRS roms/seabios roms/vgabios"
3569 d1807a4f Paolo Bonzini
DIRS="$DIRS fsdev ui"
3570 2345c77c Michael Roth
DIRS="$DIRS qapi"
3571 13a286d5 Michael Roth
DIRS="$DIRS qga"
3572 d1807a4f Paolo Bonzini
FILES="Makefile tests/Makefile"
3573 d1807a4f Paolo Bonzini
FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
3574 d1807a4f Paolo Bonzini
FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps"
3575 446b9165 Andreas Färber
FILES="$FILES pc-bios/spapr-rtas/Makefile"
3576 d1807a4f Paolo Bonzini
FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile"
3577 5ee8ad71 Alex Williamson
for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.rom $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do
3578 d1807a4f Paolo Bonzini
    FILES="$FILES pc-bios/`basename $bios_file`"
3579 d1807a4f Paolo Bonzini
done
3580 d1807a4f Paolo Bonzini
mkdir -p $DIRS
3581 d1807a4f Paolo Bonzini
for f in $FILES ; do
3582 f9245e10 Peter Maydell
    if [ -e "$source_path/$f" ] && ! [ -e "$f" ]; then
3583 f9245e10 Peter Maydell
        symlink "$source_path/$f" "$f"
3584 f9245e10 Peter Maydell
    fi
3585 d1807a4f Paolo Bonzini
done
3586 1ad2134f Paul Brook
3587 c34ebfdc Anthony Liguori
# temporary config to build submodules
3588 2d9f27d2 Anthony Liguori
for rom in seabios vgabios ; do
3589 c34ebfdc Anthony Liguori
    config_mak=roms/$rom/config.mak
3590 37116c89 Stefan Weil
    echo "# Automatically generated by configure - do not modify" > $config_mak
3591 c34ebfdc Anthony Liguori
    echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak
3592 c34ebfdc Anthony Liguori
    echo "CC=$cc" >> $config_mak
3593 c34ebfdc Anthony Liguori
    echo "BCC=bcc" >> $config_mak
3594 c34ebfdc Anthony Liguori
    echo "CPP=${cross_prefix}cpp" >> $config_mak
3595 c34ebfdc Anthony Liguori
    echo "OBJCOPY=objcopy" >> $config_mak
3596 c34ebfdc Anthony Liguori
    echo "IASL=iasl" >> $config_mak
3597 c34ebfdc Anthony Liguori
    echo "LD=$ld" >> $config_mak
3598 c34ebfdc Anthony Liguori
done
3599 c34ebfdc Anthony Liguori
3600 1ad2134f Paul Brook
for hwlib in 32 64; do
3601 1ad2134f Paul Brook
  d=libhw$hwlib
3602 1ad2134f Paul Brook
  mkdir -p $d
3603 9953b2fc Blue Swirl
  mkdir -p $d/ide
3604 11568d6d Paolo Bonzini
  symlink $source_path/Makefile.hw $d/Makefile
3605 353ac78d Aneesh Kumar K.V
  mkdir -p $d/9pfs
3606 37116c89 Stefan Weil
  echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" > $d/config.mak
3607 1ad2134f Paul Brook
done
3608 add16157 Blue Swirl
3609 111a38b0 Robert Relyea
if [ "$source_path" != `pwd` ]; then
3610 111a38b0 Robert Relyea
    # out of tree build
3611 111a38b0 Robert Relyea
    mkdir -p libcacard
3612 111a38b0 Robert Relyea
    rm -f libcacard/Makefile
3613 44dc0ca3 Alon Levy
    symlink "$source_path/libcacard/Makefile" libcacard/Makefile
3614 111a38b0 Robert Relyea
fi
3615 111a38b0 Robert Relyea
3616 add16157 Blue Swirl
d=libuser
3617 add16157 Blue Swirl
mkdir -p $d
3618 11568d6d Paolo Bonzini
symlink $source_path/Makefile.user $d/Makefile
3619 299060a0 Kirill A. Shutemov
if test "$static" = "no" -a "$user_pie" = "yes" ; then
3620 299060a0 Kirill A. Shutemov
  echo "QEMU_CFLAGS+=-fpie" > $d/config.mak
3621 299060a0 Kirill A. Shutemov
fi
3622 b40292e7 Jan Kiszka
3623 b40292e7 Jan Kiszka
if test "$docs" = "yes" ; then
3624 b40292e7 Jan Kiszka
  mkdir -p QMP
3625 b40292e7 Jan Kiszka
fi