Statistics
| Branch: | Revision:

root / configure @ 0f3301d4

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