Statistics
| Branch: | Revision:

root / configure @ aedce09e

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