Statistics
| Branch: | Revision:

root / configure @ f9188227

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