Statistics
| Branch: | Revision:

root / configure @ 82b11662

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