17d13299dSbellard#!/bin/sh 27d13299dSbellard# 33ef693a0Sbellard# qemu configure script (c) 2003 Fabrice Bellard 47d13299dSbellard# 57d13299dSbellard# set temporary file name 67d13299dSbellardif test ! -z "$TMPDIR" ; then 77d13299dSbellard TMPDIR1="${TMPDIR}" 87d13299dSbellardelif test ! -z "$TEMPDIR" ; then 97d13299dSbellard TMPDIR1="${TEMPDIR}" 107d13299dSbellardelse 117d13299dSbellard TMPDIR1="/tmp" 127d13299dSbellardfi 137d13299dSbellard 143ef693a0SbellardTMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" 153ef693a0SbellardTMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" 16a91b857cSmalcTMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.exe" 177d13299dSbellard 180ba8681eSLoïc Minier# NB: do not call "exit" in the trap handler; this is buggy with some shells; 190ba8681eSLoïc Minier# see <1285349658-3122-1-git-send-email-loic.minier@linaro.org> 200ba8681eSLoïc Miniertrap "rm -f $TMPC $TMPO $TMPE" EXIT INT QUIT TERM 21da1d85e3SGerd Hoffmannrm -f config.log 229ac81bbbSmalc 2352166aa0SJuan Quintelacompile_object() { 24da1d85e3SGerd Hoffmann echo $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 25da1d85e3SGerd Hoffmann $cc $QEMU_CFLAGS -c -o $TMPO $TMPC >> config.log 2>&1 2652166aa0SJuan Quintela} 2752166aa0SJuan Quintela 2852166aa0SJuan Quintelacompile_prog() { 2952166aa0SJuan Quintela local_cflags="$1" 3052166aa0SJuan Quintela local_ldflags="$2" 31da1d85e3SGerd Hoffmann echo $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 32da1d85e3SGerd Hoffmann $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags >> config.log 2>&1 3352166aa0SJuan Quintela} 3452166aa0SJuan Quintela 3511568d6dSPaolo Bonzini# symbolically link $1 to $2. Portable version of "ln -sf". 3611568d6dSPaolo Bonzinisymlink() { 3711568d6dSPaolo Bonzini rm -f $2 3811568d6dSPaolo Bonzini ln -s $1 $2 3911568d6dSPaolo Bonzini} 4011568d6dSPaolo Bonzini 410dba6195SLoïc Minier# check whether a command is available to this shell (may be either an 420dba6195SLoïc Minier# executable or a builtin) 430dba6195SLoïc Minierhas() { 440dba6195SLoïc Minier type "$1" >/dev/null 2>&1 450dba6195SLoïc Minier} 460dba6195SLoïc Minier 470dba6195SLoïc Minier# search for an executable in PATH 480dba6195SLoïc Minierpath_of() { 490dba6195SLoïc Minier local_command="$1" 500dba6195SLoïc Minier local_ifs="$IFS" 510dba6195SLoïc Minier local_dir="" 520dba6195SLoïc Minier 530dba6195SLoïc Minier # pathname has a dir component? 540dba6195SLoïc Minier if [ "${local_command#*/}" != "$local_command" ]; then 550dba6195SLoïc Minier if [ -x "$local_command" ] && [ ! -d "$local_command" ]; then 560dba6195SLoïc Minier echo "$local_command" 570dba6195SLoïc Minier return 0 580dba6195SLoïc Minier fi 590dba6195SLoïc Minier fi 600dba6195SLoïc Minier if [ -z "$local_command" ]; then 610dba6195SLoïc Minier return 1 620dba6195SLoïc Minier fi 630dba6195SLoïc Minier 640dba6195SLoïc Minier IFS=: 650dba6195SLoïc Minier for local_dir in $PATH; do 660dba6195SLoïc Minier if [ -x "$local_dir/$local_command" ] && [ ! -d "$local_dir/$local_command" ]; then 670dba6195SLoïc Minier echo "$local_dir/$local_command" 680dba6195SLoïc Minier IFS="${local_ifs:-$(printf ' \t\n')}" 690dba6195SLoïc Minier return 0 700dba6195SLoïc Minier fi 710dba6195SLoïc Minier done 720dba6195SLoïc Minier # not found 730dba6195SLoïc Minier IFS="${local_ifs:-$(printf ' \t\n')}" 740dba6195SLoïc Minier return 1 750dba6195SLoïc Minier} 760dba6195SLoïc Minier 777d13299dSbellard# default parameters 78ca4deeb1SPaolo Bonzinisource_path=`dirname "$0"` 792ff6b91eSJuan Quintelacpu="" 801e43adfcSbellardinterp_prefix="/usr/gnemul/qemu-%M" 8143ce4dfeSbellardstatic="no" 82ed968ff1SJuan Quintelasparc_cpu="" 837d13299dSbellardcross_prefix="" 840c58ac1cSmalcaudio_drv_list="" 85d61a4ce8SGerd Hoffmannaudio_card_list="ac97 es1370 sb16 hda" 86d61a4ce8SGerd Hoffmannaudio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus hda" 87eb852011SMarkus Armbrusterblock_drv_whitelist="" 887d13299dSbellardhost_cc="gcc" 89c81da56eSJuan Quintelahelper_cflags="" 9073da375eSJuan Quintelalibs_softmmu="" 913e2e0e6bSJuan Quintelalibs_tools="" 9267f86e8eSJuan Quintelaaudio_pt_int="" 93d5631638Smalcaudio_win_int="" 942b2e59e6SPaolo Bonzinicc_i386=i386-pc-linux-gnu-gcc 95957f1f99SMichael Rothlibs_qga="" 96ac0df51dSaliguori 97377529c0SPaolo Bonzinitarget_list="" 98377529c0SPaolo Bonzini 99377529c0SPaolo Bonzini# Default value for a variable defining feature "foo". 100377529c0SPaolo Bonzini# * foo="no" feature will only be used if --enable-foo arg is given 101377529c0SPaolo Bonzini# * foo="" feature will be searched for, and if found, will be used 102377529c0SPaolo Bonzini# unless --disable-foo is given 103377529c0SPaolo Bonzini# * foo="yes" this value will only be set by --enable-foo flag. 104377529c0SPaolo Bonzini# feature will searched for, 105377529c0SPaolo Bonzini# if not found, configure exits with error 106377529c0SPaolo Bonzini# 107377529c0SPaolo Bonzini# Always add --enable-foo and --disable-foo command line args. 108377529c0SPaolo Bonzini# Distributions want to ensure that several features are compiled in, and it 109377529c0SPaolo Bonzini# is impossible without a --enable-foo that exits if a feature is not found. 110377529c0SPaolo Bonzini 111377529c0SPaolo Bonzinibluez="" 112377529c0SPaolo Bonzinibrlapi="" 113377529c0SPaolo Bonzinicurl="" 114377529c0SPaolo Bonzinicurses="" 115377529c0SPaolo Bonzinidocs="" 116377529c0SPaolo Bonzinifdt="" 117377529c0SPaolo Bonzininptl="" 118377529c0SPaolo Bonzinisdl="" 119821601eaSJes Sorensenvnc="yes" 120377529c0SPaolo Bonzinisparse="no" 121377529c0SPaolo Bonziniuuid="" 122377529c0SPaolo Bonzinivde="" 123377529c0SPaolo Bonzinivnc_tls="" 124377529c0SPaolo Bonzinivnc_sasl="" 125377529c0SPaolo Bonzinivnc_jpeg="" 126377529c0SPaolo Bonzinivnc_png="" 127377529c0SPaolo Bonzinivnc_thread="no" 128377529c0SPaolo Bonzinixen="" 129d5b93ddfSAnthony PERARDxen_ctrl_version="" 130377529c0SPaolo Bonzinilinux_aio="" 131377529c0SPaolo Bonziniattr="" 132377529c0SPaolo Bonzinixfs="" 133377529c0SPaolo Bonzini 134d41a75a2SBradvhost_net="no" 135d41a75a2SBradkvm="no" 136377529c0SPaolo Bonzinigprof="no" 137377529c0SPaolo Bonzinidebug_tcg="no" 138377529c0SPaolo Bonzinidebug_mon="no" 139377529c0SPaolo Bonzinidebug="no" 140377529c0SPaolo Bonzinistrip_opt="yes" 141*9195b2c2SStefan Weiltcg_interpreter="no" 142377529c0SPaolo Bonzinibigendian="no" 143377529c0SPaolo Bonzinimingw32="no" 144377529c0SPaolo BonziniEXESUF="" 145377529c0SPaolo Bonziniprefix="/usr/local" 146377529c0SPaolo Bonzinimandir="\${prefix}/share/man" 147377529c0SPaolo Bonzinidatadir="\${prefix}/share/qemu" 148377529c0SPaolo Bonzinidocdir="\${prefix}/share/doc/qemu" 149377529c0SPaolo Bonzinibindir="\${prefix}/bin" 1503aa5d2beSAlon Levylibdir="\${prefix}/lib" 1510f94d6daSAlon Levyincludedir="\${prefix}/include" 152377529c0SPaolo Bonzinisysconfdir="\${prefix}/etc" 153377529c0SPaolo Bonziniconfsuffix="/qemu" 154377529c0SPaolo Bonzinislirp="yes" 155377529c0SPaolo Bonzinifmod_lib="" 156377529c0SPaolo Bonzinifmod_inc="" 157377529c0SPaolo Bonzinioss_lib="" 158377529c0SPaolo Bonzinibsd="no" 159377529c0SPaolo Bonzinilinux="no" 160377529c0SPaolo Bonzinisolaris="no" 161377529c0SPaolo Bonziniprofiler="no" 162377529c0SPaolo Bonzinicocoa="no" 163377529c0SPaolo Bonzinisoftmmu="yes" 164377529c0SPaolo Bonzinilinux_user="no" 165377529c0SPaolo Bonzinidarwin_user="no" 166377529c0SPaolo Bonzinibsd_user="no" 167377529c0SPaolo Bonziniguest_base="" 168377529c0SPaolo Bonziniuname_release="" 169377529c0SPaolo Bonzinimixemu="no" 170377529c0SPaolo Bonziniaix="no" 171377529c0SPaolo Bonziniblobs="yes" 172377529c0SPaolo Bonzinipkgversion="" 173377529c0SPaolo Bonzinicheck_utests="no" 174377529c0SPaolo Bonziniuser_pie="no" 175377529c0SPaolo Bonzinizero_malloc="" 176377529c0SPaolo Bonzinitrace_backend="nop" 177377529c0SPaolo Bonzinitrace_file="trace" 178377529c0SPaolo Bonzinispice="" 179377529c0SPaolo Bonzinirbd="" 18036707144SAlon Levysmartcard="" 181111a38b0SRobert Relyeasmartcard_nss="" 18269354a83SHans de Goedeusb_redir="" 183430a3c18SMichael Walleopengl="" 1841ece9905SAlon Levyzlib="yes" 185d138cee9SMichael Rothguest_agent="yes" 186c589b249SRonnie Sahlberglibiscsi="" 187377529c0SPaolo Bonzini 188ac0df51dSaliguori# parse CC options first 189ac0df51dSaliguorifor opt do 190ac0df51dSaliguori optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 191ac0df51dSaliguori case "$opt" in 192ac0df51dSaliguori --cross-prefix=*) cross_prefix="$optarg" 193ac0df51dSaliguori ;; 1943d8df640SPaolo Bonzini --cc=*) CC="$optarg" 195ac0df51dSaliguori ;; 196ca4deeb1SPaolo Bonzini --source-path=*) source_path="$optarg" 197ca4deeb1SPaolo Bonzini ;; 1982ff6b91eSJuan Quintela --cpu=*) cpu="$optarg" 1992ff6b91eSJuan Quintela ;; 200a558ee17SJuan Quintela --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS" 201e2a2ed06SJuan Quintela ;; 202e2a2ed06SJuan Quintela --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS" 203e2a2ed06SJuan Quintela ;; 20450e7b1a0SJuan Quintela --sparc_cpu=*) 20550e7b1a0SJuan Quintela sparc_cpu="$optarg" 20650e7b1a0SJuan Quintela case $sparc_cpu in 207ed968ff1SJuan Quintela v7|v8|v8plus|v8plusa) 20850e7b1a0SJuan Quintela cpu="sparc" 20950e7b1a0SJuan Quintela ;; 21050e7b1a0SJuan Quintela v9) 21150e7b1a0SJuan Quintela cpu="sparc64" 21250e7b1a0SJuan Quintela ;; 21350e7b1a0SJuan Quintela *) 21450e7b1a0SJuan Quintela echo "undefined SPARC architecture. Exiting"; 21550e7b1a0SJuan Quintela exit 1 21650e7b1a0SJuan Quintela ;; 21750e7b1a0SJuan Quintela esac 21850e7b1a0SJuan Quintela ;; 219ac0df51dSaliguori esac 220ac0df51dSaliguoridone 221ac0df51dSaliguori# OS specific 222ac0df51dSaliguori# Using uname is really, really broken. Once we have the right set of checks 223ac0df51dSaliguori# we can eliminate it's usage altogether 224ac0df51dSaliguori 225b3198cc2SStuart Yodercc="${CC-${cross_prefix}gcc}" 226b3198cc2SStuart Yoderar="${AR-${cross_prefix}ar}" 227b3198cc2SStuart Yoderobjcopy="${OBJCOPY-${cross_prefix}objcopy}" 228b3198cc2SStuart Yoderld="${LD-${cross_prefix}ld}" 2293f534581SBradlibtool="${LIBTOOL-${cross_prefix}libtool}" 230b3198cc2SStuart Yoderstrip="${STRIP-${cross_prefix}strip}" 231b3198cc2SStuart Yoderwindres="${WINDRES-${cross_prefix}windres}" 232b3198cc2SStuart Yoderpkg_config="${PKG_CONFIG-${cross_prefix}pkg-config}" 233b3198cc2SStuart Yodersdl_config="${SDL_CONFIG-${cross_prefix}sdl-config}" 234ac0df51dSaliguori 235be17dc90SMichael S. Tsirkin# default flags for all hosts 236be17dc90SMichael S. TsirkinQEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS" 237be17dc90SMichael S. TsirkinCFLAGS="-g $CFLAGS" 238f9188227SMike FrysingerQEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS" 239be17dc90SMichael S. TsirkinQEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS" 240be17dc90SMichael S. TsirkinQEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" 24184958305SKirill A. ShutemovQEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS" 242cbbab922SPaolo BonziniQEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu" 243be17dc90SMichael S. TsirkinLDFLAGS="-g $LDFLAGS" 244be17dc90SMichael S. Tsirkin 245ca4deeb1SPaolo Bonzini# make source path absolute 246ca4deeb1SPaolo Bonzinisource_path=`cd "$source_path"; pwd` 247ca4deeb1SPaolo Bonzini 248ac0df51dSaliguoricheck_define() { 249ac0df51dSaliguoricat > $TMPC <<EOF 250ac0df51dSaliguori#if !defined($1) 251ac0df51dSaliguori#error Not defined 252ac0df51dSaliguori#endif 253ac0df51dSaliguoriint main(void) { return 0; } 254ac0df51dSaliguoriEOF 25552166aa0SJuan Quintela compile_object 256ac0df51dSaliguori} 257ac0df51dSaliguori 2582ff6b91eSJuan Quintelaif test ! -z "$cpu" ; then 2592ff6b91eSJuan Quintela # command line argument 2602ff6b91eSJuan Quintela : 2612ff6b91eSJuan Quintelaelif check_define __i386__ ; then 262ac0df51dSaliguori cpu="i386" 263ac0df51dSaliguorielif check_define __x86_64__ ; then 264ac0df51dSaliguori cpu="x86_64" 2653aa9bd6cSblueswir1elif check_define __sparc__ ; then 2663aa9bd6cSblueswir1 # We can't check for 64 bit (when gcc is biarch) or V8PLUSA 2673aa9bd6cSblueswir1 # They must be specified using --sparc_cpu 2683aa9bd6cSblueswir1 if check_define __arch64__ ; then 2693aa9bd6cSblueswir1 cpu="sparc64" 2703aa9bd6cSblueswir1 else 2713aa9bd6cSblueswir1 cpu="sparc" 2723aa9bd6cSblueswir1 fi 273fdf7ed96Smalcelif check_define _ARCH_PPC ; then 274fdf7ed96Smalc if check_define _ARCH_PPC64 ; then 275fdf7ed96Smalc cpu="ppc64" 276ac0df51dSaliguori else 277fdf7ed96Smalc cpu="ppc" 278fdf7ed96Smalc fi 279afa05235SAurelien Jarnoelif check_define __mips__ ; then 280afa05235SAurelien Jarno cpu="mips" 281477ba620SAurelien Jarnoelif check_define __ia64__ ; then 282477ba620SAurelien Jarno cpu="ia64" 283d66ed0eaSAurelien Jarnoelif check_define __s390__ ; then 284d66ed0eaSAurelien Jarno if check_define __s390x__ ; then 285d66ed0eaSAurelien Jarno cpu="s390x" 286d66ed0eaSAurelien Jarno else 287d66ed0eaSAurelien Jarno cpu="s390" 288d66ed0eaSAurelien Jarno fi 289f28ffed5SBradelif check_define __ARMEB__ ; then 290f28ffed5SBrad cpu="armv4b" 291f28ffed5SBradelif check_define __ARMEL__ ; then 292f28ffed5SBrad cpu="armv4l" 293f28ffed5SBradelif check_define __hppa__ ; then 294f28ffed5SBrad cpu="hppa" 295fdf7ed96Smalcelse 296fdf7ed96Smalc cpu=`uname -m` 297ac0df51dSaliguorifi 298ac0df51dSaliguori 2997d13299dSbellardcase "$cpu" in 300d2fbca94SGuan Xuetao alpha|cris|ia64|lm32|m68k|microblaze|ppc|ppc64|sparc64|unicore32) 301ea8f20f8SJuan Quintela cpu="$cpu" 302ea8f20f8SJuan Quintela ;; 3037d13299dSbellard i386|i486|i586|i686|i86pc|BePC) 30497a847bcSbellard cpu="i386" 3057d13299dSbellard ;; 306aaa5fa14Saurel32 x86_64|amd64) 307aaa5fa14Saurel32 cpu="x86_64" 308aaa5fa14Saurel32 ;; 309ba68055eSbellard armv*b) 310808c4954Sbellard cpu="armv4b" 311808c4954Sbellard ;; 312ba68055eSbellard armv*l) 3137d13299dSbellard cpu="armv4l" 3147d13299dSbellard ;; 315f28ffed5SBrad hppa|parisc|parisc64) 316f54b3f92Saurel32 cpu="hppa" 317f54b3f92Saurel32 ;; 318afa05235SAurelien Jarno mips*) 319afa05235SAurelien Jarno cpu="mips" 320afa05235SAurelien Jarno ;; 32124e804ecSAlexander Graf s390) 322fb3e5849Sbellard cpu="s390" 323fb3e5849Sbellard ;; 32424e804ecSAlexander Graf s390x) 32524e804ecSAlexander Graf cpu="s390x" 32624e804ecSAlexander Graf ;; 3273142255cSblueswir1 sparc|sun4[cdmuv]) 328ae228531Sbellard cpu="sparc" 329ae228531Sbellard ;; 3307d13299dSbellard *) 331a447d4dcSPaolo Bonzini echo "Unsupported CPU = $cpu" 332a447d4dcSPaolo Bonzini exit 1 3337d13299dSbellard ;; 3347d13299dSbellardesac 335e2d52ad3SJuan Quintela 3367d13299dSbellard# OS specific 337ac0df51dSaliguoriif check_define __linux__ ; then 338ac0df51dSaliguori targetos="Linux" 339ac0df51dSaliguorielif check_define _WIN32 ; then 340ac0df51dSaliguori targetos='MINGW32' 341169dc5d3Sblueswir1elif check_define __OpenBSD__ ; then 342169dc5d3Sblueswir1 targetos='OpenBSD' 343169dc5d3Sblueswir1elif check_define __sun__ ; then 344169dc5d3Sblueswir1 targetos='SunOS' 345179cf400SAndreas Färberelif check_define __HAIKU__ ; then 346179cf400SAndreas Färber targetos='Haiku' 347ac0df51dSaliguorielse 3487d13299dSbellard targetos=`uname -s` 349ac0df51dSaliguorifi 3500dbfc675SJuan Quintela 3517d13299dSbellardcase $targetos in 352c326e0afSbellardCYGWIN*) 353c326e0afSbellard mingw32="yes" 354a558ee17SJuan Quintela QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS" 355d5631638Smalc audio_possible_drivers="winwave sdl" 356d5631638Smalc audio_drv_list="winwave" 357c326e0afSbellard;; 35867b915a5SbellardMINGW32*) 35967b915a5Sbellard mingw32="yes" 360d5631638Smalc audio_possible_drivers="winwave dsound sdl fmod" 361d5631638Smalc audio_drv_list="winwave" 36267b915a5Sbellard;; 3635c40d2bdSthsGNU/kFreeBSD) 364a167ba50SAurelien Jarno bsd="yes" 3650c58ac1cSmalc audio_drv_list="oss" 366f34af52cSaurel32 audio_possible_drivers="oss sdl esd pa" 3675c40d2bdSths;; 3687d3505c5SbellardFreeBSD) 3697d3505c5Sbellard bsd="yes" 3700db4a067SPaolo Bonzini make="${MAKE-gmake}" 3710c58ac1cSmalc audio_drv_list="oss" 372f34af52cSaurel32 audio_possible_drivers="oss sdl esd pa" 373f01576f1SJuergen Lock # needed for kinfo_getvmmap(3) in libutil.h 374f01576f1SJuergen Lock LIBS="-lutil $LIBS" 3757d3505c5Sbellard;; 376c5e97233Sblueswir1DragonFly) 377c5e97233Sblueswir1 bsd="yes" 3780db4a067SPaolo Bonzini make="${MAKE-gmake}" 379c5e97233Sblueswir1 audio_drv_list="oss" 380c5e97233Sblueswir1 audio_possible_drivers="oss sdl esd pa" 381c5e97233Sblueswir1;; 3827d3505c5SbellardNetBSD) 3837d3505c5Sbellard bsd="yes" 3840db4a067SPaolo Bonzini make="${MAKE-gmake}" 3850c58ac1cSmalc audio_drv_list="oss" 386c2de5c91Smalc audio_possible_drivers="oss sdl esd" 3878ef92a88Sblueswir1 oss_lib="-lossaudio" 3887d3505c5Sbellard;; 3897d3505c5SbellardOpenBSD) 3907d3505c5Sbellard bsd="yes" 3910db4a067SPaolo Bonzini make="${MAKE-gmake}" 3920c58ac1cSmalc audio_drv_list="oss" 393c2de5c91Smalc audio_possible_drivers="oss sdl esd" 3942f6a1ab0Sblueswir1 oss_lib="-lossaudio" 3957d3505c5Sbellard;; 39683fb7adfSbellardDarwin) 39783fb7adfSbellard bsd="yes" 39883fb7adfSbellard darwin="yes" 3990dbfc675SJuan Quintela # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can 4000dbfc675SJuan Quintela # run 64-bit userspace code 401aab8588aSmalc if [ "$cpu" = "i386" ] ; then 4021b0f9cc2Saliguori is_x86_64=`sysctl -n hw.optional.x86_64` 403aab8588aSmalc [ "$is_x86_64" = "1" ] && cpu=x86_64 4041b0f9cc2Saliguori fi 4051b0f9cc2Saliguori if [ "$cpu" = "x86_64" ] ; then 406a558ee17SJuan Quintela QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS" 4070c439cbfSJuan Quintela LDFLAGS="-arch x86_64 $LDFLAGS" 4081b0f9cc2Saliguori else 409a558ee17SJuan Quintela QEMU_CFLAGS="-mdynamic-no-pic $QEMU_CFLAGS" 4101b0f9cc2Saliguori fi 411831b7825Sths darwin_user="yes" 412fd677642Sths cocoa="yes" 4130c58ac1cSmalc audio_drv_list="coreaudio" 414c2de5c91Smalc audio_possible_drivers="coreaudio sdl fmod" 4150c439cbfSJuan Quintela LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS" 4167973f21cSJuan Quintela libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu" 41783fb7adfSbellard;; 418ec530c81SbellardSunOS) 419ec530c81Sbellard solaris="yes" 4200db4a067SPaolo Bonzini make="${MAKE-gmake}" 4210db4a067SPaolo Bonzini install="${INSTALL-ginstall}" 422fa58948dSBlue Swirl ld="gld" 423e2d8830eSBrad smbd="${SMBD-/usr/sfw/sbin/smbd}" 4240475a5caSths needs_libsunmath="no" 425c2b84fabSths solarisrev=`uname -r | cut -f2 -d.` 426ef18c883Sths # have to select again, because `uname -m` returns i86pc 427ef18c883Sths # even on an x86_64 box. 428ef18c883Sths solariscpu=`isainfo -k` 429ef18c883Sths if test "${solariscpu}" = "amd64" ; then 430ef18c883Sths cpu="x86_64" 431ef18c883Sths fi 432c2b84fabSths if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 4330475a5caSths if test "$solarisrev" -le 9 ; then 4340475a5caSths if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then 4350475a5caSths needs_libsunmath="yes" 436f14bfdf9SJuan Quintela QEMU_CFLAGS="-I/opt/SUNWspro/prod/include/cc $QEMU_CFLAGS" 437f14bfdf9SJuan Quintela LDFLAGS="-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib $LDFLAGS" 438f14bfdf9SJuan Quintela LIBS="-lsunmath $LIBS" 4390475a5caSths else 4400475a5caSths echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without" 4410475a5caSths echo "libsunmath from the Sun Studio compilers tools, due to a lack of" 4420475a5caSths echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86" 4430475a5caSths echo "Studio 11 can be downloaded from www.sun.com." 4440475a5caSths exit 1 4450475a5caSths fi 4460475a5caSths fi 44786b2bd93Sths fi 4486b4d2ba1Sths if test -f /usr/include/sys/soundcard.h ; then 4490c58ac1cSmalc audio_drv_list="oss" 4506b4d2ba1Sths fi 451c2de5c91Smalc audio_possible_drivers="oss sdl" 452d741429aSBlue Swirl# needed for CMSG_ macros in sys/socket.h 453d741429aSBlue Swirl QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS" 454d741429aSBlue Swirl# needed for TIOCWIN* defines in termios.h 455d741429aSBlue Swirl QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS" 456a558ee17SJuan Quintela QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS" 457e174c0bbSJuan Quintela LIBS="-lsocket -lnsl -lresolv $LIBS" 458ec530c81Sbellard;; 459b29fe3edSmalcAIX) 460b29fe3edSmalc aix="yes" 4610db4a067SPaolo Bonzini make="${MAKE-gmake}" 462b29fe3edSmalc;; 463179cf400SAndreas FärberHaiku) 464179cf400SAndreas Färber haiku="yes" 465179cf400SAndreas Färber QEMU_CFLAGS="-DB_USE_POSITIVE_POSIX_ERRORS $QEMU_CFLAGS" 466179cf400SAndreas Färber LIBS="-lposix_error_mapper -lnetwork $LIBS" 467179cf400SAndreas Färber;; 468fb065187Sbellard*) 4690c58ac1cSmalc audio_drv_list="oss" 470b8e59f18Smalc audio_possible_drivers="oss alsa sdl esd pa" 4715327cf48Sbellard linux="yes" 472831b7825Sths linux_user="yes" 47368063649Sblueswir1 usb="linux" 474af2be207SJan Kiszka kvm="yes" 475af2be207SJan Kiszka vhost_net="yes" 47607f4ddbfSbellard if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 477c2de5c91Smalc audio_possible_drivers="$audio_possible_drivers fmod" 478c9ec1fe4Sbellard fi 479fb065187Sbellard;; 4807d13299dSbellardesac 4817d13299dSbellard 4827d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 483b1a550a0Spbrook if [ "$darwin" != "yes" ] ; then 48468063649Sblueswir1 usb="bsd" 48583fb7adfSbellard fi 48684778508Sblueswir1 bsd_user="yes" 4877d3505c5Sbellardfi 4887d3505c5Sbellard 4890db4a067SPaolo Bonzini: ${make=${MAKE-make}} 4900db4a067SPaolo Bonzini: ${install=${INSTALL-install}} 491c886edfbSBlue Swirl: ${python=${PYTHON-python}} 492e2d8830eSBrad: ${smbd=${SMBD-/usr/sbin/smbd}} 4930db4a067SPaolo Bonzini 4943457a3f8SJuan Quintelaif test "$mingw32" = "yes" ; then 4953457a3f8SJuan Quintela EXESUF=".exe" 496a558ee17SJuan Quintela QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS" 497e94a7936SStefan Weil # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later) 498e94a7936SStefan Weil QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS" 49908f3896aSStefan Weil LIBS="-lwinmm -lws2_32 -liberty -liphlpapi $LIBS" 500683035deSPaolo Bonzini prefix="c:/Program Files/Qemu" 501683035deSPaolo Bonzini mandir="\${prefix}" 502683035deSPaolo Bonzini datadir="\${prefix}" 503683035deSPaolo Bonzini docdir="\${prefix}" 504683035deSPaolo Bonzini bindir="\${prefix}" 505683035deSPaolo Bonzini sysconfdir="\${prefix}" 506683035deSPaolo Bonzini confsuffix="" 50783b2f0a0SStefan Weil guest_agent="no" 5083457a3f8SJuan Quintelafi 5093457a3f8SJuan Quintela 510487fefdbSAnthony Liguoriwerror="" 51185aa5189Sbellard 5127d13299dSbellardfor opt do 513a46e4035Spbrook optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 5147d13299dSbellard case "$opt" in 5152efc3265Sbellard --help|-h) show_help=yes 5162efc3265Sbellard ;; 51799123e13SMike Frysinger --version|-V) exec cat $source_path/VERSION 51899123e13SMike Frysinger ;; 519b1a550a0Spbrook --prefix=*) prefix="$optarg" 5207d13299dSbellard ;; 521b1a550a0Spbrook --interp-prefix=*) interp_prefix="$optarg" 52232ce6337Sbellard ;; 523ca4deeb1SPaolo Bonzini --source-path=*) 5247d13299dSbellard ;; 525ac0df51dSaliguori --cross-prefix=*) 5267d13299dSbellard ;; 527ac0df51dSaliguori --cc=*) 5287d13299dSbellard ;; 529b1a550a0Spbrook --host-cc=*) host_cc="$optarg" 53083469015Sbellard ;; 531b1a550a0Spbrook --make=*) make="$optarg" 5327d13299dSbellard ;; 5336a882643Spbrook --install=*) install="$optarg" 5346a882643Spbrook ;; 535c886edfbSBlue Swirl --python=*) python="$optarg" 536c886edfbSBlue Swirl ;; 537e2d8830eSBrad --smbd=*) smbd="$optarg" 538e2d8830eSBrad ;; 539e2a2ed06SJuan Quintela --extra-cflags=*) 5407d13299dSbellard ;; 541e2a2ed06SJuan Quintela --extra-ldflags=*) 5427d13299dSbellard ;; 5432ff6b91eSJuan Quintela --cpu=*) 5447d13299dSbellard ;; 545b1a550a0Spbrook --target-list=*) target_list="$optarg" 546de83cd02Sbellard ;; 54774242e0fSPaolo Bonzini --enable-trace-backend=*) trace_backend="$optarg" 54894a420b1SStefan Hajnoczi ;; 54974242e0fSPaolo Bonzini --with-trace-file=*) trace_file="$optarg" 5509410b56cSPrerna Saxena ;; 5517d13299dSbellard --enable-gprof) gprof="yes" 5527d13299dSbellard ;; 55379427693SLoïc Minier --static) 55479427693SLoïc Minier static="yes" 55579427693SLoïc Minier LDFLAGS="-static $LDFLAGS" 55643ce4dfeSbellard ;; 5570b24e75fSPaolo Bonzini --mandir=*) mandir="$optarg" 5580b24e75fSPaolo Bonzini ;; 5590b24e75fSPaolo Bonzini --bindir=*) bindir="$optarg" 5600b24e75fSPaolo Bonzini ;; 5613aa5d2beSAlon Levy --libdir=*) libdir="$optarg" 5623aa5d2beSAlon Levy ;; 5630f94d6daSAlon Levy --includedir=*) includedir="$optarg" 5640f94d6daSAlon Levy ;; 5650b24e75fSPaolo Bonzini --datadir=*) datadir="$optarg" 5660b24e75fSPaolo Bonzini ;; 5670b24e75fSPaolo Bonzini --docdir=*) docdir="$optarg" 5680b24e75fSPaolo Bonzini ;; 569ca2fb938SAndre Przywara --sysconfdir=*) sysconfdir="$optarg" 57007381cc1SAnthony Liguori ;; 57197a847bcSbellard --disable-sdl) sdl="no" 57297a847bcSbellard ;; 573c4198157SJuan Quintela --enable-sdl) sdl="yes" 574c4198157SJuan Quintela ;; 575821601eaSJes Sorensen --disable-vnc) vnc="no" 576821601eaSJes Sorensen ;; 577821601eaSJes Sorensen --enable-vnc) vnc="yes" 578821601eaSJes Sorensen ;; 579b1a550a0Spbrook --fmod-lib=*) fmod_lib="$optarg" 580102a52e4Sbellard ;; 581c2de5c91Smalc --fmod-inc=*) fmod_inc="$optarg" 582c2de5c91Smalc ;; 5832f6a1ab0Sblueswir1 --oss-lib=*) oss_lib="$optarg" 5842f6a1ab0Sblueswir1 ;; 5852fa7d3bfSmalc --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'` 5860c58ac1cSmalc ;; 5870c58ac1cSmalc --audio-drv-list=*) audio_drv_list="$optarg" 5880c58ac1cSmalc ;; 589eb852011SMarkus Armbruster --block-drv-whitelist=*) block_drv_whitelist=`echo "$optarg" | sed -e 's/,/ /g'` 590eb852011SMarkus Armbruster ;; 591f8393946Saurel32 --enable-debug-tcg) debug_tcg="yes" 592f8393946Saurel32 ;; 593f8393946Saurel32 --disable-debug-tcg) debug_tcg="no" 594f8393946Saurel32 ;; 595b4475aa2SLuiz Capitulino --enable-debug-mon) debug_mon="yes" 596b4475aa2SLuiz Capitulino ;; 597b4475aa2SLuiz Capitulino --disable-debug-mon) debug_mon="no" 598b4475aa2SLuiz Capitulino ;; 599f3d08ee6SPaul Brook --enable-debug) 600f3d08ee6SPaul Brook # Enable debugging options that aren't excessively noisy 601f3d08ee6SPaul Brook debug_tcg="yes" 602b4475aa2SLuiz Capitulino debug_mon="yes" 603f3d08ee6SPaul Brook debug="yes" 604f3d08ee6SPaul Brook strip_opt="no" 605f3d08ee6SPaul Brook ;; 60603b4fe7dSaliguori --enable-sparse) sparse="yes" 60703b4fe7dSaliguori ;; 60803b4fe7dSaliguori --disable-sparse) sparse="no" 60903b4fe7dSaliguori ;; 6101625af87Saliguori --disable-strip) strip_opt="no" 6111625af87Saliguori ;; 6128d5d2d4cSths --disable-vnc-tls) vnc_tls="no" 6138d5d2d4cSths ;; 6141be10ad2SJuan Quintela --enable-vnc-tls) vnc_tls="yes" 6151be10ad2SJuan Quintela ;; 6162f9606b3Saliguori --disable-vnc-sasl) vnc_sasl="no" 6172f9606b3Saliguori ;; 618ea784e3bSJuan Quintela --enable-vnc-sasl) vnc_sasl="yes" 619ea784e3bSJuan Quintela ;; 6202f6f5c7aSCorentin Chary --disable-vnc-jpeg) vnc_jpeg="no" 6212f6f5c7aSCorentin Chary ;; 6222f6f5c7aSCorentin Chary --enable-vnc-jpeg) vnc_jpeg="yes" 6232f6f5c7aSCorentin Chary ;; 624efe556adSCorentin Chary --disable-vnc-png) vnc_png="no" 625efe556adSCorentin Chary ;; 626efe556adSCorentin Chary --enable-vnc-png) vnc_png="yes" 627efe556adSCorentin Chary ;; 628bd023f95SCorentin Chary --disable-vnc-thread) vnc_thread="no" 629bd023f95SCorentin Chary ;; 630bd023f95SCorentin Chary --enable-vnc-thread) vnc_thread="yes" 631bd023f95SCorentin Chary ;; 632443f1376Sbellard --disable-slirp) slirp="no" 633c20709aaSbellard ;; 634ee682d27SStefan Weil --disable-uuid) uuid="no" 635ee682d27SStefan Weil ;; 636ee682d27SStefan Weil --enable-uuid) uuid="yes" 637ee682d27SStefan Weil ;; 638e0e6c8c0Saliguori --disable-vde) vde="no" 6398a16d273Sths ;; 640dfb278bdSJuan Quintela --enable-vde) vde="yes" 641dfb278bdSJuan Quintela ;; 642e37630caSaliguori --disable-xen) xen="no" 643e37630caSaliguori ;; 644fc321b4bSJuan Quintela --enable-xen) xen="yes" 645fc321b4bSJuan Quintela ;; 6462e4d9fb1Saurel32 --disable-brlapi) brlapi="no" 6472e4d9fb1Saurel32 ;; 6484ffcedb6SJuan Quintela --enable-brlapi) brlapi="yes" 6494ffcedb6SJuan Quintela ;; 650fb599c9aSbalrog --disable-bluez) bluez="no" 651fb599c9aSbalrog ;; 652a20a6f46SJuan Quintela --enable-bluez) bluez="yes" 653a20a6f46SJuan Quintela ;; 6547ba1e619Saliguori --disable-kvm) kvm="no" 6557ba1e619Saliguori ;; 656b31a0277SJuan Quintela --enable-kvm) kvm="yes" 657b31a0277SJuan Quintela ;; 658*9195b2c2SStefan Weil --disable-tcg-interpreter) tcg_interpreter="no" 659*9195b2c2SStefan Weil ;; 660*9195b2c2SStefan Weil --enable-tcg-interpreter) tcg_interpreter="yes" 661*9195b2c2SStefan Weil ;; 662cd4ec0b4SGerd Hoffmann --disable-spice) spice="no" 663cd4ec0b4SGerd Hoffmann ;; 664cd4ec0b4SGerd Hoffmann --enable-spice) spice="yes" 665cd4ec0b4SGerd Hoffmann ;; 666c589b249SRonnie Sahlberg --disable-libiscsi) libiscsi="no" 667c589b249SRonnie Sahlberg ;; 668c589b249SRonnie Sahlberg --enable-libiscsi) libiscsi="yes" 669c589b249SRonnie Sahlberg ;; 67005c2a3e7Sbellard --enable-profiler) profiler="yes" 67105c2a3e7Sbellard ;; 672c2de5c91Smalc --enable-cocoa) 673c2de5c91Smalc cocoa="yes" ; 674c2de5c91Smalc sdl="no" ; 675c2de5c91Smalc audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`" 6765b0753e0Sbellard ;; 677cad25d69Spbrook --disable-system) softmmu="no" 6780a8e90f4Spbrook ;; 679cad25d69Spbrook --enable-system) softmmu="yes" 6800a8e90f4Spbrook ;; 6810953a80fSZachary Amsden --disable-user) 6820953a80fSZachary Amsden linux_user="no" ; 6830953a80fSZachary Amsden bsd_user="no" ; 6840953a80fSZachary Amsden darwin_user="no" 6850953a80fSZachary Amsden ;; 6860953a80fSZachary Amsden --enable-user) ;; 687831b7825Sths --disable-linux-user) linux_user="no" 6880a8e90f4Spbrook ;; 689831b7825Sths --enable-linux-user) linux_user="yes" 690831b7825Sths ;; 691831b7825Sths --disable-darwin-user) darwin_user="no" 692831b7825Sths ;; 693831b7825Sths --enable-darwin-user) darwin_user="yes" 6940a8e90f4Spbrook ;; 69584778508Sblueswir1 --disable-bsd-user) bsd_user="no" 69684778508Sblueswir1 ;; 69784778508Sblueswir1 --enable-bsd-user) bsd_user="yes" 69884778508Sblueswir1 ;; 699379f6698SPaul Brook --enable-guest-base) guest_base="yes" 700379f6698SPaul Brook ;; 701379f6698SPaul Brook --disable-guest-base) guest_base="no" 702379f6698SPaul Brook ;; 70334005a00SKirill A. Shutemov --enable-user-pie) user_pie="yes" 70434005a00SKirill A. Shutemov ;; 70534005a00SKirill A. Shutemov --disable-user-pie) user_pie="no" 70634005a00SKirill A. Shutemov ;; 707c5937220Spbrook --enable-uname-release=*) uname_release="$optarg" 708c5937220Spbrook ;; 7093142255cSblueswir1 --sparc_cpu=*) 7103142255cSblueswir1 ;; 71185aa5189Sbellard --enable-werror) werror="yes" 71285aa5189Sbellard ;; 71385aa5189Sbellard --disable-werror) werror="no" 71485aa5189Sbellard ;; 7154d3b6f6eSbalrog --disable-curses) curses="no" 7164d3b6f6eSbalrog ;; 717c584a6d0SJuan Quintela --enable-curses) curses="yes" 718c584a6d0SJuan Quintela ;; 719769ce76dSAlexander Graf --disable-curl) curl="no" 720769ce76dSAlexander Graf ;; 721788c8196SJuan Quintela --enable-curl) curl="yes" 722788c8196SJuan Quintela ;; 7232df87df7SJuan Quintela --disable-fdt) fdt="no" 7242df87df7SJuan Quintela ;; 7252df87df7SJuan Quintela --enable-fdt) fdt="yes" 7262df87df7SJuan Quintela ;; 7275495ed11SLuiz Capitulino --disable-check-utests) check_utests="no" 7285495ed11SLuiz Capitulino ;; 7295495ed11SLuiz Capitulino --enable-check-utests) check_utests="yes" 7305495ed11SLuiz Capitulino ;; 731bd0c5661Spbrook --disable-nptl) nptl="no" 732bd0c5661Spbrook ;; 733b0a47e79SJuan Quintela --enable-nptl) nptl="yes" 734b0a47e79SJuan Quintela ;; 7358ff9cbf7Smalc --enable-mixemu) mixemu="yes" 7368ff9cbf7Smalc ;; 7375c6c3a6cSChristoph Hellwig --disable-linux-aio) linux_aio="no" 7385c6c3a6cSChristoph Hellwig ;; 7395c6c3a6cSChristoph Hellwig --enable-linux-aio) linux_aio="yes" 7405c6c3a6cSChristoph Hellwig ;; 741758e8e38SVenkateswararao Jujjuri (JV) --disable-attr) attr="no" 742758e8e38SVenkateswararao Jujjuri (JV) ;; 743758e8e38SVenkateswararao Jujjuri (JV) --enable-attr) attr="yes" 744758e8e38SVenkateswararao Jujjuri (JV) ;; 74577755340Sths --disable-blobs) blobs="no" 74677755340Sths ;; 7474a19f1ecSpbrook --with-pkgversion=*) pkgversion=" ($optarg)" 7484a19f1ecSpbrook ;; 749a25dba17SJuan Quintela --disable-docs) docs="no" 75070ec5dc0SAnthony Liguori ;; 751a25dba17SJuan Quintela --enable-docs) docs="yes" 75283a3ab8bSJuan Quintela ;; 753d5970055SMichael S. Tsirkin --disable-vhost-net) vhost_net="no" 754d5970055SMichael S. Tsirkin ;; 755d5970055SMichael S. Tsirkin --enable-vhost-net) vhost_net="yes" 756d5970055SMichael S. Tsirkin ;; 75720ff075bSMichael Walle --disable-opengl) opengl="no" 75820ff075bSMichael Walle ;; 75920ff075bSMichael Walle --enable-opengl) opengl="yes" 76020ff075bSMichael Walle ;; 7616bde81cbSPaolo Bonzini --*dir) 7626bde81cbSPaolo Bonzini ;; 763f27aaf4bSChristian Brunner --disable-rbd) rbd="no" 764f27aaf4bSChristian Brunner ;; 765f27aaf4bSChristian Brunner --enable-rbd) rbd="yes" 766f27aaf4bSChristian Brunner ;; 76736707144SAlon Levy --disable-smartcard) smartcard="no" 76836707144SAlon Levy ;; 76936707144SAlon Levy --enable-smartcard) smartcard="yes" 77036707144SAlon Levy ;; 771111a38b0SRobert Relyea --disable-smartcard-nss) smartcard_nss="no" 772111a38b0SRobert Relyea ;; 773111a38b0SRobert Relyea --enable-smartcard-nss) smartcard_nss="yes" 774111a38b0SRobert Relyea ;; 77569354a83SHans de Goede --disable-usb-redir) usb_redir="no" 77669354a83SHans de Goede ;; 77769354a83SHans de Goede --enable-usb-redir) usb_redir="yes" 77869354a83SHans de Goede ;; 7791ece9905SAlon Levy --disable-zlib-test) zlib="no" 7801ece9905SAlon Levy ;; 781d138cee9SMichael Roth --enable-guest-agent) guest_agent="yes" 782d138cee9SMichael Roth ;; 783d138cee9SMichael Roth --disable-guest-agent) guest_agent="no" 784d138cee9SMichael Roth ;; 7857f1559c6Sbalrog *) echo "ERROR: unknown option $opt"; show_help="yes" 7867f1559c6Sbalrog ;; 7877d13299dSbellard esac 7887d13299dSbellarddone 7897d13299dSbellard 7903142255cSblueswir1# 7913142255cSblueswir1# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right 792a558ee17SJuan Quintela# QEMU_CFLAGS/LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit) 7933142255cSblueswir1# 794379f6698SPaul Brookhost_guest_base="no" 79540293e58Sbellardcase "$cpu" in 796ed968ff1SJuan Quintela sparc) case $sparc_cpu in 797ed968ff1SJuan Quintela v7|v8) 798a558ee17SJuan Quintela QEMU_CFLAGS="-mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS" 799ed968ff1SJuan Quintela ;; 800ed968ff1SJuan Quintela v8plus|v8plusa) 801a558ee17SJuan Quintela QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS" 802ed968ff1SJuan Quintela ;; 803ed968ff1SJuan Quintela *) # sparc_cpu not defined in the command line 804a558ee17SJuan Quintela QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS" 805ed968ff1SJuan Quintela esac 8060c439cbfSJuan Quintela LDFLAGS="-m32 $LDFLAGS" 807a558ee17SJuan Quintela QEMU_CFLAGS="-m32 -ffixed-g2 -ffixed-g3 $QEMU_CFLAGS" 808762e8230Sblueswir1 if test "$solaris" = "no" ; then 809a558ee17SJuan Quintela QEMU_CFLAGS="-ffixed-g1 -ffixed-g6 $QEMU_CFLAGS" 810c81da56eSJuan Quintela helper_cflags="-ffixed-i0" 811762e8230Sblueswir1 fi 8123142255cSblueswir1 ;; 813ed968ff1SJuan Quintela sparc64) 814a558ee17SJuan Quintela QEMU_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS" 8150c439cbfSJuan Quintela LDFLAGS="-m64 $LDFLAGS" 816a558ee17SJuan Quintela QEMU_CFLAGS="-ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS" 817ed968ff1SJuan Quintela if test "$solaris" != "no" ; then 818a558ee17SJuan Quintela QEMU_CFLAGS="-ffixed-g1 $QEMU_CFLAGS" 819762e8230Sblueswir1 fi 8203142255cSblueswir1 ;; 82176d83bdeSths s390) 82228d7cc49SRichard Henderson QEMU_CFLAGS="-m31 -march=z990 $QEMU_CFLAGS" 82328d7cc49SRichard Henderson LDFLAGS="-m31 $LDFLAGS" 82448bb3750SRichard Henderson host_guest_base="yes" 82528d7cc49SRichard Henderson ;; 82628d7cc49SRichard Henderson s390x) 82728d7cc49SRichard Henderson QEMU_CFLAGS="-m64 -march=z990 $QEMU_CFLAGS" 82828d7cc49SRichard Henderson LDFLAGS="-m64 $LDFLAGS" 82948bb3750SRichard Henderson host_guest_base="yes" 83076d83bdeSths ;; 83140293e58Sbellard i386) 832a558ee17SJuan Quintela QEMU_CFLAGS="-m32 $QEMU_CFLAGS" 8330c439cbfSJuan Quintela LDFLAGS="-m32 $LDFLAGS" 8342b2e59e6SPaolo Bonzini cc_i386='$(CC) -m32' 835c81da56eSJuan Quintela helper_cflags="-fomit-frame-pointer" 836379f6698SPaul Brook host_guest_base="yes" 83740293e58Sbellard ;; 83840293e58Sbellard x86_64) 839a558ee17SJuan Quintela QEMU_CFLAGS="-m64 $QEMU_CFLAGS" 8400c439cbfSJuan Quintela LDFLAGS="-m64 $LDFLAGS" 8412b2e59e6SPaolo Bonzini cc_i386='$(CC) -m32' 842379f6698SPaul Brook host_guest_base="yes" 843379f6698SPaul Brook ;; 844379f6698SPaul Brook arm*) 845379f6698SPaul Brook host_guest_base="yes" 84640293e58Sbellard ;; 847f6548c0aSmalc ppc*) 848f6548c0aSmalc host_guest_base="yes" 849f6548c0aSmalc ;; 850cc01cc8eSAurelien Jarno mips*) 851cc01cc8eSAurelien Jarno host_guest_base="yes" 852cc01cc8eSAurelien Jarno ;; 853477ba620SAurelien Jarno ia64*) 854477ba620SAurelien Jarno host_guest_base="yes" 855477ba620SAurelien Jarno ;; 856fd76e73aSRichard Henderson hppa*) 857fd76e73aSRichard Henderson host_guest_base="yes" 858fd76e73aSRichard Henderson ;; 859d2fbca94SGuan Xuetao unicore32*) 860d2fbca94SGuan Xuetao host_guest_base="yes" 861d2fbca94SGuan Xuetao ;; 8623142255cSblueswir1esac 8633142255cSblueswir1 864379f6698SPaul Brook[ -z "$guest_base" ] && guest_base="$host_guest_base" 865379f6698SPaul Brook 86660e0df25SPeter Maydell 86760e0df25SPeter Maydelldefault_target_list="" 86860e0df25SPeter Maydell 86960e0df25SPeter Maydell# these targets are portable 87060e0df25SPeter Maydellif [ "$softmmu" = "yes" ] ; then 87160e0df25SPeter Maydell default_target_list="\ 87260e0df25SPeter Maydelli386-softmmu \ 87360e0df25SPeter Maydellx86_64-softmmu \ 87427cdad67SRichard Hendersonalpha-softmmu \ 87560e0df25SPeter Maydellarm-softmmu \ 87660e0df25SPeter Maydellcris-softmmu \ 87760e0df25SPeter Maydelllm32-softmmu \ 87860e0df25SPeter Maydellm68k-softmmu \ 87960e0df25SPeter Maydellmicroblaze-softmmu \ 88060e0df25SPeter Maydellmicroblazeel-softmmu \ 88160e0df25SPeter Maydellmips-softmmu \ 88260e0df25SPeter Maydellmipsel-softmmu \ 88360e0df25SPeter Maydellmips64-softmmu \ 88460e0df25SPeter Maydellmips64el-softmmu \ 88560e0df25SPeter Maydellppc-softmmu \ 88660e0df25SPeter Maydellppcemb-softmmu \ 88760e0df25SPeter Maydellppc64-softmmu \ 88860e0df25SPeter Maydellsh4-softmmu \ 88960e0df25SPeter Maydellsh4eb-softmmu \ 89060e0df25SPeter Maydellsparc-softmmu \ 89160e0df25SPeter Maydellsparc64-softmmu \ 8920f3301d4SAlexander Grafs390x-softmmu \ 893cfa550c6SMax Filippovxtensa-softmmu \ 894cfa550c6SMax Filippovxtensaeb-softmmu \ 89560e0df25SPeter Maydell" 89660e0df25SPeter Maydellfi 89760e0df25SPeter Maydell# the following are Linux specific 89860e0df25SPeter Maydellif [ "$linux_user" = "yes" ] ; then 89960e0df25SPeter Maydell default_target_list="${default_target_list}\ 90060e0df25SPeter Maydelli386-linux-user \ 90160e0df25SPeter Maydellx86_64-linux-user \ 90260e0df25SPeter Maydellalpha-linux-user \ 90360e0df25SPeter Maydellarm-linux-user \ 90460e0df25SPeter Maydellarmeb-linux-user \ 90560e0df25SPeter Maydellcris-linux-user \ 90660e0df25SPeter Maydellm68k-linux-user \ 90760e0df25SPeter Maydellmicroblaze-linux-user \ 90860e0df25SPeter Maydellmicroblazeel-linux-user \ 90960e0df25SPeter Maydellmips-linux-user \ 91060e0df25SPeter Maydellmipsel-linux-user \ 91160e0df25SPeter Maydellppc-linux-user \ 91260e0df25SPeter Maydellppc64-linux-user \ 91360e0df25SPeter Maydellppc64abi32-linux-user \ 91460e0df25SPeter Maydellsh4-linux-user \ 91560e0df25SPeter Maydellsh4eb-linux-user \ 91660e0df25SPeter Maydellsparc-linux-user \ 91760e0df25SPeter Maydellsparc64-linux-user \ 91860e0df25SPeter Maydellsparc32plus-linux-user \ 91960e0df25SPeter Maydellunicore32-linux-user \ 9200f3301d4SAlexander Grafs390x-linux-user \ 92160e0df25SPeter Maydell" 92260e0df25SPeter Maydellfi 92360e0df25SPeter Maydell# the following are Darwin specific 92460e0df25SPeter Maydellif [ "$darwin_user" = "yes" ] ; then 92560e0df25SPeter Maydell default_target_list="$default_target_list i386-darwin-user ppc-darwin-user " 92660e0df25SPeter Maydellfi 92760e0df25SPeter Maydell# the following are BSD specific 92860e0df25SPeter Maydellif [ "$bsd_user" = "yes" ] ; then 92960e0df25SPeter Maydell default_target_list="${default_target_list}\ 93060e0df25SPeter Maydelli386-bsd-user \ 93160e0df25SPeter Maydellx86_64-bsd-user \ 93260e0df25SPeter Maydellsparc-bsd-user \ 93360e0df25SPeter Maydellsparc64-bsd-user \ 93460e0df25SPeter Maydell" 93560e0df25SPeter Maydellfi 93660e0df25SPeter Maydell 937af5db58eSpbrookif test x"$show_help" = x"yes" ; then 938af5db58eSpbrookcat << EOF 939af5db58eSpbrook 940af5db58eSpbrookUsage: configure [options] 941af5db58eSpbrookOptions: [defaults in brackets after descriptions] 942af5db58eSpbrook 943af5db58eSpbrookEOF 944af5db58eSpbrookecho "Standard options:" 945af5db58eSpbrookecho " --help print this message" 946af5db58eSpbrookecho " --prefix=PREFIX install in PREFIX [$prefix]" 947af5db58eSpbrookecho " --interp-prefix=PREFIX where to find shared libraries, etc." 948af5db58eSpbrookecho " use %M for cpu name [$interp_prefix]" 94960e0df25SPeter Maydellecho " --target-list=LIST set target list (default: build everything)" 95060e0df25SPeter Maydellecho "Available targets: $default_target_list" | \ 95160e0df25SPeter Maydell fold -s -w 53 | sed -e 's/^/ /' 952af5db58eSpbrookecho "" 953af5db58eSpbrookecho "Advanced options (experts only):" 954af5db58eSpbrookecho " --source-path=PATH path of source code [$source_path]" 955af5db58eSpbrookecho " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" 956af5db58eSpbrookecho " --cc=CC use C compiler CC [$cc]" 9570bfe8cc0SPaolo Bonziniecho " --host-cc=CC use C compiler CC [$host_cc] for code run at" 9580bfe8cc0SPaolo Bonziniecho " build time" 959a558ee17SJuan Quintelaecho " --extra-cflags=CFLAGS append extra C compiler flags QEMU_CFLAGS" 960e3fc14c3SJan Kiszkaecho " --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS" 961af5db58eSpbrookecho " --make=MAKE use specified make [$make]" 9626a882643Spbrookecho " --install=INSTALL use specified install [$install]" 963c886edfbSBlue Swirlecho " --python=PYTHON use specified python [$python]" 964e2d8830eSBradecho " --smbd=SMBD use specified smbd [$smbd]" 965af5db58eSpbrookecho " --static enable static build [$static]" 9660b24e75fSPaolo Bonziniecho " --mandir=PATH install man pages in PATH" 9670b24e75fSPaolo Bonziniecho " --datadir=PATH install firmware in PATH" 9680b24e75fSPaolo Bonziniecho " --docdir=PATH install documentation in PATH" 9690b24e75fSPaolo Bonziniecho " --bindir=PATH install binaries in PATH" 9700b24e75fSPaolo Bonziniecho " --sysconfdir=PATH install config in PATH/qemu" 971f8393946Saurel32echo " --enable-debug-tcg enable TCG debugging" 972f8393946Saurel32echo " --disable-debug-tcg disable TCG debugging (default)" 97309695a4aSStefan Weilecho " --enable-debug enable common debug build options" 974890b1658Saliguoriecho " --enable-sparse enable sparse checker" 975890b1658Saliguoriecho " --disable-sparse disable sparse checker (default)" 9761625af87Saliguoriecho " --disable-strip disable stripping binaries" 97785aa5189Sbellardecho " --disable-werror disable compilation abort on warning" 978fe8f78e4Sbalrogecho " --disable-sdl disable SDL" 979c4198157SJuan Quintelaecho " --enable-sdl enable SDL" 980821601eaSJes Sorensenecho " --disable-vnc disable VNC" 981821601eaSJes Sorensenecho " --enable-vnc enable VNC" 982af5db58eSpbrookecho " --enable-cocoa enable COCOA (Mac OS X only)" 983c2de5c91Smalcecho " --audio-drv-list=LIST set audio drivers list:" 984c2de5c91Smalcecho " Available drivers: $audio_possible_drivers" 9854c9b53e3Smalcecho " --audio-card-list=LIST set list of emulated audio cards [$audio_card_list]" 9864c9b53e3Smalcecho " Available cards: $audio_possible_cards" 987eb852011SMarkus Armbrusterecho " --block-drv-whitelist=L set block driver whitelist" 988eb852011SMarkus Armbrusterecho " (affects only QEMU, not qemu-img)" 9898ff9cbf7Smalcecho " --enable-mixemu enable mixer emulation" 990e37630caSaliguoriecho " --disable-xen disable xen backend driver support" 991fc321b4bSJuan Quintelaecho " --enable-xen enable xen backend driver support" 9922e4d9fb1Saurel32echo " --disable-brlapi disable BrlAPI" 9934ffcedb6SJuan Quintelaecho " --enable-brlapi enable BrlAPI" 9948d5d2d4cSthsecho " --disable-vnc-tls disable TLS encryption for VNC server" 9951be10ad2SJuan Quintelaecho " --enable-vnc-tls enable TLS encryption for VNC server" 9962f9606b3Saliguoriecho " --disable-vnc-sasl disable SASL encryption for VNC server" 997ea784e3bSJuan Quintelaecho " --enable-vnc-sasl enable SASL encryption for VNC server" 9982f6f5c7aSCorentin Charyecho " --disable-vnc-jpeg disable JPEG lossy compression for VNC server" 9992f6f5c7aSCorentin Charyecho " --enable-vnc-jpeg enable JPEG lossy compression for VNC server" 100096763cf9SCorentin Charyecho " --disable-vnc-png disable PNG compression for VNC server (default)" 1001efe556adSCorentin Charyecho " --enable-vnc-png enable PNG compression for VNC server" 1002bd023f95SCorentin Charyecho " --disable-vnc-thread disable threaded VNC server" 1003bd023f95SCorentin Charyecho " --enable-vnc-thread enable threaded VNC server" 1004af896aaaSpbrookecho " --disable-curses disable curses output" 1005c584a6d0SJuan Quintelaecho " --enable-curses enable curses output" 1006769ce76dSAlexander Grafecho " --disable-curl disable curl connectivity" 1007788c8196SJuan Quintelaecho " --enable-curl enable curl connectivity" 10082df87df7SJuan Quintelaecho " --disable-fdt disable fdt device tree" 10092df87df7SJuan Quintelaecho " --enable-fdt enable fdt device tree" 10105495ed11SLuiz Capitulinoecho " --disable-check-utests disable check unit-tests" 10115495ed11SLuiz Capitulinoecho " --enable-check-utests enable check unit-tests" 1012fb599c9aSbalrogecho " --disable-bluez disable bluez stack connectivity" 1013a20a6f46SJuan Quintelaecho " --enable-bluez enable bluez stack connectivity" 10146093d3d4SPeter Maydellecho " --disable-slirp disable SLIRP userspace network connectivity" 10157ba1e619Saliguoriecho " --disable-kvm disable KVM acceleration support" 1016b31a0277SJuan Quintelaecho " --enable-kvm enable KVM acceleration support" 1017*9195b2c2SStefan Weilecho " --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)" 1018bd0c5661Spbrookecho " --disable-nptl disable usermode NPTL support" 1019e5934d33SAndre Przywaraecho " --enable-nptl enable usermode NPTL support" 1020af5db58eSpbrookecho " --enable-system enable all system emulation targets" 1021af5db58eSpbrookecho " --disable-system disable all system emulation targets" 10220953a80fSZachary Amsdenecho " --enable-user enable supported user emulation targets" 10230953a80fSZachary Amsdenecho " --disable-user disable all user emulation targets" 1024831b7825Sthsecho " --enable-linux-user enable all linux usermode emulation targets" 1025831b7825Sthsecho " --disable-linux-user disable all linux usermode emulation targets" 1026831b7825Sthsecho " --enable-darwin-user enable all darwin usermode emulation targets" 1027831b7825Sthsecho " --disable-darwin-user disable all darwin usermode emulation targets" 102884778508Sblueswir1echo " --enable-bsd-user enable all BSD usermode emulation targets" 102984778508Sblueswir1echo " --disable-bsd-user disable all BSD usermode emulation targets" 1030379f6698SPaul Brookecho " --enable-guest-base enable GUEST_BASE support for usermode" 1031379f6698SPaul Brookecho " emulation targets" 1032379f6698SPaul Brookecho " --disable-guest-base disable GUEST_BASE support" 103334005a00SKirill A. Shutemovecho " --enable-user-pie build usermode emulation targets as PIE" 103434005a00SKirill A. Shutemovecho " --disable-user-pie do not build usermode emulation targets as PIE" 1035af5db58eSpbrookecho " --fmod-lib path to FMOD library" 1036af5db58eSpbrookecho " --fmod-inc path to FMOD includes" 10372f6a1ab0Sblueswir1echo " --oss-lib path to OSS library" 1038c5937220Spbrookecho " --enable-uname-release=R Return R for uname -r in usermode emulation" 10393142255cSblueswir1echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9" 1040ee682d27SStefan Weilecho " --disable-uuid disable uuid support" 1041ee682d27SStefan Weilecho " --enable-uuid enable uuid support" 1042e0e6c8c0Saliguoriecho " --disable-vde disable support for vde network" 1043dfb278bdSJuan Quintelaecho " --enable-vde enable support for vde network" 10445c6c3a6cSChristoph Hellwigecho " --disable-linux-aio disable Linux AIO support" 10455c6c3a6cSChristoph Hellwigecho " --enable-linux-aio enable Linux AIO support" 1046758e8e38SVenkateswararao Jujjuri (JV)echo " --disable-attr disables attr and xattr support" 1047758e8e38SVenkateswararao Jujjuri (JV)echo " --enable-attr enable attr and xattr support" 104877755340Sthsecho " --disable-blobs disable installing provided firmware blobs" 1049d2807bc9SDirk Ullrichecho " --enable-docs enable documentation build" 1050d2807bc9SDirk Ullrichecho " --disable-docs disable documentation build" 1051d5970055SMichael S. Tsirkinecho " --disable-vhost-net disable vhost-net acceleration support" 1052d5970055SMichael S. Tsirkinecho " --enable-vhost-net enable vhost-net acceleration support" 1053320fba2aSFabien Chouteauecho " --enable-trace-backend=B Set trace backend" 1054320fba2aSFabien Chouteauecho " Available backends:" $("$source_path"/scripts/tracetool --list-backends) 105574242e0fSPaolo Bonziniecho " --with-trace-file=NAME Full PATH,NAME of file to store traces" 10569410b56cSPrerna Saxenaecho " Default:trace-<pid>" 1057cd4ec0b4SGerd Hoffmannecho " --disable-spice disable spice" 1058cd4ec0b4SGerd Hoffmannecho " --enable-spice enable spice" 1059f27aaf4bSChristian Brunnerecho " --enable-rbd enable building the rados block device (rbd)" 1060c589b249SRonnie Sahlbergecho " --disable-libiscsi disable iscsi support" 1061c589b249SRonnie Sahlbergecho " --enable-libiscsi enable iscsi support" 106236707144SAlon Levyecho " --disable-smartcard disable smartcard support" 106336707144SAlon Levyecho " --enable-smartcard enable smartcard support" 1064111a38b0SRobert Relyeaecho " --disable-smartcard-nss disable smartcard nss support" 1065111a38b0SRobert Relyeaecho " --enable-smartcard-nss enable smartcard nss support" 106669354a83SHans de Goedeecho " --disable-usb-redir disable usb network redirection support" 106769354a83SHans de Goedeecho " --enable-usb-redir enable usb network redirection support" 1068d138cee9SMichael Rothecho " --disable-guest-agent disable building of the QEMU Guest Agent" 1069d138cee9SMichael Rothecho " --enable-guest-agent enable building of the QEMU Guest Agent" 1070af5db58eSpbrookecho "" 10715bf08934Sthsecho "NOTE: The object files are built at the place where configure is launched" 1072af5db58eSpbrookexit 1 1073af5db58eSpbrookfi 1074af5db58eSpbrook 10758d05095cSPaolo Bonzini# check that the C compiler works. 10768d05095cSPaolo Bonzinicat > $TMPC <<EOF 10778d05095cSPaolo Bonziniint main(void) {} 10788d05095cSPaolo BonziniEOF 10798d05095cSPaolo Bonzini 10808d05095cSPaolo Bonziniif compile_object ; then 10818d05095cSPaolo Bonzini : C compiler works ok 10828d05095cSPaolo Bonzinielse 10838d05095cSPaolo Bonzini echo "ERROR: \"$cc\" either does not exist or does not work" 10848d05095cSPaolo Bonzini exit 1 10858d05095cSPaolo Bonzinifi 10868d05095cSPaolo Bonzini 10878d05095cSPaolo Bonzinigcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits" 10888d05095cSPaolo Bonzinigcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags" 10898d05095cSPaolo Bonzinigcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags" 1090f9188227SMike Frysingergcc_flags="-fstack-protector-all -Wendif-labels $gcc_flags" 10918d05095cSPaolo Bonzinicat > $TMPC << EOF 10928d05095cSPaolo Bonziniint main(void) { return 0; } 10938d05095cSPaolo BonziniEOF 10948d05095cSPaolo Bonzinifor flag in $gcc_flags; do 1095af2d37deSStefan Weil if compile_prog "$flag -Werror" "" ; then 10968d05095cSPaolo Bonzini QEMU_CFLAGS="$QEMU_CFLAGS $flag" 10978d05095cSPaolo Bonzini fi 10988d05095cSPaolo Bonzinidone 10998d05095cSPaolo Bonzini 1100ec530c81Sbellard# 1101ec530c81Sbellard# Solaris specific configure tool chain decisions 1102ec530c81Sbellard# 1103ec530c81Sbellardif test "$solaris" = "yes" ; then 11046792aa11SLoïc Minier if has $install; then 11056792aa11SLoïc Minier : 11066792aa11SLoïc Minier else 1107ec530c81Sbellard echo "Solaris install program not found. Use --install=/usr/ucb/install or" 1108ec530c81Sbellard echo "install fileutils from www.blastwave.org using pkg-get -i fileutils" 1109ec530c81Sbellard echo "to get ginstall which is used by default (which lives in /opt/csw/bin)" 1110ec530c81Sbellard exit 1 1111ec530c81Sbellard fi 11126792aa11SLoïc Minier if test "`path_of $install`" = "/usr/sbin/install" ; then 1113ec530c81Sbellard echo "Error: Solaris /usr/sbin/install is not an appropriate install program." 1114ec530c81Sbellard echo "try ginstall from the GNU fileutils available from www.blastwave.org" 1115ec530c81Sbellard echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install" 1116ec530c81Sbellard exit 1 1117ec530c81Sbellard fi 11186792aa11SLoïc Minier if has ar; then 11196792aa11SLoïc Minier : 11206792aa11SLoïc Minier else 1121ec530c81Sbellard echo "Error: No path includes ar" 1122ec530c81Sbellard if test -f /usr/ccs/bin/ar ; then 1123ec530c81Sbellard echo "Add /usr/ccs/bin to your path and rerun configure" 1124ec530c81Sbellard fi 1125ec530c81Sbellard exit 1 1126ec530c81Sbellard fi 1127ec530c81Sbellardfi 1128ec530c81Sbellard 1129d138cee9SMichael Rothif test "$guest_agent" != "no" ; then 1130c886edfbSBlue Swirl if has $python; then 1131c886edfbSBlue Swirl : 1132c886edfbSBlue Swirl else 1133c886edfbSBlue Swirl echo "Python not found. Use --python=/path/to/python" 1134c886edfbSBlue Swirl exit 1 1135c886edfbSBlue Swirl fi 1136d138cee9SMichael Rothfi 1137c886edfbSBlue Swirl 11385327cf48Sbellardif test -z "$target_list" ; then 113960e0df25SPeter Maydell target_list="$default_target_list" 11406e20a45fSbellardelse 1141b1a550a0Spbrook target_list=`echo "$target_list" | sed -e 's/,/ /g'` 11425327cf48Sbellardfi 11430a8e90f4Spbrookif test -z "$target_list" ; then 11440a8e90f4Spbrook echo "No targets enabled" 11450a8e90f4Spbrook exit 1 11460a8e90f4Spbrookfi 1147f55fe278SPaolo Bonzini# see if system emulation was really requested 1148f55fe278SPaolo Bonzinicase " $target_list " in 1149f55fe278SPaolo Bonzini *"-softmmu "*) softmmu=yes 1150f55fe278SPaolo Bonzini ;; 1151f55fe278SPaolo Bonzini *) softmmu=no 1152f55fe278SPaolo Bonzini ;; 1153f55fe278SPaolo Bonziniesac 11545327cf48Sbellard 1155249247c9SJuan Quintelafeature_not_found() { 1156249247c9SJuan Quintela feature=$1 1157249247c9SJuan Quintela 1158249247c9SJuan Quintela echo "ERROR" 1159249247c9SJuan Quintela echo "ERROR: User requested feature $feature" 11609332f6a2SSebastian Herbszt echo "ERROR: configure was not able to find it" 1161249247c9SJuan Quintela echo "ERROR" 1162249247c9SJuan Quintela exit 1; 1163249247c9SJuan Quintela} 1164249247c9SJuan Quintela 11657d13299dSbellardif test -z "$cross_prefix" ; then 11667d13299dSbellard 11677d13299dSbellard# --- 11687d13299dSbellard# big/little endian test 11697d13299dSbellardcat > $TMPC << EOF 11707d13299dSbellard#include <inttypes.h> 11717d13299dSbellardint main(int argc, char ** argv){ 11727d13299dSbellard volatile uint32_t i=0x01234567; 11737d13299dSbellard return (*((uint8_t*)(&i))) == 0x67; 11747d13299dSbellard} 11757d13299dSbellardEOF 11767d13299dSbellard 117752166aa0SJuan Quintelaif compile_prog "" "" ; then 11787d13299dSbellard$TMPE && bigendian="yes" 11797d13299dSbellardelse 11807d13299dSbellardecho big/little test failed 11817d13299dSbellardfi 11827d13299dSbellard 11837d13299dSbellardelse 11847d13299dSbellard 11857d13299dSbellard# if cross compiling, cannot launch a program, so make a static guess 1186ea8f20f8SJuan Quintelacase "$cpu" in 118724e804ecSAlexander Graf armv4b|hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64) 1188ea8f20f8SJuan Quintela bigendian=yes 1189ea8f20f8SJuan Quintela ;; 1190ea8f20f8SJuan Quintelaesac 11917d13299dSbellard 11927d13299dSbellardfi 11937d13299dSbellard 119470be1a2eSPaolo Bonzini# host long bits test, actually a pointer size test 119570be1a2eSPaolo Bonzinicat > $TMPC << EOF 119670be1a2eSPaolo Bonziniint sizeof_pointer_is_8[sizeof(void *) == 8 ? 1 : -1]; 119770be1a2eSPaolo BonziniEOF 119870be1a2eSPaolo Bonziniif compile_object; then 1199ea8f20f8SJuan Quintelahostlongbits=64 120070be1a2eSPaolo Bonzinielse 120170be1a2eSPaolo Bonzinihostlongbits=32 120270be1a2eSPaolo Bonzinifi 1203b6853697Sbellard 1204b0a47e79SJuan Quintela 1205b0a47e79SJuan Quintela########################################## 1206b0a47e79SJuan Quintela# NPTL probe 1207b0a47e79SJuan Quintela 1208b0a47e79SJuan Quintelaif test "$nptl" != "no" ; then 1209bd0c5661Spbrook cat > $TMPC <<EOF 1210bd0c5661Spbrook#include <sched.h> 121130813ceaSpbrook#include <linux/futex.h> 1212bd0c5661Spbrookvoid foo() 1213bd0c5661Spbrook{ 1214bd0c5661Spbrook#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT) 1215bd0c5661Spbrook#error bork 1216bd0c5661Spbrook#endif 1217bd0c5661Spbrook} 1218bd0c5661SpbrookEOF 1219bd0c5661Spbrook 122052166aa0SJuan Quintela if compile_object ; then 1221b0a47e79SJuan Quintela nptl=yes 1222bd0c5661Spbrook else 1223b0a47e79SJuan Quintela if test "$nptl" = "yes" ; then 1224b0a47e79SJuan Quintela feature_not_found "nptl" 1225b0a47e79SJuan Quintela fi 1226b0a47e79SJuan Quintela nptl=no 1227b0a47e79SJuan Quintela fi 1228bd0c5661Spbrookfi 1229bd0c5661Spbrook 123011d9f695Sbellard########################################## 1231ac62922eSbalrog# zlib check 1232ac62922eSbalrog 12331ece9905SAlon Levyif test "$zlib" != "no" ; then 1234ac62922eSbalrog cat > $TMPC << EOF 1235ac62922eSbalrog#include <zlib.h> 1236ac62922eSbalrogint main(void) { zlibVersion(); return 0; } 1237ac62922eSbalrogEOF 123852166aa0SJuan Quintela if compile_prog "" "-lz" ; then 1239ac62922eSbalrog : 1240ac62922eSbalrog else 1241ac62922eSbalrog echo 1242ac62922eSbalrog echo "Error: zlib check failed" 1243ac62922eSbalrog echo "Make sure to have the zlib libs and headers installed." 1244ac62922eSbalrog echo 1245ac62922eSbalrog exit 1 1246ac62922eSbalrog fi 12471ece9905SAlon Levyfi 1248ac62922eSbalrog 1249ac62922eSbalrog########################################## 1250e37630caSaliguori# xen probe 1251e37630caSaliguori 1252fc321b4bSJuan Quintelaif test "$xen" != "no" ; then 1253b2266beeSJuan Quintela xen_libs="-lxenstore -lxenctrl -lxenguest" 1254d5b93ddfSAnthony PERARD 1255d5b93ddfSAnthony PERARD # Xen unstable 1256e37630caSaliguori cat > $TMPC <<EOF 1257e37630caSaliguori#include <xenctrl.h> 1258e37630caSaliguori#include <xs.h> 1259d5b93ddfSAnthony PERARD#include <stdint.h> 1260d5b93ddfSAnthony PERARD#include <xen/hvm/hvm_info_table.h> 1261d5b93ddfSAnthony PERARD#if !defined(HVM_MAX_VCPUS) 1262d5b93ddfSAnthony PERARD# error HVM_MAX_VCPUS not defined 1263d5b93ddfSAnthony PERARD#endif 1264d5b93ddfSAnthony PERARDint main(void) { 1265d5b93ddfSAnthony PERARD xc_interface *xc; 1266d5b93ddfSAnthony PERARD xs_daemon_open(); 1267d5b93ddfSAnthony PERARD xc = xc_interface_open(0, 0, 0); 1268d5b93ddfSAnthony PERARD xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0); 1269d5b93ddfSAnthony PERARD xc_gnttab_open(NULL, 0); 1270b87de24eSAnthony PERARD xc_domain_add_to_physmap(0, 0, XENMAPSPACE_gmfn, 0, 0); 1271d5b93ddfSAnthony PERARD return 0; 1272d5b93ddfSAnthony PERARD} 1273e37630caSaliguoriEOF 127452166aa0SJuan Quintela if compile_prog "" "$xen_libs" ; then 1275d5b93ddfSAnthony PERARD xen_ctrl_version=410 1276fc321b4bSJuan Quintela xen=yes 1277d5b93ddfSAnthony PERARD 1278d5b93ddfSAnthony PERARD # Xen 4.0.0 1279d5b93ddfSAnthony PERARD elif ( 1280d5b93ddfSAnthony PERARD cat > $TMPC <<EOF 1281d5b93ddfSAnthony PERARD#include <xenctrl.h> 1282d5b93ddfSAnthony PERARD#include <xs.h> 1283d5b93ddfSAnthony PERARD#include <stdint.h> 1284d5b93ddfSAnthony PERARD#include <xen/hvm/hvm_info_table.h> 1285d5b93ddfSAnthony PERARD#if !defined(HVM_MAX_VCPUS) 1286d5b93ddfSAnthony PERARD# error HVM_MAX_VCPUS not defined 1287d5b93ddfSAnthony PERARD#endif 1288d5b93ddfSAnthony PERARDint main(void) { 1289b87de24eSAnthony PERARD struct xen_add_to_physmap xatp = { 1290b87de24eSAnthony PERARD .domid = 0, .space = XENMAPSPACE_gmfn, .idx = 0, .gpfn = 0, 1291b87de24eSAnthony PERARD }; 1292d5b93ddfSAnthony PERARD xs_daemon_open(); 1293d5b93ddfSAnthony PERARD xc_interface_open(); 1294d5b93ddfSAnthony PERARD xc_gnttab_open(); 1295d5b93ddfSAnthony PERARD xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0); 1296b87de24eSAnthony PERARD xc_memory_op(0, XENMEM_add_to_physmap, &xatp); 1297d5b93ddfSAnthony PERARD return 0; 1298d5b93ddfSAnthony PERARD} 1299d5b93ddfSAnthony PERARDEOF 1300d5b93ddfSAnthony PERARD compile_prog "" "$xen_libs" 1301d5b93ddfSAnthony PERARD ) ; then 1302d5b93ddfSAnthony PERARD xen_ctrl_version=400 1303d5b93ddfSAnthony PERARD xen=yes 1304d5b93ddfSAnthony PERARD 1305b87de24eSAnthony PERARD # Xen 3.4.0 1306b87de24eSAnthony PERARD elif ( 1307b87de24eSAnthony PERARD cat > $TMPC <<EOF 1308b87de24eSAnthony PERARD#include <xenctrl.h> 1309b87de24eSAnthony PERARD#include <xs.h> 1310b87de24eSAnthony PERARDint main(void) { 1311b87de24eSAnthony PERARD struct xen_add_to_physmap xatp = { 1312b87de24eSAnthony PERARD .domid = 0, .space = XENMAPSPACE_gmfn, .idx = 0, .gpfn = 0, 1313b87de24eSAnthony PERARD }; 1314b87de24eSAnthony PERARD xs_daemon_open(); 1315b87de24eSAnthony PERARD xc_interface_open(); 1316b87de24eSAnthony PERARD xc_gnttab_open(); 1317b87de24eSAnthony PERARD xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0); 1318b87de24eSAnthony PERARD xc_memory_op(0, XENMEM_add_to_physmap, &xatp); 1319b87de24eSAnthony PERARD return 0; 1320b87de24eSAnthony PERARD} 1321b87de24eSAnthony PERARDEOF 1322b87de24eSAnthony PERARD compile_prog "" "$xen_libs" 1323b87de24eSAnthony PERARD ) ; then 1324b87de24eSAnthony PERARD xen_ctrl_version=340 1325b87de24eSAnthony PERARD xen=yes 1326b87de24eSAnthony PERARD 1327b87de24eSAnthony PERARD # Xen 3.3.0 1328d5b93ddfSAnthony PERARD elif ( 1329d5b93ddfSAnthony PERARD cat > $TMPC <<EOF 1330d5b93ddfSAnthony PERARD#include <xenctrl.h> 1331d5b93ddfSAnthony PERARD#include <xs.h> 1332d5b93ddfSAnthony PERARDint main(void) { 1333d5b93ddfSAnthony PERARD xs_daemon_open(); 1334d5b93ddfSAnthony PERARD xc_interface_open(); 1335d5b93ddfSAnthony PERARD xc_gnttab_open(); 1336d5b93ddfSAnthony PERARD xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0); 1337d5b93ddfSAnthony PERARD return 0; 1338d5b93ddfSAnthony PERARD} 1339d5b93ddfSAnthony PERARDEOF 1340d5b93ddfSAnthony PERARD compile_prog "" "$xen_libs" 1341d5b93ddfSAnthony PERARD ) ; then 1342d5b93ddfSAnthony PERARD xen_ctrl_version=330 1343d5b93ddfSAnthony PERARD xen=yes 1344d5b93ddfSAnthony PERARD 1345d5b93ddfSAnthony PERARD # Xen not found or unsupported 1346e37630caSaliguori else 1347fc321b4bSJuan Quintela if test "$xen" = "yes" ; then 1348fc321b4bSJuan Quintela feature_not_found "xen" 1349fc321b4bSJuan Quintela fi 1350fc321b4bSJuan Quintela xen=no 1351e37630caSaliguori fi 1352d5b93ddfSAnthony PERARD 1353d5b93ddfSAnthony PERARD if test "$xen" = yes; then 1354d5b93ddfSAnthony PERARD libs_softmmu="$xen_libs $libs_softmmu" 1355d5b93ddfSAnthony PERARD fi 1356e37630caSaliguorifi 1357e37630caSaliguori 1358e37630caSaliguori########################################## 1359a8bd70adSPaolo Bonzini# pkg-config probe 1360f91672e5SPaolo Bonzini 1361a8bd70adSPaolo Bonziniif ! has $pkg_config; then 1362a213fcb2SPeter Maydell echo "Error: pkg-config binary '$pkg_config' not found" 1363a213fcb2SPeter Maydell exit 1 1364f91672e5SPaolo Bonzinifi 1365f91672e5SPaolo Bonzini 1366f91672e5SPaolo Bonzini########################################## 136744dc0ca3SAlon Levy# libtool probe 136844dc0ca3SAlon Levy 13693f534581SBradif ! has $libtool; then 137044dc0ca3SAlon Levy libtool= 137144dc0ca3SAlon Levyfi 137244dc0ca3SAlon Levy 137344dc0ca3SAlon Levy########################################## 1374dfffc653SJuan Quintela# Sparse probe 1375dfffc653SJuan Quintelaif test "$sparse" != "no" ; then 13760dba6195SLoïc Minier if has cgcc; then 1377dfffc653SJuan Quintela sparse=yes 1378dfffc653SJuan Quintela else 1379dfffc653SJuan Quintela if test "$sparse" = "yes" ; then 1380dfffc653SJuan Quintela feature_not_found "sparse" 1381dfffc653SJuan Quintela fi 1382dfffc653SJuan Quintela sparse=no 1383dfffc653SJuan Quintela fi 1384dfffc653SJuan Quintelafi 1385dfffc653SJuan Quintela 1386dfffc653SJuan Quintela########################################## 138711d9f695Sbellard# SDL probe 138811d9f695Sbellard 13893ec87ffeSPaolo Bonzini# Look for sdl configuration program (pkg-config or sdl-config). Try 13903ec87ffeSPaolo Bonzini# sdl-config even without cross prefix, and favour pkg-config over sdl-config. 13913ec87ffeSPaolo Bonziniif test "`basename $sdl_config`" != sdl-config && ! has ${sdl_config}; then 13923ec87ffeSPaolo Bonzini sdl_config=sdl-config 13933ec87ffeSPaolo Bonzinifi 13943ec87ffeSPaolo Bonzini 13953ec87ffeSPaolo Bonziniif $pkg_config sdl --modversion >/dev/null 2>&1; then 1396a8bd70adSPaolo Bonzini sdlconfig="$pkg_config sdl" 1397fec0e3e8SStefan Weil _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'` 13983ec87ffeSPaolo Bonzinielif has ${sdl_config}; then 13993ec87ffeSPaolo Bonzini sdlconfig="$sdl_config" 14009316f803SPaolo Bonzini _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'` 1401a0dfd8a4SLoïc Minierelse 1402a0dfd8a4SLoïc Minier if test "$sdl" = "yes" ; then 1403a0dfd8a4SLoïc Minier feature_not_found "sdl" 1404a0dfd8a4SLoïc Minier fi 1405a0dfd8a4SLoïc Minier sdl=no 14069316f803SPaolo Bonzinifi 140729e5badaSScott Woodif test -n "$cross_prefix" && test "$(basename "$sdlconfig")" = sdl-config; then 14083ec87ffeSPaolo Bonzini echo warning: using "\"$sdlconfig\"" to detect cross-compiled sdl >&2 14093ec87ffeSPaolo Bonzinifi 141011d9f695Sbellard 14119316f803SPaolo Bonzinisdl_too_old=no 1412c4198157SJuan Quintelaif test "$sdl" != "no" ; then 141311d9f695Sbellard cat > $TMPC << EOF 141411d9f695Sbellard#include <SDL.h> 141511d9f695Sbellard#undef main /* We don't want SDL to override our main() */ 141611d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); } 141711d9f695SbellardEOF 14189316f803SPaolo Bonzini sdl_cflags=`$sdlconfig --cflags 2> /dev/null` 141974f42e18STeLeMan if test "$static" = "yes" ; then 142074f42e18STeLeMan sdl_libs=`$sdlconfig --static-libs 2>/dev/null` 142174f42e18STeLeMan else 14229316f803SPaolo Bonzini sdl_libs=`$sdlconfig --libs 2> /dev/null` 142374f42e18STeLeMan fi 142452166aa0SJuan Quintela if compile_prog "$sdl_cflags" "$sdl_libs" ; then 142511d9f695Sbellard if test "$_sdlversion" -lt 121 ; then 142611d9f695Sbellard sdl_too_old=yes 142711d9f695Sbellard else 1428fd677642Sths if test "$cocoa" = "no" ; then 142911d9f695Sbellard sdl=yes 143011d9f695Sbellard fi 1431fd677642Sths fi 14327c1f25b4Sbellard 143367c274d3SPaolo Bonzini # static link with sdl ? (note: sdl.pc's --static --libs is broken) 14341ac88f28SJuan Quintela if test "$sdl" = "yes" -a "$static" = "yes" ; then 143567c274d3SPaolo Bonzini if test $? = 0 && echo $sdl_libs | grep -- -laa > /dev/null; then 1436f8aa6c7bSStefan Weil sdl_libs="$sdl_libs `aalib-config --static-libs 2>/dev/null`" 1437f8aa6c7bSStefan Weil sdl_cflags="$sdl_cflags `aalib-config --cflags 2>/dev/null`" 143811d9f695Sbellard fi 143952166aa0SJuan Quintela if compile_prog "$sdl_cflags" "$sdl_libs" ; then 14401ac88f28SJuan Quintela : 14411ac88f28SJuan Quintela else 14421ac88f28SJuan Quintela sdl=no 14437c1f25b4Sbellard fi 14447c1f25b4Sbellard fi # static link 1445c4198157SJuan Quintela else # sdl not found 1446c4198157SJuan Quintela if test "$sdl" = "yes" ; then 1447c4198157SJuan Quintela feature_not_found "sdl" 1448c4198157SJuan Quintela fi 1449c4198157SJuan Quintela sdl=no 14507c1f25b4Sbellard fi # sdl compile test 1451fd677642Sthsfi 145211d9f695Sbellard 14535368a422Saliguoriif test "$sdl" = "yes" ; then 14545368a422Saliguori cat > $TMPC <<EOF 14555368a422Saliguori#include <SDL.h> 14565368a422Saliguori#if defined(SDL_VIDEO_DRIVER_X11) 14575368a422Saliguori#include <X11/XKBlib.h> 14585368a422Saliguori#else 14595368a422Saliguori#error No x11 support 14605368a422Saliguori#endif 14615368a422Saliguoriint main(void) { return 0; } 14625368a422SaliguoriEOF 146352166aa0SJuan Quintela if compile_prog "$sdl_cflags" "$sdl_libs" ; then 1464681306dfSJuan Quintela sdl_libs="$sdl_libs -lX11" 14655368a422Saliguori fi 146607d9ac44SJuan Quintela if test "$mingw32" = "yes" ; then 146707d9ac44SJuan Quintela sdl_libs="`echo $sdl_libs | sed s/-mwindows//g` -mconsole" 146807d9ac44SJuan Quintela fi 14690705667eSJuan Quintela libs_softmmu="$sdl_libs $libs_softmmu" 14705368a422Saliguorifi 14715368a422Saliguori 14728f28f3fbSths########################################## 14738d5d2d4cSths# VNC TLS detection 1474821601eaSJes Sorensenif test "$vnc" = "yes" -a "$vnc_tls" != "no" ; then 1475ae6b5e5aSaliguori cat > $TMPC <<EOF 1476ae6b5e5aSaliguori#include <gnutls/gnutls.h> 1477ae6b5e5aSaliguoriint main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; } 1478ae6b5e5aSaliguoriEOF 1479a8bd70adSPaolo Bonzini vnc_tls_cflags=`$pkg_config --cflags gnutls 2> /dev/null` 1480a8bd70adSPaolo Bonzini vnc_tls_libs=`$pkg_config --libs gnutls 2> /dev/null` 148152166aa0SJuan Quintela if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then 14821be10ad2SJuan Quintela vnc_tls=yes 1483a5e32cc9SJuan Quintela libs_softmmu="$vnc_tls_libs $libs_softmmu" 1484ae6b5e5aSaliguori else 14851be10ad2SJuan Quintela if test "$vnc_tls" = "yes" ; then 14861be10ad2SJuan Quintela feature_not_found "vnc-tls" 14871be10ad2SJuan Quintela fi 14881be10ad2SJuan Quintela vnc_tls=no 14898d5d2d4cSths fi 14908d5d2d4cSthsfi 14918d5d2d4cSths 14928d5d2d4cSths########################################## 14932f9606b3Saliguori# VNC SASL detection 1494821601eaSJes Sorensenif test "$vnc" = "yes" -a "$vnc_sasl" != "no" ; then 14952f9606b3Saliguori cat > $TMPC <<EOF 14962f9606b3Saliguori#include <sasl/sasl.h> 14972f9606b3Saliguori#include <stdio.h> 14982f9606b3Saliguoriint main(void) { sasl_server_init(NULL, "qemu"); return 0; } 14992f9606b3SaliguoriEOF 15002f9606b3Saliguori # Assuming Cyrus-SASL installed in /usr prefix 15012f9606b3Saliguori vnc_sasl_cflags="" 15022f9606b3Saliguori vnc_sasl_libs="-lsasl2" 150352166aa0SJuan Quintela if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then 1504ea784e3bSJuan Quintela vnc_sasl=yes 1505fa838301SJuan Quintela libs_softmmu="$vnc_sasl_libs $libs_softmmu" 15062f9606b3Saliguori else 1507ea784e3bSJuan Quintela if test "$vnc_sasl" = "yes" ; then 1508ea784e3bSJuan Quintela feature_not_found "vnc-sasl" 1509ea784e3bSJuan Quintela fi 1510ea784e3bSJuan Quintela vnc_sasl=no 15112f9606b3Saliguori fi 15122f9606b3Saliguorifi 15132f9606b3Saliguori 15142f9606b3Saliguori########################################## 15152f6f5c7aSCorentin Chary# VNC JPEG detection 1516821601eaSJes Sorensenif test "$vnc" = "yes" -a "$vnc_jpeg" != "no" ; then 15172f6f5c7aSCorentin Charycat > $TMPC <<EOF 15182f6f5c7aSCorentin Chary#include <stdio.h> 15192f6f5c7aSCorentin Chary#include <jpeglib.h> 15202f6f5c7aSCorentin Charyint main(void) { struct jpeg_compress_struct s; jpeg_create_compress(&s); return 0; } 15212f6f5c7aSCorentin CharyEOF 15222f6f5c7aSCorentin Chary vnc_jpeg_cflags="" 15232f6f5c7aSCorentin Chary vnc_jpeg_libs="-ljpeg" 15242f6f5c7aSCorentin Chary if compile_prog "$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then 15252f6f5c7aSCorentin Chary vnc_jpeg=yes 15262f6f5c7aSCorentin Chary libs_softmmu="$vnc_jpeg_libs $libs_softmmu" 15272f6f5c7aSCorentin Chary else 15282f6f5c7aSCorentin Chary if test "$vnc_jpeg" = "yes" ; then 15292f6f5c7aSCorentin Chary feature_not_found "vnc-jpeg" 15302f6f5c7aSCorentin Chary fi 15312f6f5c7aSCorentin Chary vnc_jpeg=no 15322f6f5c7aSCorentin Chary fi 15332f6f5c7aSCorentin Charyfi 15342f6f5c7aSCorentin Chary 15352f6f5c7aSCorentin Chary########################################## 1536efe556adSCorentin Chary# VNC PNG detection 1537821601eaSJes Sorensenif test "$vnc" = "yes" -a "$vnc_png" != "no" ; then 1538efe556adSCorentin Charycat > $TMPC <<EOF 1539efe556adSCorentin Chary//#include <stdio.h> 1540efe556adSCorentin Chary#include <png.h> 1541832ce9c2SScott Wood#include <stddef.h> 1542efe556adSCorentin Charyint main(void) { 1543efe556adSCorentin Chary png_structp png_ptr; 1544efe556adSCorentin Chary png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); 1545efe556adSCorentin Chary return 0; 1546efe556adSCorentin Chary} 1547efe556adSCorentin CharyEOF 15489af8025eSBrad if $pkg_config libpng --modversion >/dev/null 2>&1; then 15499af8025eSBrad vnc_png_cflags=`$pkg_config libpng --cflags 2> /dev/null` 15509af8025eSBrad vnc_png_libs=`$pkg_config libpng --libs 2> /dev/null` 15519af8025eSBrad else 1552efe556adSCorentin Chary vnc_png_cflags="" 1553efe556adSCorentin Chary vnc_png_libs="-lpng" 15549af8025eSBrad fi 1555efe556adSCorentin Chary if compile_prog "$vnc_png_cflags" "$vnc_png_libs" ; then 1556efe556adSCorentin Chary vnc_png=yes 1557efe556adSCorentin Chary libs_softmmu="$vnc_png_libs $libs_softmmu" 15589af8025eSBrad QEMU_CFLAGS="$QEMU_CFLAGS $vnc_png_cflags" 1559efe556adSCorentin Chary else 1560efe556adSCorentin Chary if test "$vnc_png" = "yes" ; then 1561efe556adSCorentin Chary feature_not_found "vnc-png" 1562efe556adSCorentin Chary fi 1563efe556adSCorentin Chary vnc_png=no 1564efe556adSCorentin Chary fi 1565efe556adSCorentin Charyfi 1566efe556adSCorentin Chary 1567efe556adSCorentin Chary########################################## 156876655d6dSaliguori# fnmatch() probe, used for ACL routines 156976655d6dSaliguorifnmatch="no" 157076655d6dSaliguoricat > $TMPC << EOF 157176655d6dSaliguori#include <fnmatch.h> 157276655d6dSaliguoriint main(void) 157376655d6dSaliguori{ 157476655d6dSaliguori fnmatch("foo", "foo", 0); 157576655d6dSaliguori return 0; 157676655d6dSaliguori} 157776655d6dSaliguoriEOF 157852166aa0SJuan Quintelaif compile_prog "" "" ; then 157976655d6dSaliguori fnmatch="yes" 158076655d6dSaliguorifi 158176655d6dSaliguori 158276655d6dSaliguori########################################## 1583ee682d27SStefan Weil# uuid_generate() probe, used for vdi block driver 1584ee682d27SStefan Weilif test "$uuid" != "no" ; then 1585ee682d27SStefan Weil uuid_libs="-luuid" 1586ee682d27SStefan Weil cat > $TMPC << EOF 1587ee682d27SStefan Weil#include <uuid/uuid.h> 1588ee682d27SStefan Weilint main(void) 1589ee682d27SStefan Weil{ 1590ee682d27SStefan Weil uuid_t my_uuid; 1591ee682d27SStefan Weil uuid_generate(my_uuid); 1592ee682d27SStefan Weil return 0; 1593ee682d27SStefan Weil} 1594ee682d27SStefan WeilEOF 1595ee682d27SStefan Weil if compile_prog "" "$uuid_libs" ; then 1596ee682d27SStefan Weil uuid="yes" 1597ee682d27SStefan Weil libs_softmmu="$uuid_libs $libs_softmmu" 1598ee682d27SStefan Weil libs_tools="$uuid_libs $libs_tools" 1599ee682d27SStefan Weil else 1600ee682d27SStefan Weil if test "$uuid" = "yes" ; then 1601ee682d27SStefan Weil feature_not_found "uuid" 1602ee682d27SStefan Weil fi 1603ee682d27SStefan Weil uuid=no 1604ee682d27SStefan Weil fi 1605ee682d27SStefan Weilfi 1606ee682d27SStefan Weil 1607ee682d27SStefan Weil########################################## 1608dce512deSChristoph Hellwig# xfsctl() probe, used for raw-posix 1609dce512deSChristoph Hellwigif test "$xfs" != "no" ; then 1610dce512deSChristoph Hellwig cat > $TMPC << EOF 1611dce512deSChristoph Hellwig#include <xfs/xfs.h> 1612dce512deSChristoph Hellwigint main(void) 1613dce512deSChristoph Hellwig{ 1614dce512deSChristoph Hellwig xfsctl(NULL, 0, 0, NULL); 1615dce512deSChristoph Hellwig return 0; 1616dce512deSChristoph Hellwig} 1617dce512deSChristoph HellwigEOF 1618dce512deSChristoph Hellwig if compile_prog "" "" ; then 1619dce512deSChristoph Hellwig xfs="yes" 1620dce512deSChristoph Hellwig else 1621dce512deSChristoph Hellwig if test "$xfs" = "yes" ; then 1622dce512deSChristoph Hellwig feature_not_found "xfs" 1623dce512deSChristoph Hellwig fi 1624dce512deSChristoph Hellwig xfs=no 1625dce512deSChristoph Hellwig fi 1626dce512deSChristoph Hellwigfi 1627dce512deSChristoph Hellwig 1628dce512deSChristoph Hellwig########################################## 16298a16d273Sths# vde libraries probe 1630dfb278bdSJuan Quintelaif test "$vde" != "no" ; then 16314baae0acSJuan Quintela vde_libs="-lvdeplug" 16328a16d273Sths cat > $TMPC << EOF 16338a16d273Sths#include <libvdeplug.h> 16344a7f0e06Spbrookint main(void) 16354a7f0e06Spbrook{ 16364a7f0e06Spbrook struct vde_open_args a = {0, 0, 0}; 16374a7f0e06Spbrook vde_open("", "", &a); 16384a7f0e06Spbrook return 0; 16394a7f0e06Spbrook} 16408a16d273SthsEOF 164152166aa0SJuan Quintela if compile_prog "" "$vde_libs" ; then 16424baae0acSJuan Quintela vde=yes 16438e02e54cSJuan Quintela libs_softmmu="$vde_libs $libs_softmmu" 16448e02e54cSJuan Quintela libs_tools="$vde_libs $libs_tools" 1645dfb278bdSJuan Quintela else 1646dfb278bdSJuan Quintela if test "$vde" = "yes" ; then 1647dfb278bdSJuan Quintela feature_not_found "vde" 1648dfb278bdSJuan Quintela fi 1649dfb278bdSJuan Quintela vde=no 16508a16d273Sths fi 16518a16d273Sthsfi 16528a16d273Sths 16538a16d273Sths########################################## 1654c2de5c91Smalc# Sound support libraries probe 16558f28f3fbSths 1656c2de5c91Smalcaudio_drv_probe() 1657c2de5c91Smalc{ 1658c2de5c91Smalc drv=$1 1659c2de5c91Smalc hdr=$2 1660c2de5c91Smalc lib=$3 1661c2de5c91Smalc exp=$4 1662c2de5c91Smalc cfl=$5 16638f28f3fbSths cat > $TMPC << EOF 1664c2de5c91Smalc#include <$hdr> 1665c2de5c91Smalcint main(void) { $exp } 16668f28f3fbSthsEOF 166752166aa0SJuan Quintela if compile_prog "$cfl" "$lib" ; then 16688f28f3fbSths : 16698f28f3fbSths else 16708f28f3fbSths echo 1671c2de5c91Smalc echo "Error: $drv check failed" 1672c2de5c91Smalc echo "Make sure to have the $drv libs and headers installed." 16738f28f3fbSths echo 16748f28f3fbSths exit 1 16758f28f3fbSths fi 1676c2de5c91Smalc} 1677c2de5c91Smalc 16782fa7d3bfSmalcaudio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'` 1679c2de5c91Smalcfor drv in $audio_drv_list; do 1680c2de5c91Smalc case $drv in 1681c2de5c91Smalc alsa) 1682c2de5c91Smalc audio_drv_probe $drv alsa/asoundlib.h -lasound \ 1683c2de5c91Smalc "snd_pcm_t **handle; return snd_pcm_close(*handle);" 1684a4bf6780SJuan Quintela libs_softmmu="-lasound $libs_softmmu" 1685c2de5c91Smalc ;; 1686c2de5c91Smalc 1687c2de5c91Smalc fmod) 1688c2de5c91Smalc if test -z $fmod_lib || test -z $fmod_inc; then 1689c2de5c91Smalc echo 1690c2de5c91Smalc echo "Error: You must specify path to FMOD library and headers" 1691c2de5c91Smalc echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so" 1692c2de5c91Smalc echo 1693c2de5c91Smalc exit 1 16948f28f3fbSths fi 1695c2de5c91Smalc audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc" 1696a4bf6780SJuan Quintela libs_softmmu="$fmod_lib $libs_softmmu" 1697c2de5c91Smalc ;; 1698c2de5c91Smalc 1699c2de5c91Smalc esd) 1700c2de5c91Smalc audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);' 1701a4bf6780SJuan Quintela libs_softmmu="-lesd $libs_softmmu" 170267f86e8eSJuan Quintela audio_pt_int="yes" 1703c2de5c91Smalc ;; 1704b8e59f18Smalc 1705b8e59f18Smalc pa) 1706493abda6SAurelien Jarno audio_drv_probe $drv pulse/simple.h "-lpulse-simple -lpulse" \ 170720fa53ecSMarc-Antoine Perennou "pa_simple *s = 0; pa_simple_free(s); return 0;" 1708493abda6SAurelien Jarno libs_softmmu="-lpulse -lpulse-simple $libs_softmmu" 170967f86e8eSJuan Quintela audio_pt_int="yes" 1710b8e59f18Smalc ;; 1711b8e59f18Smalc 1712997e690aSJuan Quintela coreaudio) 1713997e690aSJuan Quintela libs_softmmu="-framework CoreAudio $libs_softmmu" 1714997e690aSJuan Quintela ;; 1715997e690aSJuan Quintela 1716a4bf6780SJuan Quintela dsound) 1717a4bf6780SJuan Quintela libs_softmmu="-lole32 -ldxguid $libs_softmmu" 1718d5631638Smalc audio_win_int="yes" 1719a4bf6780SJuan Quintela ;; 1720a4bf6780SJuan Quintela 1721a4bf6780SJuan Quintela oss) 1722a4bf6780SJuan Quintela libs_softmmu="$oss_lib $libs_softmmu" 1723a4bf6780SJuan Quintela ;; 1724a4bf6780SJuan Quintela 1725a4bf6780SJuan Quintela sdl|wav) 17262f6a1ab0Sblueswir1 # XXX: Probes for CoreAudio, DirectSound, SDL(?) 17272f6a1ab0Sblueswir1 ;; 17282f6a1ab0Sblueswir1 1729d5631638Smalc winwave) 1730d5631638Smalc libs_softmmu="-lwinmm $libs_softmmu" 1731d5631638Smalc audio_win_int="yes" 1732d5631638Smalc ;; 1733d5631638Smalc 1734e4c63a6aSmalc *) 17351c9b2a52Smalc echo "$audio_possible_drivers" | grep -q "\<$drv\>" || { 1736e4c63a6aSmalc echo 1737e4c63a6aSmalc echo "Error: Unknown driver '$drv' selected" 1738e4c63a6aSmalc echo "Possible drivers are: $audio_possible_drivers" 1739e4c63a6aSmalc echo 1740e4c63a6aSmalc exit 1 1741e4c63a6aSmalc } 1742e4c63a6aSmalc ;; 1743c2de5c91Smalc esac 1744c2de5c91Smalcdone 17458f28f3fbSths 17464d3b6f6eSbalrog########################################## 17472e4d9fb1Saurel32# BrlAPI probe 17482e4d9fb1Saurel32 17494ffcedb6SJuan Quintelaif test "$brlapi" != "no" ; then 1750eb82284fSJuan Quintela brlapi_libs="-lbrlapi" 17512e4d9fb1Saurel32 cat > $TMPC << EOF 17522e4d9fb1Saurel32#include <brlapi.h> 1753832ce9c2SScott Wood#include <stddef.h> 17542e4d9fb1Saurel32int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); } 17552e4d9fb1Saurel32EOF 175652166aa0SJuan Quintela if compile_prog "" "$brlapi_libs" ; then 17572e4d9fb1Saurel32 brlapi=yes 1758264606b3SJuan Quintela libs_softmmu="$brlapi_libs $libs_softmmu" 17594ffcedb6SJuan Quintela else 17604ffcedb6SJuan Quintela if test "$brlapi" = "yes" ; then 17614ffcedb6SJuan Quintela feature_not_found "brlapi" 17624ffcedb6SJuan Quintela fi 17634ffcedb6SJuan Quintela brlapi=no 1764eb82284fSJuan Quintela fi 1765eb82284fSJuan Quintelafi 17662e4d9fb1Saurel32 17672e4d9fb1Saurel32########################################## 17684d3b6f6eSbalrog# curses probe 1769e095e2f3SStefan Weilif test "$mingw32" = "yes" ; then 1770e095e2f3SStefan Weil curses_list="-lpdcurses" 1771e095e2f3SStefan Weilelse 17724f78ef9aSJuan Quintela curses_list="-lncurses -lcurses" 1773e095e2f3SStefan Weilfi 17744d3b6f6eSbalrog 1775c584a6d0SJuan Quintelaif test "$curses" != "no" ; then 1776c584a6d0SJuan Quintela curses_found=no 17774d3b6f6eSbalrog cat > $TMPC << EOF 17784d3b6f6eSbalrog#include <curses.h> 17795a8ff3aaSblueswir1#ifdef __OpenBSD__ 17805a8ff3aaSblueswir1#define resize_term resizeterm 17815a8ff3aaSblueswir1#endif 17825a8ff3aaSblueswir1int main(void) { resize_term(0, 0); return curses_version(); } 17834d3b6f6eSbalrogEOF 17844f78ef9aSJuan Quintela for curses_lib in $curses_list; do 17854f78ef9aSJuan Quintela if compile_prog "" "$curses_lib" ; then 1786c584a6d0SJuan Quintela curses_found=yes 17874f78ef9aSJuan Quintela libs_softmmu="$curses_lib $libs_softmmu" 17884f78ef9aSJuan Quintela break 17894d3b6f6eSbalrog fi 17904f78ef9aSJuan Quintela done 1791c584a6d0SJuan Quintela if test "$curses_found" = "yes" ; then 1792c584a6d0SJuan Quintela curses=yes 1793c584a6d0SJuan Quintela else 1794c584a6d0SJuan Quintela if test "$curses" = "yes" ; then 1795c584a6d0SJuan Quintela feature_not_found "curses" 1796c584a6d0SJuan Quintela fi 1797c584a6d0SJuan Quintela curses=no 1798c584a6d0SJuan Quintela fi 17994f78ef9aSJuan Quintelafi 18004d3b6f6eSbalrog 1801414f0dabSblueswir1########################################## 1802769ce76dSAlexander Graf# curl probe 1803769ce76dSAlexander Graf 1804a8bd70adSPaolo Bonziniif $pkg_config libcurl --modversion >/dev/null 2>&1; then 1805a8bd70adSPaolo Bonzini curlconfig="$pkg_config libcurl" 18064e2b0658SPaolo Bonzinielse 18074e2b0658SPaolo Bonzini curlconfig=curl-config 18084e2b0658SPaolo Bonzinifi 18094e2b0658SPaolo Bonzini 1810788c8196SJuan Quintelaif test "$curl" != "no" ; then 1811769ce76dSAlexander Graf cat > $TMPC << EOF 1812769ce76dSAlexander Graf#include <curl/curl.h> 18130b862cedSPeter Maydellint main(void) { curl_easy_init(); curl_multi_setopt(0, 0, 0); return 0; } 1814769ce76dSAlexander GrafEOF 18154e2b0658SPaolo Bonzini curl_cflags=`$curlconfig --cflags 2>/dev/null` 18164e2b0658SPaolo Bonzini curl_libs=`$curlconfig --libs 2>/dev/null` 1817b1d5a277SJuan Quintela if compile_prog "$curl_cflags" "$curl_libs" ; then 1818769ce76dSAlexander Graf curl=yes 1819f0302935SJuan Quintela libs_tools="$curl_libs $libs_tools" 1820f0302935SJuan Quintela libs_softmmu="$curl_libs $libs_softmmu" 1821788c8196SJuan Quintela else 1822788c8196SJuan Quintela if test "$curl" = "yes" ; then 1823788c8196SJuan Quintela feature_not_found "curl" 1824788c8196SJuan Quintela fi 1825788c8196SJuan Quintela curl=no 1826769ce76dSAlexander Graf fi 1827769ce76dSAlexander Graffi # test "$curl" 1828769ce76dSAlexander Graf 1829769ce76dSAlexander Graf########################################## 18305495ed11SLuiz Capitulino# check framework probe 18315495ed11SLuiz Capitulino 18325495ed11SLuiz Capitulinoif test "$check_utests" != "no" ; then 18335495ed11SLuiz Capitulino cat > $TMPC << EOF 18345495ed11SLuiz Capitulino#include <check.h> 18355495ed11SLuiz Capitulinoint main(void) { suite_create("qemu test"); return 0; } 18365495ed11SLuiz CapitulinoEOF 1837a8bd70adSPaolo Bonzini check_libs=`$pkg_config --libs check` 18385495ed11SLuiz Capitulino if compile_prog "" $check_libs ; then 18395495ed11SLuiz Capitulino check_utests=yes 18405495ed11SLuiz Capitulino libs_tools="$check_libs $libs_tools" 18415495ed11SLuiz Capitulino else 18425495ed11SLuiz Capitulino if test "$check_utests" = "yes" ; then 18435495ed11SLuiz Capitulino feature_not_found "check" 18445495ed11SLuiz Capitulino fi 18455495ed11SLuiz Capitulino check_utests=no 18465495ed11SLuiz Capitulino fi 18475495ed11SLuiz Capitulinofi # test "$check_utests" 18485495ed11SLuiz Capitulino 18495495ed11SLuiz Capitulino########################################## 1850fb599c9aSbalrog# bluez support probe 1851a20a6f46SJuan Quintelaif test "$bluez" != "no" ; then 1852e820e3f4Sbalrog cat > $TMPC << EOF 1853e820e3f4Sbalrog#include <bluetooth/bluetooth.h> 1854e820e3f4Sbalrogint main(void) { return bt_error(0); } 1855e820e3f4SbalrogEOF 1856a8bd70adSPaolo Bonzini bluez_cflags=`$pkg_config --cflags bluez 2> /dev/null` 1857a8bd70adSPaolo Bonzini bluez_libs=`$pkg_config --libs bluez 2> /dev/null` 185852166aa0SJuan Quintela if compile_prog "$bluez_cflags" "$bluez_libs" ; then 1859a20a6f46SJuan Quintela bluez=yes 1860e482d56aSJuan Quintela libs_softmmu="$bluez_libs $libs_softmmu" 1861e820e3f4Sbalrog else 1862a20a6f46SJuan Quintela if test "$bluez" = "yes" ; then 1863a20a6f46SJuan Quintela feature_not_found "bluez" 1864a20a6f46SJuan Quintela fi 1865e820e3f4Sbalrog bluez="no" 1866e820e3f4Sbalrog fi 1867fb599c9aSbalrogfi 1868fb599c9aSbalrog 1869fb599c9aSbalrog########################################## 1870e18df141SAnthony Liguori# glib support probe 18714b76a481SStefan Hajnocziif $pkg_config --modversion gthread-2.0 > /dev/null 2>&1 ; then 18724b76a481SStefan Hajnoczi glib_cflags=`$pkg_config --cflags gthread-2.0 2>/dev/null` 18734b76a481SStefan Hajnoczi glib_libs=`$pkg_config --libs gthread-2.0 2>/dev/null` 187414015304SAnthony Liguori LIBS="$glib_libs $LIBS" 1875957f1f99SMichael Roth libs_qga="$glib_libs $libs_qga" 1876e18df141SAnthony Liguorielse 1877e18df141SAnthony Liguori echo "glib-2.0 required to compile QEMU" 1878e18df141SAnthony Liguori exit 1 1879e18df141SAnthony Liguorifi 1880e18df141SAnthony Liguori 1881e18df141SAnthony Liguori########################################## 1882e5d355d1Saliguori# pthread probe 18834b29ec41SBradPTHREADLIBS_LIST="-pthread -lpthread -lpthreadGC2" 18843c529d93Saliguori 1885e5d355d1Saliguoripthread=no 1886414f0dabSblueswir1cat > $TMPC << EOF 18873c529d93Saliguori#include <pthread.h> 1888de65fe0fSSebastian Herbsztint main(void) { pthread_create(0,0,0,0); return 0; } 1889414f0dabSblueswir1EOF 1890bd00d539SAndreas Färberif compile_prog "" "" ; then 1891bd00d539SAndreas Färber pthread=yes 1892bd00d539SAndreas Färberelse 1893de65fe0fSSebastian Herbszt for pthread_lib in $PTHREADLIBS_LIST; do 189452166aa0SJuan Quintela if compile_prog "" "$pthread_lib" ; then 1895e5d355d1Saliguori pthread=yes 18965572b539SJuan Quintela LIBS="$pthread_lib $LIBS" 1897de65fe0fSSebastian Herbszt break 1898414f0dabSblueswir1 fi 1899de65fe0fSSebastian Herbszt done 1900bd00d539SAndreas Färberfi 1901414f0dabSblueswir1 19024617e593SAnthony Liguoriif test "$mingw32" != yes -a "$pthread" = no; then 19034dd75c70SChristoph Hellwig echo 19044dd75c70SChristoph Hellwig echo "Error: pthread check failed" 19054dd75c70SChristoph Hellwig echo "Make sure to have the pthread libs and headers installed." 19064dd75c70SChristoph Hellwig echo 19074dd75c70SChristoph Hellwig exit 1 1908e5d355d1Saliguorifi 1909e5d355d1Saliguori 1910bf9298b9Saliguori########################################## 1911f27aaf4bSChristian Brunner# rbd probe 1912f27aaf4bSChristian Brunnerif test "$rbd" != "no" ; then 1913f27aaf4bSChristian Brunner cat > $TMPC <<EOF 1914f27aaf4bSChristian Brunner#include <stdio.h> 1915ad32e9c0SJosh Durgin#include <rbd/librbd.h> 1916f27aaf4bSChristian Brunnerint main(void) { 1917ad32e9c0SJosh Durgin rados_t cluster; 1918ad32e9c0SJosh Durgin rados_create(&cluster, NULL); 1919f27aaf4bSChristian Brunner return 0; 1920f27aaf4bSChristian Brunner} 1921f27aaf4bSChristian BrunnerEOF 1922ad32e9c0SJosh Durgin rbd_libs="-lrbd -lrados" 1923f27aaf4bSChristian Brunner if compile_prog "" "$rbd_libs" ; then 1924f27aaf4bSChristian Brunner rbd=yes 1925f27aaf4bSChristian Brunner libs_tools="$rbd_libs $libs_tools" 1926f27aaf4bSChristian Brunner libs_softmmu="$rbd_libs $libs_softmmu" 1927f27aaf4bSChristian Brunner else 1928f27aaf4bSChristian Brunner if test "$rbd" = "yes" ; then 1929f27aaf4bSChristian Brunner feature_not_found "rados block device" 1930f27aaf4bSChristian Brunner fi 1931f27aaf4bSChristian Brunner rbd=no 1932f27aaf4bSChristian Brunner fi 1933f27aaf4bSChristian Brunnerfi 1934f27aaf4bSChristian Brunner 1935f27aaf4bSChristian Brunner########################################## 19365c6c3a6cSChristoph Hellwig# linux-aio probe 19375c6c3a6cSChristoph Hellwig 19385c6c3a6cSChristoph Hellwigif test "$linux_aio" != "no" ; then 19395c6c3a6cSChristoph Hellwig cat > $TMPC <<EOF 19405c6c3a6cSChristoph Hellwig#include <libaio.h> 19415c6c3a6cSChristoph Hellwig#include <sys/eventfd.h> 1942832ce9c2SScott Wood#include <stddef.h> 19435c6c3a6cSChristoph Hellwigint main(void) { io_setup(0, NULL); io_set_eventfd(NULL, 0); eventfd(0, 0); return 0; } 19445c6c3a6cSChristoph HellwigEOF 19455c6c3a6cSChristoph Hellwig if compile_prog "" "-laio" ; then 19465c6c3a6cSChristoph Hellwig linux_aio=yes 1947048d179fSPaul Brook libs_softmmu="$libs_softmmu -laio" 1948048d179fSPaul Brook libs_tools="$libs_tools -laio" 19495c6c3a6cSChristoph Hellwig else 19505c6c3a6cSChristoph Hellwig if test "$linux_aio" = "yes" ; then 19515c6c3a6cSChristoph Hellwig feature_not_found "linux AIO" 19525c6c3a6cSChristoph Hellwig fi 19533cfcae3cSLuiz Capitulino linux_aio=no 19545c6c3a6cSChristoph Hellwig fi 19555c6c3a6cSChristoph Hellwigfi 19565c6c3a6cSChristoph Hellwig 19575c6c3a6cSChristoph Hellwig########################################## 1958758e8e38SVenkateswararao Jujjuri (JV)# attr probe 1959758e8e38SVenkateswararao Jujjuri (JV) 1960758e8e38SVenkateswararao Jujjuri (JV)if test "$attr" != "no" ; then 1961758e8e38SVenkateswararao Jujjuri (JV) cat > $TMPC <<EOF 1962758e8e38SVenkateswararao Jujjuri (JV)#include <stdio.h> 1963758e8e38SVenkateswararao Jujjuri (JV)#include <sys/types.h> 1964758e8e38SVenkateswararao Jujjuri (JV)#include <attr/xattr.h> 1965758e8e38SVenkateswararao Jujjuri (JV)int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; } 1966758e8e38SVenkateswararao Jujjuri (JV)EOF 1967758e8e38SVenkateswararao Jujjuri (JV) if compile_prog "" "-lattr" ; then 1968758e8e38SVenkateswararao Jujjuri (JV) attr=yes 1969758e8e38SVenkateswararao Jujjuri (JV) LIBS="-lattr $LIBS" 1970758e8e38SVenkateswararao Jujjuri (JV) else 1971758e8e38SVenkateswararao Jujjuri (JV) if test "$attr" = "yes" ; then 1972758e8e38SVenkateswararao Jujjuri (JV) feature_not_found "ATTR" 1973758e8e38SVenkateswararao Jujjuri (JV) fi 1974758e8e38SVenkateswararao Jujjuri (JV) attr=no 1975758e8e38SVenkateswararao Jujjuri (JV) fi 1976758e8e38SVenkateswararao Jujjuri (JV)fi 1977758e8e38SVenkateswararao Jujjuri (JV) 1978758e8e38SVenkateswararao Jujjuri (JV)########################################## 1979bf9298b9Saliguori# iovec probe 1980bf9298b9Saliguoricat > $TMPC <<EOF 1981db34f0b3Sblueswir1#include <sys/types.h> 1982bf9298b9Saliguori#include <sys/uio.h> 1983db34f0b3Sblueswir1#include <unistd.h> 1984bf9298b9Saliguoriint main(void) { struct iovec iov; return 0; } 1985bf9298b9SaliguoriEOF 1986bf9298b9Saliguoriiovec=no 198752166aa0SJuan Quintelaif compile_prog "" "" ; then 1988bf9298b9Saliguori iovec=yes 1989bf9298b9Saliguorifi 1990bf9298b9Saliguori 1991f652e6afSaurel32########################################## 1992ceb42de8Saliguori# preadv probe 1993ceb42de8Saliguoricat > $TMPC <<EOF 1994ceb42de8Saliguori#include <sys/types.h> 1995ceb42de8Saliguori#include <sys/uio.h> 1996ceb42de8Saliguori#include <unistd.h> 1997ceb42de8Saliguoriint main(void) { preadv; } 1998ceb42de8SaliguoriEOF 1999ceb42de8Saliguoripreadv=no 200052166aa0SJuan Quintelaif compile_prog "" "" ; then 2001ceb42de8Saliguori preadv=yes 2002ceb42de8Saliguorifi 2003ceb42de8Saliguori 2004ceb42de8Saliguori########################################## 2005f652e6afSaurel32# fdt probe 20062df87df7SJuan Quintelaif test "$fdt" != "no" ; then 2007b41af4baSJuan Quintela fdt_libs="-lfdt" 2008f652e6afSaurel32 cat > $TMPC << EOF 2009f652e6afSaurel32int main(void) { return 0; } 2010f652e6afSaurel32EOF 201152166aa0SJuan Quintela if compile_prog "" "$fdt_libs" ; then 2012f652e6afSaurel32 fdt=yes 20132df87df7SJuan Quintela else 20142df87df7SJuan Quintela if test "$fdt" = "yes" ; then 20152df87df7SJuan Quintela feature_not_found "fdt" 20162df87df7SJuan Quintela fi 2017de3a354aSMichael Walle fdt_libs= 20182df87df7SJuan Quintela fdt=no 2019f652e6afSaurel32 fi 2020f652e6afSaurel32fi 2021f652e6afSaurel32 202220ff075bSMichael Walle########################################## 202320ff075bSMichael Walle# opengl probe, used by milkymist-tmu2 202420ff075bSMichael Walleif test "$opengl" != "no" ; then 202520ff075bSMichael Walle opengl_libs="-lGL" 202620ff075bSMichael Walle cat > $TMPC << EOF 202720ff075bSMichael Walle#include <X11/Xlib.h> 202820ff075bSMichael Walle#include <GL/gl.h> 202920ff075bSMichael Walle#include <GL/glx.h> 203020ff075bSMichael Walleint main(void) { GL_VERSION; return 0; } 203120ff075bSMichael WalleEOF 203220ff075bSMichael Walle if compile_prog "" "-lGL" ; then 203320ff075bSMichael Walle opengl=yes 203420ff075bSMichael Walle else 203520ff075bSMichael Walle if test "$opengl" = "yes" ; then 203620ff075bSMichael Walle feature_not_found "opengl" 203720ff075bSMichael Walle fi 2038de3a354aSMichael Walle opengl_libs= 203920ff075bSMichael Walle opengl=no 204020ff075bSMichael Walle fi 204120ff075bSMichael Wallefi 204220ff075bSMichael Walle 20433b3f24adSaurel32# 20443b3f24adSaurel32# Check for xxxat() functions when we are building linux-user 20453b3f24adSaurel32# emulator. This is done because older glibc versions don't 20463b3f24adSaurel32# have syscall stubs for these implemented. 20473b3f24adSaurel32# 20483b3f24adSaurel32atfile=no 20493b3f24adSaurel32cat > $TMPC << EOF 20503b3f24adSaurel32#define _ATFILE_SOURCE 20513b3f24adSaurel32#include <sys/types.h> 20523b3f24adSaurel32#include <fcntl.h> 20533b3f24adSaurel32#include <unistd.h> 20543b3f24adSaurel32 20553b3f24adSaurel32int 20563b3f24adSaurel32main(void) 20573b3f24adSaurel32{ 20583b3f24adSaurel32 /* try to unlink nonexisting file */ 20593b3f24adSaurel32 return (unlinkat(AT_FDCWD, "nonexistent_file", 0)); 20603b3f24adSaurel32} 20613b3f24adSaurel32EOF 206252166aa0SJuan Quintelaif compile_prog "" "" ; then 20633b3f24adSaurel32 atfile=yes 20643b3f24adSaurel32fi 20653b3f24adSaurel32 206639386ac7Saurel32# Check for inotify functions when we are building linux-user 20673b3f24adSaurel32# emulator. This is done because older glibc versions don't 20683b3f24adSaurel32# have syscall stubs for these implemented. In that case we 20693b3f24adSaurel32# don't provide them even if kernel supports them. 20703b3f24adSaurel32# 20713b3f24adSaurel32inotify=no 20723b3f24adSaurel32cat > $TMPC << EOF 20733b3f24adSaurel32#include <sys/inotify.h> 20743b3f24adSaurel32 20753b3f24adSaurel32int 20763b3f24adSaurel32main(void) 20773b3f24adSaurel32{ 20783b3f24adSaurel32 /* try to start inotify */ 20798690e420Saurel32 return inotify_init(); 20803b3f24adSaurel32} 20813b3f24adSaurel32EOF 208252166aa0SJuan Quintelaif compile_prog "" "" ; then 20833b3f24adSaurel32 inotify=yes 20843b3f24adSaurel32fi 20853b3f24adSaurel32 2086c05c7a73SRiku Voipioinotify1=no 2087c05c7a73SRiku Voipiocat > $TMPC << EOF 2088c05c7a73SRiku Voipio#include <sys/inotify.h> 2089c05c7a73SRiku Voipio 2090c05c7a73SRiku Voipioint 2091c05c7a73SRiku Voipiomain(void) 2092c05c7a73SRiku Voipio{ 2093c05c7a73SRiku Voipio /* try to start inotify */ 2094c05c7a73SRiku Voipio return inotify_init1(0); 2095c05c7a73SRiku Voipio} 2096c05c7a73SRiku VoipioEOF 2097c05c7a73SRiku Voipioif compile_prog "" "" ; then 2098c05c7a73SRiku Voipio inotify1=yes 2099c05c7a73SRiku Voipiofi 2100c05c7a73SRiku Voipio 2101ebc996f3SRiku Voipio# check if utimensat and futimens are supported 2102ebc996f3SRiku Voipioutimens=no 2103ebc996f3SRiku Voipiocat > $TMPC << EOF 2104ebc996f3SRiku Voipio#define _ATFILE_SOURCE 2105ebc996f3SRiku Voipio#include <stddef.h> 2106ebc996f3SRiku Voipio#include <fcntl.h> 2107ebc996f3SRiku Voipio 2108ebc996f3SRiku Voipioint main(void) 2109ebc996f3SRiku Voipio{ 2110ebc996f3SRiku Voipio utimensat(AT_FDCWD, "foo", NULL, 0); 2111ebc996f3SRiku Voipio futimens(0, NULL); 2112ebc996f3SRiku Voipio return 0; 2113ebc996f3SRiku Voipio} 2114ebc996f3SRiku VoipioEOF 211552166aa0SJuan Quintelaif compile_prog "" "" ; then 2116ebc996f3SRiku Voipio utimens=yes 2117ebc996f3SRiku Voipiofi 2118ebc996f3SRiku Voipio 2119099d6b0fSRiku Voipio# check if pipe2 is there 2120099d6b0fSRiku Voipiopipe2=no 2121099d6b0fSRiku Voipiocat > $TMPC << EOF 2122099d6b0fSRiku Voipio#include <unistd.h> 2123099d6b0fSRiku Voipio#include <fcntl.h> 2124099d6b0fSRiku Voipio 2125099d6b0fSRiku Voipioint main(void) 2126099d6b0fSRiku Voipio{ 2127099d6b0fSRiku Voipio int pipefd[2]; 2128099d6b0fSRiku Voipio pipe2(pipefd, O_CLOEXEC); 2129099d6b0fSRiku Voipio return 0; 2130099d6b0fSRiku Voipio} 2131099d6b0fSRiku VoipioEOF 213252166aa0SJuan Quintelaif compile_prog "" "" ; then 2133099d6b0fSRiku Voipio pipe2=yes 2134099d6b0fSRiku Voipiofi 2135099d6b0fSRiku Voipio 213640ff6d7eSKevin Wolf# check if accept4 is there 213740ff6d7eSKevin Wolfaccept4=no 213840ff6d7eSKevin Wolfcat > $TMPC << EOF 213940ff6d7eSKevin Wolf#include <sys/socket.h> 214040ff6d7eSKevin Wolf#include <stddef.h> 214140ff6d7eSKevin Wolf 214240ff6d7eSKevin Wolfint main(void) 214340ff6d7eSKevin Wolf{ 214440ff6d7eSKevin Wolf accept4(0, NULL, NULL, SOCK_CLOEXEC); 214540ff6d7eSKevin Wolf return 0; 214640ff6d7eSKevin Wolf} 214740ff6d7eSKevin WolfEOF 214840ff6d7eSKevin Wolfif compile_prog "" "" ; then 214940ff6d7eSKevin Wolf accept4=yes 215040ff6d7eSKevin Wolffi 215140ff6d7eSKevin Wolf 21523ce34dfbSvibisreenivasan# check if tee/splice is there. vmsplice was added same time. 21533ce34dfbSvibisreenivasansplice=no 21543ce34dfbSvibisreenivasancat > $TMPC << EOF 21553ce34dfbSvibisreenivasan#include <unistd.h> 21563ce34dfbSvibisreenivasan#include <fcntl.h> 21573ce34dfbSvibisreenivasan#include <limits.h> 21583ce34dfbSvibisreenivasan 21593ce34dfbSvibisreenivasanint main(void) 21603ce34dfbSvibisreenivasan{ 21613ce34dfbSvibisreenivasan int len, fd; 21623ce34dfbSvibisreenivasan len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK); 21633ce34dfbSvibisreenivasan splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE); 21643ce34dfbSvibisreenivasan return 0; 21653ce34dfbSvibisreenivasan} 21663ce34dfbSvibisreenivasanEOF 216752166aa0SJuan Quintelaif compile_prog "" "" ; then 21683ce34dfbSvibisreenivasan splice=yes 21693ce34dfbSvibisreenivasanfi 21703ce34dfbSvibisreenivasan 2171dcc38d1cSMarcelo Tosatti########################################## 2172dcc38d1cSMarcelo Tosatti# signalfd probe 2173dcc38d1cSMarcelo Tosattisignalfd="no" 2174dcc38d1cSMarcelo Tosatticat > $TMPC << EOF 2175dcc38d1cSMarcelo Tosatti#define _GNU_SOURCE 2176dcc38d1cSMarcelo Tosatti#include <unistd.h> 2177dcc38d1cSMarcelo Tosatti#include <sys/syscall.h> 2178dcc38d1cSMarcelo Tosatti#include <signal.h> 2179dcc38d1cSMarcelo Tosattiint main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); } 2180dcc38d1cSMarcelo TosattiEOF 2181dcc38d1cSMarcelo Tosatti 2182dcc38d1cSMarcelo Tosattiif compile_prog "" "" ; then 2183dcc38d1cSMarcelo Tosatti signalfd=yes 2184dcc38d1cSMarcelo Tosattifi 2185dcc38d1cSMarcelo Tosatti 2186c2882b96SRiku Voipio# check if eventfd is supported 2187c2882b96SRiku Voipioeventfd=no 2188c2882b96SRiku Voipiocat > $TMPC << EOF 2189c2882b96SRiku Voipio#include <sys/eventfd.h> 2190c2882b96SRiku Voipio 2191c2882b96SRiku Voipioint main(void) 2192c2882b96SRiku Voipio{ 2193c2882b96SRiku Voipio int efd = eventfd(0, 0); 2194c2882b96SRiku Voipio return 0; 2195c2882b96SRiku Voipio} 2196c2882b96SRiku VoipioEOF 2197c2882b96SRiku Voipioif compile_prog "" "" ; then 2198c2882b96SRiku Voipio eventfd=yes 2199c2882b96SRiku Voipiofi 2200c2882b96SRiku Voipio 2201d0927938SUlrich Hecht# check for fallocate 2202d0927938SUlrich Hechtfallocate=no 2203d0927938SUlrich Hechtcat > $TMPC << EOF 2204d0927938SUlrich Hecht#include <fcntl.h> 2205d0927938SUlrich Hecht 2206d0927938SUlrich Hechtint main(void) 2207d0927938SUlrich Hecht{ 2208d0927938SUlrich Hecht fallocate(0, 0, 0, 0); 2209d0927938SUlrich Hecht return 0; 2210d0927938SUlrich Hecht} 2211d0927938SUlrich HechtEOF 2212be17dc90SMichael S. Tsirkinif compile_prog "$ARCH_CFLAGS" "" ; then 2213d0927938SUlrich Hecht fallocate=yes 2214d0927938SUlrich Hechtfi 2215d0927938SUlrich Hecht 2216c727f47dSPeter Maydell# check for sync_file_range 2217c727f47dSPeter Maydellsync_file_range=no 2218c727f47dSPeter Maydellcat > $TMPC << EOF 2219c727f47dSPeter Maydell#include <fcntl.h> 2220c727f47dSPeter Maydell 2221c727f47dSPeter Maydellint main(void) 2222c727f47dSPeter Maydell{ 2223c727f47dSPeter Maydell sync_file_range(0, 0, 0, 0); 2224c727f47dSPeter Maydell return 0; 2225c727f47dSPeter Maydell} 2226c727f47dSPeter MaydellEOF 2227c727f47dSPeter Maydellif compile_prog "$ARCH_CFLAGS" "" ; then 2228c727f47dSPeter Maydell sync_file_range=yes 2229c727f47dSPeter Maydellfi 2230c727f47dSPeter Maydell 2231dace20dcSPeter Maydell# check for linux/fiemap.h and FS_IOC_FIEMAP 2232dace20dcSPeter Maydellfiemap=no 2233dace20dcSPeter Maydellcat > $TMPC << EOF 2234dace20dcSPeter Maydell#include <sys/ioctl.h> 2235dace20dcSPeter Maydell#include <linux/fs.h> 2236dace20dcSPeter Maydell#include <linux/fiemap.h> 2237dace20dcSPeter Maydell 2238dace20dcSPeter Maydellint main(void) 2239dace20dcSPeter Maydell{ 2240dace20dcSPeter Maydell ioctl(0, FS_IOC_FIEMAP, 0); 2241dace20dcSPeter Maydell return 0; 2242dace20dcSPeter Maydell} 2243dace20dcSPeter MaydellEOF 2244dace20dcSPeter Maydellif compile_prog "$ARCH_CFLAGS" "" ; then 2245dace20dcSPeter Maydell fiemap=yes 2246dace20dcSPeter Maydellfi 2247dace20dcSPeter Maydell 2248d0927938SUlrich Hecht# check for dup3 2249d0927938SUlrich Hechtdup3=no 2250d0927938SUlrich Hechtcat > $TMPC << EOF 2251d0927938SUlrich Hecht#include <unistd.h> 2252d0927938SUlrich Hecht 2253d0927938SUlrich Hechtint main(void) 2254d0927938SUlrich Hecht{ 2255d0927938SUlrich Hecht dup3(0, 0, 0); 2256d0927938SUlrich Hecht return 0; 2257d0927938SUlrich Hecht} 2258d0927938SUlrich HechtEOF 225978f5d726SJan Kiszkaif compile_prog "" "" ; then 2260d0927938SUlrich Hecht dup3=yes 2261d0927938SUlrich Hechtfi 2262d0927938SUlrich Hecht 22633b6edd16SPeter Maydell# check for epoll support 22643b6edd16SPeter Maydellepoll=no 22653b6edd16SPeter Maydellcat > $TMPC << EOF 22663b6edd16SPeter Maydell#include <sys/epoll.h> 22673b6edd16SPeter Maydell 22683b6edd16SPeter Maydellint main(void) 22693b6edd16SPeter Maydell{ 22703b6edd16SPeter Maydell epoll_create(0); 22713b6edd16SPeter Maydell return 0; 22723b6edd16SPeter Maydell} 22733b6edd16SPeter MaydellEOF 22743b6edd16SPeter Maydellif compile_prog "$ARCH_CFLAGS" "" ; then 22753b6edd16SPeter Maydell epoll=yes 22763b6edd16SPeter Maydellfi 22773b6edd16SPeter Maydell 22783b6edd16SPeter Maydell# epoll_create1 and epoll_pwait are later additions 22793b6edd16SPeter Maydell# so we must check separately for their presence 22803b6edd16SPeter Maydellepoll_create1=no 22813b6edd16SPeter Maydellcat > $TMPC << EOF 22823b6edd16SPeter Maydell#include <sys/epoll.h> 22833b6edd16SPeter Maydell 22843b6edd16SPeter Maydellint main(void) 22853b6edd16SPeter Maydell{ 228619e83f6bSPeter Maydell /* Note that we use epoll_create1 as a value, not as 228719e83f6bSPeter Maydell * a function being called. This is necessary so that on 228819e83f6bSPeter Maydell * old SPARC glibc versions where the function was present in 228919e83f6bSPeter Maydell * the library but not declared in the header file we will 229019e83f6bSPeter Maydell * fail the configure check. (Otherwise we will get a compiler 229119e83f6bSPeter Maydell * warning but not an error, and will proceed to fail the 229219e83f6bSPeter Maydell * qemu compile where we compile with -Werror.) 229319e83f6bSPeter Maydell */ 229419e83f6bSPeter Maydell epoll_create1; 22953b6edd16SPeter Maydell return 0; 22963b6edd16SPeter Maydell} 22973b6edd16SPeter MaydellEOF 22983b6edd16SPeter Maydellif compile_prog "$ARCH_CFLAGS" "" ; then 22993b6edd16SPeter Maydell epoll_create1=yes 23003b6edd16SPeter Maydellfi 23013b6edd16SPeter Maydell 23023b6edd16SPeter Maydellepoll_pwait=no 23033b6edd16SPeter Maydellcat > $TMPC << EOF 23043b6edd16SPeter Maydell#include <sys/epoll.h> 23053b6edd16SPeter Maydell 23063b6edd16SPeter Maydellint main(void) 23073b6edd16SPeter Maydell{ 23083b6edd16SPeter Maydell epoll_pwait(0, 0, 0, 0, 0); 23093b6edd16SPeter Maydell return 0; 23103b6edd16SPeter Maydell} 23113b6edd16SPeter MaydellEOF 23123b6edd16SPeter Maydellif compile_prog "$ARCH_CFLAGS" "" ; then 23133b6edd16SPeter Maydell epoll_pwait=yes 23143b6edd16SPeter Maydellfi 23153b6edd16SPeter Maydell 2316cc8ae6deSpbrook# Check if tools are available to build documentation. 2317a25dba17SJuan Quintelaif test "$docs" != "no" ; then 231801668d98SStefan Weil if has makeinfo && has pod2man; then 2319a25dba17SJuan Quintela docs=yes 232083a3ab8bSJuan Quintela else 2321a25dba17SJuan Quintela if test "$docs" = "yes" ; then 2322a25dba17SJuan Quintela feature_not_found "docs" 232383a3ab8bSJuan Quintela fi 2324a25dba17SJuan Quintela docs=no 232583a3ab8bSJuan Quintela fi 2326cc8ae6deSpbrookfi 2327cc8ae6deSpbrook 2328f514f41cSStefan Weil# Search for bswap_32 function 23296ae9a1f4SJuan Quintelabyteswap_h=no 23306ae9a1f4SJuan Quintelacat > $TMPC << EOF 23316ae9a1f4SJuan Quintela#include <byteswap.h> 23326ae9a1f4SJuan Quintelaint main(void) { return bswap_32(0); } 23336ae9a1f4SJuan QuintelaEOF 233452166aa0SJuan Quintelaif compile_prog "" "" ; then 23356ae9a1f4SJuan Quintela byteswap_h=yes 23366ae9a1f4SJuan Quintelafi 23376ae9a1f4SJuan Quintela 2338f514f41cSStefan Weil# Search for bswap_32 function 23396ae9a1f4SJuan Quintelabswap_h=no 23406ae9a1f4SJuan Quintelacat > $TMPC << EOF 23416ae9a1f4SJuan Quintela#include <sys/endian.h> 23426ae9a1f4SJuan Quintela#include <sys/types.h> 23436ae9a1f4SJuan Quintela#include <machine/bswap.h> 23446ae9a1f4SJuan Quintelaint main(void) { return bswap32(0); } 23456ae9a1f4SJuan QuintelaEOF 234652166aa0SJuan Quintelaif compile_prog "" "" ; then 23476ae9a1f4SJuan Quintela bswap_h=yes 23486ae9a1f4SJuan Quintelafi 23496ae9a1f4SJuan Quintela 2350da93a1fdSaliguori########################################## 2351c589b249SRonnie Sahlberg# Do we have libiscsi 2352c589b249SRonnie Sahlbergif test "$libiscsi" != "no" ; then 2353c589b249SRonnie Sahlberg cat > $TMPC << EOF 2354c589b249SRonnie Sahlberg#include <iscsi/iscsi.h> 2355c589b249SRonnie Sahlbergint main(void) { iscsi_create_context(""); return 0; } 2356c589b249SRonnie SahlbergEOF 2357c589b249SRonnie Sahlberg if compile_prog "-Werror" "-liscsi" ; then 2358c589b249SRonnie Sahlberg libiscsi="yes" 2359c589b249SRonnie Sahlberg LIBS="$LIBS -liscsi" 2360c589b249SRonnie Sahlberg else 2361c589b249SRonnie Sahlberg if test "$libiscsi" = "yes" ; then 2362c589b249SRonnie Sahlberg feature_not_found "libiscsi" 2363c589b249SRonnie Sahlberg fi 2364c589b249SRonnie Sahlberg libiscsi="no" 2365c589b249SRonnie Sahlberg fi 2366c589b249SRonnie Sahlbergfi 2367c589b249SRonnie Sahlberg 2368c589b249SRonnie Sahlberg 2369c589b249SRonnie Sahlberg########################################## 2370da93a1fdSaliguori# Do we need librt 2371da93a1fdSaliguoricat > $TMPC <<EOF 2372da93a1fdSaliguori#include <signal.h> 2373da93a1fdSaliguori#include <time.h> 2374da93a1fdSaliguoriint main(void) { clockid_t id; return clock_gettime(id, NULL); } 2375da93a1fdSaliguoriEOF 2376da93a1fdSaliguori 237752166aa0SJuan Quintelaif compile_prog "" "" ; then 237807ffa4bdSJuan Quintela : 237952166aa0SJuan Quintelaelif compile_prog "" "-lrt" ; then 238007ffa4bdSJuan Quintela LIBS="-lrt $LIBS" 2381da93a1fdSaliguorifi 2382da93a1fdSaliguori 238331ff504dSBlue Swirlif test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \ 2384179cf400SAndreas Färber "$aix" != "yes" -a "$haiku" != "yes" ; then 23856362a53fSJuan Quintela libs_softmmu="-lutil $libs_softmmu" 23866362a53fSJuan Quintelafi 23876362a53fSJuan Quintela 2388de5071c5SBlue Swirl########################################## 2389de5071c5SBlue Swirl# check if the compiler defines offsetof 2390de5071c5SBlue Swirl 2391de5071c5SBlue Swirlneed_offsetof=yes 2392de5071c5SBlue Swirlcat > $TMPC << EOF 2393de5071c5SBlue Swirl#include <stddef.h> 2394de5071c5SBlue Swirlint main(void) { struct s { int f; }; return offsetof(struct s, f); } 2395de5071c5SBlue SwirlEOF 2396de5071c5SBlue Swirlif compile_prog "" "" ; then 2397de5071c5SBlue Swirl need_offsetof=no 2398de5071c5SBlue Swirlfi 2399de5071c5SBlue Swirl 2400cd4ec0b4SGerd Hoffmann# spice probe 2401cd4ec0b4SGerd Hoffmannif test "$spice" != "no" ; then 2402cd4ec0b4SGerd Hoffmann cat > $TMPC << EOF 2403cd4ec0b4SGerd Hoffmann#include <spice.h> 2404cd4ec0b4SGerd Hoffmannint main(void) { spice_server_new(); return 0; } 2405cd4ec0b4SGerd HoffmannEOF 2406710fc4f5SJiri Denemark spice_cflags=$($pkg_config --cflags spice-protocol spice-server 2>/dev/null) 2407710fc4f5SJiri Denemark spice_libs=$($pkg_config --libs spice-protocol spice-server 2>/dev/null) 2408012b80d3SGerd Hoffmann if $pkg_config --atleast-version=0.6.0 spice-server >/dev/null 2>&1 && \ 2409cd4ec0b4SGerd Hoffmann compile_prog "$spice_cflags" "$spice_libs" ; then 2410cd4ec0b4SGerd Hoffmann spice="yes" 2411cd4ec0b4SGerd Hoffmann libs_softmmu="$libs_softmmu $spice_libs" 2412cd4ec0b4SGerd Hoffmann QEMU_CFLAGS="$QEMU_CFLAGS $spice_cflags" 2413cd4ec0b4SGerd Hoffmann else 2414cd4ec0b4SGerd Hoffmann if test "$spice" = "yes" ; then 2415cd4ec0b4SGerd Hoffmann feature_not_found "spice" 2416cd4ec0b4SGerd Hoffmann fi 2417cd4ec0b4SGerd Hoffmann spice="no" 2418cd4ec0b4SGerd Hoffmann fi 2419cd4ec0b4SGerd Hoffmannfi 2420cd4ec0b4SGerd Hoffmann 2421111a38b0SRobert Relyea# check for libcacard for smartcard support 2422111a38b0SRobert Relyeaif test "$smartcard" != "no" ; then 2423111a38b0SRobert Relyea smartcard="yes" 2424111a38b0SRobert Relyea smartcard_cflags="" 2425111a38b0SRobert Relyea # TODO - what's the minimal nss version we support? 2426111a38b0SRobert Relyea if test "$smartcard_nss" != "no"; then 2427111a38b0SRobert Relyea if $pkg_config --atleast-version=3.12.8 nss >/dev/null 2>&1 ; then 2428111a38b0SRobert Relyea smartcard_nss="yes" 2429111a38b0SRobert Relyea smartcard_cflags="-I\$(SRC_PATH)/libcacard" 2430111a38b0SRobert Relyea libcacard_libs=$($pkg_config --libs nss 2>/dev/null) 2431111a38b0SRobert Relyea libcacard_cflags=$($pkg_config --cflags nss 2>/dev/null) 2432111a38b0SRobert Relyea QEMU_CFLAGS="$QEMU_CFLAGS $smartcard_cflags $libcacard_cflags" 2433111a38b0SRobert Relyea LIBS="$libcacard_libs $LIBS" 2434111a38b0SRobert Relyea else 2435111a38b0SRobert Relyea if test "$smartcard_nss" = "yes"; then 2436111a38b0SRobert Relyea feature_not_found "nss" 2437111a38b0SRobert Relyea fi 2438111a38b0SRobert Relyea smartcard_nss="no" 2439111a38b0SRobert Relyea fi 2440111a38b0SRobert Relyea fi 2441111a38b0SRobert Relyeafi 2442111a38b0SRobert Relyeaif test "$smartcard" = "no" ; then 2443111a38b0SRobert Relyea smartcard_nss="no" 2444111a38b0SRobert Relyeafi 2445111a38b0SRobert Relyea 244669354a83SHans de Goede# check for usbredirparser for usb network redirection support 244769354a83SHans de Goedeif test "$usb_redir" != "no" ; then 244869354a83SHans de Goede if $pkg_config libusbredirparser >/dev/null 2>&1 ; then 244969354a83SHans de Goede usb_redir="yes" 245069354a83SHans de Goede usb_redir_cflags=$($pkg_config --cflags libusbredirparser 2>/dev/null) 245169354a83SHans de Goede usb_redir_libs=$($pkg_config --libs libusbredirparser 2>/dev/null) 245269354a83SHans de Goede QEMU_CFLAGS="$QEMU_CFLAGS $usb_redir_cflags" 245369354a83SHans de Goede LIBS="$LIBS $usb_redir_libs" 245469354a83SHans de Goede else 245569354a83SHans de Goede if test "$usb_redir" = "yes"; then 245669354a83SHans de Goede feature_not_found "usb-redir" 245769354a83SHans de Goede fi 245869354a83SHans de Goede usb_redir="no" 245969354a83SHans de Goede fi 246069354a83SHans de Goedefi 246169354a83SHans de Goede 2462cd4ec0b4SGerd Hoffmann########################################## 2463cd4ec0b4SGerd Hoffmann 2464747bbdf7SBlue Swirl########################################## 24655f6b9e8fSBlue Swirl# check if we have fdatasync 24665f6b9e8fSBlue Swirl 24675f6b9e8fSBlue Swirlfdatasync=no 24685f6b9e8fSBlue Swirlcat > $TMPC << EOF 24695f6b9e8fSBlue Swirl#include <unistd.h> 2470d1722a27SAlexandre Raymondint main(void) { 2471d1722a27SAlexandre Raymond#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0 2472d1722a27SAlexandre Raymondreturn fdatasync(0); 2473d1722a27SAlexandre Raymond#else 2474d1722a27SAlexandre Raymond#abort Not supported 2475d1722a27SAlexandre Raymond#endif 2476d1722a27SAlexandre Raymond} 24775f6b9e8fSBlue SwirlEOF 24785f6b9e8fSBlue Swirlif compile_prog "" "" ; then 24795f6b9e8fSBlue Swirl fdatasync=yes 24805f6b9e8fSBlue Swirlfi 24815f6b9e8fSBlue Swirl 248294a420b1SStefan Hajnoczi########################################## 2483e78815a5SAndreas Färber# check if we have madvise 2484e78815a5SAndreas Färber 2485e78815a5SAndreas Färbermadvise=no 2486e78815a5SAndreas Färbercat > $TMPC << EOF 2487e78815a5SAndreas Färber#include <sys/types.h> 2488e78815a5SAndreas Färber#include <sys/mman.h> 2489832ce9c2SScott Wood#include <stddef.h> 2490e78815a5SAndreas Färberint main(void) { return madvise(NULL, 0, MADV_DONTNEED); } 2491e78815a5SAndreas FärberEOF 2492e78815a5SAndreas Färberif compile_prog "" "" ; then 2493e78815a5SAndreas Färber madvise=yes 2494e78815a5SAndreas Färberfi 2495e78815a5SAndreas Färber 2496e78815a5SAndreas Färber########################################## 2497e78815a5SAndreas Färber# check if we have posix_madvise 2498e78815a5SAndreas Färber 2499e78815a5SAndreas Färberposix_madvise=no 2500e78815a5SAndreas Färbercat > $TMPC << EOF 2501e78815a5SAndreas Färber#include <sys/mman.h> 2502832ce9c2SScott Wood#include <stddef.h> 2503e78815a5SAndreas Färberint main(void) { return posix_madvise(NULL, 0, POSIX_MADV_DONTNEED); } 2504e78815a5SAndreas FärberEOF 2505e78815a5SAndreas Färberif compile_prog "" "" ; then 2506e78815a5SAndreas Färber posix_madvise=yes 2507e78815a5SAndreas Färberfi 2508e78815a5SAndreas Färber 2509e78815a5SAndreas Färber########################################## 251094a420b1SStefan Hajnoczi# check if trace backend exists 251194a420b1SStefan Hajnoczi 25124c3b5a48SBlue Swirlsh "$source_path/scripts/tracetool" "--$trace_backend" --check-backend > /dev/null 2> /dev/null 251394a420b1SStefan Hajnocziif test "$?" -ne 0 ; then 251494a420b1SStefan Hajnoczi echo 251594a420b1SStefan Hajnoczi echo "Error: invalid trace backend" 251694a420b1SStefan Hajnoczi echo "Please choose a supported trace backend." 251794a420b1SStefan Hajnoczi echo 251894a420b1SStefan Hajnoczi exit 1 251994a420b1SStefan Hajnoczifi 252094a420b1SStefan Hajnoczi 25217e24e92aSStefan Hajnoczi########################################## 25227e24e92aSStefan Hajnoczi# For 'ust' backend, test if ust headers are present 25237e24e92aSStefan Hajnocziif test "$trace_backend" = "ust"; then 25247e24e92aSStefan Hajnoczi cat > $TMPC << EOF 25257e24e92aSStefan Hajnoczi#include <ust/tracepoint.h> 25267e24e92aSStefan Hajnoczi#include <ust/marker.h> 25277e24e92aSStefan Hajnocziint main(void) { return 0; } 25287e24e92aSStefan HajnocziEOF 25297e24e92aSStefan Hajnoczi if compile_prog "" "" ; then 25307e24e92aSStefan Hajnoczi LIBS="-lust $LIBS" 25317e24e92aSStefan Hajnoczi else 25327e24e92aSStefan Hajnoczi echo 25337e24e92aSStefan Hajnoczi echo "Error: Trace backend 'ust' missing libust header files" 25347e24e92aSStefan Hajnoczi echo 25357e24e92aSStefan Hajnoczi exit 1 25367e24e92aSStefan Hajnoczi fi 25377e24e92aSStefan Hajnoczifi 2538b3d08c02SDaniel P. Berrange 2539b3d08c02SDaniel P. Berrange########################################## 2540b3d08c02SDaniel P. Berrange# For 'dtrace' backend, test if 'dtrace' command is present 2541b3d08c02SDaniel P. Berrangeif test "$trace_backend" = "dtrace"; then 2542b3d08c02SDaniel P. Berrange if ! has 'dtrace' ; then 2543b3d08c02SDaniel P. Berrange echo 2544b3d08c02SDaniel P. Berrange echo "Error: dtrace command is not found in PATH $PATH" 2545b3d08c02SDaniel P. Berrange echo 2546b3d08c02SDaniel P. Berrange exit 1 2547b3d08c02SDaniel P. Berrange fi 2548c276b17dSDaniel P. Berrange trace_backend_stap="no" 2549c276b17dSDaniel P. Berrange if has 'stap' ; then 2550c276b17dSDaniel P. Berrange trace_backend_stap="yes" 2551c276b17dSDaniel P. Berrange fi 2552b3d08c02SDaniel P. Berrangefi 2553b3d08c02SDaniel P. Berrange 25547e24e92aSStefan Hajnoczi########################################## 2555023367e6SWolfgang Mauerer# __sync_fetch_and_and requires at least -march=i486. Many toolchains 2556023367e6SWolfgang Mauerer# use i686 as default anyway, but for those that don't, an explicit 2557023367e6SWolfgang Mauerer# specification is necessary 25581ba16968SStefan Weilif test "$vhost_net" = "yes" && test "$cpu" = "i386"; then 2559023367e6SWolfgang Mauerer cat > $TMPC << EOF 2560023367e6SWolfgang Mauererint sfaa(unsigned *ptr) 2561023367e6SWolfgang Mauerer{ 2562023367e6SWolfgang Mauerer return __sync_fetch_and_and(ptr, 0); 2563023367e6SWolfgang Mauerer} 2564023367e6SWolfgang Mauerer 2565023367e6SWolfgang Mauererint main(int argc, char **argv) 2566023367e6SWolfgang Mauerer{ 2567023367e6SWolfgang Mauerer int val = 42; 2568023367e6SWolfgang Mauerer sfaa(&val); 2569023367e6SWolfgang Mauerer return val; 2570023367e6SWolfgang Mauerer} 2571023367e6SWolfgang MauererEOF 2572023367e6SWolfgang Mauerer if ! compile_prog "" "" ; then 2573023367e6SWolfgang Mauerer CFLAGS+="-march=i486" 2574023367e6SWolfgang Mauerer fi 2575023367e6SWolfgang Mauererfi 2576023367e6SWolfgang Mauerer 2577023367e6SWolfgang Mauerer########################################## 2578d0e2fce5SAneesh Kumar K.V# check if we have makecontext 2579d0e2fce5SAneesh Kumar K.V 2580d0e2fce5SAneesh Kumar K.Vucontext_coroutine=no 2581d0e2fce5SAneesh Kumar K.Vif test "$darwin" != "yes"; then 2582d0e2fce5SAneesh Kumar K.V cat > $TMPC << EOF 2583d0e2fce5SAneesh Kumar K.V#include <ucontext.h> 2584d0e2fce5SAneesh Kumar K.Vint main(void) { makecontext(0, 0, 0); } 2585d0e2fce5SAneesh Kumar K.VEOF 2586d0e2fce5SAneesh Kumar K.V if compile_prog "" "" ; then 2587d0e2fce5SAneesh Kumar K.V ucontext_coroutine=yes 2588d0e2fce5SAneesh Kumar K.V fi 2589d0e2fce5SAneesh Kumar K.Vfi 2590d0e2fce5SAneesh Kumar K.V 2591d0e2fce5SAneesh Kumar K.V########################################## 2592d2042378SAneesh Kumar K.V# check if we have open_by_handle_at 2593d2042378SAneesh Kumar K.V 2594d2042378SAneesh Kumar K.Vopen_by_hande_at=no 2595d2042378SAneesh Kumar K.Vcat > $TMPC << EOF 2596d2042378SAneesh Kumar K.V#include <fcntl.h> 259715329e83SAneesh Kumar K.Vint main(void) { struct file_handle fh; open_by_handle_at(0, &fh, 0); } 2598d2042378SAneesh Kumar K.VEOF 2599d2042378SAneesh Kumar K.Vif compile_prog "" "" ; then 2600d2042378SAneesh Kumar K.V open_by_handle_at=yes 2601d2042378SAneesh Kumar K.Vfi 2602d2042378SAneesh Kumar K.V 2603e06a765eSHarsh Prateek Bora######################################## 2604e06a765eSHarsh Prateek Bora# check if we have linux/magic.h 2605e06a765eSHarsh Prateek Bora 2606e06a765eSHarsh Prateek Boralinux_magic_h=no 2607e06a765eSHarsh Prateek Boracat > $TMPC << EOF 2608e06a765eSHarsh Prateek Bora#include <linux/magic.h> 2609e06a765eSHarsh Prateek Boraint main(void) { 2610e06a765eSHarsh Prateek Bora} 2611e06a765eSHarsh Prateek BoraEOF 2612e06a765eSHarsh Prateek Boraif compile_prog "" "" ; then 2613e06a765eSHarsh Prateek Bora linux_magic_h=yes 2614e06a765eSHarsh Prateek Borafi 2615e06a765eSHarsh Prateek Bora 2616d2042378SAneesh Kumar K.V########################################## 2617e86ecd4bSJuan Quintela# End of CC checks 2618e86ecd4bSJuan Quintela# After here, no more $cc or $ld runs 2619e86ecd4bSJuan Quintela 2620e86ecd4bSJuan Quintelaif test "$debug" = "no" ; then 26211156c669SJuan Quintela CFLAGS="-O2 $CFLAGS" 2622e86ecd4bSJuan Quintelafi 2623a316e378SJuan Quintela 2624e86ecd4bSJuan Quintela# Consult white-list to determine whether to enable werror 2625e86ecd4bSJuan Quintela# by default. Only enable by default for git builds 2626e86ecd4bSJuan Quintelaz_version=`cut -f3 -d. $source_path/VERSION` 262720ff6c80SAnthony Liguori 262820ff6c80SAnthony Liguoriif test -z "$werror" ; then 2629e86ecd4bSJuan Quintela if test "$z_version" = "50" -a \ 2630e86ecd4bSJuan Quintela "$linux" = "yes" ; then 2631e86ecd4bSJuan Quintela werror="yes" 2632e86ecd4bSJuan Quintela else 2633e86ecd4bSJuan Quintela werror="no" 2634e86ecd4bSJuan Quintela fi 2635e86ecd4bSJuan Quintelafi 2636e86ecd4bSJuan Quintela 263720ff6c80SAnthony Liguori# Disable zero malloc errors for official releases unless explicitly told to 263820ff6c80SAnthony Liguori# enable/disable 263920ff6c80SAnthony Liguoriif test -z "$zero_malloc" ; then 264020ff6c80SAnthony Liguori if test "$z_version" = "50" ; then 264120ff6c80SAnthony Liguori zero_malloc="no" 264220ff6c80SAnthony Liguori else 264320ff6c80SAnthony Liguori zero_malloc="yes" 264420ff6c80SAnthony Liguori fi 264520ff6c80SAnthony Liguorifi 264620ff6c80SAnthony Liguori 2647e86ecd4bSJuan Quintelaif test "$werror" = "yes" ; then 2648a558ee17SJuan Quintela QEMU_CFLAGS="-Werror $QEMU_CFLAGS" 2649e86ecd4bSJuan Quintelafi 2650e86ecd4bSJuan Quintela 2651e86ecd4bSJuan Quintelaif test "$solaris" = "no" ; then 2652e86ecd4bSJuan Quintela if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then 26531156c669SJuan Quintela LDFLAGS="-Wl,--warn-common $LDFLAGS" 2654e86ecd4bSJuan Quintela fi 2655e86ecd4bSJuan Quintelafi 2656e86ecd4bSJuan Quintela 2657952afb71SBlue Swirl# Use ASLR, no-SEH and DEP if available 2658952afb71SBlue Swirlif test "$mingw32" = "yes" ; then 2659952afb71SBlue Swirl for flag in --dynamicbase --no-seh --nxcompat; do 2660952afb71SBlue Swirl if $ld --help 2>/dev/null | grep ".$flag" >/dev/null 2>/dev/null ; then 2661952afb71SBlue Swirl LDFLAGS="-Wl,$flag $LDFLAGS" 2662952afb71SBlue Swirl fi 2663952afb71SBlue Swirl done 2664952afb71SBlue Swirlfi 2665952afb71SBlue Swirl 2666190e9c59SPaolo Bonziniconfdir=$sysconfdir$confsuffix 26675a67135aSbellard 2668ca35f780SPaolo Bonzinitools= 2669ca35f780SPaolo Bonziniif test "$softmmu" = yes ; then 2670ca35f780SPaolo Bonzini tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools" 2671ca35f780SPaolo Bonzini if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then 2672ca35f780SPaolo Bonzini tools="qemu-nbd\$(EXESUF) $tools" 2673d138cee9SMichael Roth if [ "$guest_agent" = "yes" ]; then 267448ff7a62SMichael Roth tools="qemu-ga\$(EXESUF) $tools" 2675d138cee9SMichael Roth fi 2676ca35f780SPaolo Bonzini if [ "$check_utests" = "yes" ]; then 2677ca35f780SPaolo Bonzini tools="check-qint check-qstring check-qdict check-qlist $tools" 2678ca35f780SPaolo Bonzini tools="check-qfloat check-qjson $tools" 2679ca35f780SPaolo Bonzini fi 2680ca35f780SPaolo Bonzini fi 2681ca35f780SPaolo Bonzinifi 2682ca35f780SPaolo Bonzini 2683ca35f780SPaolo Bonzini# Mac OS X ships with a broken assembler 2684ca35f780SPaolo Bonziniroms= 2685ca35f780SPaolo Bonziniif test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \ 2686ca35f780SPaolo Bonzini "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \ 2687ca35f780SPaolo Bonzini "$softmmu" = yes ; then 2688ca35f780SPaolo Bonzini roms="optionrom" 2689ca35f780SPaolo Bonzinifi 2690d0384d1dSAndreas Färberif test "$cpu" = "ppc64" -a "$targetos" != "Darwin" ; then 269139ac8455SDavid Gibson roms="$roms spapr-rtas" 269239ac8455SDavid Gibsonfi 2693ca35f780SPaolo Bonzini 26947d13299dSbellardecho "Install prefix $prefix" 2695f2b9e1e3SPaolo Bonziniecho "BIOS directory `eval echo $datadir`" 2696f2b9e1e3SPaolo Bonziniecho "binary directory `eval echo $bindir`" 26973aa5d2beSAlon Levyecho "library directory `eval echo $libdir`" 26980f94d6daSAlon Levyecho "include directory `eval echo $includedir`" 26991c0fd160SAurelien Jarnoecho "config directory `eval echo $sysconfdir`" 270011d9f695Sbellardif test "$mingw32" = "no" ; then 2701f2b9e1e3SPaolo Bonziniecho "Manual directory `eval echo $mandir`" 270243ce4dfeSbellardecho "ELF interp prefix $interp_prefix" 270311d9f695Sbellardfi 27045a67135aSbellardecho "Source path $source_path" 27057d13299dSbellardecho "C compiler $cc" 270683469015Sbellardecho "Host C compiler $host_cc" 27070c439cbfSJuan Quintelaecho "CFLAGS $CFLAGS" 2708a558ee17SJuan Quintelaecho "QEMU_CFLAGS $QEMU_CFLAGS" 27090c439cbfSJuan Quintelaecho "LDFLAGS $LDFLAGS" 27107d13299dSbellardecho "make $make" 27116a882643Spbrookecho "install $install" 2712c886edfbSBlue Swirlecho "python $python" 2713e2d8830eSBradif test "$slirp" = "yes" ; then 2714e2d8830eSBrad echo "smbd $smbd" 2715e2d8830eSBradfi 2716a98fd896Sbellardecho "host CPU $cpu" 2717de83cd02Sbellardecho "host big endian $bigendian" 271897a847bcSbellardecho "target list $target_list" 2719ade25b0dSaurel32echo "tcg debug enabled $debug_tcg" 2720b4475aa2SLuiz Capitulinoecho "Mon debug enabled $debug_mon" 27217d13299dSbellardecho "gprof enabled $gprof" 272203b4fe7dSaliguoriecho "sparse enabled $sparse" 27231625af87Saliguoriecho "strip binaries $strip_opt" 272405c2a3e7Sbellardecho "profiler $profiler" 272543ce4dfeSbellardecho "static build $static" 272685aa5189Sbellardecho "-Werror enabled $werror" 27275b0753e0Sbellardif test "$darwin" = "yes" ; then 27285b0753e0Sbellard echo "Cocoa support $cocoa" 27295b0753e0Sbellardfi 273097a847bcSbellardecho "SDL support $sdl" 27314d3b6f6eSbalrogecho "curses support $curses" 2732769ce76dSAlexander Grafecho "curl support $curl" 27335495ed11SLuiz Capitulinoecho "check support $check_utests" 273467b915a5Sbellardecho "mingw32 support $mingw32" 27350c58ac1cSmalcecho "Audio drivers $audio_drv_list" 27360c58ac1cSmalcecho "Extra audio cards $audio_card_list" 2737eb852011SMarkus Armbrusterecho "Block whitelist $block_drv_whitelist" 27388ff9cbf7Smalcecho "Mixer emulation $mixemu" 2739821601eaSJes Sorensenecho "VNC support $vnc" 2740821601eaSJes Sorensenif test "$vnc" = "yes" ; then 27418d5d2d4cSths echo "VNC TLS support $vnc_tls" 27422f9606b3Saliguori echo "VNC SASL support $vnc_sasl" 27432f6f5c7aSCorentin Chary echo "VNC JPEG support $vnc_jpeg" 2744efe556adSCorentin Chary echo "VNC PNG support $vnc_png" 2745bd023f95SCorentin Chary echo "VNC thread $vnc_thread" 2746821601eaSJes Sorensenfi 27473142255cSblueswir1if test -n "$sparc_cpu"; then 27483142255cSblueswir1 echo "Target Sparc Arch $sparc_cpu" 27493142255cSblueswir1fi 2750e37630caSaliguoriecho "xen support $xen" 27512e4d9fb1Saurel32echo "brlapi support $brlapi" 2752a20a6f46SJuan Quintelaecho "bluez support $bluez" 2753a25dba17SJuan Quintelaecho "Documentation $docs" 2754c5937220Spbrook[ ! -z "$uname_release" ] && \ 2755c5937220Spbrookecho "uname -r $uname_release" 2756bd0c5661Spbrookecho "NPTL support $nptl" 2757379f6698SPaul Brookecho "GUEST_BASE $guest_base" 275834005a00SKirill A. Shutemovecho "PIE user targets $user_pie" 27598a16d273Sthsecho "vde support $vde" 27605c6c3a6cSChristoph Hellwigecho "Linux AIO support $linux_aio" 2761758e8e38SVenkateswararao Jujjuri (JV)echo "ATTR/XATTR support $attr" 276277755340Sthsecho "Install blobs $blobs" 2763b31a0277SJuan Quintelaecho "KVM support $kvm" 2764*9195b2c2SStefan Weilecho "TCG interpreter $tcg_interpreter" 2765f652e6afSaurel32echo "fdt support $fdt" 2766ceb42de8Saliguoriecho "preadv support $preadv" 27675f6b9e8fSBlue Swirlecho "fdatasync $fdatasync" 2768e78815a5SAndreas Färberecho "madvise $madvise" 2769e78815a5SAndreas Färberecho "posix_madvise $posix_madvise" 2770ee682d27SStefan Weilecho "uuid support $uuid" 2771d5970055SMichael S. Tsirkinecho "vhost-net support $vhost_net" 277294a420b1SStefan Hajnocziecho "Trace backend $trace_backend" 27739410b56cSPrerna Saxenaecho "Trace output file $trace_file-<pid>" 2774cd4ec0b4SGerd Hoffmannecho "spice support $spice" 2775f27aaf4bSChristian Brunnerecho "rbd support $rbd" 2776dce512deSChristoph Hellwigecho "xfsctl support $xfs" 2777111a38b0SRobert Relyeaecho "nss used $smartcard_nss" 277869354a83SHans de Goedeecho "usb net redir $usb_redir" 277920ff075bSMichael Walleecho "OpenGL support $opengl" 2780c589b249SRonnie Sahlbergecho "libiscsi support $libiscsi" 2781d138cee9SMichael Rothecho "build guest agent $guest_agent" 278267b915a5Sbellard 27831ba16968SStefan Weilif test "$sdl_too_old" = "yes"; then 278424b55b96Sbellardecho "-> Your SDL version is too old - please upgrade to have SDL support" 2785e8cd23deSbellardfi 278697a847bcSbellard 278798ec69acSJuan Quintelaconfig_host_mak="config-host.mak" 27884bf6b55bSJuan Quintelaconfig_host_ld="config-host.ld" 278997a847bcSbellard 279098ec69acSJuan Quintelaecho "# Automatically generated by configure - do not modify" > $config_host_mak 279198ec69acSJuan Quintelaprintf "# Configured with:" >> $config_host_mak 279298ec69acSJuan Quintelaprintf " '%s'" "$0" "$@" >> $config_host_mak 279398ec69acSJuan Quintelaecho >> $config_host_mak 279498ec69acSJuan Quintela 2795e6c3b0f7SPaolo Bonziniecho all: >> $config_host_mak 279699d7cc75SPaolo Bonziniecho "prefix=$prefix" >> $config_host_mak 279799d7cc75SPaolo Bonziniecho "bindir=$bindir" >> $config_host_mak 27983aa5d2beSAlon Levyecho "libdir=$libdir" >> $config_host_mak 27990f94d6daSAlon Levyecho "includedir=$includedir" >> $config_host_mak 280099d7cc75SPaolo Bonziniecho "mandir=$mandir" >> $config_host_mak 280199d7cc75SPaolo Bonziniecho "datadir=$datadir" >> $config_host_mak 280299d7cc75SPaolo Bonziniecho "sysconfdir=$sysconfdir" >> $config_host_mak 280399d7cc75SPaolo Bonziniecho "docdir=$docdir" >> $config_host_mak 28041dabe05cSPaolo Bonziniecho "confdir=$confdir" >> $config_host_mak 2805804edf29SJuan Quintela 28062408a527Saurel32case "$cpu" in 2807d2fbca94SGuan Xuetao i386|x86_64|alpha|cris|hppa|ia64|lm32|m68k|microblaze|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64|unicore32) 2808e0da9dd3SJuan Quintela ARCH=$cpu 28092408a527Saurel32 ;; 2810a302c32dSLaurent Desnogues armv4b|armv4l) 281116dbd14fSJuan Quintela ARCH=arm 28122408a527Saurel32 ;; 2813*9195b2c2SStefan Weil *) 2814*9195b2c2SStefan Weil if test "$tcg_interpreter" = "yes" ; then 2815*9195b2c2SStefan Weil echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)" 2816*9195b2c2SStefan Weil ARCH=tci 2817*9195b2c2SStefan Weil else 2818*9195b2c2SStefan Weil echo "Unsupported CPU = $cpu, try --enable-tcg-interpreter" 2819*9195b2c2SStefan Weil exit 1 2820*9195b2c2SStefan Weil fi 2821*9195b2c2SStefan Weil ;; 28222408a527Saurel32esac 282398ec69acSJuan Quintelaecho "ARCH=$ARCH" >> $config_host_mak 2824f8393946Saurel32if test "$debug_tcg" = "yes" ; then 28252358a494SJuan Quintela echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak 2826f8393946Saurel32fi 2827b4475aa2SLuiz Capitulinoif test "$debug_mon" = "yes" ; then 2828b4475aa2SLuiz Capitulino echo "CONFIG_DEBUG_MONITOR=y" >> $config_host_mak 2829b4475aa2SLuiz Capitulinofi 2830f3d08ee6SPaul Brookif test "$debug" = "yes" ; then 28312358a494SJuan Quintela echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak 2832f3d08ee6SPaul Brookfi 28331625af87Saliguoriif test "$strip_opt" = "yes" ; then 283452ba784dSHollis Blanchard echo "STRIP=${strip}" >> $config_host_mak 28351625af87Saliguorifi 28367d13299dSbellardif test "$bigendian" = "yes" ; then 2837e2542fe2SJuan Quintela echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak 283897a847bcSbellardfi 28392358a494SJuan Quintelaecho "HOST_LONG_BITS=$hostlongbits" >> $config_host_mak 284067b915a5Sbellardif test "$mingw32" = "yes" ; then 284198ec69acSJuan Quintela echo "CONFIG_WIN32=y" >> $config_host_mak 28429fe6de94SBlue Swirl rc_version=`cat $source_path/VERSION` 28439fe6de94SBlue Swirl version_major=${rc_version%%.*} 28449fe6de94SBlue Swirl rc_version=${rc_version#*.} 28459fe6de94SBlue Swirl version_minor=${rc_version%%.*} 28469fe6de94SBlue Swirl rc_version=${rc_version#*.} 28479fe6de94SBlue Swirl version_subminor=${rc_version%%.*} 28489fe6de94SBlue Swirl version_micro=0 28499fe6de94SBlue Swirl echo "CONFIG_FILEVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak 28509fe6de94SBlue Swirl echo "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak 2851210fa556Spbrookelse 285235f4df27SJuan Quintela echo "CONFIG_POSIX=y" >> $config_host_mak 2853210fa556Spbrookfi 2854128ab2ffSblueswir1 2855dffcb71cSMark McLoughlinif test "$linux" = "yes" ; then 2856dffcb71cSMark McLoughlin echo "CONFIG_LINUX=y" >> $config_host_mak 2857dffcb71cSMark McLoughlinfi 2858dffcb71cSMark McLoughlin 285983fb7adfSbellardif test "$darwin" = "yes" ; then 286098ec69acSJuan Quintela echo "CONFIG_DARWIN=y" >> $config_host_mak 286183fb7adfSbellardfi 2862b29fe3edSmalc 2863b29fe3edSmalcif test "$aix" = "yes" ; then 286498ec69acSJuan Quintela echo "CONFIG_AIX=y" >> $config_host_mak 2865b29fe3edSmalcfi 2866b29fe3edSmalc 2867ec530c81Sbellardif test "$solaris" = "yes" ; then 286898ec69acSJuan Quintela echo "CONFIG_SOLARIS=y" >> $config_host_mak 28692358a494SJuan Quintela echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak 28700475a5caSths if test "$needs_libsunmath" = "yes" ; then 287175b5a697SJuan Quintela echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak 28720475a5caSths fi 2873ec530c81Sbellardfi 2874179cf400SAndreas Färberif test "$haiku" = "yes" ; then 2875179cf400SAndreas Färber echo "CONFIG_HAIKU=y" >> $config_host_mak 2876179cf400SAndreas Färberfi 287797a847bcSbellardif test "$static" = "yes" ; then 287898ec69acSJuan Quintela echo "CONFIG_STATIC=y" >> $config_host_mak 287997a847bcSbellardfi 28801ba16968SStefan Weilif test "$profiler" = "yes" ; then 28812358a494SJuan Quintela echo "CONFIG_PROFILER=y" >> $config_host_mak 288205c2a3e7Sbellardfi 2883c20709aaSbellardif test "$slirp" = "yes" ; then 288498ec69acSJuan Quintela echo "CONFIG_SLIRP=y" >> $config_host_mak 2885e2d8830eSBrad echo "CONFIG_SMBD_COMMAND=\"$smbd\"" >> $config_host_mak 2886f9728943SPaolo Bonzini QEMU_INCLUDES="-I\$(SRC_PATH)/slirp $QEMU_INCLUDES" 2887c20709aaSbellardfi 28888a16d273Sthsif test "$vde" = "yes" ; then 288998ec69acSJuan Quintela echo "CONFIG_VDE=y" >> $config_host_mak 28908a16d273Sthsfi 28910c58ac1cSmalcfor card in $audio_card_list; do 2892f6e5889eSpbrook def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'` 289398ec69acSJuan Quintela echo "$def=y" >> $config_host_mak 28940c58ac1cSmalcdone 28952358a494SJuan Quintelaecho "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak 28960c58ac1cSmalcfor drv in $audio_drv_list; do 2897f6e5889eSpbrook def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'` 289898ec69acSJuan Quintela echo "$def=y" >> $config_host_mak 2899923e4521Smalc if test "$drv" = "fmod"; then 29007aac6cb1SJuan Quintela echo "FMOD_CFLAGS=-I$fmod_inc" >> $config_host_mak 2901fb065187Sbellard fi 29020c58ac1cSmalcdone 290367f86e8eSJuan Quintelaif test "$audio_pt_int" = "yes" ; then 290467f86e8eSJuan Quintela echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak 290567f86e8eSJuan Quintelafi 2906d5631638Smalcif test "$audio_win_int" = "yes" ; then 2907d5631638Smalc echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak 2908d5631638Smalcfi 2909eb852011SMarkus Armbrusterecho "CONFIG_BDRV_WHITELIST=$block_drv_whitelist" >> $config_host_mak 29108ff9cbf7Smalcif test "$mixemu" = "yes" ; then 291198ec69acSJuan Quintela echo "CONFIG_MIXEMU=y" >> $config_host_mak 29128ff9cbf7Smalcfi 2913821601eaSJes Sorensenif test "$vnc" = "yes" ; then 2914821601eaSJes Sorensen echo "CONFIG_VNC=y" >> $config_host_mak 2915821601eaSJes Sorensenfi 29168d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 291798ec69acSJuan Quintela echo "CONFIG_VNC_TLS=y" >> $config_host_mak 2918525061bfSJuan Quintela echo "VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_host_mak 29198d5d2d4cSthsfi 29202f9606b3Saliguoriif test "$vnc_sasl" = "yes" ; then 292198ec69acSJuan Quintela echo "CONFIG_VNC_SASL=y" >> $config_host_mak 292260ddf533SJuan Quintela echo "VNC_SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak 29232f9606b3Saliguorifi 2924821601eaSJes Sorensenif test "$vnc_jpeg" = "yes" ; then 29252f6f5c7aSCorentin Chary echo "CONFIG_VNC_JPEG=y" >> $config_host_mak 29262f6f5c7aSCorentin Chary echo "VNC_JPEG_CFLAGS=$vnc_jpeg_cflags" >> $config_host_mak 29272f6f5c7aSCorentin Charyfi 2928821601eaSJes Sorensenif test "$vnc_png" = "yes" ; then 2929efe556adSCorentin Chary echo "CONFIG_VNC_PNG=y" >> $config_host_mak 2930efe556adSCorentin Chary echo "VNC_PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak 2931efe556adSCorentin Charyfi 2932821601eaSJes Sorensenif test "$vnc_thread" = "yes" ; then 2933bd023f95SCorentin Chary echo "CONFIG_VNC_THREAD=y" >> $config_host_mak 2934bd023f95SCorentin Charyfi 293576655d6dSaliguoriif test "$fnmatch" = "yes" ; then 29362358a494SJuan Quintela echo "CONFIG_FNMATCH=y" >> $config_host_mak 293776655d6dSaliguorifi 2938ee682d27SStefan Weilif test "$uuid" = "yes" ; then 2939ee682d27SStefan Weil echo "CONFIG_UUID=y" >> $config_host_mak 2940ee682d27SStefan Weilfi 2941dce512deSChristoph Hellwigif test "$xfs" = "yes" ; then 2942dce512deSChristoph Hellwig echo "CONFIG_XFS=y" >> $config_host_mak 2943dce512deSChristoph Hellwigfi 2944b1a550a0Spbrookqemu_version=`head $source_path/VERSION` 294598ec69acSJuan Quintelaecho "VERSION=$qemu_version" >>$config_host_mak 29462358a494SJuan Quintelaecho "PKGVERSION=$pkgversion" >>$config_host_mak 294798ec69acSJuan Quintelaecho "SRC_PATH=$source_path" >> $config_host_mak 294898ec69acSJuan Quintelaecho "TARGET_DIRS=$target_list" >> $config_host_mak 2949a25dba17SJuan Quintelaif [ "$docs" = "yes" ] ; then 295098ec69acSJuan Quintela echo "BUILD_DOCS=yes" >> $config_host_mak 2951cc8ae6deSpbrookfi 29521ac88f28SJuan Quintelaif test "$sdl" = "yes" ; then 295398ec69acSJuan Quintela echo "CONFIG_SDL=y" >> $config_host_mak 29548ad3a7ddSJuan Quintela echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak 295549ecc3faSbellardfi 295649ecc3faSbellardif test "$cocoa" = "yes" ; then 295798ec69acSJuan Quintela echo "CONFIG_COCOA=y" >> $config_host_mak 295849ecc3faSbellardfi 29594d3b6f6eSbalrogif test "$curses" = "yes" ; then 296098ec69acSJuan Quintela echo "CONFIG_CURSES=y" >> $config_host_mak 2961ab4e5602SJan Kiszkafi 29623b3f24adSaurel32if test "$atfile" = "yes" ; then 29632358a494SJuan Quintela echo "CONFIG_ATFILE=y" >> $config_host_mak 29643b3f24adSaurel32fi 2965ebc996f3SRiku Voipioif test "$utimens" = "yes" ; then 29662358a494SJuan Quintela echo "CONFIG_UTIMENSAT=y" >> $config_host_mak 2967ebc996f3SRiku Voipiofi 2968099d6b0fSRiku Voipioif test "$pipe2" = "yes" ; then 29692358a494SJuan Quintela echo "CONFIG_PIPE2=y" >> $config_host_mak 2970099d6b0fSRiku Voipiofi 297140ff6d7eSKevin Wolfif test "$accept4" = "yes" ; then 297240ff6d7eSKevin Wolf echo "CONFIG_ACCEPT4=y" >> $config_host_mak 297340ff6d7eSKevin Wolffi 29743ce34dfbSvibisreenivasanif test "$splice" = "yes" ; then 29752358a494SJuan Quintela echo "CONFIG_SPLICE=y" >> $config_host_mak 29763ce34dfbSvibisreenivasanfi 2977c2882b96SRiku Voipioif test "$eventfd" = "yes" ; then 2978c2882b96SRiku Voipio echo "CONFIG_EVENTFD=y" >> $config_host_mak 2979c2882b96SRiku Voipiofi 2980d0927938SUlrich Hechtif test "$fallocate" = "yes" ; then 2981d0927938SUlrich Hecht echo "CONFIG_FALLOCATE=y" >> $config_host_mak 2982d0927938SUlrich Hechtfi 2983c727f47dSPeter Maydellif test "$sync_file_range" = "yes" ; then 2984c727f47dSPeter Maydell echo "CONFIG_SYNC_FILE_RANGE=y" >> $config_host_mak 2985c727f47dSPeter Maydellfi 2986dace20dcSPeter Maydellif test "$fiemap" = "yes" ; then 2987dace20dcSPeter Maydell echo "CONFIG_FIEMAP=y" >> $config_host_mak 2988dace20dcSPeter Maydellfi 2989d0927938SUlrich Hechtif test "$dup3" = "yes" ; then 2990d0927938SUlrich Hecht echo "CONFIG_DUP3=y" >> $config_host_mak 2991d0927938SUlrich Hechtfi 29923b6edd16SPeter Maydellif test "$epoll" = "yes" ; then 29933b6edd16SPeter Maydell echo "CONFIG_EPOLL=y" >> $config_host_mak 29943b6edd16SPeter Maydellfi 29953b6edd16SPeter Maydellif test "$epoll_create1" = "yes" ; then 29963b6edd16SPeter Maydell echo "CONFIG_EPOLL_CREATE1=y" >> $config_host_mak 29973b6edd16SPeter Maydellfi 29983b6edd16SPeter Maydellif test "$epoll_pwait" = "yes" ; then 29993b6edd16SPeter Maydell echo "CONFIG_EPOLL_PWAIT=y" >> $config_host_mak 30003b6edd16SPeter Maydellfi 30013b3f24adSaurel32if test "$inotify" = "yes" ; then 30022358a494SJuan Quintela echo "CONFIG_INOTIFY=y" >> $config_host_mak 30033b3f24adSaurel32fi 3004c05c7a73SRiku Voipioif test "$inotify1" = "yes" ; then 3005c05c7a73SRiku Voipio echo "CONFIG_INOTIFY1=y" >> $config_host_mak 3006c05c7a73SRiku Voipiofi 30076ae9a1f4SJuan Quintelaif test "$byteswap_h" = "yes" ; then 30086ae9a1f4SJuan Quintela echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak 30096ae9a1f4SJuan Quintelafi 30106ae9a1f4SJuan Quintelaif test "$bswap_h" = "yes" ; then 30116ae9a1f4SJuan Quintela echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak 30126ae9a1f4SJuan Quintelafi 3013769ce76dSAlexander Grafif test "$curl" = "yes" ; then 301498ec69acSJuan Quintela echo "CONFIG_CURL=y" >> $config_host_mak 3015b1d5a277SJuan Quintela echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak 3016769ce76dSAlexander Graffi 30172e4d9fb1Saurel32if test "$brlapi" = "yes" ; then 301898ec69acSJuan Quintela echo "CONFIG_BRLAPI=y" >> $config_host_mak 30192e4d9fb1Saurel32fi 3020fb599c9aSbalrogif test "$bluez" = "yes" ; then 302198ec69acSJuan Quintela echo "CONFIG_BLUEZ=y" >> $config_host_mak 3022ef7635ecSJuan Quintela echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak 3023fb599c9aSbalrogfi 3024e18df141SAnthony Liguoriecho "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak 3025e37630caSaliguoriif test "$xen" = "yes" ; then 30266dbd588aSJan Kiszka echo "CONFIG_XEN_BACKEND=y" >> $config_host_mak 3027d5b93ddfSAnthony PERARD echo "CONFIG_XEN_CTRL_INTERFACE_VERSION=$xen_ctrl_version" >> $config_host_mak 3028e37630caSaliguorifi 30295c6c3a6cSChristoph Hellwigif test "$linux_aio" = "yes" ; then 30305c6c3a6cSChristoph Hellwig echo "CONFIG_LINUX_AIO=y" >> $config_host_mak 30315c6c3a6cSChristoph Hellwigfi 3032758e8e38SVenkateswararao Jujjuri (JV)if test "$attr" = "yes" ; then 3033758e8e38SVenkateswararao Jujjuri (JV) echo "CONFIG_ATTR=y" >> $config_host_mak 3034758e8e38SVenkateswararao Jujjuri (JV)fi 3035758e8e38SVenkateswararao Jujjuri (JV)if test "$linux" = "yes" ; then 3036758e8e38SVenkateswararao Jujjuri (JV) if test "$attr" = "yes" ; then 3037758e8e38SVenkateswararao Jujjuri (JV) echo "CONFIG_VIRTFS=y" >> $config_host_mak 3038758e8e38SVenkateswararao Jujjuri (JV) fi 3039758e8e38SVenkateswararao Jujjuri (JV)fi 304077755340Sthsif test "$blobs" = "yes" ; then 304198ec69acSJuan Quintela echo "INSTALL_BLOBS=yes" >> $config_host_mak 304277755340Sthsfi 3043bf9298b9Saliguoriif test "$iovec" = "yes" ; then 30442358a494SJuan Quintela echo "CONFIG_IOVEC=y" >> $config_host_mak 3045bf9298b9Saliguorifi 3046ceb42de8Saliguoriif test "$preadv" = "yes" ; then 30472358a494SJuan Quintela echo "CONFIG_PREADV=y" >> $config_host_mak 3048ceb42de8Saliguorifi 3049f652e6afSaurel32if test "$fdt" = "yes" ; then 30503f0855b1SJuan Quintela echo "CONFIG_FDT=y" >> $config_host_mak 3051f652e6afSaurel32fi 3052dcc38d1cSMarcelo Tosattiif test "$signalfd" = "yes" ; then 3053dcc38d1cSMarcelo Tosatti echo "CONFIG_SIGNALFD=y" >> $config_host_mak 3054dcc38d1cSMarcelo Tosattifi 3055*9195b2c2SStefan Weilif test "$tcg_interpreter" = "yes" ; then 3056*9195b2c2SStefan Weil echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak 3057*9195b2c2SStefan Weilfi 3058de5071c5SBlue Swirlif test "$need_offsetof" = "yes" ; then 3059de5071c5SBlue Swirl echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak 3060de5071c5SBlue Swirlfi 30615f6b9e8fSBlue Swirlif test "$fdatasync" = "yes" ; then 30625f6b9e8fSBlue Swirl echo "CONFIG_FDATASYNC=y" >> $config_host_mak 30635f6b9e8fSBlue Swirlfi 3064e78815a5SAndreas Färberif test "$madvise" = "yes" ; then 3065e78815a5SAndreas Färber echo "CONFIG_MADVISE=y" >> $config_host_mak 3066e78815a5SAndreas Färberfi 3067e78815a5SAndreas Färberif test "$posix_madvise" = "yes" ; then 3068e78815a5SAndreas Färber echo "CONFIG_POSIX_MADVISE=y" >> $config_host_mak 3069e78815a5SAndreas Färberfi 307097a847bcSbellard 3071cd4ec0b4SGerd Hoffmannif test "$spice" = "yes" ; then 3072cd4ec0b4SGerd Hoffmann echo "CONFIG_SPICE=y" >> $config_host_mak 3073cd4ec0b4SGerd Hoffmannfi 3074cd4ec0b4SGerd Hoffmann 307536707144SAlon Levyif test "$smartcard" = "yes" ; then 307636707144SAlon Levy echo "CONFIG_SMARTCARD=y" >> $config_host_mak 307736707144SAlon Levyfi 307836707144SAlon Levy 3079111a38b0SRobert Relyeaif test "$smartcard_nss" = "yes" ; then 3080111a38b0SRobert Relyea echo "CONFIG_SMARTCARD_NSS=y" >> $config_host_mak 3081111a38b0SRobert Relyeafi 3082111a38b0SRobert Relyea 308369354a83SHans de Goedeif test "$usb_redir" = "yes" ; then 308469354a83SHans de Goede echo "CONFIG_USB_REDIR=y" >> $config_host_mak 308569354a83SHans de Goedefi 308669354a83SHans de Goede 308720ff075bSMichael Walleif test "$opengl" = "yes" ; then 308820ff075bSMichael Walle echo "CONFIG_OPENGL=y" >> $config_host_mak 308920ff075bSMichael Wallefi 309020ff075bSMichael Walle 3091c589b249SRonnie Sahlbergif test "$libiscsi" = "yes" ; then 3092c589b249SRonnie Sahlberg echo "CONFIG_LIBISCSI=y" >> $config_host_mak 3093c589b249SRonnie Sahlbergfi 3094c589b249SRonnie Sahlberg 309583fb7adfSbellard# XXX: suppress that 30967d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 30972358a494SJuan Quintela echo "CONFIG_BSD=y" >> $config_host_mak 30987d3505c5Sbellardfi 30997d3505c5Sbellard 31002358a494SJuan Quintelaecho "CONFIG_UNAME_RELEASE=\"$uname_release\"" >> $config_host_mak 3101c5937220Spbrook 310220ff6c80SAnthony Liguoriif test "$zero_malloc" = "yes" ; then 310320ff6c80SAnthony Liguori echo "CONFIG_ZERO_MALLOC=y" >> $config_host_mak 310420ff6c80SAnthony Liguorifi 3105f27aaf4bSChristian Brunnerif test "$rbd" = "yes" ; then 3106f27aaf4bSChristian Brunner echo "CONFIG_RBD=y" >> $config_host_mak 3107f27aaf4bSChristian Brunnerfi 310820ff6c80SAnthony Liguori 3109d0e2fce5SAneesh Kumar K.Vif test "$ucontext_coroutine" = "yes" ; then 3110d0e2fce5SAneesh Kumar K.V echo "CONFIG_UCONTEXT_COROUTINE=y" >> $config_host_mak 3111d0e2fce5SAneesh Kumar K.Vfi 3112d0e2fce5SAneesh Kumar K.V 3113d2042378SAneesh Kumar K.Vif test "$open_by_handle_at" = "yes" ; then 3114d2042378SAneesh Kumar K.V echo "CONFIG_OPEN_BY_HANDLE=y" >> $config_host_mak 3115d2042378SAneesh Kumar K.Vfi 3116d2042378SAneesh Kumar K.V 3117e06a765eSHarsh Prateek Boraif test "$linux_magic_h" = "yes" ; then 3118e06a765eSHarsh Prateek Bora echo "CONFIG_LINUX_MAGIC_H=y" >> $config_host_mak 3119e06a765eSHarsh Prateek Borafi 3120e06a765eSHarsh Prateek Bora 312168063649Sblueswir1# USB host support 312268063649Sblueswir1case "$usb" in 312368063649Sblueswir1linux) 312498ec69acSJuan Quintela echo "HOST_USB=linux" >> $config_host_mak 312568063649Sblueswir1;; 312668063649Sblueswir1bsd) 312798ec69acSJuan Quintela echo "HOST_USB=bsd" >> $config_host_mak 312868063649Sblueswir1;; 312968063649Sblueswir1*) 313098ec69acSJuan Quintela echo "HOST_USB=stub" >> $config_host_mak 313168063649Sblueswir1;; 313268063649Sblueswir1esac 313368063649Sblueswir1 3134e4858974SLluís# use default implementation for tracing backend-specific routines 3135e4858974SLluístrace_default=yes 313694a420b1SStefan Hajnocziecho "TRACE_BACKEND=$trace_backend" >> $config_host_mak 31376d8a764eSLluísif test "$trace_backend" = "nop"; then 31386d8a764eSLluís echo "CONFIG_TRACE_NOP=y" >> $config_host_mak 313922890ab5SPrerna Saxenafi 31409410b56cSPrerna Saxenaif test "$trace_backend" = "simple"; then 31416d8a764eSLluís echo "CONFIG_TRACE_SIMPLE=y" >> $config_host_mak 3142e4858974SLluís trace_default=no 31436d8a764eSLluís # Set the appropriate trace file. 3144953ffe0fSAndreas Färber trace_file="\"$trace_file-\" FMT_pid" 31459410b56cSPrerna Saxenafi 31466d8a764eSLluísif test "$trace_backend" = "stderr"; then 31476d8a764eSLluís echo "CONFIG_TRACE_STDERR=y" >> $config_host_mak 31489a82b6a5SLluís trace_default=no 31496d8a764eSLluísfi 31506d8a764eSLluísif test "$trace_backend" = "ust"; then 31516d8a764eSLluís echo "CONFIG_TRACE_UST=y" >> $config_host_mak 31526d8a764eSLluísfi 31536d8a764eSLluísif test "$trace_backend" = "dtrace"; then 31546d8a764eSLluís echo "CONFIG_TRACE_DTRACE=y" >> $config_host_mak 31556d8a764eSLluís if test "$trace_backend_stap" = "yes" ; then 31566d8a764eSLluís echo "CONFIG_TRACE_SYSTEMTAP=y" >> $config_host_mak 31576d8a764eSLluís fi 3158c276b17dSDaniel P. Berrangefi 31599410b56cSPrerna Saxenaecho "CONFIG_TRACE_FILE=$trace_file" >> $config_host_mak 3160e4858974SLluísif test "$trace_default" = "yes"; then 3161e4858974SLluís echo "CONFIG_TRACE_DEFAULT=y" >> $config_host_mak 3162e4858974SLluísfi 31639410b56cSPrerna Saxena 316498ec69acSJuan Quintelaecho "TOOLS=$tools" >> $config_host_mak 316598ec69acSJuan Quintelaecho "ROMS=$roms" >> $config_host_mak 3166804edf29SJuan Quintelaecho "MAKE=$make" >> $config_host_mak 3167804edf29SJuan Quintelaecho "INSTALL=$install" >> $config_host_mak 31681901cb14SBradecho "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak 31691901cb14SBradecho "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak 31701901cb14SBradecho "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak 3171c886edfbSBlue Swirlecho "PYTHON=$python" >> $config_host_mak 3172804edf29SJuan Quintelaecho "CC=$cc" >> $config_host_mak 31732b2e59e6SPaolo Bonziniecho "CC_I386=$cc_i386" >> $config_host_mak 3174804edf29SJuan Quintelaecho "HOST_CC=$host_cc" >> $config_host_mak 3175804edf29SJuan Quintelaecho "AR=$ar" >> $config_host_mak 3176804edf29SJuan Quintelaecho "OBJCOPY=$objcopy" >> $config_host_mak 3177804edf29SJuan Quintelaecho "LD=$ld" >> $config_host_mak 31789fe6de94SBlue Swirlecho "WINDRES=$windres" >> $config_host_mak 317944dc0ca3SAlon Levyecho "LIBTOOL=$libtool" >> $config_host_mak 3180e2a2ed06SJuan Quintelaecho "CFLAGS=$CFLAGS" >> $config_host_mak 3181a558ee17SJuan Quintelaecho "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak 3182f9728943SPaolo Bonziniecho "QEMU_INCLUDES=$QEMU_INCLUDES" >> $config_host_mak 3183e39f0062SPaolo Bonziniif test "$sparse" = "yes" ; then 3184e39f0062SPaolo Bonzini echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_host_mak 3185e39f0062SPaolo Bonzini echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_host_mak 3186e39f0062SPaolo Bonzini echo "QEMU_CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak 3187e39f0062SPaolo Bonzinifi 3188c81da56eSJuan Quintelaecho "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak 3189e2a2ed06SJuan Quintelaecho "LDFLAGS=$LDFLAGS" >> $config_host_mak 3190a36abbbbSJuan Quintelaecho "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak 3191a36abbbbSJuan Quintelaecho "ARLIBS_END=$arlibs_end" >> $config_host_mak 319273da375eSJuan Quintelaecho "LIBS+=$LIBS" >> $config_host_mak 31933e2e0e6bSJuan Quintelaecho "LIBS_TOOLS+=$libs_tools" >> $config_host_mak 3194804edf29SJuan Quintelaecho "EXESUF=$EXESUF" >> $config_host_mak 3195957f1f99SMichael Rothecho "LIBS_QGA+=$libs_qga" >> $config_host_mak 3196804edf29SJuan Quintela 31974bf6b55bSJuan Quintela# generate list of library paths for linker script 31984bf6b55bSJuan Quintela 31994bf6b55bSJuan Quintela$ld --verbose -v 2> /dev/null | grep SEARCH_DIR > ${config_host_ld} 32004bf6b55bSJuan Quintela 32014bf6b55bSJuan Quintelaif test -f ${config_host_ld}~ ; then 32024bf6b55bSJuan Quintela if cmp -s $config_host_ld ${config_host_ld}~ ; then 32034bf6b55bSJuan Quintela mv ${config_host_ld}~ $config_host_ld 32044bf6b55bSJuan Quintela else 32054bf6b55bSJuan Quintela rm ${config_host_ld}~ 32064bf6b55bSJuan Quintela fi 32074bf6b55bSJuan Quintelafi 32084bf6b55bSJuan Quintela 32094d904533SBlue Swirlfor d in libdis libdis-user; do 32104d904533SBlue Swirl mkdir -p $d 321111568d6dSPaolo Bonzini symlink $source_path/Makefile.dis $d/Makefile 32124d904533SBlue Swirl echo > $d/config.mak 32134d904533SBlue Swirldone 3214d44cff22SRichard Hendersonif test "$static" = "no" -a "$user_pie" = "yes" ; then 3215d44cff22SRichard Henderson echo "QEMU_CFLAGS+=-fpie" > libdis-user/config.mak 3216d44cff22SRichard Hendersonfi 32174d904533SBlue Swirl 321897a847bcSbellardfor target in $target_list; do 321997a847bcSbellardtarget_dir="$target" 322025be210fSJuan Quintelaconfig_target_mak=$target_dir/config-target.mak 3221600309b6SBlue Swirltarget_arch2=`echo $target | cut -d '-' -f 1` 322297a847bcSbellardtarget_bigendian="no" 32231f3d3c8fSJuan Quintela 3224ea2d6a39SJuan Quintelacase "$target_arch2" in 3225cfa550c6SMax Filippov armeb|lm32|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus|xtensaeb) 3226ea2d6a39SJuan Quintela target_bigendian=yes 3227ea2d6a39SJuan Quintela ;; 3228ea2d6a39SJuan Quintelaesac 322997a847bcSbellardtarget_softmmu="no" 3230997344f3Sbellardtarget_user_only="no" 3231831b7825Sthstarget_linux_user="no" 3232831b7825Sthstarget_darwin_user="no" 323384778508Sblueswir1target_bsd_user="no" 32349e407a85Spbrookcase "$target" in 3235600309b6SBlue Swirl ${target_arch2}-softmmu) 32369e407a85Spbrook target_softmmu="yes" 32379e407a85Spbrook ;; 3238600309b6SBlue Swirl ${target_arch2}-linux-user) 32399c7a4202SBlue Swirl if test "$linux" != "yes" ; then 32409c7a4202SBlue Swirl echo "ERROR: Target '$target' is only available on a Linux host" 32419c7a4202SBlue Swirl exit 1 32429c7a4202SBlue Swirl fi 32439e407a85Spbrook target_user_only="yes" 32449e407a85Spbrook target_linux_user="yes" 32459e407a85Spbrook ;; 3246600309b6SBlue Swirl ${target_arch2}-darwin-user) 32479c7a4202SBlue Swirl if test "$darwin" != "yes" ; then 32489c7a4202SBlue Swirl echo "ERROR: Target '$target' is only available on a Darwin host" 32499c7a4202SBlue Swirl exit 1 32509c7a4202SBlue Swirl fi 32519e407a85Spbrook target_user_only="yes" 3252831b7825Sths target_darwin_user="yes" 32539e407a85Spbrook ;; 3254600309b6SBlue Swirl ${target_arch2}-bsd-user) 32559cf55765SBlue Swirl if test "$bsd" != "yes" ; then 32569c7a4202SBlue Swirl echo "ERROR: Target '$target' is only available on a BSD host" 32579c7a4202SBlue Swirl exit 1 32589c7a4202SBlue Swirl fi 325984778508Sblueswir1 target_user_only="yes" 326084778508Sblueswir1 target_bsd_user="yes" 326184778508Sblueswir1 ;; 32629e407a85Spbrook *) 32639e407a85Spbrook echo "ERROR: Target '$target' not recognised" 32649e407a85Spbrook exit 1 32659e407a85Spbrook ;; 32669e407a85Spbrookesac 3267831b7825Sths 326897a847bcSbellardmkdir -p $target_dir 3269158142c2Sbellardmkdir -p $target_dir/fpu 327057fec1feSbellardmkdir -p $target_dir/tcg 327159f2a787SGerd Hoffmannmkdir -p $target_dir/ide 3272353ac78dSAneesh Kumar K.Vmkdir -p $target_dir/9pfs 327384778508Sblueswir1if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then 327469de927cSbellard mkdir -p $target_dir/nwfpe 327569de927cSbellardfi 327611568d6dSPaolo Bonzinisymlink $source_path/Makefile.target $target_dir/Makefile 3277ec530c81Sbellard 327897a847bcSbellard 327925be210fSJuan Quintelaecho "# Automatically generated by configure - do not modify" > $config_target_mak 328097a847bcSbellard 3281e5fe0c52Spbrookbflt="no" 3282bd0c5661Spbrooktarget_nptl="no" 3283600309b6SBlue Swirlinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"` 32847ee2822cSPaolo Bonziniecho "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak 328556aebc89Spbrookgdb_xml_files="" 3286c2e3dee6SLaurent Viviertarget_short_alignment=2 3287c2e3dee6SLaurent Viviertarget_int_alignment=4 3288c2e3dee6SLaurent Viviertarget_long_alignment=4 3289c2e3dee6SLaurent Viviertarget_llong_alignment=8 3290de3a354aSMichael Walletarget_libs_softmmu= 32917ba1e619Saliguori 3292938b1eddSJuan QuintelaTARGET_ARCH="$target_arch2" 32936acff7daSJuan QuintelaTARGET_BASE_ARCH="" 3294e6e91b9cSJuan QuintelaTARGET_ABI_DIR="" 3295e73aae67SJuan Quintela 3296600309b6SBlue Swirlcase "$target_arch2" in 32972408a527Saurel32 i386) 329871deff27SAurelien Jarno target_phys_bits=64 32992408a527Saurel32 ;; 33002408a527Saurel32 x86_64) 33016acff7daSJuan Quintela TARGET_BASE_ARCH=i386 33021ad2134fSPaul Brook target_phys_bits=64 3303c2e3dee6SLaurent Vivier target_long_alignment=8 33042408a527Saurel32 ;; 33052408a527Saurel32 alpha) 33061ad2134fSPaul Brook target_phys_bits=64 3307c2e3dee6SLaurent Vivier target_long_alignment=8 3308a4b388ffSRichard Henderson target_nptl="yes" 33092408a527Saurel32 ;; 33102408a527Saurel32 arm|armeb) 3311b498c8a0SJuan Quintela TARGET_ARCH=arm 3312e5fe0c52Spbrook bflt="yes" 3313bd0c5661Spbrook target_nptl="yes" 331456aebc89Spbrook gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" 33151ad2134fSPaul Brook target_phys_bits=32 3316c2e3dee6SLaurent Vivier target_llong_alignment=4 33172408a527Saurel32 ;; 33182408a527Saurel32 cris) 3319253bd7f8Sedgar_igl target_nptl="yes" 33201ad2134fSPaul Brook target_phys_bits=32 33212408a527Saurel32 ;; 3322613a22c9SMichael Walle lm32) 3323613a22c9SMichael Walle target_phys_bits=32 3324de3a354aSMichael Walle target_libs_softmmu="$opengl_libs" 3325613a22c9SMichael Walle ;; 33262408a527Saurel32 m68k) 33270938cda5Saurel32 bflt="yes" 332856aebc89Spbrook gdb_xml_files="cf-core.xml cf-fp.xml" 33291ad2134fSPaul Brook target_phys_bits=32 3330c2e3dee6SLaurent Vivier target_int_alignment=2 3331c2e3dee6SLaurent Vivier target_long_alignment=2 3332c2e3dee6SLaurent Vivier target_llong_alignment=2 33332408a527Saurel32 ;; 3334877fdc12SEdgar E. Iglesias microblaze|microblazeel) 3335877fdc12SEdgar E. Iglesias TARGET_ARCH=microblaze 333672b675caSEdgar E. Iglesias bflt="yes" 333772b675caSEdgar E. Iglesias target_nptl="yes" 333872b675caSEdgar E. Iglesias target_phys_bits=32 3339de3a354aSMichael Walle target_libs_softmmu="$fdt_libs" 334072b675caSEdgar E. Iglesias ;; 33412408a527Saurel32 mips|mipsel) 3342b498c8a0SJuan Quintela TARGET_ARCH=mips 334325be210fSJuan Quintela echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak 3344f04dc72fSPaul Brook target_nptl="yes" 33451ad2134fSPaul Brook target_phys_bits=64 33462408a527Saurel32 ;; 33472408a527Saurel32 mipsn32|mipsn32el) 3348b498c8a0SJuan Quintela TARGET_ARCH=mipsn32 33496acff7daSJuan Quintela TARGET_BASE_ARCH=mips 335025be210fSJuan Quintela echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak 33511ad2134fSPaul Brook target_phys_bits=64 33522408a527Saurel32 ;; 33532408a527Saurel32 mips64|mips64el) 3354b498c8a0SJuan Quintela TARGET_ARCH=mips64 33556acff7daSJuan Quintela TARGET_BASE_ARCH=mips 335625be210fSJuan Quintela echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak 33571ad2134fSPaul Brook target_phys_bits=64 3358c2e3dee6SLaurent Vivier target_long_alignment=8 33592408a527Saurel32 ;; 33602408a527Saurel32 ppc) 3361c8b3532dSaurel32 gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml" 33621ad2134fSPaul Brook target_phys_bits=32 3363d6630708SNathan Froyd target_nptl="yes" 3364de3a354aSMichael Walle target_libs_softmmu="$fdt_libs" 33652408a527Saurel32 ;; 33662408a527Saurel32 ppcemb) 33676acff7daSJuan Quintela TARGET_BASE_ARCH=ppc 3368e6e91b9cSJuan Quintela TARGET_ABI_DIR=ppc 3369c8b3532dSaurel32 gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml" 33701ad2134fSPaul Brook target_phys_bits=64 3371d6630708SNathan Froyd target_nptl="yes" 3372de3a354aSMichael Walle target_libs_softmmu="$fdt_libs" 33732408a527Saurel32 ;; 33742408a527Saurel32 ppc64) 33756acff7daSJuan Quintela TARGET_BASE_ARCH=ppc 3376e6e91b9cSJuan Quintela TARGET_ABI_DIR=ppc 3377c8b3532dSaurel32 gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml" 33781ad2134fSPaul Brook target_phys_bits=64 3379c2e3dee6SLaurent Vivier target_long_alignment=8 3380de3a354aSMichael Walle target_libs_softmmu="$fdt_libs" 33812408a527Saurel32 ;; 33822408a527Saurel32 ppc64abi32) 3383b498c8a0SJuan Quintela TARGET_ARCH=ppc64 33846acff7daSJuan Quintela TARGET_BASE_ARCH=ppc 3385e6e91b9cSJuan Quintela TARGET_ABI_DIR=ppc 338625be210fSJuan Quintela echo "TARGET_ABI32=y" >> $config_target_mak 3387c8b3532dSaurel32 gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml" 33881ad2134fSPaul Brook target_phys_bits=64 3389de3a354aSMichael Walle target_libs_softmmu="$fdt_libs" 33902408a527Saurel32 ;; 33912408a527Saurel32 sh4|sh4eb) 3392b498c8a0SJuan Quintela TARGET_ARCH=sh4 33934dbed897Spbrook bflt="yes" 33940b6d3ae0Saurel32 target_nptl="yes" 33951ad2134fSPaul Brook target_phys_bits=32 33962408a527Saurel32 ;; 33972408a527Saurel32 sparc) 33981ad2134fSPaul Brook target_phys_bits=64 33992408a527Saurel32 ;; 34002408a527Saurel32 sparc64) 34016acff7daSJuan Quintela TARGET_BASE_ARCH=sparc 34021ad2134fSPaul Brook target_phys_bits=64 3403c2e3dee6SLaurent Vivier target_long_alignment=8 34042408a527Saurel32 ;; 34052408a527Saurel32 sparc32plus) 3406b498c8a0SJuan Quintela TARGET_ARCH=sparc64 34076acff7daSJuan Quintela TARGET_BASE_ARCH=sparc 3408e6e91b9cSJuan Quintela TARGET_ABI_DIR=sparc 340925be210fSJuan Quintela echo "TARGET_ABI32=y" >> $config_target_mak 34101ad2134fSPaul Brook target_phys_bits=64 34112408a527Saurel32 ;; 341224e804ecSAlexander Graf s390x) 3413bc434676SUlrich Hecht target_nptl="yes" 341424e804ecSAlexander Graf target_phys_bits=64 34157b3da903SAlexander Graf target_long_alignment=8 341624e804ecSAlexander Graf ;; 3417d2fbca94SGuan Xuetao unicore32) 3418d2fbca94SGuan Xuetao target_phys_bits=32 3419d2fbca94SGuan Xuetao ;; 3420cfa550c6SMax Filippov xtensa|xtensaeb) 3421cfa550c6SMax Filippov TARGET_ARCH=xtensa 3422cfa550c6SMax Filippov target_phys_bits=32 3423cfa550c6SMax Filippov ;; 34242408a527Saurel32 *) 3425de83cd02Sbellard echo "Unsupported target CPU" 3426de83cd02Sbellard exit 1 34272408a527Saurel32 ;; 34282408a527Saurel32esac 3429c2e3dee6SLaurent Vivierecho "TARGET_SHORT_ALIGNMENT=$target_short_alignment" >> $config_target_mak 3430c2e3dee6SLaurent Vivierecho "TARGET_INT_ALIGNMENT=$target_int_alignment" >> $config_target_mak 3431c2e3dee6SLaurent Vivierecho "TARGET_LONG_ALIGNMENT=$target_long_alignment" >> $config_target_mak 3432c2e3dee6SLaurent Vivierecho "TARGET_LLONG_ALIGNMENT=$target_llong_alignment" >> $config_target_mak 343325be210fSJuan Quintelaecho "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak 3434053dd92eSJuan Quintelatarget_arch_name="`echo $TARGET_ARCH | tr '[:lower:]' '[:upper:]'`" 343525be210fSJuan Quintelaecho "TARGET_$target_arch_name=y" >> $config_target_mak 343625be210fSJuan Quintelaecho "TARGET_ARCH2=$target_arch2" >> $config_target_mak 343742bc608bSJuan Quintela# TARGET_BASE_ARCH needs to be defined after TARGET_ARCH 34386acff7daSJuan Quintelaif [ "$TARGET_BASE_ARCH" = "" ]; then 34396acff7daSJuan Quintela TARGET_BASE_ARCH=$TARGET_ARCH 34406acff7daSJuan Quintelafi 344125be210fSJuan Quintelaecho "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak 3442e6e91b9cSJuan Quintelaif [ "$TARGET_ABI_DIR" = "" ]; then 3443e6e91b9cSJuan Quintela TARGET_ABI_DIR=$TARGET_ARCH 3444e6e91b9cSJuan Quintelafi 344525be210fSJuan Quintelaecho "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_target_mak 34461b0c87fcSJuan Quintelacase "$target_arch2" in 34471b0c87fcSJuan Quintela i386|x86_64) 34481b0c87fcSJuan Quintela if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then 344964b3cfdbSAnthony PERARD target_phys_bits=64 345025be210fSJuan Quintela echo "CONFIG_XEN=y" >> $config_target_mak 345159d21e53SAlexander Graf else 345259d21e53SAlexander Graf echo "CONFIG_NO_XEN=y" >> $config_target_mak 3453432d268cSJun Nakajima fi 345459d21e53SAlexander Graf ;; 345559d21e53SAlexander Graf *) 345659d21e53SAlexander Graf echo "CONFIG_NO_XEN=y" >> $config_target_mak 34571b0c87fcSJuan Quintelaesac 3458c59249f9SJuan Quintelacase "$target_arch2" in 34590e60a699SAlexander Graf i386|x86_64|ppcemb|ppc|ppc64|s390x) 3460c59249f9SJuan Quintela # Make sure the target and host cpus are compatible 3461c59249f9SJuan Quintela if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \ 3462c59249f9SJuan Quintela \( "$target_arch2" = "$cpu" -o \ 3463c59249f9SJuan Quintela \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc" \) -o \ 34645f114bc6SAlexander Graf \( "$target_arch2" = "ppc64" -a "$cpu" = "ppc" \) -o \ 3465adf82011SRené Rebe \( "$target_arch2" = "ppc" -a "$cpu" = "ppc64" \) -o \ 3466adf82011SRené Rebe \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc64" \) -o \ 3467c59249f9SJuan Quintela \( "$target_arch2" = "x86_64" -a "$cpu" = "i386" \) -o \ 3468c59249f9SJuan Quintela \( "$target_arch2" = "i386" -a "$cpu" = "x86_64" \) \) ; then 346925be210fSJuan Quintela echo "CONFIG_KVM=y" >> $config_target_mak 34701ba16968SStefan Weil if test "$vhost_net" = "yes" ; then 3471d5970055SMichael S. Tsirkin echo "CONFIG_VHOST_NET=y" >> $config_target_mak 3472d5970055SMichael S. Tsirkin fi 3473c59249f9SJuan Quintela fi 3474c59249f9SJuan Quintelaesac 34750a6b8ddeSAlexander Grafif test "$target_arch2" = "ppc64" -a "$fdt" = "yes"; then 34760a6b8ddeSAlexander Graf echo "CONFIG_PSERIES=y" >> $config_target_mak 34770a6b8ddeSAlexander Graffi 3478de83cd02Sbellardif test "$target_bigendian" = "yes" ; then 347925be210fSJuan Quintela echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak 348097a847bcSbellardfi 348197a847bcSbellardif test "$target_softmmu" = "yes" ; then 3482b1aa27c4SPaul Brook echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_target_mak 348325be210fSJuan Quintela echo "CONFIG_SOFTMMU=y" >> $config_target_mak 3484de3a354aSMichael Walle echo "LIBS+=$libs_softmmu $target_libs_softmmu" >> $config_target_mak 34850e8c9214SAndreas Färber echo "HWDIR=../libhw$target_phys_bits" >> $config_target_mak 34865791f45bSKirill A. Shutemov echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak 3487de83cd02Sbellardfi 3488997344f3Sbellardif test "$target_user_only" = "yes" ; then 348925be210fSJuan Quintela echo "CONFIG_USER_ONLY=y" >> $config_target_mak 3490997344f3Sbellardfi 3491831b7825Sthsif test "$target_linux_user" = "yes" ; then 349225be210fSJuan Quintela echo "CONFIG_LINUX_USER=y" >> $config_target_mak 3493831b7825Sthsfi 3494831b7825Sthsif test "$target_darwin_user" = "yes" ; then 349525be210fSJuan Quintela echo "CONFIG_DARWIN_USER=y" >> $config_target_mak 3496831b7825Sthsfi 3497111a38b0SRobert Relyeaif test "$smartcard_nss" = "yes" ; then 3498111a38b0SRobert Relyea echo "subdir-$target: subdir-libcacard" >> $config_host_mak 3499111a38b0SRobert Relyea echo "libcacard_libs=$libcacard_libs" >> $config_host_mak 3500111a38b0SRobert Relyea echo "libcacard_cflags=$libcacard_cflags" >> $config_host_mak 3501111a38b0SRobert Relyeafi 350256aebc89Spbrooklist="" 350356aebc89Spbrookif test ! -z "$gdb_xml_files" ; then 350456aebc89Spbrook for x in $gdb_xml_files; do 350556aebc89Spbrook list="$list $source_path/gdb-xml/$x" 350656aebc89Spbrook done 350725be210fSJuan Quintela echo "TARGET_XML_FILES=$list" >> $config_target_mak 35083d0f1517SJuan Quintelafi 3509de83cd02Sbellard 3510e5fe0c52Spbrookif test "$target_user_only" = "yes" -a "$bflt" = "yes"; then 351125be210fSJuan Quintela echo "TARGET_HAS_BFLT=y" >> $config_target_mak 3512e5fe0c52Spbrookfi 3513bd0c5661Spbrookif test "$target_user_only" = "yes" \ 3514bd0c5661Spbrook -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then 351525be210fSJuan Quintela echo "CONFIG_USE_NPTL=y" >> $config_target_mak 3516bd0c5661Spbrookfi 3517379f6698SPaul Brookif test "$target_user_only" = "yes" -a "$guest_base" = "yes"; then 351825be210fSJuan Quintela echo "CONFIG_USE_GUEST_BASE=y" >> $config_target_mak 3519379f6698SPaul Brookfi 352084778508Sblueswir1if test "$target_bsd_user" = "yes" ; then 352125be210fSJuan Quintela echo "CONFIG_BSD_USER=y" >> $config_target_mak 352284778508Sblueswir1fi 35235b0753e0Sbellard 35244afddb55SJuan Quintela# generate QEMU_CFLAGS/LDFLAGS for targets 3525fa282484SJuan Quintela 35264afddb55SJuan Quintelacflags="" 3527f9728943SPaolo Bonziniincludes="" 3528fa282484SJuan Quintelaldflags="" 35299b8e111fSJuan Quintela 3530*9195b2c2SStefan Weilif test "$tcg_interpreter" = "yes"; then 3531*9195b2c2SStefan Weil includes="-I\$(SRC_PATH)/tcg/tci $includes" 3532*9195b2c2SStefan Weilelif test "$ARCH" = "sparc64" ; then 3533f9728943SPaolo Bonzini includes="-I\$(SRC_PATH)/tcg/sparc $includes" 353424e804ecSAlexander Grafelif test "$ARCH" = "s390x" ; then 3535f9728943SPaolo Bonzini includes="-I\$(SRC_PATH)/tcg/s390 $includes" 35365d8a4f8fSRichard Hendersonelif test "$ARCH" = "x86_64" ; then 3537f9728943SPaolo Bonzini includes="-I\$(SRC_PATH)/tcg/i386 $includes" 353857ddfbf7SJuan Quintelaelse 3539f9728943SPaolo Bonzini includes="-I\$(SRC_PATH)/tcg/\$(ARCH) $includes" 354057ddfbf7SJuan Quintelafi 3541f9728943SPaolo Bonziniincludes="-I\$(SRC_PATH)/tcg $includes" 354257ddfbf7SJuan Quintela 35434d904533SBlue Swirlif test "$target_user_only" = "yes" ; then 35444d904533SBlue Swirl libdis_config_mak=libdis-user/config.mak 35454d904533SBlue Swirlelse 35464d904533SBlue Swirl libdis_config_mak=libdis/config.mak 35474d904533SBlue Swirlfi 35484d904533SBlue Swirl 354964656024SJuan Quintelafor i in $ARCH $TARGET_BASE_ARCH ; do 355064656024SJuan Quintela case "$i" in 355164656024SJuan Quintela alpha) 355225be210fSJuan Quintela echo "CONFIG_ALPHA_DIS=y" >> $config_target_mak 35534d904533SBlue Swirl echo "CONFIG_ALPHA_DIS=y" >> $libdis_config_mak 355464656024SJuan Quintela ;; 355564656024SJuan Quintela arm) 355625be210fSJuan Quintela echo "CONFIG_ARM_DIS=y" >> $config_target_mak 35574d904533SBlue Swirl echo "CONFIG_ARM_DIS=y" >> $libdis_config_mak 355864656024SJuan Quintela ;; 355964656024SJuan Quintela cris) 356025be210fSJuan Quintela echo "CONFIG_CRIS_DIS=y" >> $config_target_mak 35614d904533SBlue Swirl echo "CONFIG_CRIS_DIS=y" >> $libdis_config_mak 356264656024SJuan Quintela ;; 356364656024SJuan Quintela hppa) 356425be210fSJuan Quintela echo "CONFIG_HPPA_DIS=y" >> $config_target_mak 35654d904533SBlue Swirl echo "CONFIG_HPPA_DIS=y" >> $libdis_config_mak 356664656024SJuan Quintela ;; 356764656024SJuan Quintela i386|x86_64) 356825be210fSJuan Quintela echo "CONFIG_I386_DIS=y" >> $config_target_mak 35694d904533SBlue Swirl echo "CONFIG_I386_DIS=y" >> $libdis_config_mak 357064656024SJuan Quintela ;; 3571903ec55cSAurelien Jarno ia64*) 3572903ec55cSAurelien Jarno echo "CONFIG_IA64_DIS=y" >> $config_target_mak 3573903ec55cSAurelien Jarno echo "CONFIG_IA64_DIS=y" >> $libdis_config_mak 3574903ec55cSAurelien Jarno ;; 357564656024SJuan Quintela m68k) 357625be210fSJuan Quintela echo "CONFIG_M68K_DIS=y" >> $config_target_mak 35774d904533SBlue Swirl echo "CONFIG_M68K_DIS=y" >> $libdis_config_mak 357864656024SJuan Quintela ;; 3579877fdc12SEdgar E. Iglesias microblaze*) 358025be210fSJuan Quintela echo "CONFIG_MICROBLAZE_DIS=y" >> $config_target_mak 35814d904533SBlue Swirl echo "CONFIG_MICROBLAZE_DIS=y" >> $libdis_config_mak 358264656024SJuan Quintela ;; 358364656024SJuan Quintela mips*) 358425be210fSJuan Quintela echo "CONFIG_MIPS_DIS=y" >> $config_target_mak 35854d904533SBlue Swirl echo "CONFIG_MIPS_DIS=y" >> $libdis_config_mak 358664656024SJuan Quintela ;; 358764656024SJuan Quintela ppc*) 358825be210fSJuan Quintela echo "CONFIG_PPC_DIS=y" >> $config_target_mak 35894d904533SBlue Swirl echo "CONFIG_PPC_DIS=y" >> $libdis_config_mak 359064656024SJuan Quintela ;; 359124e804ecSAlexander Graf s390*) 359225be210fSJuan Quintela echo "CONFIG_S390_DIS=y" >> $config_target_mak 35934d904533SBlue Swirl echo "CONFIG_S390_DIS=y" >> $libdis_config_mak 359464656024SJuan Quintela ;; 359564656024SJuan Quintela sh4) 359625be210fSJuan Quintela echo "CONFIG_SH4_DIS=y" >> $config_target_mak 35974d904533SBlue Swirl echo "CONFIG_SH4_DIS=y" >> $libdis_config_mak 359864656024SJuan Quintela ;; 359964656024SJuan Quintela sparc*) 360025be210fSJuan Quintela echo "CONFIG_SPARC_DIS=y" >> $config_target_mak 36014d904533SBlue Swirl echo "CONFIG_SPARC_DIS=y" >> $libdis_config_mak 360264656024SJuan Quintela ;; 3603cfa550c6SMax Filippov xtensa*) 3604cfa550c6SMax Filippov echo "CONFIG_XTENSA_DIS=y" >> $config_target_mak 3605cfa550c6SMax Filippov echo "CONFIG_XTENSA_DIS=y" >> $libdis_config_mak 3606cfa550c6SMax Filippov ;; 360764656024SJuan Quintela esac 360864656024SJuan Quinteladone 3609*9195b2c2SStefan Weilif test "$tcg_interpreter" = "yes" ; then 3610*9195b2c2SStefan Weil echo "CONFIG_TCI_DIS=y" >> $config_target_mak 3611*9195b2c2SStefan Weil echo "CONFIG_TCI_DIS=y" >> $libdis_config_mak 3612*9195b2c2SStefan Weilfi 361364656024SJuan Quintela 36146ee7126fSJuan Quintelacase "$ARCH" in 36156ee7126fSJuan Quintelaalpha) 36166ee7126fSJuan Quintela # Ensure there's only a single GP 36176ee7126fSJuan Quintela cflags="-msmall-data $cflags" 36186ee7126fSJuan Quintela;; 36196ee7126fSJuan Quintelaesac 36206ee7126fSJuan Quintela 362155d9c04bSJuan Quintelaif test "$target_softmmu" = "yes" ; then 362255d9c04bSJuan Quintela case "$TARGET_BASE_ARCH" in 362355d9c04bSJuan Quintela arm) 362455d9c04bSJuan Quintela cflags="-DHAS_AUDIO $cflags" 362555d9c04bSJuan Quintela ;; 362625a8bb96SMichael Walle lm32) 362725a8bb96SMichael Walle cflags="-DHAS_AUDIO $cflags" 362825a8bb96SMichael Walle ;; 362955d9c04bSJuan Quintela i386|mips|ppc) 363055d9c04bSJuan Quintela cflags="-DHAS_AUDIO -DHAS_AUDIO_CHOICE $cflags" 363155d9c04bSJuan Quintela ;; 363255d9c04bSJuan Quintela esac 363355d9c04bSJuan Quintelafi 363455d9c04bSJuan Quintela 363534005a00SKirill A. Shutemovif test "$target_user_only" = "yes" -a "$static" = "no" -a \ 363634005a00SKirill A. Shutemov "$user_pie" = "yes" ; then 363734005a00SKirill A. Shutemov cflags="-fpie $cflags" 363834005a00SKirill A. Shutemov ldflags="-pie $ldflags" 363934005a00SKirill A. Shutemovfi 364034005a00SKirill A. Shutemov 3641471857ddSJuan Quintelaif test "$target_softmmu" = "yes" -a \( \ 3642471857ddSJuan Quintela "$TARGET_ARCH" = "microblaze" -o \ 3643471857ddSJuan Quintela "$TARGET_ARCH" = "cris" \) ; then 364425be210fSJuan Quintela echo "CONFIG_NEED_MMU=y" >> $config_target_mak 3645471857ddSJuan Quintelafi 3646471857ddSJuan Quintela 3647d02c1db3SJuan Quintelaif test "$gprof" = "yes" ; then 364825be210fSJuan Quintela echo "TARGET_GPROF=yes" >> $config_target_mak 3649d02c1db3SJuan Quintela if test "$target_linux_user" = "yes" ; then 3650d02c1db3SJuan Quintela cflags="-p $cflags" 3651d02c1db3SJuan Quintela ldflags="-p $ldflags" 3652d02c1db3SJuan Quintela fi 3653d02c1db3SJuan Quintela if test "$target_softmmu" = "yes" ; then 3654d02c1db3SJuan Quintela ldflags="-p $ldflags" 365525be210fSJuan Quintela echo "GPROF_CFLAGS=-p" >> $config_target_mak 3656d02c1db3SJuan Quintela fi 3657d02c1db3SJuan Quintelafi 3658d02c1db3SJuan Quintela 3659*9195b2c2SStefan Weilif test "$ARCH" = "tci"; then 3660*9195b2c2SStefan Weil linker_script="" 3661*9195b2c2SStefan Weilelse 36626ee7126fSJuan Quintela linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld" 3663*9195b2c2SStefan Weilfi 3664*9195b2c2SStefan Weil 36659b8e111fSJuan Quintelaif test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then 3666fa282484SJuan Quintela case "$ARCH" in 3667fa282484SJuan Quintela sparc) 3668fa282484SJuan Quintela # -static is used to avoid g1/g3 usage by the dynamic linker 3669322e5878SJuan Quintela ldflags="$linker_script -static $ldflags" 3670fa282484SJuan Quintela ;; 36714d58be06SRichard Henderson alpha | s390x) 36724d58be06SRichard Henderson # The default placement of the application is fine. 36734d58be06SRichard Henderson ;; 3674fd76e73aSRichard Henderson *) 3675322e5878SJuan Quintela ldflags="$linker_script $ldflags" 3676fa282484SJuan Quintela ;; 3677fa282484SJuan Quintela esac 3678fa282484SJuan Quintelafi 3679fa282484SJuan Quintela 3680e205c790SJan Kiszka# use included Linux headers 3681af2be207SJan Kiszkaif test "$linux" = "yes" ; then 3682e205c790SJan Kiszka includes="-I\$(SRC_PATH)/linux-headers $includes" 3683e205c790SJan Kiszka mkdir -p linux-headers 3684e205c790SJan Kiszka case "$cpu" in 3685e205c790SJan Kiszka i386|x86_64) 3686e205c790SJan Kiszka symlink $source_path/linux-headers/asm-x86 linux-headers/asm 3687e205c790SJan Kiszka ;; 3688e205c790SJan Kiszka ppcemb|ppc|ppc64) 3689af2be207SJan Kiszka symlink $source_path/linux-headers/asm-powerpc linux-headers/asm 3690e205c790SJan Kiszka ;; 3691e205c790SJan Kiszka s390x) 3692e205c790SJan Kiszka symlink $source_path/linux-headers/asm-s390 linux-headers/asm 3693e205c790SJan Kiszka ;; 3694e205c790SJan Kiszka esac 3695af2be207SJan Kiszkafi 3696e205c790SJan Kiszka 369725be210fSJuan Quintelaecho "LDFLAGS+=$ldflags" >> $config_target_mak 369825be210fSJuan Quintelaecho "QEMU_CFLAGS+=$cflags" >> $config_target_mak 3699f9728943SPaolo Bonziniecho "QEMU_INCLUDES+=$includes" >> $config_target_mak 3700fa282484SJuan Quintela 370197a847bcSbellarddone # for target in $targets 37027d13299dSbellard 3703d1807a4fSPaolo Bonzini# build tree in object directory in case the source is not in the current directory 3704e1144d00SMark McLoughlinDIRS="tests tests/cris slirp audio block net pc-bios/optionrom" 3705446b9165SAndreas FärberDIRS="$DIRS pc-bios/spapr-rtas" 37062d9f27d2SAnthony LiguoriDIRS="$DIRS roms/seabios roms/vgabios" 37073e230dd2SCorentin CharyDIRS="$DIRS fsdev ui" 3708e098fc3fSMichael RothDIRS="$DIRS qapi qapi-generated" 3709d9cd446bSAnthony LiguoriDIRS="$DIRS qga trace" 371070371cfbSLuiz CapitulinoFILES="Makefile tests/Makefile qdict-test-data.txt" 3711e7daa605SthsFILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" 3712ae0bfb79SBlue SwirlFILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps" 3713446b9165SAndreas FärberFILES="$FILES pc-bios/spapr-rtas/Makefile" 37142d9f27d2SAnthony LiguoriFILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile" 3715753d11f2SRichard Hendersonfor bios_file in \ 3716753d11f2SRichard Henderson $source_path/pc-bios/*.bin \ 3717753d11f2SRichard Henderson $source_path/pc-bios/*.rom \ 3718753d11f2SRichard Henderson $source_path/pc-bios/*.dtb \ 3719753d11f2SRichard Henderson $source_path/pc-bios/openbios-* \ 3720753d11f2SRichard Henderson $source_path/pc-bios/palcode-* 3721753d11f2SRichard Hendersondo 37227ea78b74SJan Kiszka FILES="$FILES pc-bios/`basename $bios_file`" 37237ea78b74SJan Kiszkadone 3724d1807a4fSPaolo Bonzinimkdir -p $DIRS 37257d13299dSbellardfor f in $FILES ; do 3726f9245e10SPeter Maydell if [ -e "$source_path/$f" ] && ! [ -e "$f" ]; then 3727f9245e10SPeter Maydell symlink "$source_path/$f" "$f" 3728f9245e10SPeter Maydell fi 37297d13299dSbellarddone 37301ad2134fSPaul Brook 3731c34ebfdcSAnthony Liguori# temporary config to build submodules 37322d9f27d2SAnthony Liguorifor rom in seabios vgabios ; do 3733c34ebfdcSAnthony Liguori config_mak=roms/$rom/config.mak 373437116c89SStefan Weil echo "# Automatically generated by configure - do not modify" > $config_mak 3735c34ebfdcSAnthony Liguori echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak 3736c34ebfdcSAnthony Liguori echo "CC=$cc" >> $config_mak 3737c34ebfdcSAnthony Liguori echo "BCC=bcc" >> $config_mak 3738c34ebfdcSAnthony Liguori echo "CPP=${cross_prefix}cpp" >> $config_mak 3739c34ebfdcSAnthony Liguori echo "OBJCOPY=objcopy" >> $config_mak 3740c34ebfdcSAnthony Liguori echo "IASL=iasl" >> $config_mak 3741c34ebfdcSAnthony Liguori echo "LD=$ld" >> $config_mak 3742c34ebfdcSAnthony Liguoridone 3743c34ebfdcSAnthony Liguori 37441ad2134fSPaul Brookfor hwlib in 32 64; do 37451ad2134fSPaul Brook d=libhw$hwlib 37461ad2134fSPaul Brook mkdir -p $d 37479953b2fcSBlue Swirl mkdir -p $d/ide 374811568d6dSPaolo Bonzini symlink $source_path/Makefile.hw $d/Makefile 3749353ac78dSAneesh Kumar K.V mkdir -p $d/9pfs 375037116c89SStefan Weil echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" > $d/config.mak 37511ad2134fSPaul Brookdone 3752add16157SBlue Swirl 3753111a38b0SRobert Relyeaif [ "$source_path" != `pwd` ]; then 3754111a38b0SRobert Relyea # out of tree build 3755111a38b0SRobert Relyea mkdir -p libcacard 3756111a38b0SRobert Relyea rm -f libcacard/Makefile 375744dc0ca3SAlon Levy symlink "$source_path/libcacard/Makefile" libcacard/Makefile 3758111a38b0SRobert Relyeafi 3759111a38b0SRobert Relyea 3760add16157SBlue Swirld=libuser 3761add16157SBlue Swirlmkdir -p $d 3762937b1258SLluís Vilanovamkdir -p $d/trace 376311568d6dSPaolo Bonzinisymlink $source_path/Makefile.user $d/Makefile 3764299060a0SKirill A. Shutemovif test "$static" = "no" -a "$user_pie" = "yes" ; then 3765299060a0SKirill A. Shutemov echo "QEMU_CFLAGS+=-fpie" > $d/config.mak 3766299060a0SKirill A. Shutemovfi 3767b40292e7SJan Kiszka 3768b40292e7SJan Kiszkaif test "$docs" = "yes" ; then 3769b40292e7SJan Kiszka mkdir -p QMP 3770b40292e7SJan Kiszkafi 3771