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 184021d247SAurelien Jarnotrap "rm -f $TMPC $TMPO $TMPE ; exit" EXIT INT QUIT TERM 199ac81bbbSmalc 2052166aa0SJuan Quintelacompile_object() { 21a558ee17SJuan Quintela $cc $QEMU_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null 2252166aa0SJuan Quintela} 2352166aa0SJuan Quintela 2452166aa0SJuan Quintelacompile_prog() { 2552166aa0SJuan Quintela local_cflags="$1" 2652166aa0SJuan Quintela local_ldflags="$2" 27a558ee17SJuan Quintela $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags > /dev/null 2> /dev/null 2852166aa0SJuan Quintela} 2952166aa0SJuan Quintela 300dba6195SLoïc Minier# check whether a command is available to this shell (may be either an 310dba6195SLoïc Minier# executable or a builtin) 320dba6195SLoïc Minierhas() { 330dba6195SLoïc Minier type "$1" >/dev/null 2>&1 340dba6195SLoïc Minier} 350dba6195SLoïc Minier 360dba6195SLoïc Minier# search for an executable in PATH 370dba6195SLoïc Minierpath_of() { 380dba6195SLoïc Minier local_command="$1" 390dba6195SLoïc Minier local_ifs="$IFS" 400dba6195SLoïc Minier local_dir="" 410dba6195SLoïc Minier 420dba6195SLoïc Minier # pathname has a dir component? 430dba6195SLoïc Minier if [ "${local_command#*/}" != "$local_command" ]; then 440dba6195SLoïc Minier if [ -x "$local_command" ] && [ ! -d "$local_command" ]; then 450dba6195SLoïc Minier echo "$local_command" 460dba6195SLoïc Minier return 0 470dba6195SLoïc Minier fi 480dba6195SLoïc Minier fi 490dba6195SLoïc Minier if [ -z "$local_command" ]; then 500dba6195SLoïc Minier return 1 510dba6195SLoïc Minier fi 520dba6195SLoïc Minier 530dba6195SLoïc Minier IFS=: 540dba6195SLoïc Minier for local_dir in $PATH; do 550dba6195SLoïc Minier if [ -x "$local_dir/$local_command" ] && [ ! -d "$local_dir/$local_command" ]; then 560dba6195SLoïc Minier echo "$local_dir/$local_command" 570dba6195SLoïc Minier IFS="${local_ifs:-$(printf ' \t\n')}" 580dba6195SLoïc Minier return 0 590dba6195SLoïc Minier fi 600dba6195SLoïc Minier done 610dba6195SLoïc Minier # not found 620dba6195SLoïc Minier IFS="${local_ifs:-$(printf ' \t\n')}" 630dba6195SLoïc Minier return 1 640dba6195SLoïc Minier} 650dba6195SLoïc Minier 667d13299dSbellard# default parameters 672ff6b91eSJuan Quintelacpu="" 681e43adfcSbellardinterp_prefix="/usr/gnemul/qemu-%M" 6943ce4dfeSbellardstatic="no" 70ed968ff1SJuan Quintelasparc_cpu="" 717d13299dSbellardcross_prefix="" 727d13299dSbellardcc="gcc" 730c58ac1cSmalcaudio_drv_list="" 744c9b53e3Smalcaudio_card_list="ac97 es1370 sb16" 754c9b53e3Smalcaudio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus" 76eb852011SMarkus Armbrusterblock_drv_whitelist="" 777d13299dSbellardhost_cc="gcc" 787d13299dSbellardar="ar" 797d13299dSbellardmake="make" 806a882643Spbrookinstall="install" 817aa486feSAnthony Liguoriobjcopy="objcopy" 827aa486feSAnthony Liguorild="ld" 83c81da56eSJuan Quintelahelper_cflags="" 8473da375eSJuan Quintelalibs_softmmu="" 853e2e0e6bSJuan Quintelalibs_tools="" 8667f86e8eSJuan Quintelaaudio_pt_int="" 87d5631638Smalcaudio_win_int="" 88ac0df51dSaliguori 89ac0df51dSaliguori# parse CC options first 90ac0df51dSaliguorifor opt do 91ac0df51dSaliguori optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 92ac0df51dSaliguori case "$opt" in 93ac0df51dSaliguori --cross-prefix=*) cross_prefix="$optarg" 94ac0df51dSaliguori ;; 95ac0df51dSaliguori --cc=*) cc="$optarg" 96ac0df51dSaliguori ;; 972ff6b91eSJuan Quintela --cpu=*) cpu="$optarg" 982ff6b91eSJuan Quintela ;; 99a558ee17SJuan Quintela --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS" 100e2a2ed06SJuan Quintela ;; 101e2a2ed06SJuan Quintela --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS" 102e2a2ed06SJuan Quintela ;; 10350e7b1a0SJuan Quintela --sparc_cpu=*) 10450e7b1a0SJuan Quintela sparc_cpu="$optarg" 10550e7b1a0SJuan Quintela case $sparc_cpu in 106ed968ff1SJuan Quintela v7|v8|v8plus|v8plusa) 10750e7b1a0SJuan Quintela cpu="sparc" 10850e7b1a0SJuan Quintela ;; 10950e7b1a0SJuan Quintela v9) 11050e7b1a0SJuan Quintela cpu="sparc64" 11150e7b1a0SJuan Quintela ;; 11250e7b1a0SJuan Quintela *) 11350e7b1a0SJuan Quintela echo "undefined SPARC architecture. Exiting"; 11450e7b1a0SJuan Quintela exit 1 11550e7b1a0SJuan Quintela ;; 11650e7b1a0SJuan Quintela esac 11750e7b1a0SJuan Quintela ;; 118ac0df51dSaliguori esac 119ac0df51dSaliguoridone 120ac0df51dSaliguori# OS specific 121ac0df51dSaliguori# Using uname is really, really broken. Once we have the right set of checks 122ac0df51dSaliguori# we can eliminate it's usage altogether 123ac0df51dSaliguori 124ac0df51dSaliguoricc="${cross_prefix}${cc}" 125ac0df51dSaliguoriar="${cross_prefix}${ar}" 1267aa486feSAnthony Liguoriobjcopy="${cross_prefix}${objcopy}" 1277aa486feSAnthony Liguorild="${cross_prefix}${ld}" 128ac0df51dSaliguori 129be17dc90SMichael S. Tsirkin# default flags for all hosts 130be17dc90SMichael S. TsirkinQEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS" 131be17dc90SMichael S. TsirkinCFLAGS="-g $CFLAGS" 132be17dc90SMichael S. TsirkinQEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS" 133be17dc90SMichael S. TsirkinQEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS" 134be17dc90SMichael S. TsirkinQEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS" 13584958305SKirill A. ShutemovQEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS" 136be17dc90SMichael S. TsirkinQEMU_CFLAGS="-I. -I\$(SRC_PATH) $QEMU_CFLAGS" 137be17dc90SMichael S. TsirkinLDFLAGS="-g $LDFLAGS" 138be17dc90SMichael S. Tsirkin 139a0f291fcSJuan Quintelagcc_flags="-Wold-style-declaration -Wold-style-definition -fstack-protector-all" 140be17dc90SMichael S. Tsirkincat > $TMPC << EOF 141aa527b65SAurelien Jarnoint main(void) { return 0; } 142be17dc90SMichael S. TsirkinEOF 143be17dc90SMichael S. Tsirkinfor flag in $gcc_flags; do 144aa527b65SAurelien Jarno if compile_prog "-Werror $QEMU_CFLAGS" "-Werror $flag" ; then 145be17dc90SMichael S. Tsirkin QEMU_CFLAGS="$flag $QEMU_CFLAGS" 146be17dc90SMichael S. Tsirkin fi 147be17dc90SMichael S. Tsirkindone 148be17dc90SMichael S. Tsirkin 149ac0df51dSaliguori# check that the C compiler works. 150ac0df51dSaliguoricat > $TMPC <<EOF 151ac0df51dSaliguoriint main(void) {} 152ac0df51dSaliguoriEOF 153ac0df51dSaliguori 15452166aa0SJuan Quintelaif compile_object ; then 155ac0df51dSaliguori : C compiler works ok 156ac0df51dSaliguorielse 157ac0df51dSaliguori echo "ERROR: \"$cc\" either does not exist or does not work" 158ac0df51dSaliguori exit 1 159ac0df51dSaliguorifi 160ac0df51dSaliguori 161ac0df51dSaliguoricheck_define() { 162ac0df51dSaliguoricat > $TMPC <<EOF 163ac0df51dSaliguori#if !defined($1) 164ac0df51dSaliguori#error Not defined 165ac0df51dSaliguori#endif 166ac0df51dSaliguoriint main(void) { return 0; } 167ac0df51dSaliguoriEOF 16852166aa0SJuan Quintela compile_object 169ac0df51dSaliguori} 170ac0df51dSaliguori 1712ff6b91eSJuan Quintelaif test ! -z "$cpu" ; then 1722ff6b91eSJuan Quintela # command line argument 1732ff6b91eSJuan Quintela : 1742ff6b91eSJuan Quintelaelif check_define __i386__ ; then 175ac0df51dSaliguori cpu="i386" 176ac0df51dSaliguorielif check_define __x86_64__ ; then 177ac0df51dSaliguori cpu="x86_64" 1783aa9bd6cSblueswir1elif check_define __sparc__ ; then 1793aa9bd6cSblueswir1 # We can't check for 64 bit (when gcc is biarch) or V8PLUSA 1803aa9bd6cSblueswir1 # They must be specified using --sparc_cpu 1813aa9bd6cSblueswir1 if check_define __arch64__ ; then 1823aa9bd6cSblueswir1 cpu="sparc64" 1833aa9bd6cSblueswir1 else 1843aa9bd6cSblueswir1 cpu="sparc" 1853aa9bd6cSblueswir1 fi 186fdf7ed96Smalcelif check_define _ARCH_PPC ; then 187fdf7ed96Smalc if check_define _ARCH_PPC64 ; then 188fdf7ed96Smalc cpu="ppc64" 189ac0df51dSaliguori else 190fdf7ed96Smalc cpu="ppc" 191fdf7ed96Smalc fi 192afa05235SAurelien Jarnoelif check_define __mips__ ; then 193afa05235SAurelien Jarno cpu="mips" 194477ba620SAurelien Jarnoelif check_define __ia64__ ; then 195477ba620SAurelien Jarno cpu="ia64" 196d66ed0eaSAurelien Jarnoelif check_define __s390__ ; then 197d66ed0eaSAurelien Jarno if check_define __s390x__ ; then 198d66ed0eaSAurelien Jarno cpu="s390x" 199d66ed0eaSAurelien Jarno else 200d66ed0eaSAurelien Jarno cpu="s390" 201d66ed0eaSAurelien Jarno fi 202fdf7ed96Smalcelse 203fdf7ed96Smalc cpu=`uname -m` 204ac0df51dSaliguorifi 205ac0df51dSaliguori 2065327cf48Sbellardtarget_list="" 2077d13299dSbellardcase "$cpu" in 208afa05235SAurelien Jarno alpha|cris|ia64|m68k|microblaze|ppc|ppc64|sparc64) 209ea8f20f8SJuan Quintela cpu="$cpu" 210ea8f20f8SJuan Quintela ;; 2117d13299dSbellard i386|i486|i586|i686|i86pc|BePC) 21297a847bcSbellard cpu="i386" 2137d13299dSbellard ;; 214aaa5fa14Saurel32 x86_64|amd64) 215aaa5fa14Saurel32 cpu="x86_64" 216aaa5fa14Saurel32 ;; 217ba68055eSbellard armv*b) 218808c4954Sbellard cpu="armv4b" 219808c4954Sbellard ;; 220ba68055eSbellard armv*l) 2217d13299dSbellard cpu="armv4l" 2227d13299dSbellard ;; 223f54b3f92Saurel32 parisc|parisc64) 224f54b3f92Saurel32 cpu="hppa" 225f54b3f92Saurel32 ;; 226afa05235SAurelien Jarno mips*) 227afa05235SAurelien Jarno cpu="mips" 228afa05235SAurelien Jarno ;; 22924e804ecSAlexander Graf s390) 230fb3e5849Sbellard cpu="s390" 231fb3e5849Sbellard ;; 23224e804ecSAlexander Graf s390x) 23324e804ecSAlexander Graf cpu="s390x" 23424e804ecSAlexander Graf ;; 2353142255cSblueswir1 sparc|sun4[cdmuv]) 236ae228531Sbellard cpu="sparc" 237ae228531Sbellard ;; 2387d13299dSbellard *) 239a447d4dcSPaolo Bonzini echo "Unsupported CPU = $cpu" 240a447d4dcSPaolo Bonzini exit 1 2417d13299dSbellard ;; 2427d13299dSbellardesac 243e2d52ad3SJuan Quintela 2443a3fb96dSStefan Weil# Default value for a variable defining feature "foo". 2453a3fb96dSStefan Weil# * foo="no" feature will only be used if --enable-foo arg is given 2463a3fb96dSStefan Weil# * foo="" feature will be searched for, and if found, will be used 2473a3fb96dSStefan Weil# unless --disable-foo is given 2483a3fb96dSStefan Weil# * foo="yes" this value will only be set by --enable-foo flag. 2493a3fb96dSStefan Weil# feature will searched for, 2503a3fb96dSStefan Weil# if not found, configure exits with error 251e2d52ad3SJuan Quintela# 2523a3fb96dSStefan Weil# Always add --enable-foo and --disable-foo command line args. 2533a3fb96dSStefan Weil# Distributions want to ensure that several features are compiled in, and it 2543a3fb96dSStefan Weil# is impossible without a --enable-foo that exits if a feature is not found. 255e2d52ad3SJuan Quintela 256a20a6f46SJuan Quintelabluez="" 2574ffcedb6SJuan Quintelabrlapi="" 258788c8196SJuan Quintelacurl="" 259c584a6d0SJuan Quintelacurses="" 260a25dba17SJuan Quinteladocs="" 2612df87df7SJuan Quintelafdt="" 262b31a0277SJuan Quintelakvm="" 263dae5079aSJan Kiszkakvm_para="" 264b0a47e79SJuan Quintelanptl="" 265c4198157SJuan Quintelasdl="" 266dfffc653SJuan Quintelasparse="no" 267ee682d27SStefan Weiluuid="" 268dfb278bdSJuan Quintelavde="" 2691be10ad2SJuan Quintelavnc_tls="" 270ea784e3bSJuan Quintelavnc_sasl="" 2712f6f5c7aSCorentin Charyvnc_jpeg="" 272*efe556adSCorentin Charyvnc_png="" 273fc321b4bSJuan Quintelaxen="" 2745c6c3a6cSChristoph Hellwiglinux_aio="" 275758e8e38SVenkateswararao Jujjuri (JV)attr="" 276d5970055SMichael S. Tsirkinvhost_net="" 277dfb278bdSJuan Quintela 2787d13299dSbellardgprof="no" 279f8393946Saurel32debug_tcg="no" 280b4475aa2SLuiz Capitulinodebug_mon="no" 281f3d08ee6SPaul Brookdebug="no" 2821625af87Saliguoristrip_opt="yes" 2837d13299dSbellardbigendian="no" 28467b915a5Sbellardmingw32="no" 28567b915a5SbellardEXESUF="" 286683035deSPaolo Bonziniprefix="/usr/local" 287683035deSPaolo Bonzinimandir="\${prefix}/share/man" 288683035deSPaolo Bonzinidatadir="\${prefix}/share/qemu" 289683035deSPaolo Bonzinidocdir="\${prefix}/share/doc/qemu" 290683035deSPaolo Bonzinibindir="\${prefix}/bin" 291683035deSPaolo Bonzinisysconfdir="\${prefix}/etc" 292683035deSPaolo Bonziniconfsuffix="/qemu" 293443f1376Sbellardslirp="yes" 294102a52e4Sbellardfmod_lib="" 295102a52e4Sbellardfmod_inc="" 2962f6a1ab0Sblueswir1oss_lib="" 297b1a550a0Spbrookbsd="no" 2985327cf48Sbellardlinux="no" 299d2c7c9b8Sblueswir1solaris="no" 30005c2a3e7Sbellardprofiler="no" 3015b0753e0Sbellardcocoa="no" 3020a8e90f4Spbrooksoftmmu="yes" 303831b7825Sthslinux_user="no" 304831b7825Sthsdarwin_user="no" 30584778508Sblueswir1bsd_user="no" 306379f6698SPaul Brookguest_base="" 307c5937220Spbrookuname_release="" 308e5d355d1Saliguoriio_thread="no" 3098ff9cbf7Smalcmixemu="no" 310eac30262Saliguorikerneldir="" 311b29fe3edSmalcaix="no" 31277755340Sthsblobs="yes" 3134a19f1ecSpbrookpkgversion="" 3145495ed11SLuiz Capitulinocheck_utests="no" 31534005a00SKirill A. Shutemovuser_pie="no" 31620ff6c80SAnthony Liguorizero_malloc="" 3177d13299dSbellard 3187d13299dSbellard# OS specific 319ac0df51dSaliguoriif check_define __linux__ ; then 320ac0df51dSaliguori targetos="Linux" 321ac0df51dSaliguorielif check_define _WIN32 ; then 322ac0df51dSaliguori targetos='MINGW32' 323169dc5d3Sblueswir1elif check_define __OpenBSD__ ; then 324169dc5d3Sblueswir1 targetos='OpenBSD' 325169dc5d3Sblueswir1elif check_define __sun__ ; then 326169dc5d3Sblueswir1 targetos='SunOS' 327ac0df51dSaliguorielse 3287d13299dSbellard targetos=`uname -s` 329ac0df51dSaliguorifi 3300dbfc675SJuan Quintela 3317d13299dSbellardcase $targetos in 332c326e0afSbellardCYGWIN*) 333c326e0afSbellard mingw32="yes" 334a558ee17SJuan Quintela QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS" 335d5631638Smalc audio_possible_drivers="winwave sdl" 336d5631638Smalc audio_drv_list="winwave" 337c326e0afSbellard;; 33867b915a5SbellardMINGW32*) 33967b915a5Sbellard mingw32="yes" 340d5631638Smalc audio_possible_drivers="winwave dsound sdl fmod" 341d5631638Smalc audio_drv_list="winwave" 34267b915a5Sbellard;; 3435c40d2bdSthsGNU/kFreeBSD) 344a167ba50SAurelien Jarno bsd="yes" 3450c58ac1cSmalc audio_drv_list="oss" 346f34af52cSaurel32 audio_possible_drivers="oss sdl esd pa" 3475c40d2bdSths;; 3487d3505c5SbellardFreeBSD) 3497d3505c5Sbellard bsd="yes" 350a167ba50SAurelien Jarno make="gmake" 3510c58ac1cSmalc audio_drv_list="oss" 352f34af52cSaurel32 audio_possible_drivers="oss sdl esd pa" 353f01576f1SJuergen Lock # needed for kinfo_getvmmap(3) in libutil.h 354f01576f1SJuergen Lock LIBS="-lutil $LIBS" 3557d3505c5Sbellard;; 356c5e97233Sblueswir1DragonFly) 357c5e97233Sblueswir1 bsd="yes" 358a167ba50SAurelien Jarno make="gmake" 359c5e97233Sblueswir1 audio_drv_list="oss" 360c5e97233Sblueswir1 audio_possible_drivers="oss sdl esd pa" 361c5e97233Sblueswir1;; 3627d3505c5SbellardNetBSD) 3637d3505c5Sbellard bsd="yes" 364a167ba50SAurelien Jarno make="gmake" 3650c58ac1cSmalc audio_drv_list="oss" 366c2de5c91Smalc audio_possible_drivers="oss sdl esd" 3678ef92a88Sblueswir1 oss_lib="-lossaudio" 3687d3505c5Sbellard;; 3697d3505c5SbellardOpenBSD) 3707d3505c5Sbellard bsd="yes" 371a167ba50SAurelien Jarno make="gmake" 3720c58ac1cSmalc audio_drv_list="oss" 373c2de5c91Smalc audio_possible_drivers="oss sdl esd" 3742f6a1ab0Sblueswir1 oss_lib="-lossaudio" 3757d3505c5Sbellard;; 37683fb7adfSbellardDarwin) 37783fb7adfSbellard bsd="yes" 37883fb7adfSbellard darwin="yes" 3790dbfc675SJuan Quintela # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can 3800dbfc675SJuan Quintela # run 64-bit userspace code 381aab8588aSmalc if [ "$cpu" = "i386" ] ; then 3821b0f9cc2Saliguori is_x86_64=`sysctl -n hw.optional.x86_64` 383aab8588aSmalc [ "$is_x86_64" = "1" ] && cpu=x86_64 3841b0f9cc2Saliguori fi 3851b0f9cc2Saliguori if [ "$cpu" = "x86_64" ] ; then 386a558ee17SJuan Quintela QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS" 3870c439cbfSJuan Quintela LDFLAGS="-arch x86_64 $LDFLAGS" 3881b0f9cc2Saliguori else 389a558ee17SJuan Quintela QEMU_CFLAGS="-mdynamic-no-pic $QEMU_CFLAGS" 3901b0f9cc2Saliguori fi 391831b7825Sths darwin_user="yes" 392fd677642Sths cocoa="yes" 3930c58ac1cSmalc audio_drv_list="coreaudio" 394c2de5c91Smalc audio_possible_drivers="coreaudio sdl fmod" 3950c439cbfSJuan Quintela LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS" 3967973f21cSJuan Quintela libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu" 39783fb7adfSbellard;; 398ec530c81SbellardSunOS) 399ec530c81Sbellard solaris="yes" 400c2b84fabSths make="gmake" 401c2b84fabSths install="ginstall" 402fa58948dSBlue Swirl ld="gld" 4030475a5caSths needs_libsunmath="no" 404c2b84fabSths solarisrev=`uname -r | cut -f2 -d.` 405ef18c883Sths # have to select again, because `uname -m` returns i86pc 406ef18c883Sths # even on an x86_64 box. 407ef18c883Sths solariscpu=`isainfo -k` 408ef18c883Sths if test "${solariscpu}" = "amd64" ; then 409ef18c883Sths cpu="x86_64" 410ef18c883Sths fi 411c2b84fabSths if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 4120475a5caSths if test "$solarisrev" -le 9 ; then 4130475a5caSths if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then 4140475a5caSths needs_libsunmath="yes" 415f14bfdf9SJuan Quintela QEMU_CFLAGS="-I/opt/SUNWspro/prod/include/cc $QEMU_CFLAGS" 416f14bfdf9SJuan Quintela LDFLAGS="-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib $LDFLAGS" 417f14bfdf9SJuan Quintela LIBS="-lsunmath $LIBS" 4180475a5caSths else 4190475a5caSths echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without" 4200475a5caSths echo "libsunmath from the Sun Studio compilers tools, due to a lack of" 4210475a5caSths echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86" 4220475a5caSths echo "Studio 11 can be downloaded from www.sun.com." 4230475a5caSths exit 1 4240475a5caSths fi 4250475a5caSths fi 42686b2bd93Sths fi 4276b4d2ba1Sths if test -f /usr/include/sys/soundcard.h ; then 4280c58ac1cSmalc audio_drv_list="oss" 4296b4d2ba1Sths fi 430c2de5c91Smalc audio_possible_drivers="oss sdl" 431d741429aSBlue Swirl# needed for CMSG_ macros in sys/socket.h 432d741429aSBlue Swirl QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS" 433d741429aSBlue Swirl# needed for TIOCWIN* defines in termios.h 434d741429aSBlue Swirl QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS" 435a558ee17SJuan Quintela QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS" 436e174c0bbSJuan Quintela LIBS="-lsocket -lnsl -lresolv $LIBS" 437ec530c81Sbellard;; 438b29fe3edSmalcAIX) 439b29fe3edSmalc aix="yes" 440b29fe3edSmalc make="gmake" 441b29fe3edSmalc;; 442fb065187Sbellard*) 4430c58ac1cSmalc audio_drv_list="oss" 444b8e59f18Smalc audio_possible_drivers="oss alsa sdl esd pa" 4455327cf48Sbellard linux="yes" 446831b7825Sths linux_user="yes" 44768063649Sblueswir1 usb="linux" 44807f4ddbfSbellard if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 449c2de5c91Smalc audio_possible_drivers="$audio_possible_drivers fmod" 450c9ec1fe4Sbellard fi 451fb065187Sbellard;; 4527d13299dSbellardesac 4537d13299dSbellard 4547d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 455b1a550a0Spbrook if [ "$darwin" != "yes" ] ; then 45668063649Sblueswir1 usb="bsd" 45783fb7adfSbellard fi 45884778508Sblueswir1 bsd_user="yes" 4597d3505c5Sbellardfi 4607d3505c5Sbellard 4613457a3f8SJuan Quintelaif test "$mingw32" = "yes" ; then 4623457a3f8SJuan Quintela EXESUF=".exe" 463a558ee17SJuan Quintela QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS" 464e94a7936SStefan Weil # enable C99/POSIX format strings (needs mingw32-runtime 3.15 or later) 465e94a7936SStefan Weil QEMU_CFLAGS="-D__USE_MINGW_ANSI_STDIO=1 $QEMU_CFLAGS" 466884044aaSJuan Quintela LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS" 467683035deSPaolo Bonzini prefix="c:/Program Files/Qemu" 468683035deSPaolo Bonzini mandir="\${prefix}" 469683035deSPaolo Bonzini datadir="\${prefix}" 470683035deSPaolo Bonzini docdir="\${prefix}" 471683035deSPaolo Bonzini bindir="\${prefix}" 472683035deSPaolo Bonzini sysconfdir="\${prefix}" 473683035deSPaolo Bonzini confsuffix="" 4743457a3f8SJuan Quintelafi 4753457a3f8SJuan Quintela 4767d13299dSbellard# find source path 477ad064840Spbrooksource_path=`dirname "$0"` 47859faef3aSbalrogsource_path_used="no" 47959faef3aSbalrogworkdir=`pwd` 480ad064840Spbrookif [ -z "$source_path" ]; then 48159faef3aSbalrog source_path=$workdir 482ad064840Spbrookelse 483ad064840Spbrook source_path=`cd "$source_path"; pwd` 4847d13299dSbellardfi 485724db118Spbrook[ -f "$workdir/vl.c" ] || source_path_used="yes" 4867d13299dSbellard 487487fefdbSAnthony Liguoriwerror="" 48885aa5189Sbellard 4897d13299dSbellardfor opt do 490a46e4035Spbrook optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 4917d13299dSbellard case "$opt" in 4922efc3265Sbellard --help|-h) show_help=yes 4932efc3265Sbellard ;; 494b1a550a0Spbrook --prefix=*) prefix="$optarg" 4957d13299dSbellard ;; 496b1a550a0Spbrook --interp-prefix=*) interp_prefix="$optarg" 49732ce6337Sbellard ;; 498b1a550a0Spbrook --source-path=*) source_path="$optarg" 499ad064840Spbrook source_path_used="yes" 5007d13299dSbellard ;; 501ac0df51dSaliguori --cross-prefix=*) 5027d13299dSbellard ;; 503ac0df51dSaliguori --cc=*) 5047d13299dSbellard ;; 505b1a550a0Spbrook --host-cc=*) host_cc="$optarg" 50683469015Sbellard ;; 507b1a550a0Spbrook --make=*) make="$optarg" 5087d13299dSbellard ;; 5096a882643Spbrook --install=*) install="$optarg" 5106a882643Spbrook ;; 511e2a2ed06SJuan Quintela --extra-cflags=*) 5127d13299dSbellard ;; 513e2a2ed06SJuan Quintela --extra-ldflags=*) 5147d13299dSbellard ;; 5152ff6b91eSJuan Quintela --cpu=*) 5167d13299dSbellard ;; 517b1a550a0Spbrook --target-list=*) target_list="$optarg" 518de83cd02Sbellard ;; 5197d13299dSbellard --enable-gprof) gprof="yes" 5207d13299dSbellard ;; 52179427693SLoïc Minier --static) 52279427693SLoïc Minier static="yes" 52379427693SLoïc Minier LDFLAGS="-static $LDFLAGS" 52443ce4dfeSbellard ;; 5250b24e75fSPaolo Bonzini --mandir=*) mandir="$optarg" 5260b24e75fSPaolo Bonzini ;; 5270b24e75fSPaolo Bonzini --bindir=*) bindir="$optarg" 5280b24e75fSPaolo Bonzini ;; 5290b24e75fSPaolo Bonzini --datadir=*) datadir="$optarg" 5300b24e75fSPaolo Bonzini ;; 5310b24e75fSPaolo Bonzini --docdir=*) docdir="$optarg" 5320b24e75fSPaolo Bonzini ;; 533ca2fb938SAndre Przywara --sysconfdir=*) sysconfdir="$optarg" 53407381cc1SAnthony Liguori ;; 53597a847bcSbellard --disable-sdl) sdl="no" 53697a847bcSbellard ;; 537c4198157SJuan Quintela --enable-sdl) sdl="yes" 538c4198157SJuan Quintela ;; 539b1a550a0Spbrook --fmod-lib=*) fmod_lib="$optarg" 540102a52e4Sbellard ;; 541c2de5c91Smalc --fmod-inc=*) fmod_inc="$optarg" 542c2de5c91Smalc ;; 5432f6a1ab0Sblueswir1 --oss-lib=*) oss_lib="$optarg" 5442f6a1ab0Sblueswir1 ;; 5452fa7d3bfSmalc --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'` 5460c58ac1cSmalc ;; 5470c58ac1cSmalc --audio-drv-list=*) audio_drv_list="$optarg" 5480c58ac1cSmalc ;; 549eb852011SMarkus Armbruster --block-drv-whitelist=*) block_drv_whitelist=`echo "$optarg" | sed -e 's/,/ /g'` 550eb852011SMarkus Armbruster ;; 551f8393946Saurel32 --enable-debug-tcg) debug_tcg="yes" 552f8393946Saurel32 ;; 553f8393946Saurel32 --disable-debug-tcg) debug_tcg="no" 554f8393946Saurel32 ;; 555b4475aa2SLuiz Capitulino --enable-debug-mon) debug_mon="yes" 556b4475aa2SLuiz Capitulino ;; 557b4475aa2SLuiz Capitulino --disable-debug-mon) debug_mon="no" 558b4475aa2SLuiz Capitulino ;; 559f3d08ee6SPaul Brook --enable-debug) 560f3d08ee6SPaul Brook # Enable debugging options that aren't excessively noisy 561f3d08ee6SPaul Brook debug_tcg="yes" 562b4475aa2SLuiz Capitulino debug_mon="yes" 563f3d08ee6SPaul Brook debug="yes" 564f3d08ee6SPaul Brook strip_opt="no" 565f3d08ee6SPaul Brook ;; 56603b4fe7dSaliguori --enable-sparse) sparse="yes" 56703b4fe7dSaliguori ;; 56803b4fe7dSaliguori --disable-sparse) sparse="no" 56903b4fe7dSaliguori ;; 5701625af87Saliguori --disable-strip) strip_opt="no" 5711625af87Saliguori ;; 5728d5d2d4cSths --disable-vnc-tls) vnc_tls="no" 5738d5d2d4cSths ;; 5741be10ad2SJuan Quintela --enable-vnc-tls) vnc_tls="yes" 5751be10ad2SJuan Quintela ;; 5762f9606b3Saliguori --disable-vnc-sasl) vnc_sasl="no" 5772f9606b3Saliguori ;; 578ea784e3bSJuan Quintela --enable-vnc-sasl) vnc_sasl="yes" 579ea784e3bSJuan Quintela ;; 5802f6f5c7aSCorentin Chary --disable-vnc-jpeg) vnc_jpeg="no" 5812f6f5c7aSCorentin Chary ;; 5822f6f5c7aSCorentin Chary --enable-vnc-jpeg) vnc_jpeg="yes" 5832f6f5c7aSCorentin Chary ;; 584*efe556adSCorentin Chary --disable-vnc-png) vnc_png="no" 585*efe556adSCorentin Chary ;; 586*efe556adSCorentin Chary --enable-vnc-png) vnc_png="yes" 587*efe556adSCorentin Chary ;; 588443f1376Sbellard --disable-slirp) slirp="no" 589c20709aaSbellard ;; 590ee682d27SStefan Weil --disable-uuid) uuid="no" 591ee682d27SStefan Weil ;; 592ee682d27SStefan Weil --enable-uuid) uuid="yes" 593ee682d27SStefan Weil ;; 594e0e6c8c0Saliguori --disable-vde) vde="no" 5958a16d273Sths ;; 596dfb278bdSJuan Quintela --enable-vde) vde="yes" 597dfb278bdSJuan Quintela ;; 598e37630caSaliguori --disable-xen) xen="no" 599e37630caSaliguori ;; 600fc321b4bSJuan Quintela --enable-xen) xen="yes" 601fc321b4bSJuan Quintela ;; 6022e4d9fb1Saurel32 --disable-brlapi) brlapi="no" 6032e4d9fb1Saurel32 ;; 6044ffcedb6SJuan Quintela --enable-brlapi) brlapi="yes" 6054ffcedb6SJuan Quintela ;; 606fb599c9aSbalrog --disable-bluez) bluez="no" 607fb599c9aSbalrog ;; 608a20a6f46SJuan Quintela --enable-bluez) bluez="yes" 609a20a6f46SJuan Quintela ;; 6107ba1e619Saliguori --disable-kvm) kvm="no" 6117ba1e619Saliguori ;; 612b31a0277SJuan Quintela --enable-kvm) kvm="yes" 613b31a0277SJuan Quintela ;; 61405c2a3e7Sbellard --enable-profiler) profiler="yes" 61505c2a3e7Sbellard ;; 616c2de5c91Smalc --enable-cocoa) 617c2de5c91Smalc cocoa="yes" ; 618c2de5c91Smalc sdl="no" ; 619c2de5c91Smalc audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`" 6205b0753e0Sbellard ;; 621cad25d69Spbrook --disable-system) softmmu="no" 6220a8e90f4Spbrook ;; 623cad25d69Spbrook --enable-system) softmmu="yes" 6240a8e90f4Spbrook ;; 6250953a80fSZachary Amsden --disable-user) 6260953a80fSZachary Amsden linux_user="no" ; 6270953a80fSZachary Amsden bsd_user="no" ; 6280953a80fSZachary Amsden darwin_user="no" 6290953a80fSZachary Amsden ;; 6300953a80fSZachary Amsden --enable-user) ;; 631831b7825Sths --disable-linux-user) linux_user="no" 6320a8e90f4Spbrook ;; 633831b7825Sths --enable-linux-user) linux_user="yes" 634831b7825Sths ;; 635831b7825Sths --disable-darwin-user) darwin_user="no" 636831b7825Sths ;; 637831b7825Sths --enable-darwin-user) darwin_user="yes" 6380a8e90f4Spbrook ;; 63984778508Sblueswir1 --disable-bsd-user) bsd_user="no" 64084778508Sblueswir1 ;; 64184778508Sblueswir1 --enable-bsd-user) bsd_user="yes" 64284778508Sblueswir1 ;; 643379f6698SPaul Brook --enable-guest-base) guest_base="yes" 644379f6698SPaul Brook ;; 645379f6698SPaul Brook --disable-guest-base) guest_base="no" 646379f6698SPaul Brook ;; 64734005a00SKirill A. Shutemov --enable-user-pie) user_pie="yes" 64834005a00SKirill A. Shutemov ;; 64934005a00SKirill A. Shutemov --disable-user-pie) user_pie="no" 65034005a00SKirill A. Shutemov ;; 651c5937220Spbrook --enable-uname-release=*) uname_release="$optarg" 652c5937220Spbrook ;; 6533142255cSblueswir1 --sparc_cpu=*) 6543142255cSblueswir1 ;; 65585aa5189Sbellard --enable-werror) werror="yes" 65685aa5189Sbellard ;; 65785aa5189Sbellard --disable-werror) werror="no" 65885aa5189Sbellard ;; 6594d3b6f6eSbalrog --disable-curses) curses="no" 6604d3b6f6eSbalrog ;; 661c584a6d0SJuan Quintela --enable-curses) curses="yes" 662c584a6d0SJuan Quintela ;; 663769ce76dSAlexander Graf --disable-curl) curl="no" 664769ce76dSAlexander Graf ;; 665788c8196SJuan Quintela --enable-curl) curl="yes" 666788c8196SJuan Quintela ;; 6672df87df7SJuan Quintela --disable-fdt) fdt="no" 6682df87df7SJuan Quintela ;; 6692df87df7SJuan Quintela --enable-fdt) fdt="yes" 6702df87df7SJuan Quintela ;; 6715495ed11SLuiz Capitulino --disable-check-utests) check_utests="no" 6725495ed11SLuiz Capitulino ;; 6735495ed11SLuiz Capitulino --enable-check-utests) check_utests="yes" 6745495ed11SLuiz Capitulino ;; 675bd0c5661Spbrook --disable-nptl) nptl="no" 676bd0c5661Spbrook ;; 677b0a47e79SJuan Quintela --enable-nptl) nptl="yes" 678b0a47e79SJuan Quintela ;; 6798ff9cbf7Smalc --enable-mixemu) mixemu="yes" 6808ff9cbf7Smalc ;; 6815c6c3a6cSChristoph Hellwig --disable-linux-aio) linux_aio="no" 6825c6c3a6cSChristoph Hellwig ;; 6835c6c3a6cSChristoph Hellwig --enable-linux-aio) linux_aio="yes" 6845c6c3a6cSChristoph Hellwig ;; 685758e8e38SVenkateswararao Jujjuri (JV) --disable-attr) attr="no" 686758e8e38SVenkateswararao Jujjuri (JV) ;; 687758e8e38SVenkateswararao Jujjuri (JV) --enable-attr) attr="yes" 688758e8e38SVenkateswararao Jujjuri (JV) ;; 689e5d355d1Saliguori --enable-io-thread) io_thread="yes" 690e5d355d1Saliguori ;; 69177755340Sths --disable-blobs) blobs="no" 69277755340Sths ;; 693eac30262Saliguori --kerneldir=*) kerneldir="$optarg" 694eac30262Saliguori ;; 6954a19f1ecSpbrook --with-pkgversion=*) pkgversion=" ($optarg)" 6964a19f1ecSpbrook ;; 697a25dba17SJuan Quintela --disable-docs) docs="no" 69870ec5dc0SAnthony Liguori ;; 699a25dba17SJuan Quintela --enable-docs) docs="yes" 70083a3ab8bSJuan Quintela ;; 701d5970055SMichael S. Tsirkin --disable-vhost-net) vhost_net="no" 702d5970055SMichael S. Tsirkin ;; 703d5970055SMichael S. Tsirkin --enable-vhost-net) vhost_net="yes" 704d5970055SMichael S. Tsirkin ;; 7056bde81cbSPaolo Bonzini --*dir) 7066bde81cbSPaolo Bonzini ;; 7077f1559c6Sbalrog *) echo "ERROR: unknown option $opt"; show_help="yes" 7087f1559c6Sbalrog ;; 7097d13299dSbellard esac 7107d13299dSbellarddone 7117d13299dSbellard 7123142255cSblueswir1# 7133142255cSblueswir1# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right 714a558ee17SJuan Quintela# QEMU_CFLAGS/LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit) 7153142255cSblueswir1# 716379f6698SPaul Brookhost_guest_base="no" 71740293e58Sbellardcase "$cpu" in 718ed968ff1SJuan Quintela sparc) case $sparc_cpu in 719ed968ff1SJuan Quintela v7|v8) 720a558ee17SJuan Quintela QEMU_CFLAGS="-mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS" 721ed968ff1SJuan Quintela ;; 722ed968ff1SJuan Quintela v8plus|v8plusa) 723a558ee17SJuan Quintela QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS" 724ed968ff1SJuan Quintela ;; 725ed968ff1SJuan Quintela *) # sparc_cpu not defined in the command line 726a558ee17SJuan Quintela QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS" 727ed968ff1SJuan Quintela esac 7280c439cbfSJuan Quintela LDFLAGS="-m32 $LDFLAGS" 729a558ee17SJuan Quintela QEMU_CFLAGS="-m32 -ffixed-g2 -ffixed-g3 $QEMU_CFLAGS" 730762e8230Sblueswir1 if test "$solaris" = "no" ; then 731a558ee17SJuan Quintela QEMU_CFLAGS="-ffixed-g1 -ffixed-g6 $QEMU_CFLAGS" 732c81da56eSJuan Quintela helper_cflags="-ffixed-i0" 733762e8230Sblueswir1 fi 7343142255cSblueswir1 ;; 735ed968ff1SJuan Quintela sparc64) 736a558ee17SJuan Quintela QEMU_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS" 7370c439cbfSJuan Quintela LDFLAGS="-m64 $LDFLAGS" 738a558ee17SJuan Quintela QEMU_CFLAGS="-ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS" 739ed968ff1SJuan Quintela if test "$solaris" != "no" ; then 740a558ee17SJuan Quintela QEMU_CFLAGS="-ffixed-g1 $QEMU_CFLAGS" 741762e8230Sblueswir1 fi 7423142255cSblueswir1 ;; 74376d83bdeSths s390) 74428d7cc49SRichard Henderson QEMU_CFLAGS="-m31 -march=z990 $QEMU_CFLAGS" 74528d7cc49SRichard Henderson LDFLAGS="-m31 $LDFLAGS" 74648bb3750SRichard Henderson host_guest_base="yes" 74728d7cc49SRichard Henderson ;; 74828d7cc49SRichard Henderson s390x) 74928d7cc49SRichard Henderson QEMU_CFLAGS="-m64 -march=z990 $QEMU_CFLAGS" 75028d7cc49SRichard Henderson LDFLAGS="-m64 $LDFLAGS" 75148bb3750SRichard Henderson host_guest_base="yes" 75276d83bdeSths ;; 75340293e58Sbellard i386) 754a558ee17SJuan Quintela QEMU_CFLAGS="-m32 $QEMU_CFLAGS" 7550c439cbfSJuan Quintela LDFLAGS="-m32 $LDFLAGS" 756c81da56eSJuan Quintela helper_cflags="-fomit-frame-pointer" 757379f6698SPaul Brook host_guest_base="yes" 75840293e58Sbellard ;; 75940293e58Sbellard x86_64) 760a558ee17SJuan Quintela QEMU_CFLAGS="-m64 $QEMU_CFLAGS" 7610c439cbfSJuan Quintela LDFLAGS="-m64 $LDFLAGS" 762379f6698SPaul Brook host_guest_base="yes" 763379f6698SPaul Brook ;; 764379f6698SPaul Brook arm*) 765379f6698SPaul Brook host_guest_base="yes" 76640293e58Sbellard ;; 767f6548c0aSmalc ppc*) 768f6548c0aSmalc host_guest_base="yes" 769f6548c0aSmalc ;; 770cc01cc8eSAurelien Jarno mips*) 771cc01cc8eSAurelien Jarno host_guest_base="yes" 772cc01cc8eSAurelien Jarno ;; 773477ba620SAurelien Jarno ia64*) 774477ba620SAurelien Jarno host_guest_base="yes" 775477ba620SAurelien Jarno ;; 776fd76e73aSRichard Henderson hppa*) 777fd76e73aSRichard Henderson host_guest_base="yes" 778fd76e73aSRichard Henderson ;; 7793142255cSblueswir1esac 7803142255cSblueswir1 781379f6698SPaul Brook[ -z "$guest_base" ] && guest_base="$host_guest_base" 782379f6698SPaul Brook 783af5db58eSpbrookif test x"$show_help" = x"yes" ; then 784af5db58eSpbrookcat << EOF 785af5db58eSpbrook 786af5db58eSpbrookUsage: configure [options] 787af5db58eSpbrookOptions: [defaults in brackets after descriptions] 788af5db58eSpbrook 789af5db58eSpbrookEOF 790af5db58eSpbrookecho "Standard options:" 791af5db58eSpbrookecho " --help print this message" 792af5db58eSpbrookecho " --prefix=PREFIX install in PREFIX [$prefix]" 793af5db58eSpbrookecho " --interp-prefix=PREFIX where to find shared libraries, etc." 794af5db58eSpbrookecho " use %M for cpu name [$interp_prefix]" 795af5db58eSpbrookecho " --target-list=LIST set target list [$target_list]" 796af5db58eSpbrookecho "" 797af5db58eSpbrookecho "Advanced options (experts only):" 798af5db58eSpbrookecho " --source-path=PATH path of source code [$source_path]" 799af5db58eSpbrookecho " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" 800af5db58eSpbrookecho " --cc=CC use C compiler CC [$cc]" 8010bfe8cc0SPaolo Bonziniecho " --host-cc=CC use C compiler CC [$host_cc] for code run at" 8020bfe8cc0SPaolo Bonziniecho " build time" 803a558ee17SJuan Quintelaecho " --extra-cflags=CFLAGS append extra C compiler flags QEMU_CFLAGS" 804e3fc14c3SJan Kiszkaecho " --extra-ldflags=LDFLAGS append extra linker flags LDFLAGS" 805af5db58eSpbrookecho " --make=MAKE use specified make [$make]" 8066a882643Spbrookecho " --install=INSTALL use specified install [$install]" 807af5db58eSpbrookecho " --static enable static build [$static]" 8080b24e75fSPaolo Bonziniecho " --mandir=PATH install man pages in PATH" 8090b24e75fSPaolo Bonziniecho " --datadir=PATH install firmware in PATH" 8100b24e75fSPaolo Bonziniecho " --docdir=PATH install documentation in PATH" 8110b24e75fSPaolo Bonziniecho " --bindir=PATH install binaries in PATH" 8120b24e75fSPaolo Bonziniecho " --sysconfdir=PATH install config in PATH/qemu" 813f8393946Saurel32echo " --enable-debug-tcg enable TCG debugging" 814f8393946Saurel32echo " --disable-debug-tcg disable TCG debugging (default)" 81509695a4aSStefan Weilecho " --enable-debug enable common debug build options" 816890b1658Saliguoriecho " --enable-sparse enable sparse checker" 817890b1658Saliguoriecho " --disable-sparse disable sparse checker (default)" 8181625af87Saliguoriecho " --disable-strip disable stripping binaries" 81985aa5189Sbellardecho " --disable-werror disable compilation abort on warning" 820fe8f78e4Sbalrogecho " --disable-sdl disable SDL" 821c4198157SJuan Quintelaecho " --enable-sdl enable SDL" 822af5db58eSpbrookecho " --enable-cocoa enable COCOA (Mac OS X only)" 823c2de5c91Smalcecho " --audio-drv-list=LIST set audio drivers list:" 824c2de5c91Smalcecho " Available drivers: $audio_possible_drivers" 8254c9b53e3Smalcecho " --audio-card-list=LIST set list of emulated audio cards [$audio_card_list]" 8264c9b53e3Smalcecho " Available cards: $audio_possible_cards" 827eb852011SMarkus Armbrusterecho " --block-drv-whitelist=L set block driver whitelist" 828eb852011SMarkus Armbrusterecho " (affects only QEMU, not qemu-img)" 8298ff9cbf7Smalcecho " --enable-mixemu enable mixer emulation" 830e37630caSaliguoriecho " --disable-xen disable xen backend driver support" 831fc321b4bSJuan Quintelaecho " --enable-xen enable xen backend driver support" 8322e4d9fb1Saurel32echo " --disable-brlapi disable BrlAPI" 8334ffcedb6SJuan Quintelaecho " --enable-brlapi enable BrlAPI" 8348d5d2d4cSthsecho " --disable-vnc-tls disable TLS encryption for VNC server" 8351be10ad2SJuan Quintelaecho " --enable-vnc-tls enable TLS encryption for VNC server" 8362f9606b3Saliguoriecho " --disable-vnc-sasl disable SASL encryption for VNC server" 837ea784e3bSJuan Quintelaecho " --enable-vnc-sasl enable SASL encryption for VNC server" 8382f6f5c7aSCorentin Charyecho " --disable-vnc-jpeg disable JPEG lossy compression for VNC server" 8392f6f5c7aSCorentin Charyecho " --enable-vnc-jpeg enable JPEG lossy compression for VNC server" 840*efe556adSCorentin Charyecho " --disable-vnc-png disable PNG compression for VNC server" 841*efe556adSCorentin Charyecho " --enable-vnc-png enable PNG compression for VNC server" 842af896aaaSpbrookecho " --disable-curses disable curses output" 843c584a6d0SJuan Quintelaecho " --enable-curses enable curses output" 844769ce76dSAlexander Grafecho " --disable-curl disable curl connectivity" 845788c8196SJuan Quintelaecho " --enable-curl enable curl connectivity" 8462df87df7SJuan Quintelaecho " --disable-fdt disable fdt device tree" 8472df87df7SJuan Quintelaecho " --enable-fdt enable fdt device tree" 8485495ed11SLuiz Capitulinoecho " --disable-check-utests disable check unit-tests" 8495495ed11SLuiz Capitulinoecho " --enable-check-utests enable check unit-tests" 850fb599c9aSbalrogecho " --disable-bluez disable bluez stack connectivity" 851a20a6f46SJuan Quintelaecho " --enable-bluez enable bluez stack connectivity" 8527ba1e619Saliguoriecho " --disable-kvm disable KVM acceleration support" 853b31a0277SJuan Quintelaecho " --enable-kvm enable KVM acceleration support" 854bd0c5661Spbrookecho " --disable-nptl disable usermode NPTL support" 855e5934d33SAndre Przywaraecho " --enable-nptl enable usermode NPTL support" 856af5db58eSpbrookecho " --enable-system enable all system emulation targets" 857af5db58eSpbrookecho " --disable-system disable all system emulation targets" 8580953a80fSZachary Amsdenecho " --enable-user enable supported user emulation targets" 8590953a80fSZachary Amsdenecho " --disable-user disable all user emulation targets" 860831b7825Sthsecho " --enable-linux-user enable all linux usermode emulation targets" 861831b7825Sthsecho " --disable-linux-user disable all linux usermode emulation targets" 862831b7825Sthsecho " --enable-darwin-user enable all darwin usermode emulation targets" 863831b7825Sthsecho " --disable-darwin-user disable all darwin usermode emulation targets" 86484778508Sblueswir1echo " --enable-bsd-user enable all BSD usermode emulation targets" 86584778508Sblueswir1echo " --disable-bsd-user disable all BSD usermode emulation targets" 866379f6698SPaul Brookecho " --enable-guest-base enable GUEST_BASE support for usermode" 867379f6698SPaul Brookecho " emulation targets" 868379f6698SPaul Brookecho " --disable-guest-base disable GUEST_BASE support" 86934005a00SKirill A. Shutemovecho " --enable-user-pie build usermode emulation targets as PIE" 87034005a00SKirill A. Shutemovecho " --disable-user-pie do not build usermode emulation targets as PIE" 871af5db58eSpbrookecho " --fmod-lib path to FMOD library" 872af5db58eSpbrookecho " --fmod-inc path to FMOD includes" 8732f6a1ab0Sblueswir1echo " --oss-lib path to OSS library" 874c5937220Spbrookecho " --enable-uname-release=R Return R for uname -r in usermode emulation" 8753142255cSblueswir1echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9" 876ee682d27SStefan Weilecho " --disable-uuid disable uuid support" 877ee682d27SStefan Weilecho " --enable-uuid enable uuid support" 878e0e6c8c0Saliguoriecho " --disable-vde disable support for vde network" 879dfb278bdSJuan Quintelaecho " --enable-vde enable support for vde network" 8805c6c3a6cSChristoph Hellwigecho " --disable-linux-aio disable Linux AIO support" 8815c6c3a6cSChristoph Hellwigecho " --enable-linux-aio enable Linux AIO support" 882758e8e38SVenkateswararao Jujjuri (JV)echo " --disable-attr disables attr and xattr support" 883758e8e38SVenkateswararao Jujjuri (JV)echo " --enable-attr enable attr and xattr support" 884e5d355d1Saliguoriecho " --enable-io-thread enable IO thread" 88577755340Sthsecho " --disable-blobs disable installing provided firmware blobs" 886eac30262Saliguoriecho " --kerneldir=PATH look for kernel includes in PATH" 887d2807bc9SDirk Ullrichecho " --enable-docs enable documentation build" 888d2807bc9SDirk Ullrichecho " --disable-docs disable documentation build" 889d5970055SMichael S. Tsirkinecho " --disable-vhost-net disable vhost-net acceleration support" 890d5970055SMichael S. Tsirkinecho " --enable-vhost-net enable vhost-net acceleration support" 891af5db58eSpbrookecho "" 8925bf08934Sthsecho "NOTE: The object files are built at the place where configure is launched" 893af5db58eSpbrookexit 1 894af5db58eSpbrookfi 895af5db58eSpbrook 896ec530c81Sbellard# 897ec530c81Sbellard# Solaris specific configure tool chain decisions 898ec530c81Sbellard# 899ec530c81Sbellardif test "$solaris" = "yes" ; then 9006792aa11SLoïc Minier if has $install; then 9016792aa11SLoïc Minier : 9026792aa11SLoïc Minier else 903ec530c81Sbellard echo "Solaris install program not found. Use --install=/usr/ucb/install or" 904ec530c81Sbellard echo "install fileutils from www.blastwave.org using pkg-get -i fileutils" 905ec530c81Sbellard echo "to get ginstall which is used by default (which lives in /opt/csw/bin)" 906ec530c81Sbellard exit 1 907ec530c81Sbellard fi 9086792aa11SLoïc Minier if test "`path_of $install`" = "/usr/sbin/install" ; then 909ec530c81Sbellard echo "Error: Solaris /usr/sbin/install is not an appropriate install program." 910ec530c81Sbellard echo "try ginstall from the GNU fileutils available from www.blastwave.org" 911ec530c81Sbellard echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install" 912ec530c81Sbellard exit 1 913ec530c81Sbellard fi 9146792aa11SLoïc Minier if has ar; then 9156792aa11SLoïc Minier : 9166792aa11SLoïc Minier else 917ec530c81Sbellard echo "Error: No path includes ar" 918ec530c81Sbellard if test -f /usr/ccs/bin/ar ; then 919ec530c81Sbellard echo "Add /usr/ccs/bin to your path and rerun configure" 920ec530c81Sbellard fi 921ec530c81Sbellard exit 1 922ec530c81Sbellard fi 923ec530c81Sbellardfi 924ec530c81Sbellard 925ec530c81Sbellard 9265327cf48Sbellardif test -z "$target_list" ; then 9275327cf48Sbellard# these targets are portable 9280a8e90f4Spbrook if [ "$softmmu" = "yes" ] ; then 9292408a527Saurel32 target_list="\ 9302408a527Saurel32i386-softmmu \ 9312408a527Saurel32x86_64-softmmu \ 9322408a527Saurel32arm-softmmu \ 9332408a527Saurel32cris-softmmu \ 9342408a527Saurel32m68k-softmmu \ 93572b675caSEdgar E. Iglesiasmicroblaze-softmmu \ 9362408a527Saurel32mips-softmmu \ 9372408a527Saurel32mipsel-softmmu \ 9382408a527Saurel32mips64-softmmu \ 9392408a527Saurel32mips64el-softmmu \ 9402408a527Saurel32ppc-softmmu \ 9412408a527Saurel32ppcemb-softmmu \ 9422408a527Saurel32ppc64-softmmu \ 9432408a527Saurel32sh4-softmmu \ 9442408a527Saurel32sh4eb-softmmu \ 9452408a527Saurel32sparc-softmmu \ 9461b64fcaeSIgor V. Kovalenkosparc64-softmmu \ 9472408a527Saurel32" 9480a8e90f4Spbrook fi 9495327cf48Sbellard# the following are Linux specific 950831b7825Sths if [ "$linux_user" = "yes" ] ; then 9512408a527Saurel32 target_list="${target_list}\ 9522408a527Saurel32i386-linux-user \ 9532408a527Saurel32x86_64-linux-user \ 9542408a527Saurel32alpha-linux-user \ 9552408a527Saurel32arm-linux-user \ 9562408a527Saurel32armeb-linux-user \ 9572408a527Saurel32cris-linux-user \ 9582408a527Saurel32m68k-linux-user \ 95972b675caSEdgar E. Iglesiasmicroblaze-linux-user \ 9602408a527Saurel32mips-linux-user \ 9612408a527Saurel32mipsel-linux-user \ 9622408a527Saurel32ppc-linux-user \ 9632408a527Saurel32ppc64-linux-user \ 9642408a527Saurel32ppc64abi32-linux-user \ 9652408a527Saurel32sh4-linux-user \ 9662408a527Saurel32sh4eb-linux-user \ 9672408a527Saurel32sparc-linux-user \ 9682408a527Saurel32sparc64-linux-user \ 9692408a527Saurel32sparc32plus-linux-user \ 9702408a527Saurel32" 971831b7825Sths fi 972831b7825Sths# the following are Darwin specific 973831b7825Sths if [ "$darwin_user" = "yes" ] ; then 9742408a527Saurel32 target_list="$target_list i386-darwin-user ppc-darwin-user " 9755327cf48Sbellard fi 97684778508Sblueswir1# the following are BSD specific 97784778508Sblueswir1 if [ "$bsd_user" = "yes" ] ; then 97884778508Sblueswir1 target_list="${target_list}\ 97931fc12dfSblueswir1i386-bsd-user \ 98031fc12dfSblueswir1x86_64-bsd-user \ 98131fc12dfSblueswir1sparc-bsd-user \ 98284778508Sblueswir1sparc64-bsd-user \ 98384778508Sblueswir1" 98484778508Sblueswir1 fi 9856e20a45fSbellardelse 986b1a550a0Spbrook target_list=`echo "$target_list" | sed -e 's/,/ /g'` 9875327cf48Sbellardfi 9880a8e90f4Spbrookif test -z "$target_list" ; then 9890a8e90f4Spbrook echo "No targets enabled" 9900a8e90f4Spbrook exit 1 9910a8e90f4Spbrookfi 992f55fe278SPaolo Bonzini# see if system emulation was really requested 993f55fe278SPaolo Bonzinicase " $target_list " in 994f55fe278SPaolo Bonzini *"-softmmu "*) softmmu=yes 995f55fe278SPaolo Bonzini ;; 996f55fe278SPaolo Bonzini *) softmmu=no 997f55fe278SPaolo Bonzini ;; 998f55fe278SPaolo Bonziniesac 9995327cf48Sbellard 1000249247c9SJuan Quintelafeature_not_found() { 1001249247c9SJuan Quintela feature=$1 1002249247c9SJuan Quintela 1003249247c9SJuan Quintela echo "ERROR" 1004249247c9SJuan Quintela echo "ERROR: User requested feature $feature" 10059332f6a2SSebastian Herbszt echo "ERROR: configure was not able to find it" 1006249247c9SJuan Quintela echo "ERROR" 1007249247c9SJuan Quintela exit 1; 1008249247c9SJuan Quintela} 1009249247c9SJuan Quintela 10107d13299dSbellardif test -z "$cross_prefix" ; then 10117d13299dSbellard 10127d13299dSbellard# --- 10137d13299dSbellard# big/little endian test 10147d13299dSbellardcat > $TMPC << EOF 10157d13299dSbellard#include <inttypes.h> 10167d13299dSbellardint main(int argc, char ** argv){ 10177d13299dSbellard volatile uint32_t i=0x01234567; 10187d13299dSbellard return (*((uint8_t*)(&i))) == 0x67; 10197d13299dSbellard} 10207d13299dSbellardEOF 10217d13299dSbellard 102252166aa0SJuan Quintelaif compile_prog "" "" ; then 10237d13299dSbellard$TMPE && bigendian="yes" 10247d13299dSbellardelse 10257d13299dSbellardecho big/little test failed 10267d13299dSbellardfi 10277d13299dSbellard 10287d13299dSbellardelse 10297d13299dSbellard 10307d13299dSbellard# if cross compiling, cannot launch a program, so make a static guess 1031ea8f20f8SJuan Quintelacase "$cpu" in 103224e804ecSAlexander Graf armv4b|hppa|m68k|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64) 1033ea8f20f8SJuan Quintela bigendian=yes 1034ea8f20f8SJuan Quintela ;; 1035ea8f20f8SJuan Quintelaesac 10367d13299dSbellard 10377d13299dSbellardfi 10387d13299dSbellard 1039b6853697Sbellard# host long bits test 1040b6853697Sbellardhostlongbits="32" 1041ea8f20f8SJuan Quintelacase "$cpu" in 104224e804ecSAlexander Graf x86_64|alpha|ia64|sparc64|ppc64|s390x) 1043ea8f20f8SJuan Quintela hostlongbits=64 1044ea8f20f8SJuan Quintela ;; 1045ea8f20f8SJuan Quintelaesac 1046b6853697Sbellard 1047b0a47e79SJuan Quintela 1048b0a47e79SJuan Quintela########################################## 1049b0a47e79SJuan Quintela# NPTL probe 1050b0a47e79SJuan Quintela 1051b0a47e79SJuan Quintelaif test "$nptl" != "no" ; then 1052bd0c5661Spbrook cat > $TMPC <<EOF 1053bd0c5661Spbrook#include <sched.h> 105430813ceaSpbrook#include <linux/futex.h> 1055bd0c5661Spbrookvoid foo() 1056bd0c5661Spbrook{ 1057bd0c5661Spbrook#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT) 1058bd0c5661Spbrook#error bork 1059bd0c5661Spbrook#endif 1060bd0c5661Spbrook} 1061bd0c5661SpbrookEOF 1062bd0c5661Spbrook 106352166aa0SJuan Quintela if compile_object ; then 1064b0a47e79SJuan Quintela nptl=yes 1065bd0c5661Spbrook else 1066b0a47e79SJuan Quintela if test "$nptl" = "yes" ; then 1067b0a47e79SJuan Quintela feature_not_found "nptl" 1068b0a47e79SJuan Quintela fi 1069b0a47e79SJuan Quintela nptl=no 1070b0a47e79SJuan Quintela fi 1071bd0c5661Spbrookfi 1072bd0c5661Spbrook 107311d9f695Sbellard########################################## 1074ac62922eSbalrog# zlib check 1075ac62922eSbalrog 1076ac62922eSbalrogcat > $TMPC << EOF 1077ac62922eSbalrog#include <zlib.h> 1078ac62922eSbalrogint main(void) { zlibVersion(); return 0; } 1079ac62922eSbalrogEOF 108052166aa0SJuan Quintelaif compile_prog "" "-lz" ; then 1081ac62922eSbalrog : 1082ac62922eSbalrogelse 1083ac62922eSbalrog echo 1084ac62922eSbalrog echo "Error: zlib check failed" 1085ac62922eSbalrog echo "Make sure to have the zlib libs and headers installed." 1086ac62922eSbalrog echo 1087ac62922eSbalrog exit 1 1088ac62922eSbalrogfi 1089ac62922eSbalrog 1090ac62922eSbalrog########################################## 1091e37630caSaliguori# xen probe 1092e37630caSaliguori 1093fc321b4bSJuan Quintelaif test "$xen" != "no" ; then 1094b2266beeSJuan Quintela xen_libs="-lxenstore -lxenctrl -lxenguest" 1095e37630caSaliguori cat > $TMPC <<EOF 1096e37630caSaliguori#include <xenctrl.h> 1097e37630caSaliguori#include <xs.h> 1098df7a607bSChristoph Eggerint main(void) { xs_daemon_open(); xc_interface_open(); return 0; } 1099e37630caSaliguoriEOF 110052166aa0SJuan Quintela if compile_prog "" "$xen_libs" ; then 1101fc321b4bSJuan Quintela xen=yes 11023efd632bSJuan Quintela libs_softmmu="$xen_libs $libs_softmmu" 1103e37630caSaliguori else 1104fc321b4bSJuan Quintela if test "$xen" = "yes" ; then 1105fc321b4bSJuan Quintela feature_not_found "xen" 1106fc321b4bSJuan Quintela fi 1107fc321b4bSJuan Quintela xen=no 1108e37630caSaliguori fi 1109e37630caSaliguorifi 1110e37630caSaliguori 1111e37630caSaliguori########################################## 1112f91672e5SPaolo Bonzini# pkgconfig probe 1113f91672e5SPaolo Bonzini 1114f91672e5SPaolo Bonzinipkgconfig="${cross_prefix}pkg-config" 11150dba6195SLoïc Minierif ! has $pkgconfig; then 1116f91672e5SPaolo Bonzini # likely not cross compiling, or hope for the best 1117f91672e5SPaolo Bonzini pkgconfig=pkg-config 1118f91672e5SPaolo Bonzinifi 1119f91672e5SPaolo Bonzini 1120f91672e5SPaolo Bonzini########################################## 1121dfffc653SJuan Quintela# Sparse probe 1122dfffc653SJuan Quintelaif test "$sparse" != "no" ; then 11230dba6195SLoïc Minier if has cgcc; then 1124dfffc653SJuan Quintela sparse=yes 1125dfffc653SJuan Quintela else 1126dfffc653SJuan Quintela if test "$sparse" = "yes" ; then 1127dfffc653SJuan Quintela feature_not_found "sparse" 1128dfffc653SJuan Quintela fi 1129dfffc653SJuan Quintela sparse=no 1130dfffc653SJuan Quintela fi 1131dfffc653SJuan Quintelafi 1132dfffc653SJuan Quintela 1133dfffc653SJuan Quintela########################################## 113411d9f695Sbellard# SDL probe 113511d9f695Sbellard 1136fec0e3e8SStefan Weil# Look for sdl configuration program (pkg-config or sdl-config). 1137fec0e3e8SStefan Weil# Prefer variant with cross prefix if cross compiling, 1138fec0e3e8SStefan Weil# and favour pkg-config with sdl over sdl-config. 1139fec0e3e8SStefan Weilif test -n "$cross_prefix" -a $pkgconfig != pkg-config && \ 1140fec0e3e8SStefan Weil $pkgconfig sdl --modversion >/dev/null 2>&1; then 1141fec0e3e8SStefan Weil sdlconfig="$pkgconfig sdl" 1142fec0e3e8SStefan Weil _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'` 1143fec0e3e8SStefan Weilelif test -n "$cross_prefix" && has ${cross_prefix}sdl-config; then 1144fec0e3e8SStefan Weil sdlconfig="${cross_prefix}sdl-config" 1145fec0e3e8SStefan Weil _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'` 1146fec0e3e8SStefan Weilelif $pkgconfig sdl --modversion >/dev/null 2>&1; then 11479316f803SPaolo Bonzini sdlconfig="$pkgconfig sdl" 11489316f803SPaolo Bonzini _sdlversion=`$sdlconfig --modversion 2>/dev/null | sed 's/[^0-9]//g'` 11490dba6195SLoïc Minierelif has sdl-config; then 11509316f803SPaolo Bonzini sdlconfig='sdl-config' 11519316f803SPaolo Bonzini _sdlversion=`$sdlconfig --version | sed 's/[^0-9]//g'` 1152a0dfd8a4SLoïc Minierelse 1153a0dfd8a4SLoïc Minier if test "$sdl" = "yes" ; then 1154a0dfd8a4SLoïc Minier feature_not_found "sdl" 1155a0dfd8a4SLoïc Minier fi 1156a0dfd8a4SLoïc Minier sdl=no 11579316f803SPaolo Bonzinifi 115811d9f695Sbellard 11599316f803SPaolo Bonzinisdl_too_old=no 1160c4198157SJuan Quintelaif test "$sdl" != "no" ; then 116111d9f695Sbellard cat > $TMPC << EOF 116211d9f695Sbellard#include <SDL.h> 116311d9f695Sbellard#undef main /* We don't want SDL to override our main() */ 116411d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); } 116511d9f695SbellardEOF 11669316f803SPaolo Bonzini sdl_cflags=`$sdlconfig --cflags 2> /dev/null` 116774f42e18STeLeMan if test "$static" = "yes" ; then 116874f42e18STeLeMan sdl_libs=`$sdlconfig --static-libs 2>/dev/null` 116974f42e18STeLeMan else 11709316f803SPaolo Bonzini sdl_libs=`$sdlconfig --libs 2> /dev/null` 117174f42e18STeLeMan fi 117252166aa0SJuan Quintela if compile_prog "$sdl_cflags" "$sdl_libs" ; then 117311d9f695Sbellard if test "$_sdlversion" -lt 121 ; then 117411d9f695Sbellard sdl_too_old=yes 117511d9f695Sbellard else 1176fd677642Sths if test "$cocoa" = "no" ; then 117711d9f695Sbellard sdl=yes 117811d9f695Sbellard fi 1179fd677642Sths fi 11807c1f25b4Sbellard 118167c274d3SPaolo Bonzini # static link with sdl ? (note: sdl.pc's --static --libs is broken) 11821ac88f28SJuan Quintela if test "$sdl" = "yes" -a "$static" = "yes" ; then 118367c274d3SPaolo Bonzini if test $? = 0 && echo $sdl_libs | grep -- -laa > /dev/null; then 1184f8aa6c7bSStefan Weil sdl_libs="$sdl_libs `aalib-config --static-libs 2>/dev/null`" 1185f8aa6c7bSStefan Weil sdl_cflags="$sdl_cflags `aalib-config --cflags 2>/dev/null`" 118611d9f695Sbellard fi 118752166aa0SJuan Quintela if compile_prog "$sdl_cflags" "$sdl_libs" ; then 11881ac88f28SJuan Quintela : 11891ac88f28SJuan Quintela else 11901ac88f28SJuan Quintela sdl=no 11917c1f25b4Sbellard fi 11927c1f25b4Sbellard fi # static link 1193c4198157SJuan Quintela else # sdl not found 1194c4198157SJuan Quintela if test "$sdl" = "yes" ; then 1195c4198157SJuan Quintela feature_not_found "sdl" 1196c4198157SJuan Quintela fi 1197c4198157SJuan Quintela sdl=no 11987c1f25b4Sbellard fi # sdl compile test 1199fd677642Sthsfi 120011d9f695Sbellard 12015368a422Saliguoriif test "$sdl" = "yes" ; then 12025368a422Saliguori cat > $TMPC <<EOF 12035368a422Saliguori#include <SDL.h> 12045368a422Saliguori#if defined(SDL_VIDEO_DRIVER_X11) 12055368a422Saliguori#include <X11/XKBlib.h> 12065368a422Saliguori#else 12075368a422Saliguori#error No x11 support 12085368a422Saliguori#endif 12095368a422Saliguoriint main(void) { return 0; } 12105368a422SaliguoriEOF 121152166aa0SJuan Quintela if compile_prog "$sdl_cflags" "$sdl_libs" ; then 1212681306dfSJuan Quintela sdl_libs="$sdl_libs -lX11" 12135368a422Saliguori fi 121407d9ac44SJuan Quintela if test "$mingw32" = "yes" ; then 121507d9ac44SJuan Quintela sdl_libs="`echo $sdl_libs | sed s/-mwindows//g` -mconsole" 121607d9ac44SJuan Quintela fi 12170705667eSJuan Quintela libs_softmmu="$sdl_libs $libs_softmmu" 12185368a422Saliguorifi 12195368a422Saliguori 12208f28f3fbSths########################################## 12218d5d2d4cSths# VNC TLS detection 12221be10ad2SJuan Quintelaif test "$vnc_tls" != "no" ; then 1223ae6b5e5aSaliguori cat > $TMPC <<EOF 1224ae6b5e5aSaliguori#include <gnutls/gnutls.h> 1225ae6b5e5aSaliguoriint main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; } 1226ae6b5e5aSaliguoriEOF 1227f91672e5SPaolo Bonzini vnc_tls_cflags=`$pkgconfig --cflags gnutls 2> /dev/null` 1228f91672e5SPaolo Bonzini vnc_tls_libs=`$pkgconfig --libs gnutls 2> /dev/null` 122952166aa0SJuan Quintela if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then 12301be10ad2SJuan Quintela vnc_tls=yes 1231a5e32cc9SJuan Quintela libs_softmmu="$vnc_tls_libs $libs_softmmu" 1232ae6b5e5aSaliguori else 12331be10ad2SJuan Quintela if test "$vnc_tls" = "yes" ; then 12341be10ad2SJuan Quintela feature_not_found "vnc-tls" 12351be10ad2SJuan Quintela fi 12361be10ad2SJuan Quintela vnc_tls=no 12378d5d2d4cSths fi 12388d5d2d4cSthsfi 12398d5d2d4cSths 12408d5d2d4cSths########################################## 12412f9606b3Saliguori# VNC SASL detection 12423aefa744SJuan Quintelaif test "$vnc_sasl" != "no" ; then 12432f9606b3Saliguori cat > $TMPC <<EOF 12442f9606b3Saliguori#include <sasl/sasl.h> 12452f9606b3Saliguori#include <stdio.h> 12462f9606b3Saliguoriint main(void) { sasl_server_init(NULL, "qemu"); return 0; } 12472f9606b3SaliguoriEOF 12482f9606b3Saliguori # Assuming Cyrus-SASL installed in /usr prefix 12492f9606b3Saliguori vnc_sasl_cflags="" 12502f9606b3Saliguori vnc_sasl_libs="-lsasl2" 125152166aa0SJuan Quintela if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then 1252ea784e3bSJuan Quintela vnc_sasl=yes 1253fa838301SJuan Quintela libs_softmmu="$vnc_sasl_libs $libs_softmmu" 12542f9606b3Saliguori else 1255ea784e3bSJuan Quintela if test "$vnc_sasl" = "yes" ; then 1256ea784e3bSJuan Quintela feature_not_found "vnc-sasl" 1257ea784e3bSJuan Quintela fi 1258ea784e3bSJuan Quintela vnc_sasl=no 12592f9606b3Saliguori fi 12602f9606b3Saliguorifi 12612f9606b3Saliguori 12622f9606b3Saliguori########################################## 12632f6f5c7aSCorentin Chary# VNC JPEG detection 12642f6f5c7aSCorentin Charyif test "$vnc_jpeg" = "yes" ; then 12652f6f5c7aSCorentin Charycat > $TMPC <<EOF 12662f6f5c7aSCorentin Chary#include <stdio.h> 12672f6f5c7aSCorentin Chary#include <jpeglib.h> 12682f6f5c7aSCorentin Charyint main(void) { struct jpeg_compress_struct s; jpeg_create_compress(&s); return 0; } 12692f6f5c7aSCorentin CharyEOF 12702f6f5c7aSCorentin Chary vnc_jpeg_cflags="" 12712f6f5c7aSCorentin Chary vnc_jpeg_libs="-ljpeg" 12722f6f5c7aSCorentin Chary if compile_prog "$vnc_jpeg_cflags" "$vnc_jpeg_libs" ; then 12732f6f5c7aSCorentin Chary vnc_jpeg=yes 12742f6f5c7aSCorentin Chary libs_softmmu="$vnc_jpeg_libs $libs_softmmu" 12752f6f5c7aSCorentin Chary else 12762f6f5c7aSCorentin Chary if test "$vnc_jpeg" = "yes" ; then 12772f6f5c7aSCorentin Chary feature_not_found "vnc-jpeg" 12782f6f5c7aSCorentin Chary fi 12792f6f5c7aSCorentin Chary vnc_jpeg=no 12802f6f5c7aSCorentin Chary fi 12812f6f5c7aSCorentin Charyfi 12822f6f5c7aSCorentin Chary 12832f6f5c7aSCorentin Chary########################################## 1284*efe556adSCorentin Chary# VNC PNG detection 1285*efe556adSCorentin Charyif test "$vnc_png" = "yes" ; then 1286*efe556adSCorentin Charycat > $TMPC <<EOF 1287*efe556adSCorentin Chary//#include <stdio.h> 1288*efe556adSCorentin Chary#include <png.h> 1289*efe556adSCorentin Charyint main(void) { 1290*efe556adSCorentin Chary png_structp png_ptr; 1291*efe556adSCorentin Chary png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); 1292*efe556adSCorentin Chary return 0; 1293*efe556adSCorentin Chary} 1294*efe556adSCorentin CharyEOF 1295*efe556adSCorentin Chary vnc_png_cflags="" 1296*efe556adSCorentin Chary vnc_png_libs="-lpng" 1297*efe556adSCorentin Chary if compile_prog "$vnc_png_cflags" "$vnc_png_libs" ; then 1298*efe556adSCorentin Chary vnc_png=yes 1299*efe556adSCorentin Chary libs_softmmu="$vnc_png_libs $libs_softmmu" 1300*efe556adSCorentin Chary else 1301*efe556adSCorentin Chary if test "$vnc_png" = "yes" ; then 1302*efe556adSCorentin Chary feature_not_found "vnc-png" 1303*efe556adSCorentin Chary fi 1304*efe556adSCorentin Chary vnc_png=no 1305*efe556adSCorentin Chary fi 1306*efe556adSCorentin Charyfi 1307*efe556adSCorentin Chary 1308*efe556adSCorentin Chary########################################## 130976655d6dSaliguori# fnmatch() probe, used for ACL routines 131076655d6dSaliguorifnmatch="no" 131176655d6dSaliguoricat > $TMPC << EOF 131276655d6dSaliguori#include <fnmatch.h> 131376655d6dSaliguoriint main(void) 131476655d6dSaliguori{ 131576655d6dSaliguori fnmatch("foo", "foo", 0); 131676655d6dSaliguori return 0; 131776655d6dSaliguori} 131876655d6dSaliguoriEOF 131952166aa0SJuan Quintelaif compile_prog "" "" ; then 132076655d6dSaliguori fnmatch="yes" 132176655d6dSaliguorifi 132276655d6dSaliguori 132376655d6dSaliguori########################################## 1324ee682d27SStefan Weil# uuid_generate() probe, used for vdi block driver 1325ee682d27SStefan Weilif test "$uuid" != "no" ; then 1326ee682d27SStefan Weil uuid_libs="-luuid" 1327ee682d27SStefan Weil cat > $TMPC << EOF 1328ee682d27SStefan Weil#include <uuid/uuid.h> 1329ee682d27SStefan Weilint main(void) 1330ee682d27SStefan Weil{ 1331ee682d27SStefan Weil uuid_t my_uuid; 1332ee682d27SStefan Weil uuid_generate(my_uuid); 1333ee682d27SStefan Weil return 0; 1334ee682d27SStefan Weil} 1335ee682d27SStefan WeilEOF 1336ee682d27SStefan Weil if compile_prog "" "$uuid_libs" ; then 1337ee682d27SStefan Weil uuid="yes" 1338ee682d27SStefan Weil libs_softmmu="$uuid_libs $libs_softmmu" 1339ee682d27SStefan Weil libs_tools="$uuid_libs $libs_tools" 1340ee682d27SStefan Weil else 1341ee682d27SStefan Weil if test "$uuid" = "yes" ; then 1342ee682d27SStefan Weil feature_not_found "uuid" 1343ee682d27SStefan Weil fi 1344ee682d27SStefan Weil uuid=no 1345ee682d27SStefan Weil fi 1346ee682d27SStefan Weilfi 1347ee682d27SStefan Weil 1348ee682d27SStefan Weil########################################## 13498a16d273Sths# vde libraries probe 1350dfb278bdSJuan Quintelaif test "$vde" != "no" ; then 13514baae0acSJuan Quintela vde_libs="-lvdeplug" 13528a16d273Sths cat > $TMPC << EOF 13538a16d273Sths#include <libvdeplug.h> 13544a7f0e06Spbrookint main(void) 13554a7f0e06Spbrook{ 13564a7f0e06Spbrook struct vde_open_args a = {0, 0, 0}; 13574a7f0e06Spbrook vde_open("", "", &a); 13584a7f0e06Spbrook return 0; 13594a7f0e06Spbrook} 13608a16d273SthsEOF 136152166aa0SJuan Quintela if compile_prog "" "$vde_libs" ; then 13624baae0acSJuan Quintela vde=yes 13638e02e54cSJuan Quintela libs_softmmu="$vde_libs $libs_softmmu" 13648e02e54cSJuan Quintela libs_tools="$vde_libs $libs_tools" 1365dfb278bdSJuan Quintela else 1366dfb278bdSJuan Quintela if test "$vde" = "yes" ; then 1367dfb278bdSJuan Quintela feature_not_found "vde" 1368dfb278bdSJuan Quintela fi 1369dfb278bdSJuan Quintela vde=no 13708a16d273Sths fi 13718a16d273Sthsfi 13728a16d273Sths 13738a16d273Sths########################################## 1374c2de5c91Smalc# Sound support libraries probe 13758f28f3fbSths 1376c2de5c91Smalcaudio_drv_probe() 1377c2de5c91Smalc{ 1378c2de5c91Smalc drv=$1 1379c2de5c91Smalc hdr=$2 1380c2de5c91Smalc lib=$3 1381c2de5c91Smalc exp=$4 1382c2de5c91Smalc cfl=$5 13838f28f3fbSths cat > $TMPC << EOF 1384c2de5c91Smalc#include <$hdr> 1385c2de5c91Smalcint main(void) { $exp } 13868f28f3fbSthsEOF 138752166aa0SJuan Quintela if compile_prog "$cfl" "$lib" ; then 13888f28f3fbSths : 13898f28f3fbSths else 13908f28f3fbSths echo 1391c2de5c91Smalc echo "Error: $drv check failed" 1392c2de5c91Smalc echo "Make sure to have the $drv libs and headers installed." 13938f28f3fbSths echo 13948f28f3fbSths exit 1 13958f28f3fbSths fi 1396c2de5c91Smalc} 1397c2de5c91Smalc 13982fa7d3bfSmalcaudio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'` 1399c2de5c91Smalcfor drv in $audio_drv_list; do 1400c2de5c91Smalc case $drv in 1401c2de5c91Smalc alsa) 1402c2de5c91Smalc audio_drv_probe $drv alsa/asoundlib.h -lasound \ 1403c2de5c91Smalc "snd_pcm_t **handle; return snd_pcm_close(*handle);" 1404a4bf6780SJuan Quintela libs_softmmu="-lasound $libs_softmmu" 1405c2de5c91Smalc ;; 1406c2de5c91Smalc 1407c2de5c91Smalc fmod) 1408c2de5c91Smalc if test -z $fmod_lib || test -z $fmod_inc; then 1409c2de5c91Smalc echo 1410c2de5c91Smalc echo "Error: You must specify path to FMOD library and headers" 1411c2de5c91Smalc echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so" 1412c2de5c91Smalc echo 1413c2de5c91Smalc exit 1 14148f28f3fbSths fi 1415c2de5c91Smalc audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc" 1416a4bf6780SJuan Quintela libs_softmmu="$fmod_lib $libs_softmmu" 1417c2de5c91Smalc ;; 1418c2de5c91Smalc 1419c2de5c91Smalc esd) 1420c2de5c91Smalc audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);' 1421a4bf6780SJuan Quintela libs_softmmu="-lesd $libs_softmmu" 142267f86e8eSJuan Quintela audio_pt_int="yes" 1423c2de5c91Smalc ;; 1424b8e59f18Smalc 1425b8e59f18Smalc pa) 1426493abda6SAurelien Jarno audio_drv_probe $drv pulse/simple.h "-lpulse-simple -lpulse" \ 1427b8e59f18Smalc "pa_simple *s = NULL; pa_simple_free(s); return 0;" 1428493abda6SAurelien Jarno libs_softmmu="-lpulse -lpulse-simple $libs_softmmu" 142967f86e8eSJuan Quintela audio_pt_int="yes" 1430b8e59f18Smalc ;; 1431b8e59f18Smalc 1432997e690aSJuan Quintela coreaudio) 1433997e690aSJuan Quintela libs_softmmu="-framework CoreAudio $libs_softmmu" 1434997e690aSJuan Quintela ;; 1435997e690aSJuan Quintela 1436a4bf6780SJuan Quintela dsound) 1437a4bf6780SJuan Quintela libs_softmmu="-lole32 -ldxguid $libs_softmmu" 1438d5631638Smalc audio_win_int="yes" 1439a4bf6780SJuan Quintela ;; 1440a4bf6780SJuan Quintela 1441a4bf6780SJuan Quintela oss) 1442a4bf6780SJuan Quintela libs_softmmu="$oss_lib $libs_softmmu" 1443a4bf6780SJuan Quintela ;; 1444a4bf6780SJuan Quintela 1445a4bf6780SJuan Quintela sdl|wav) 14462f6a1ab0Sblueswir1 # XXX: Probes for CoreAudio, DirectSound, SDL(?) 14472f6a1ab0Sblueswir1 ;; 14482f6a1ab0Sblueswir1 1449d5631638Smalc winwave) 1450d5631638Smalc libs_softmmu="-lwinmm $libs_softmmu" 1451d5631638Smalc audio_win_int="yes" 1452d5631638Smalc ;; 1453d5631638Smalc 1454e4c63a6aSmalc *) 14551c9b2a52Smalc echo "$audio_possible_drivers" | grep -q "\<$drv\>" || { 1456e4c63a6aSmalc echo 1457e4c63a6aSmalc echo "Error: Unknown driver '$drv' selected" 1458e4c63a6aSmalc echo "Possible drivers are: $audio_possible_drivers" 1459e4c63a6aSmalc echo 1460e4c63a6aSmalc exit 1 1461e4c63a6aSmalc } 1462e4c63a6aSmalc ;; 1463c2de5c91Smalc esac 1464c2de5c91Smalcdone 14658f28f3fbSths 14664d3b6f6eSbalrog########################################## 14672e4d9fb1Saurel32# BrlAPI probe 14682e4d9fb1Saurel32 14694ffcedb6SJuan Quintelaif test "$brlapi" != "no" ; then 1470eb82284fSJuan Quintela brlapi_libs="-lbrlapi" 14712e4d9fb1Saurel32 cat > $TMPC << EOF 14722e4d9fb1Saurel32#include <brlapi.h> 14732e4d9fb1Saurel32int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); } 14742e4d9fb1Saurel32EOF 147552166aa0SJuan Quintela if compile_prog "" "$brlapi_libs" ; then 14762e4d9fb1Saurel32 brlapi=yes 1477264606b3SJuan Quintela libs_softmmu="$brlapi_libs $libs_softmmu" 14784ffcedb6SJuan Quintela else 14794ffcedb6SJuan Quintela if test "$brlapi" = "yes" ; then 14804ffcedb6SJuan Quintela feature_not_found "brlapi" 14814ffcedb6SJuan Quintela fi 14824ffcedb6SJuan Quintela brlapi=no 1483eb82284fSJuan Quintela fi 1484eb82284fSJuan Quintelafi 14852e4d9fb1Saurel32 14862e4d9fb1Saurel32########################################## 14874d3b6f6eSbalrog# curses probe 14884f78ef9aSJuan Quintelacurses_list="-lncurses -lcurses" 14894d3b6f6eSbalrog 1490c584a6d0SJuan Quintelaif test "$curses" != "no" ; then 1491c584a6d0SJuan Quintela curses_found=no 14924d3b6f6eSbalrog cat > $TMPC << EOF 14934d3b6f6eSbalrog#include <curses.h> 14945a8ff3aaSblueswir1#ifdef __OpenBSD__ 14955a8ff3aaSblueswir1#define resize_term resizeterm 14965a8ff3aaSblueswir1#endif 14975a8ff3aaSblueswir1int main(void) { resize_term(0, 0); return curses_version(); } 14984d3b6f6eSbalrogEOF 14994f78ef9aSJuan Quintela for curses_lib in $curses_list; do 15004f78ef9aSJuan Quintela if compile_prog "" "$curses_lib" ; then 1501c584a6d0SJuan Quintela curses_found=yes 15024f78ef9aSJuan Quintela libs_softmmu="$curses_lib $libs_softmmu" 15034f78ef9aSJuan Quintela break 15044d3b6f6eSbalrog fi 15054f78ef9aSJuan Quintela done 1506c584a6d0SJuan Quintela if test "$curses_found" = "yes" ; then 1507c584a6d0SJuan Quintela curses=yes 1508c584a6d0SJuan Quintela else 1509c584a6d0SJuan Quintela if test "$curses" = "yes" ; then 1510c584a6d0SJuan Quintela feature_not_found "curses" 1511c584a6d0SJuan Quintela fi 1512c584a6d0SJuan Quintela curses=no 1513c584a6d0SJuan Quintela fi 15144f78ef9aSJuan Quintelafi 15154d3b6f6eSbalrog 1516414f0dabSblueswir1########################################## 1517769ce76dSAlexander Graf# curl probe 1518769ce76dSAlexander Graf 15194e2b0658SPaolo Bonziniif $pkgconfig libcurl --modversion >/dev/null 2>&1; then 15204e2b0658SPaolo Bonzini curlconfig="$pkgconfig libcurl" 15214e2b0658SPaolo Bonzinielse 15224e2b0658SPaolo Bonzini curlconfig=curl-config 15234e2b0658SPaolo Bonzinifi 15244e2b0658SPaolo Bonzini 1525788c8196SJuan Quintelaif test "$curl" != "no" ; then 1526769ce76dSAlexander Graf cat > $TMPC << EOF 1527769ce76dSAlexander Graf#include <curl/curl.h> 1528769ce76dSAlexander Grafint main(void) { return curl_easy_init(); } 1529769ce76dSAlexander GrafEOF 15304e2b0658SPaolo Bonzini curl_cflags=`$curlconfig --cflags 2>/dev/null` 15314e2b0658SPaolo Bonzini curl_libs=`$curlconfig --libs 2>/dev/null` 1532b1d5a277SJuan Quintela if compile_prog "$curl_cflags" "$curl_libs" ; then 1533769ce76dSAlexander Graf curl=yes 1534f0302935SJuan Quintela libs_tools="$curl_libs $libs_tools" 1535f0302935SJuan Quintela libs_softmmu="$curl_libs $libs_softmmu" 1536788c8196SJuan Quintela else 1537788c8196SJuan Quintela if test "$curl" = "yes" ; then 1538788c8196SJuan Quintela feature_not_found "curl" 1539788c8196SJuan Quintela fi 1540788c8196SJuan Quintela curl=no 1541769ce76dSAlexander Graf fi 1542769ce76dSAlexander Graffi # test "$curl" 1543769ce76dSAlexander Graf 1544769ce76dSAlexander Graf########################################## 15455495ed11SLuiz Capitulino# check framework probe 15465495ed11SLuiz Capitulino 15475495ed11SLuiz Capitulinoif test "$check_utests" != "no" ; then 15485495ed11SLuiz Capitulino cat > $TMPC << EOF 15495495ed11SLuiz Capitulino#include <check.h> 15505495ed11SLuiz Capitulinoint main(void) { suite_create("qemu test"); return 0; } 15515495ed11SLuiz CapitulinoEOF 1552f91672e5SPaolo Bonzini check_libs=`$pkgconfig --libs check` 15535495ed11SLuiz Capitulino if compile_prog "" $check_libs ; then 15545495ed11SLuiz Capitulino check_utests=yes 15555495ed11SLuiz Capitulino libs_tools="$check_libs $libs_tools" 15565495ed11SLuiz Capitulino else 15575495ed11SLuiz Capitulino if test "$check_utests" = "yes" ; then 15585495ed11SLuiz Capitulino feature_not_found "check" 15595495ed11SLuiz Capitulino fi 15605495ed11SLuiz Capitulino check_utests=no 15615495ed11SLuiz Capitulino fi 15625495ed11SLuiz Capitulinofi # test "$check_utests" 15635495ed11SLuiz Capitulino 15645495ed11SLuiz Capitulino########################################## 1565fb599c9aSbalrog# bluez support probe 1566a20a6f46SJuan Quintelaif test "$bluez" != "no" ; then 1567e820e3f4Sbalrog cat > $TMPC << EOF 1568e820e3f4Sbalrog#include <bluetooth/bluetooth.h> 1569e820e3f4Sbalrogint main(void) { return bt_error(0); } 1570e820e3f4SbalrogEOF 1571f91672e5SPaolo Bonzini bluez_cflags=`$pkgconfig --cflags bluez 2> /dev/null` 1572f91672e5SPaolo Bonzini bluez_libs=`$pkgconfig --libs bluez 2> /dev/null` 157352166aa0SJuan Quintela if compile_prog "$bluez_cflags" "$bluez_libs" ; then 1574a20a6f46SJuan Quintela bluez=yes 1575e482d56aSJuan Quintela libs_softmmu="$bluez_libs $libs_softmmu" 1576e820e3f4Sbalrog else 1577a20a6f46SJuan Quintela if test "$bluez" = "yes" ; then 1578a20a6f46SJuan Quintela feature_not_found "bluez" 1579a20a6f46SJuan Quintela fi 1580e820e3f4Sbalrog bluez="no" 1581e820e3f4Sbalrog fi 1582fb599c9aSbalrogfi 1583fb599c9aSbalrog 1584fb599c9aSbalrog########################################## 15857ba1e619Saliguori# kvm probe 1586b31a0277SJuan Quintelaif test "$kvm" != "no" ; then 15877ba1e619Saliguori cat > $TMPC <<EOF 15887ba1e619Saliguori#include <linux/kvm.h> 15899fd8d8d7Saliguori#if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12 15907ba1e619Saliguori#error Invalid KVM version 15917ba1e619Saliguori#endif 15929fd8d8d7Saliguori#if !defined(KVM_CAP_USER_MEMORY) 15939fd8d8d7Saliguori#error Missing KVM capability KVM_CAP_USER_MEMORY 15949fd8d8d7Saliguori#endif 15959fd8d8d7Saliguori#if !defined(KVM_CAP_SET_TSS_ADDR) 15969fd8d8d7Saliguori#error Missing KVM capability KVM_CAP_SET_TSS_ADDR 15979fd8d8d7Saliguori#endif 15989fd8d8d7Saliguori#if !defined(KVM_CAP_DESTROY_MEMORY_REGION_WORKS) 15999fd8d8d7Saliguori#error Missing KVM capability KVM_CAP_DESTROY_MEMORY_REGION_WORKS 16009fd8d8d7Saliguori#endif 16017ba1e619Saliguoriint main(void) { return 0; } 16027ba1e619SaliguoriEOF 1603eac30262Saliguori if test "$kerneldir" != "" ; then 1604eac30262Saliguori kvm_cflags=-I"$kerneldir"/include 16058444eb6eSaliguori if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) \ 16068444eb6eSaliguori -a -d "$kerneldir/arch/x86/include" ; then 16078444eb6eSaliguori kvm_cflags="$kvm_cflags -I$kerneldir/arch/x86/include" 1608406b430dSaliguori elif test "$cpu" = "ppc" -a -d "$kerneldir/arch/powerpc/include" ; then 1609406b430dSaliguori kvm_cflags="$kvm_cflags -I$kerneldir/arch/powerpc/include" 16100e60a699SAlexander Graf elif test "$cpu" = "s390x" -a -d "$kerneldir/arch/s390/include" ; then 16110e60a699SAlexander Graf kvm_cflags="$kvm_cflags -I$kerneldir/arch/s390/include" 16128444eb6eSaliguori elif test -d "$kerneldir/arch/$cpu/include" ; then 16138444eb6eSaliguori kvm_cflags="$kvm_cflags -I$kerneldir/arch/$cpu/include" 16148444eb6eSaliguori fi 1615eac30262Saliguori else 1616f038e8f7SStefan Weil kvm_cflags=`$pkgconfig --cflags kvm-kmod 2>/dev/null` 1617eac30262Saliguori fi 161852166aa0SJuan Quintela if compile_prog "$kvm_cflags" "" ; then 1619b31a0277SJuan Quintela kvm=yes 1620dae5079aSJan Kiszka cat > $TMPC <<EOF 1621dae5079aSJan Kiszka#include <linux/kvm_para.h> 1622dae5079aSJan Kiszkaint main(void) { return 0; } 1623dae5079aSJan KiszkaEOF 1624dae5079aSJan Kiszka if compile_prog "$kvm_cflags" "" ; then 1625dae5079aSJan Kiszka kvm_para=yes 1626dae5079aSJan Kiszka fi 16277ba1e619Saliguori else 1628b31a0277SJuan Quintela if test "$kvm" = "yes" ; then 16290dba6195SLoïc Minier if has awk && has grep; then 1630a558ee17SJuan Quintela kvmerr=`LANG=C $cc $QEMU_CFLAGS -o $TMPE $kvm_cflags $TMPC 2>&1 \ 16319fd8d8d7Saliguori | grep "error: " \ 16329fd8d8d7Saliguori | awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'` 16339fd8d8d7Saliguori if test "$kvmerr" != "" ; then 1634b31a0277SJuan Quintela echo -e "${kvmerr}\n\ 1635168ccc11SJan Kiszka NOTE: To enable KVM support, update your kernel to 2.6.29+ or install \ 1636168ccc11SJan Kiszka recent kvm-kmod from http://sourceforge.net/projects/kvm." 16379fd8d8d7Saliguori fi 16389fd8d8d7Saliguori fi 1639b31a0277SJuan Quintela feature_not_found "kvm" 1640b31a0277SJuan Quintela fi 1641b31a0277SJuan Quintela kvm=no 16427ba1e619Saliguori fi 16437ba1e619Saliguorifi 16447ba1e619Saliguori 16457ba1e619Saliguori########################################## 1646d5970055SMichael S. Tsirkin# test for vhost net 1647d5970055SMichael S. Tsirkin 1648d5970055SMichael S. Tsirkinif test "$vhost_net" != "no"; then 1649d5970055SMichael S. Tsirkin if test "$kvm" != "no"; then 1650d5970055SMichael S. Tsirkin cat > $TMPC <<EOF 1651d5970055SMichael S. Tsirkin #include <linux/vhost.h> 1652d5970055SMichael S. Tsirkin int main(void) { return 0; } 1653d5970055SMichael S. TsirkinEOF 1654d5970055SMichael S. Tsirkin if compile_prog "$kvm_cflags" "" ; then 1655d5970055SMichael S. Tsirkin vhost_net=yes 1656d5970055SMichael S. Tsirkin else 1657d5970055SMichael S. Tsirkin if test "$vhost_net" = "yes" ; then 1658d5970055SMichael S. Tsirkin feature_not_found "vhost-net" 1659d5970055SMichael S. Tsirkin fi 1660d5970055SMichael S. Tsirkin vhost_net=no 1661d5970055SMichael S. Tsirkin fi 1662d5970055SMichael S. Tsirkin else 1663d5970055SMichael S. Tsirkin if test "$vhost_net" = "yes" ; then 16644021d247SAurelien Jarno echo "NOTE: vhost-net feature requires KVM (--enable-kvm)." 1665d5970055SMichael S. Tsirkin feature_not_found "vhost-net" 1666d5970055SMichael S. Tsirkin fi 1667d5970055SMichael S. Tsirkin vhost_net=no 1668d5970055SMichael S. Tsirkin fi 1669d5970055SMichael S. Tsirkinfi 1670d5970055SMichael S. Tsirkin 1671d5970055SMichael S. Tsirkin########################################## 1672e5d355d1Saliguori# pthread probe 1673de65fe0fSSebastian HerbsztPTHREADLIBS_LIST="-lpthread -lpthreadGC2" 16743c529d93Saliguori 1675e5d355d1Saliguoripthread=no 1676414f0dabSblueswir1cat > $TMPC << EOF 16773c529d93Saliguori#include <pthread.h> 1678de65fe0fSSebastian Herbsztint main(void) { pthread_create(0,0,0,0); return 0; } 1679414f0dabSblueswir1EOF 1680de65fe0fSSebastian Herbsztfor pthread_lib in $PTHREADLIBS_LIST; do 168152166aa0SJuan Quintela if compile_prog "" "$pthread_lib" ; then 1682e5d355d1Saliguori pthread=yes 16835572b539SJuan Quintela LIBS="$pthread_lib $LIBS" 1684de65fe0fSSebastian Herbszt break 1685414f0dabSblueswir1 fi 1686de65fe0fSSebastian Herbsztdone 1687414f0dabSblueswir1 16884617e593SAnthony Liguoriif test "$mingw32" != yes -a "$pthread" = no; then 16894dd75c70SChristoph Hellwig echo 16904dd75c70SChristoph Hellwig echo "Error: pthread check failed" 16914dd75c70SChristoph Hellwig echo "Make sure to have the pthread libs and headers installed." 16924dd75c70SChristoph Hellwig echo 16934dd75c70SChristoph Hellwig exit 1 1694e5d355d1Saliguorifi 1695e5d355d1Saliguori 1696bf9298b9Saliguori########################################## 16975c6c3a6cSChristoph Hellwig# linux-aio probe 16985c6c3a6cSChristoph Hellwig 16995c6c3a6cSChristoph Hellwigif test "$linux_aio" != "no" ; then 17005c6c3a6cSChristoph Hellwig cat > $TMPC <<EOF 17015c6c3a6cSChristoph Hellwig#include <libaio.h> 17025c6c3a6cSChristoph Hellwig#include <sys/eventfd.h> 17035c6c3a6cSChristoph Hellwigint main(void) { io_setup(0, NULL); io_set_eventfd(NULL, 0); eventfd(0, 0); return 0; } 17045c6c3a6cSChristoph HellwigEOF 17055c6c3a6cSChristoph Hellwig if compile_prog "" "-laio" ; then 17065c6c3a6cSChristoph Hellwig linux_aio=yes 1707048d179fSPaul Brook libs_softmmu="$libs_softmmu -laio" 1708048d179fSPaul Brook libs_tools="$libs_tools -laio" 17095c6c3a6cSChristoph Hellwig else 17105c6c3a6cSChristoph Hellwig if test "$linux_aio" = "yes" ; then 17115c6c3a6cSChristoph Hellwig feature_not_found "linux AIO" 17125c6c3a6cSChristoph Hellwig fi 17133cfcae3cSLuiz Capitulino linux_aio=no 17145c6c3a6cSChristoph Hellwig fi 17155c6c3a6cSChristoph Hellwigfi 17165c6c3a6cSChristoph Hellwig 17175c6c3a6cSChristoph Hellwig########################################## 1718758e8e38SVenkateswararao Jujjuri (JV)# attr probe 1719758e8e38SVenkateswararao Jujjuri (JV) 1720758e8e38SVenkateswararao Jujjuri (JV)if test "$attr" != "no" ; then 1721758e8e38SVenkateswararao Jujjuri (JV) cat > $TMPC <<EOF 1722758e8e38SVenkateswararao Jujjuri (JV)#include <stdio.h> 1723758e8e38SVenkateswararao Jujjuri (JV)#include <sys/types.h> 1724758e8e38SVenkateswararao Jujjuri (JV)#include <attr/xattr.h> 1725758e8e38SVenkateswararao Jujjuri (JV)int main(void) { getxattr(NULL, NULL, NULL, 0); setxattr(NULL, NULL, NULL, 0, 0); return 0; } 1726758e8e38SVenkateswararao Jujjuri (JV)EOF 1727758e8e38SVenkateswararao Jujjuri (JV) if compile_prog "" "-lattr" ; then 1728758e8e38SVenkateswararao Jujjuri (JV) attr=yes 1729758e8e38SVenkateswararao Jujjuri (JV) LIBS="-lattr $LIBS" 1730758e8e38SVenkateswararao Jujjuri (JV) else 1731758e8e38SVenkateswararao Jujjuri (JV) if test "$attr" = "yes" ; then 1732758e8e38SVenkateswararao Jujjuri (JV) feature_not_found "ATTR" 1733758e8e38SVenkateswararao Jujjuri (JV) fi 1734758e8e38SVenkateswararao Jujjuri (JV) attr=no 1735758e8e38SVenkateswararao Jujjuri (JV) fi 1736758e8e38SVenkateswararao Jujjuri (JV)fi 1737758e8e38SVenkateswararao Jujjuri (JV) 1738758e8e38SVenkateswararao Jujjuri (JV)########################################## 1739bf9298b9Saliguori# iovec probe 1740bf9298b9Saliguoricat > $TMPC <<EOF 1741db34f0b3Sblueswir1#include <sys/types.h> 1742bf9298b9Saliguori#include <sys/uio.h> 1743db34f0b3Sblueswir1#include <unistd.h> 1744bf9298b9Saliguoriint main(void) { struct iovec iov; return 0; } 1745bf9298b9SaliguoriEOF 1746bf9298b9Saliguoriiovec=no 174752166aa0SJuan Quintelaif compile_prog "" "" ; then 1748bf9298b9Saliguori iovec=yes 1749bf9298b9Saliguorifi 1750bf9298b9Saliguori 1751f652e6afSaurel32########################################## 1752ceb42de8Saliguori# preadv probe 1753ceb42de8Saliguoricat > $TMPC <<EOF 1754ceb42de8Saliguori#include <sys/types.h> 1755ceb42de8Saliguori#include <sys/uio.h> 1756ceb42de8Saliguori#include <unistd.h> 1757ceb42de8Saliguoriint main(void) { preadv; } 1758ceb42de8SaliguoriEOF 1759ceb42de8Saliguoripreadv=no 176052166aa0SJuan Quintelaif compile_prog "" "" ; then 1761ceb42de8Saliguori preadv=yes 1762ceb42de8Saliguorifi 1763ceb42de8Saliguori 1764ceb42de8Saliguori########################################## 1765f652e6afSaurel32# fdt probe 17662df87df7SJuan Quintelaif test "$fdt" != "no" ; then 1767b41af4baSJuan Quintela fdt_libs="-lfdt" 1768f652e6afSaurel32 cat > $TMPC << EOF 1769f652e6afSaurel32int main(void) { return 0; } 1770f652e6afSaurel32EOF 177152166aa0SJuan Quintela if compile_prog "" "$fdt_libs" ; then 1772f652e6afSaurel32 fdt=yes 1773e4782985SJuan Quintela libs_softmmu="$fdt_libs $libs_softmmu" 17742df87df7SJuan Quintela else 17752df87df7SJuan Quintela if test "$fdt" = "yes" ; then 17762df87df7SJuan Quintela feature_not_found "fdt" 17772df87df7SJuan Quintela fi 17782df87df7SJuan Quintela fdt=no 1779f652e6afSaurel32 fi 1780f652e6afSaurel32fi 1781f652e6afSaurel32 17823b3f24adSaurel32# 17833b3f24adSaurel32# Check for xxxat() functions when we are building linux-user 17843b3f24adSaurel32# emulator. This is done because older glibc versions don't 17853b3f24adSaurel32# have syscall stubs for these implemented. 17863b3f24adSaurel32# 17873b3f24adSaurel32atfile=no 17883b3f24adSaurel32cat > $TMPC << EOF 17893b3f24adSaurel32#define _ATFILE_SOURCE 17903b3f24adSaurel32#include <sys/types.h> 17913b3f24adSaurel32#include <fcntl.h> 17923b3f24adSaurel32#include <unistd.h> 17933b3f24adSaurel32 17943b3f24adSaurel32int 17953b3f24adSaurel32main(void) 17963b3f24adSaurel32{ 17973b3f24adSaurel32 /* try to unlink nonexisting file */ 17983b3f24adSaurel32 return (unlinkat(AT_FDCWD, "nonexistent_file", 0)); 17993b3f24adSaurel32} 18003b3f24adSaurel32EOF 180152166aa0SJuan Quintelaif compile_prog "" "" ; then 18023b3f24adSaurel32 atfile=yes 18033b3f24adSaurel32fi 18043b3f24adSaurel32 180539386ac7Saurel32# Check for inotify functions when we are building linux-user 18063b3f24adSaurel32# emulator. This is done because older glibc versions don't 18073b3f24adSaurel32# have syscall stubs for these implemented. In that case we 18083b3f24adSaurel32# don't provide them even if kernel supports them. 18093b3f24adSaurel32# 18103b3f24adSaurel32inotify=no 18113b3f24adSaurel32cat > $TMPC << EOF 18123b3f24adSaurel32#include <sys/inotify.h> 18133b3f24adSaurel32 18143b3f24adSaurel32int 18153b3f24adSaurel32main(void) 18163b3f24adSaurel32{ 18173b3f24adSaurel32 /* try to start inotify */ 18188690e420Saurel32 return inotify_init(); 18193b3f24adSaurel32} 18203b3f24adSaurel32EOF 182152166aa0SJuan Quintelaif compile_prog "" "" ; then 18223b3f24adSaurel32 inotify=yes 18233b3f24adSaurel32fi 18243b3f24adSaurel32 1825c05c7a73SRiku Voipioinotify1=no 1826c05c7a73SRiku Voipiocat > $TMPC << EOF 1827c05c7a73SRiku Voipio#include <sys/inotify.h> 1828c05c7a73SRiku Voipio 1829c05c7a73SRiku Voipioint 1830c05c7a73SRiku Voipiomain(void) 1831c05c7a73SRiku Voipio{ 1832c05c7a73SRiku Voipio /* try to start inotify */ 1833c05c7a73SRiku Voipio return inotify_init1(0); 1834c05c7a73SRiku Voipio} 1835c05c7a73SRiku VoipioEOF 1836c05c7a73SRiku Voipioif compile_prog "" "" ; then 1837c05c7a73SRiku Voipio inotify1=yes 1838c05c7a73SRiku Voipiofi 1839c05c7a73SRiku Voipio 1840ebc996f3SRiku Voipio# check if utimensat and futimens are supported 1841ebc996f3SRiku Voipioutimens=no 1842ebc996f3SRiku Voipiocat > $TMPC << EOF 1843ebc996f3SRiku Voipio#define _ATFILE_SOURCE 1844ebc996f3SRiku Voipio#define _GNU_SOURCE 1845ebc996f3SRiku Voipio#include <stddef.h> 1846ebc996f3SRiku Voipio#include <fcntl.h> 1847ebc996f3SRiku Voipio 1848ebc996f3SRiku Voipioint main(void) 1849ebc996f3SRiku Voipio{ 1850ebc996f3SRiku Voipio utimensat(AT_FDCWD, "foo", NULL, 0); 1851ebc996f3SRiku Voipio futimens(0, NULL); 1852ebc996f3SRiku Voipio return 0; 1853ebc996f3SRiku Voipio} 1854ebc996f3SRiku VoipioEOF 185552166aa0SJuan Quintelaif compile_prog "" "" ; then 1856ebc996f3SRiku Voipio utimens=yes 1857ebc996f3SRiku Voipiofi 1858ebc996f3SRiku Voipio 1859099d6b0fSRiku Voipio# check if pipe2 is there 1860099d6b0fSRiku Voipiopipe2=no 1861099d6b0fSRiku Voipiocat > $TMPC << EOF 1862099d6b0fSRiku Voipio#define _GNU_SOURCE 1863099d6b0fSRiku Voipio#include <unistd.h> 1864099d6b0fSRiku Voipio#include <fcntl.h> 1865099d6b0fSRiku Voipio 1866099d6b0fSRiku Voipioint main(void) 1867099d6b0fSRiku Voipio{ 1868099d6b0fSRiku Voipio int pipefd[2]; 1869099d6b0fSRiku Voipio pipe2(pipefd, O_CLOEXEC); 1870099d6b0fSRiku Voipio return 0; 1871099d6b0fSRiku Voipio} 1872099d6b0fSRiku VoipioEOF 187352166aa0SJuan Quintelaif compile_prog "" "" ; then 1874099d6b0fSRiku Voipio pipe2=yes 1875099d6b0fSRiku Voipiofi 1876099d6b0fSRiku Voipio 187740ff6d7eSKevin Wolf# check if accept4 is there 187840ff6d7eSKevin Wolfaccept4=no 187940ff6d7eSKevin Wolfcat > $TMPC << EOF 188040ff6d7eSKevin Wolf#define _GNU_SOURCE 188140ff6d7eSKevin Wolf#include <sys/socket.h> 188240ff6d7eSKevin Wolf#include <stddef.h> 188340ff6d7eSKevin Wolf 188440ff6d7eSKevin Wolfint main(void) 188540ff6d7eSKevin Wolf{ 188640ff6d7eSKevin Wolf accept4(0, NULL, NULL, SOCK_CLOEXEC); 188740ff6d7eSKevin Wolf return 0; 188840ff6d7eSKevin Wolf} 188940ff6d7eSKevin WolfEOF 189040ff6d7eSKevin Wolfif compile_prog "" "" ; then 189140ff6d7eSKevin Wolf accept4=yes 189240ff6d7eSKevin Wolffi 189340ff6d7eSKevin Wolf 18943ce34dfbSvibisreenivasan# check if tee/splice is there. vmsplice was added same time. 18953ce34dfbSvibisreenivasansplice=no 18963ce34dfbSvibisreenivasancat > $TMPC << EOF 18973ce34dfbSvibisreenivasan#define _GNU_SOURCE 18983ce34dfbSvibisreenivasan#include <unistd.h> 18993ce34dfbSvibisreenivasan#include <fcntl.h> 19003ce34dfbSvibisreenivasan#include <limits.h> 19013ce34dfbSvibisreenivasan 19023ce34dfbSvibisreenivasanint main(void) 19033ce34dfbSvibisreenivasan{ 19043ce34dfbSvibisreenivasan int len, fd; 19053ce34dfbSvibisreenivasan len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK); 19063ce34dfbSvibisreenivasan splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE); 19073ce34dfbSvibisreenivasan return 0; 19083ce34dfbSvibisreenivasan} 19093ce34dfbSvibisreenivasanEOF 191052166aa0SJuan Quintelaif compile_prog "" "" ; then 19113ce34dfbSvibisreenivasan splice=yes 19123ce34dfbSvibisreenivasanfi 19133ce34dfbSvibisreenivasan 1914c2882b96SRiku Voipio# check if eventfd is supported 1915c2882b96SRiku Voipioeventfd=no 1916c2882b96SRiku Voipiocat > $TMPC << EOF 1917c2882b96SRiku Voipio#include <sys/eventfd.h> 1918c2882b96SRiku Voipio 1919c2882b96SRiku Voipioint main(void) 1920c2882b96SRiku Voipio{ 1921c2882b96SRiku Voipio int efd = eventfd(0, 0); 1922c2882b96SRiku Voipio return 0; 1923c2882b96SRiku Voipio} 1924c2882b96SRiku VoipioEOF 1925c2882b96SRiku Voipioif compile_prog "" "" ; then 1926c2882b96SRiku Voipio eventfd=yes 1927c2882b96SRiku Voipiofi 1928c2882b96SRiku Voipio 1929d0927938SUlrich Hecht# check for fallocate 1930d0927938SUlrich Hechtfallocate=no 1931d0927938SUlrich Hechtcat > $TMPC << EOF 1932d0927938SUlrich Hecht#include <fcntl.h> 1933d0927938SUlrich Hecht 1934d0927938SUlrich Hechtint main(void) 1935d0927938SUlrich Hecht{ 1936d0927938SUlrich Hecht fallocate(0, 0, 0, 0); 1937d0927938SUlrich Hecht return 0; 1938d0927938SUlrich Hecht} 1939d0927938SUlrich HechtEOF 1940be17dc90SMichael S. Tsirkinif compile_prog "$ARCH_CFLAGS" "" ; then 1941d0927938SUlrich Hecht fallocate=yes 1942d0927938SUlrich Hechtfi 1943d0927938SUlrich Hecht 1944d0927938SUlrich Hecht# check for dup3 1945d0927938SUlrich Hechtdup3=no 1946d0927938SUlrich Hechtcat > $TMPC << EOF 1947d0927938SUlrich Hecht#include <unistd.h> 1948d0927938SUlrich Hecht 1949d0927938SUlrich Hechtint main(void) 1950d0927938SUlrich Hecht{ 1951d0927938SUlrich Hecht dup3(0, 0, 0); 1952d0927938SUlrich Hecht return 0; 1953d0927938SUlrich Hecht} 1954d0927938SUlrich HechtEOF 195578f5d726SJan Kiszkaif compile_prog "" "" ; then 1956d0927938SUlrich Hecht dup3=yes 1957d0927938SUlrich Hechtfi 1958d0927938SUlrich Hecht 1959cc8ae6deSpbrook# Check if tools are available to build documentation. 1960a25dba17SJuan Quintelaif test "$docs" != "no" ; then 196101668d98SStefan Weil if has makeinfo && has pod2man; then 1962a25dba17SJuan Quintela docs=yes 196383a3ab8bSJuan Quintela else 1964a25dba17SJuan Quintela if test "$docs" = "yes" ; then 1965a25dba17SJuan Quintela feature_not_found "docs" 196683a3ab8bSJuan Quintela fi 1967a25dba17SJuan Quintela docs=no 196883a3ab8bSJuan Quintela fi 1969cc8ae6deSpbrookfi 1970cc8ae6deSpbrook 1971f514f41cSStefan Weil# Search for bswap_32 function 19726ae9a1f4SJuan Quintelabyteswap_h=no 19736ae9a1f4SJuan Quintelacat > $TMPC << EOF 19746ae9a1f4SJuan Quintela#include <byteswap.h> 19756ae9a1f4SJuan Quintelaint main(void) { return bswap_32(0); } 19766ae9a1f4SJuan QuintelaEOF 197752166aa0SJuan Quintelaif compile_prog "" "" ; then 19786ae9a1f4SJuan Quintela byteswap_h=yes 19796ae9a1f4SJuan Quintelafi 19806ae9a1f4SJuan Quintela 1981f514f41cSStefan Weil# Search for bswap_32 function 19826ae9a1f4SJuan Quintelabswap_h=no 19836ae9a1f4SJuan Quintelacat > $TMPC << EOF 19846ae9a1f4SJuan Quintela#include <sys/endian.h> 19856ae9a1f4SJuan Quintela#include <sys/types.h> 19866ae9a1f4SJuan Quintela#include <machine/bswap.h> 19876ae9a1f4SJuan Quintelaint main(void) { return bswap32(0); } 19886ae9a1f4SJuan QuintelaEOF 198952166aa0SJuan Quintelaif compile_prog "" "" ; then 19906ae9a1f4SJuan Quintela bswap_h=yes 19916ae9a1f4SJuan Quintelafi 19926ae9a1f4SJuan Quintela 1993da93a1fdSaliguori########################################## 1994da93a1fdSaliguori# Do we need librt 1995da93a1fdSaliguoricat > $TMPC <<EOF 1996da93a1fdSaliguori#include <signal.h> 1997da93a1fdSaliguori#include <time.h> 1998da93a1fdSaliguoriint main(void) { clockid_t id; return clock_gettime(id, NULL); } 1999da93a1fdSaliguoriEOF 2000da93a1fdSaliguori 200152166aa0SJuan Quintelaif compile_prog "" "" ; then 200207ffa4bdSJuan Quintela : 200352166aa0SJuan Quintelaelif compile_prog "" "-lrt" ; then 200407ffa4bdSJuan Quintela LIBS="-lrt $LIBS" 2005da93a1fdSaliguorifi 2006da93a1fdSaliguori 200731ff504dSBlue Swirlif test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaris" != yes -a \ 20086362a53fSJuan Quintela "$aix" != "yes" ; then 20096362a53fSJuan Quintela libs_softmmu="-lutil $libs_softmmu" 20106362a53fSJuan Quintelafi 20116362a53fSJuan Quintela 2012de5071c5SBlue Swirl########################################## 2013de5071c5SBlue Swirl# check if the compiler defines offsetof 2014de5071c5SBlue Swirl 2015de5071c5SBlue Swirlneed_offsetof=yes 2016de5071c5SBlue Swirlcat > $TMPC << EOF 2017de5071c5SBlue Swirl#include <stddef.h> 2018de5071c5SBlue Swirlint main(void) { struct s { int f; }; return offsetof(struct s, f); } 2019de5071c5SBlue SwirlEOF 2020de5071c5SBlue Swirlif compile_prog "" "" ; then 2021de5071c5SBlue Swirl need_offsetof=no 2022de5071c5SBlue Swirlfi 2023de5071c5SBlue Swirl 20245f6b9e8fSBlue Swirl########################################## 2025747bbdf7SBlue Swirl# check if the compiler understands attribute warn_unused_result 2026747bbdf7SBlue Swirl# 2027747bbdf7SBlue Swirl# This could be smarter, but gcc -Werror does not error out even when warning 2028747bbdf7SBlue Swirl# about attribute warn_unused_result 2029747bbdf7SBlue Swirl 2030747bbdf7SBlue Swirlgcc_attribute_warn_unused_result=no 2031747bbdf7SBlue Swirlcat > $TMPC << EOF 2032747bbdf7SBlue Swirl#if defined(__GNUC__) && (__GNUC__ < 4) && defined(__GNUC_MINOR__) && (__GNUC__ < 4) 2033747bbdf7SBlue Swirl#error gcc 3.3 or older 2034747bbdf7SBlue Swirl#endif 2035747bbdf7SBlue Swirlint main(void) { return 0;} 2036747bbdf7SBlue SwirlEOF 2037747bbdf7SBlue Swirlif compile_prog "" ""; then 2038747bbdf7SBlue Swirl gcc_attribute_warn_unused_result=yes 2039747bbdf7SBlue Swirlfi 2040747bbdf7SBlue Swirl 2041747bbdf7SBlue Swirl########################################## 20425f6b9e8fSBlue Swirl# check if we have fdatasync 20435f6b9e8fSBlue Swirl 20445f6b9e8fSBlue Swirlfdatasync=no 20455f6b9e8fSBlue Swirlcat > $TMPC << EOF 20465f6b9e8fSBlue Swirl#include <unistd.h> 20475f6b9e8fSBlue Swirlint main(void) { return fdatasync(0); } 20485f6b9e8fSBlue SwirlEOF 20495f6b9e8fSBlue Swirlif compile_prog "" "" ; then 20505f6b9e8fSBlue Swirl fdatasync=yes 20515f6b9e8fSBlue Swirlfi 20525f6b9e8fSBlue Swirl 2053e86ecd4bSJuan Quintela# End of CC checks 2054e86ecd4bSJuan Quintela# After here, no more $cc or $ld runs 2055e86ecd4bSJuan Quintela 2056e86ecd4bSJuan Quintelaif test "$debug" = "no" ; then 20571156c669SJuan Quintela CFLAGS="-O2 $CFLAGS" 2058e86ecd4bSJuan Quintelafi 2059a316e378SJuan Quintela 2060e86ecd4bSJuan Quintela# Consult white-list to determine whether to enable werror 2061e86ecd4bSJuan Quintela# by default. Only enable by default for git builds 2062e86ecd4bSJuan Quintelaz_version=`cut -f3 -d. $source_path/VERSION` 206320ff6c80SAnthony Liguori 206420ff6c80SAnthony Liguoriif test -z "$werror" ; then 2065e86ecd4bSJuan Quintela if test "$z_version" = "50" -a \ 2066e86ecd4bSJuan Quintela "$linux" = "yes" ; then 2067e86ecd4bSJuan Quintela werror="yes" 2068e86ecd4bSJuan Quintela else 2069e86ecd4bSJuan Quintela werror="no" 2070e86ecd4bSJuan Quintela fi 2071e86ecd4bSJuan Quintelafi 2072e86ecd4bSJuan Quintela 207320ff6c80SAnthony Liguori# Disable zero malloc errors for official releases unless explicitly told to 207420ff6c80SAnthony Liguori# enable/disable 207520ff6c80SAnthony Liguoriif test -z "$zero_malloc" ; then 207620ff6c80SAnthony Liguori if test "$z_version" = "50" ; then 207720ff6c80SAnthony Liguori zero_malloc="no" 207820ff6c80SAnthony Liguori else 207920ff6c80SAnthony Liguori zero_malloc="yes" 208020ff6c80SAnthony Liguori fi 208120ff6c80SAnthony Liguorifi 208220ff6c80SAnthony Liguori 2083e86ecd4bSJuan Quintelaif test "$werror" = "yes" ; then 2084a558ee17SJuan Quintela QEMU_CFLAGS="-Werror $QEMU_CFLAGS" 2085e86ecd4bSJuan Quintelafi 2086e86ecd4bSJuan Quintela 2087e86ecd4bSJuan Quintelaif test "$solaris" = "no" ; then 2088e86ecd4bSJuan Quintela if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then 20891156c669SJuan Quintela LDFLAGS="-Wl,--warn-common $LDFLAGS" 2090e86ecd4bSJuan Quintela fi 2091e86ecd4bSJuan Quintelafi 2092e86ecd4bSJuan Quintela 2093190e9c59SPaolo Bonziniconfdir=$sysconfdir$confsuffix 20945a67135aSbellard 2095ca35f780SPaolo Bonzinitools= 2096ca35f780SPaolo Bonziniif test "$softmmu" = yes ; then 2097ca35f780SPaolo Bonzini tools="qemu-img\$(EXESUF) qemu-io\$(EXESUF) $tools" 2098ca35f780SPaolo Bonzini if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" ] ; then 2099ca35f780SPaolo Bonzini tools="qemu-nbd\$(EXESUF) $tools" 2100ca35f780SPaolo Bonzini if [ "$check_utests" = "yes" ]; then 2101ca35f780SPaolo Bonzini tools="check-qint check-qstring check-qdict check-qlist $tools" 2102ca35f780SPaolo Bonzini tools="check-qfloat check-qjson $tools" 2103ca35f780SPaolo Bonzini fi 2104ca35f780SPaolo Bonzini fi 2105ca35f780SPaolo Bonzinifi 2106ca35f780SPaolo Bonzini 2107ca35f780SPaolo Bonzini# Mac OS X ships with a broken assembler 2108ca35f780SPaolo Bonziniroms= 2109ca35f780SPaolo Bonziniif test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \ 2110ca35f780SPaolo Bonzini "$targetos" != "Darwin" -a "$targetos" != "SunOS" -a \ 2111ca35f780SPaolo Bonzini "$softmmu" = yes ; then 2112ca35f780SPaolo Bonzini roms="optionrom" 2113ca35f780SPaolo Bonzinifi 2114ca35f780SPaolo Bonzini 2115ca35f780SPaolo Bonzini 21167d13299dSbellardecho "Install prefix $prefix" 2117f2b9e1e3SPaolo Bonziniecho "BIOS directory `eval echo $datadir`" 2118f2b9e1e3SPaolo Bonziniecho "binary directory `eval echo $bindir`" 21191c0fd160SAurelien Jarnoecho "config directory `eval echo $sysconfdir`" 212011d9f695Sbellardif test "$mingw32" = "no" ; then 2121f2b9e1e3SPaolo Bonziniecho "Manual directory `eval echo $mandir`" 212243ce4dfeSbellardecho "ELF interp prefix $interp_prefix" 212311d9f695Sbellardfi 21245a67135aSbellardecho "Source path $source_path" 21257d13299dSbellardecho "C compiler $cc" 212683469015Sbellardecho "Host C compiler $host_cc" 21270c439cbfSJuan Quintelaecho "CFLAGS $CFLAGS" 2128a558ee17SJuan Quintelaecho "QEMU_CFLAGS $QEMU_CFLAGS" 21290c439cbfSJuan Quintelaecho "LDFLAGS $LDFLAGS" 21307d13299dSbellardecho "make $make" 21316a882643Spbrookecho "install $install" 2132a98fd896Sbellardecho "host CPU $cpu" 2133de83cd02Sbellardecho "host big endian $bigendian" 213497a847bcSbellardecho "target list $target_list" 2135ade25b0dSaurel32echo "tcg debug enabled $debug_tcg" 2136b4475aa2SLuiz Capitulinoecho "Mon debug enabled $debug_mon" 21377d13299dSbellardecho "gprof enabled $gprof" 213803b4fe7dSaliguoriecho "sparse enabled $sparse" 21391625af87Saliguoriecho "strip binaries $strip_opt" 214005c2a3e7Sbellardecho "profiler $profiler" 214143ce4dfeSbellardecho "static build $static" 214285aa5189Sbellardecho "-Werror enabled $werror" 21435b0753e0Sbellardif test "$darwin" = "yes" ; then 21445b0753e0Sbellard echo "Cocoa support $cocoa" 21455b0753e0Sbellardfi 214697a847bcSbellardecho "SDL support $sdl" 21474d3b6f6eSbalrogecho "curses support $curses" 2148769ce76dSAlexander Grafecho "curl support $curl" 21495495ed11SLuiz Capitulinoecho "check support $check_utests" 215067b915a5Sbellardecho "mingw32 support $mingw32" 21510c58ac1cSmalcecho "Audio drivers $audio_drv_list" 21520c58ac1cSmalcecho "Extra audio cards $audio_card_list" 2153eb852011SMarkus Armbrusterecho "Block whitelist $block_drv_whitelist" 21548ff9cbf7Smalcecho "Mixer emulation $mixemu" 21558d5d2d4cSthsecho "VNC TLS support $vnc_tls" 21562f9606b3Saliguoriecho "VNC SASL support $vnc_sasl" 21572f6f5c7aSCorentin Charyecho "VNC JPEG support $vnc_jpeg" 2158*efe556adSCorentin Charyecho "VNC PNG support $vnc_png" 21593142255cSblueswir1if test -n "$sparc_cpu"; then 21603142255cSblueswir1 echo "Target Sparc Arch $sparc_cpu" 21613142255cSblueswir1fi 2162e37630caSaliguoriecho "xen support $xen" 21632e4d9fb1Saurel32echo "brlapi support $brlapi" 2164a20a6f46SJuan Quintelaecho "bluez support $bluez" 2165a25dba17SJuan Quintelaecho "Documentation $docs" 2166c5937220Spbrook[ ! -z "$uname_release" ] && \ 2167c5937220Spbrookecho "uname -r $uname_release" 2168bd0c5661Spbrookecho "NPTL support $nptl" 2169379f6698SPaul Brookecho "GUEST_BASE $guest_base" 217034005a00SKirill A. Shutemovecho "PIE user targets $user_pie" 21718a16d273Sthsecho "vde support $vde" 2172e5d355d1Saliguoriecho "IO thread $io_thread" 21735c6c3a6cSChristoph Hellwigecho "Linux AIO support $linux_aio" 2174758e8e38SVenkateswararao Jujjuri (JV)echo "ATTR/XATTR support $attr" 217577755340Sthsecho "Install blobs $blobs" 2176b31a0277SJuan Quintelaecho "KVM support $kvm" 2177f652e6afSaurel32echo "fdt support $fdt" 2178ceb42de8Saliguoriecho "preadv support $preadv" 21795f6b9e8fSBlue Swirlecho "fdatasync $fdatasync" 2180ee682d27SStefan Weilecho "uuid support $uuid" 2181d5970055SMichael S. Tsirkinecho "vhost-net support $vhost_net" 218267b915a5Sbellard 218397a847bcSbellardif test $sdl_too_old = "yes"; then 218424b55b96Sbellardecho "-> Your SDL version is too old - please upgrade to have SDL support" 2185e8cd23deSbellardfi 218697a847bcSbellard 218798ec69acSJuan Quintelaconfig_host_mak="config-host.mak" 21884bf6b55bSJuan Quintelaconfig_host_ld="config-host.ld" 218997a847bcSbellard 219098ec69acSJuan Quintelaecho "# Automatically generated by configure - do not modify" > $config_host_mak 219198ec69acSJuan Quintelaprintf "# Configured with:" >> $config_host_mak 219298ec69acSJuan Quintelaprintf " '%s'" "$0" "$@" >> $config_host_mak 219398ec69acSJuan Quintelaecho >> $config_host_mak 219498ec69acSJuan Quintela 219599d7cc75SPaolo Bonziniecho "prefix=$prefix" >> $config_host_mak 219699d7cc75SPaolo Bonziniecho "bindir=$bindir" >> $config_host_mak 219799d7cc75SPaolo Bonziniecho "mandir=$mandir" >> $config_host_mak 219899d7cc75SPaolo Bonziniecho "datadir=$datadir" >> $config_host_mak 219999d7cc75SPaolo Bonziniecho "sysconfdir=$sysconfdir" >> $config_host_mak 220099d7cc75SPaolo Bonziniecho "docdir=$docdir" >> $config_host_mak 22011dabe05cSPaolo Bonziniecho "confdir=$confdir" >> $config_host_mak 2202804edf29SJuan Quintela 22032408a527Saurel32case "$cpu" in 220424e804ecSAlexander Graf i386|x86_64|alpha|cris|hppa|ia64|m68k|microblaze|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64) 2205e0da9dd3SJuan Quintela ARCH=$cpu 22062408a527Saurel32 ;; 2207a302c32dSLaurent Desnogues armv4b|armv4l) 220816dbd14fSJuan Quintela ARCH=arm 22092408a527Saurel32 ;; 22102408a527Saurel32esac 221198ec69acSJuan Quintelaecho "ARCH=$ARCH" >> $config_host_mak 2212f8393946Saurel32if test "$debug_tcg" = "yes" ; then 22132358a494SJuan Quintela echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak 2214f8393946Saurel32fi 2215b4475aa2SLuiz Capitulinoif test "$debug_mon" = "yes" ; then 2216b4475aa2SLuiz Capitulino echo "CONFIG_DEBUG_MONITOR=y" >> $config_host_mak 2217b4475aa2SLuiz Capitulinofi 2218f3d08ee6SPaul Brookif test "$debug" = "yes" ; then 22192358a494SJuan Quintela echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak 2220f3d08ee6SPaul Brookfi 22211625af87Saliguoriif test "$strip_opt" = "yes" ; then 222298ec69acSJuan Quintela echo "STRIP_OPT=-s" >> $config_host_mak 22231625af87Saliguorifi 22247d13299dSbellardif test "$bigendian" = "yes" ; then 2225e2542fe2SJuan Quintela echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak 222697a847bcSbellardfi 22272358a494SJuan Quintelaecho "HOST_LONG_BITS=$hostlongbits" >> $config_host_mak 222867b915a5Sbellardif test "$mingw32" = "yes" ; then 222998ec69acSJuan Quintela echo "CONFIG_WIN32=y" >> $config_host_mak 2230210fa556Spbrookelse 223135f4df27SJuan Quintela echo "CONFIG_POSIX=y" >> $config_host_mak 2232210fa556Spbrookfi 2233128ab2ffSblueswir1 2234dffcb71cSMark McLoughlinif test "$linux" = "yes" ; then 2235dffcb71cSMark McLoughlin echo "CONFIG_LINUX=y" >> $config_host_mak 2236dffcb71cSMark McLoughlinfi 2237dffcb71cSMark McLoughlin 223883fb7adfSbellardif test "$darwin" = "yes" ; then 223998ec69acSJuan Quintela echo "CONFIG_DARWIN=y" >> $config_host_mak 224083fb7adfSbellardfi 2241b29fe3edSmalc 2242b29fe3edSmalcif test "$aix" = "yes" ; then 224398ec69acSJuan Quintela echo "CONFIG_AIX=y" >> $config_host_mak 2244b29fe3edSmalcfi 2245b29fe3edSmalc 2246ec530c81Sbellardif test "$solaris" = "yes" ; then 224798ec69acSJuan Quintela echo "CONFIG_SOLARIS=y" >> $config_host_mak 22482358a494SJuan Quintela echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak 22490475a5caSths if test "$needs_libsunmath" = "yes" ; then 225075b5a697SJuan Quintela echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak 22510475a5caSths fi 2252ec530c81Sbellardfi 225397a847bcSbellardif test "$static" = "yes" ; then 225498ec69acSJuan Quintela echo "CONFIG_STATIC=y" >> $config_host_mak 225597a847bcSbellardfi 225605c2a3e7Sbellardif test $profiler = "yes" ; then 22572358a494SJuan Quintela echo "CONFIG_PROFILER=y" >> $config_host_mak 225805c2a3e7Sbellardfi 2259c20709aaSbellardif test "$slirp" = "yes" ; then 226098ec69acSJuan Quintela echo "CONFIG_SLIRP=y" >> $config_host_mak 2261b6e31c12SJuan Quintela QEMU_CFLAGS="-I\$(SRC_PATH)/slirp $QEMU_CFLAGS" 2262c20709aaSbellardfi 22638a16d273Sthsif test "$vde" = "yes" ; then 226498ec69acSJuan Quintela echo "CONFIG_VDE=y" >> $config_host_mak 22658a16d273Sthsfi 22660c58ac1cSmalcfor card in $audio_card_list; do 2267f6e5889eSpbrook def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'` 226898ec69acSJuan Quintela echo "$def=y" >> $config_host_mak 22690c58ac1cSmalcdone 22702358a494SJuan Quintelaecho "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak 22710c58ac1cSmalcfor drv in $audio_drv_list; do 2272f6e5889eSpbrook def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'` 227398ec69acSJuan Quintela echo "$def=y" >> $config_host_mak 2274923e4521Smalc if test "$drv" = "fmod"; then 22757aac6cb1SJuan Quintela echo "FMOD_CFLAGS=-I$fmod_inc" >> $config_host_mak 2276fb065187Sbellard fi 22770c58ac1cSmalcdone 227867f86e8eSJuan Quintelaif test "$audio_pt_int" = "yes" ; then 227967f86e8eSJuan Quintela echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak 228067f86e8eSJuan Quintelafi 2281d5631638Smalcif test "$audio_win_int" = "yes" ; then 2282d5631638Smalc echo "CONFIG_AUDIO_WIN_INT=y" >> $config_host_mak 2283d5631638Smalcfi 2284eb852011SMarkus Armbrusterecho "CONFIG_BDRV_WHITELIST=$block_drv_whitelist" >> $config_host_mak 22858ff9cbf7Smalcif test "$mixemu" = "yes" ; then 228698ec69acSJuan Quintela echo "CONFIG_MIXEMU=y" >> $config_host_mak 22878ff9cbf7Smalcfi 22888d5d2d4cSthsif test "$vnc_tls" = "yes" ; then 228998ec69acSJuan Quintela echo "CONFIG_VNC_TLS=y" >> $config_host_mak 2290525061bfSJuan Quintela echo "VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_host_mak 22918d5d2d4cSthsfi 22922f9606b3Saliguoriif test "$vnc_sasl" = "yes" ; then 229398ec69acSJuan Quintela echo "CONFIG_VNC_SASL=y" >> $config_host_mak 229460ddf533SJuan Quintela echo "VNC_SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak 22952f9606b3Saliguorifi 22962f6f5c7aSCorentin Charyif test "$vnc_jpeg" = "yes" ; then 22972f6f5c7aSCorentin Chary echo "CONFIG_VNC_JPEG=y" >> $config_host_mak 22982f6f5c7aSCorentin Chary echo "VNC_JPEG_CFLAGS=$vnc_jpeg_cflags" >> $config_host_mak 22992f6f5c7aSCorentin Charyfi 2300*efe556adSCorentin Charyif test "$vnc_png" = "yes" ; then 2301*efe556adSCorentin Chary echo "CONFIG_VNC_PNG=y" >> $config_host_mak 2302*efe556adSCorentin Chary echo "VNC_PNG_CFLAGS=$vnc_png_cflags" >> $config_host_mak 2303*efe556adSCorentin Charyfi 230476655d6dSaliguoriif test "$fnmatch" = "yes" ; then 23052358a494SJuan Quintela echo "CONFIG_FNMATCH=y" >> $config_host_mak 230676655d6dSaliguorifi 2307ee682d27SStefan Weilif test "$uuid" = "yes" ; then 2308ee682d27SStefan Weil echo "CONFIG_UUID=y" >> $config_host_mak 2309ee682d27SStefan Weilfi 2310b1a550a0Spbrookqemu_version=`head $source_path/VERSION` 231198ec69acSJuan Quintelaecho "VERSION=$qemu_version" >>$config_host_mak 23122358a494SJuan Quintelaecho "PKGVERSION=$pkgversion" >>$config_host_mak 231398ec69acSJuan Quintelaecho "SRC_PATH=$source_path" >> $config_host_mak 231498ec69acSJuan Quintelaecho "TARGET_DIRS=$target_list" >> $config_host_mak 2315a25dba17SJuan Quintelaif [ "$docs" = "yes" ] ; then 231698ec69acSJuan Quintela echo "BUILD_DOCS=yes" >> $config_host_mak 2317cc8ae6deSpbrookfi 23181ac88f28SJuan Quintelaif test "$sdl" = "yes" ; then 231998ec69acSJuan Quintela echo "CONFIG_SDL=y" >> $config_host_mak 23208ad3a7ddSJuan Quintela echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak 232149ecc3faSbellardfi 232249ecc3faSbellardif test "$cocoa" = "yes" ; then 232398ec69acSJuan Quintela echo "CONFIG_COCOA=y" >> $config_host_mak 232449ecc3faSbellardfi 23254d3b6f6eSbalrogif test "$curses" = "yes" ; then 232698ec69acSJuan Quintela echo "CONFIG_CURSES=y" >> $config_host_mak 2327ab4e5602SJan Kiszkafi 23283b3f24adSaurel32if test "$atfile" = "yes" ; then 23292358a494SJuan Quintela echo "CONFIG_ATFILE=y" >> $config_host_mak 23303b3f24adSaurel32fi 2331ebc996f3SRiku Voipioif test "$utimens" = "yes" ; then 23322358a494SJuan Quintela echo "CONFIG_UTIMENSAT=y" >> $config_host_mak 2333ebc996f3SRiku Voipiofi 2334099d6b0fSRiku Voipioif test "$pipe2" = "yes" ; then 23352358a494SJuan Quintela echo "CONFIG_PIPE2=y" >> $config_host_mak 2336099d6b0fSRiku Voipiofi 233740ff6d7eSKevin Wolfif test "$accept4" = "yes" ; then 233840ff6d7eSKevin Wolf echo "CONFIG_ACCEPT4=y" >> $config_host_mak 233940ff6d7eSKevin Wolffi 23403ce34dfbSvibisreenivasanif test "$splice" = "yes" ; then 23412358a494SJuan Quintela echo "CONFIG_SPLICE=y" >> $config_host_mak 23423ce34dfbSvibisreenivasanfi 2343c2882b96SRiku Voipioif test "$eventfd" = "yes" ; then 2344c2882b96SRiku Voipio echo "CONFIG_EVENTFD=y" >> $config_host_mak 2345c2882b96SRiku Voipiofi 2346d0927938SUlrich Hechtif test "$fallocate" = "yes" ; then 2347d0927938SUlrich Hecht echo "CONFIG_FALLOCATE=y" >> $config_host_mak 2348d0927938SUlrich Hechtfi 2349d0927938SUlrich Hechtif test "$dup3" = "yes" ; then 2350d0927938SUlrich Hecht echo "CONFIG_DUP3=y" >> $config_host_mak 2351d0927938SUlrich Hechtfi 23523b3f24adSaurel32if test "$inotify" = "yes" ; then 23532358a494SJuan Quintela echo "CONFIG_INOTIFY=y" >> $config_host_mak 23543b3f24adSaurel32fi 2355c05c7a73SRiku Voipioif test "$inotify1" = "yes" ; then 2356c05c7a73SRiku Voipio echo "CONFIG_INOTIFY1=y" >> $config_host_mak 2357c05c7a73SRiku Voipiofi 23586ae9a1f4SJuan Quintelaif test "$byteswap_h" = "yes" ; then 23596ae9a1f4SJuan Quintela echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak 23606ae9a1f4SJuan Quintelafi 23616ae9a1f4SJuan Quintelaif test "$bswap_h" = "yes" ; then 23626ae9a1f4SJuan Quintela echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak 23636ae9a1f4SJuan Quintelafi 2364769ce76dSAlexander Grafif test "$curl" = "yes" ; then 236598ec69acSJuan Quintela echo "CONFIG_CURL=y" >> $config_host_mak 2366b1d5a277SJuan Quintela echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak 2367769ce76dSAlexander Graffi 23682e4d9fb1Saurel32if test "$brlapi" = "yes" ; then 236998ec69acSJuan Quintela echo "CONFIG_BRLAPI=y" >> $config_host_mak 23702e4d9fb1Saurel32fi 2371fb599c9aSbalrogif test "$bluez" = "yes" ; then 237298ec69acSJuan Quintela echo "CONFIG_BLUEZ=y" >> $config_host_mak 2373ef7635ecSJuan Quintela echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak 2374fb599c9aSbalrogfi 2375e37630caSaliguoriif test "$xen" = "yes" ; then 23765647eb74SJuan Quintela echo "CONFIG_XEN=y" >> $config_host_mak 2377e37630caSaliguorifi 2378e5d355d1Saliguoriif test "$io_thread" = "yes" ; then 237998ec69acSJuan Quintela echo "CONFIG_IOTHREAD=y" >> $config_host_mak 2380e5d355d1Saliguorifi 23815c6c3a6cSChristoph Hellwigif test "$linux_aio" = "yes" ; then 23825c6c3a6cSChristoph Hellwig echo "CONFIG_LINUX_AIO=y" >> $config_host_mak 23835c6c3a6cSChristoph Hellwigfi 2384758e8e38SVenkateswararao Jujjuri (JV)if test "$attr" = "yes" ; then 2385758e8e38SVenkateswararao Jujjuri (JV) echo "CONFIG_ATTR=y" >> $config_host_mak 2386758e8e38SVenkateswararao Jujjuri (JV)fi 2387758e8e38SVenkateswararao Jujjuri (JV)if test "$linux" = "yes" ; then 2388758e8e38SVenkateswararao Jujjuri (JV) if test "$attr" = "yes" ; then 2389758e8e38SVenkateswararao Jujjuri (JV) echo "CONFIG_VIRTFS=y" >> $config_host_mak 2390758e8e38SVenkateswararao Jujjuri (JV) fi 2391758e8e38SVenkateswararao Jujjuri (JV)fi 239277755340Sthsif test "$blobs" = "yes" ; then 239398ec69acSJuan Quintela echo "INSTALL_BLOBS=yes" >> $config_host_mak 239477755340Sthsfi 2395bf9298b9Saliguoriif test "$iovec" = "yes" ; then 23962358a494SJuan Quintela echo "CONFIG_IOVEC=y" >> $config_host_mak 2397bf9298b9Saliguorifi 2398ceb42de8Saliguoriif test "$preadv" = "yes" ; then 23992358a494SJuan Quintela echo "CONFIG_PREADV=y" >> $config_host_mak 2400ceb42de8Saliguorifi 2401f652e6afSaurel32if test "$fdt" = "yes" ; then 24023f0855b1SJuan Quintela echo "CONFIG_FDT=y" >> $config_host_mak 2403f652e6afSaurel32fi 2404de5071c5SBlue Swirlif test "$need_offsetof" = "yes" ; then 2405de5071c5SBlue Swirl echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak 2406de5071c5SBlue Swirlfi 2407747bbdf7SBlue Swirlif test "$gcc_attribute_warn_unused_result" = "yes" ; then 2408747bbdf7SBlue Swirl echo "CONFIG_GCC_ATTRIBUTE_WARN_UNUSED_RESULT=y" >> $config_host_mak 2409747bbdf7SBlue Swirlfi 24105f6b9e8fSBlue Swirlif test "$fdatasync" = "yes" ; then 24115f6b9e8fSBlue Swirl echo "CONFIG_FDATASYNC=y" >> $config_host_mak 24125f6b9e8fSBlue Swirlfi 241397a847bcSbellard 241483fb7adfSbellard# XXX: suppress that 24157d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 24162358a494SJuan Quintela echo "CONFIG_BSD=y" >> $config_host_mak 24177d3505c5Sbellardfi 24187d3505c5Sbellard 24192358a494SJuan Quintelaecho "CONFIG_UNAME_RELEASE=\"$uname_release\"" >> $config_host_mak 2420c5937220Spbrook 242120ff6c80SAnthony Liguoriif test "$zero_malloc" = "yes" ; then 242220ff6c80SAnthony Liguori echo "CONFIG_ZERO_MALLOC=y" >> $config_host_mak 242320ff6c80SAnthony Liguorifi 242420ff6c80SAnthony Liguori 242568063649Sblueswir1# USB host support 242668063649Sblueswir1case "$usb" in 242768063649Sblueswir1linux) 242898ec69acSJuan Quintela echo "HOST_USB=linux" >> $config_host_mak 242968063649Sblueswir1;; 243068063649Sblueswir1bsd) 243198ec69acSJuan Quintela echo "HOST_USB=bsd" >> $config_host_mak 243268063649Sblueswir1;; 243368063649Sblueswir1*) 243498ec69acSJuan Quintela echo "HOST_USB=stub" >> $config_host_mak 243568063649Sblueswir1;; 243668063649Sblueswir1esac 243768063649Sblueswir1 243898ec69acSJuan Quintelaecho "TOOLS=$tools" >> $config_host_mak 243998ec69acSJuan Quintelaecho "ROMS=$roms" >> $config_host_mak 2440804edf29SJuan Quintelaecho "MAKE=$make" >> $config_host_mak 2441804edf29SJuan Quintelaecho "INSTALL=$install" >> $config_host_mak 2442804edf29SJuan Quintelaecho "INSTALL_DIR=$install -d -m0755 -p" >> $config_host_mak 2443804edf29SJuan Quintelaecho "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak 2444804edf29SJuan Quintelaecho "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak 2445804edf29SJuan Quintelaecho "CC=$cc" >> $config_host_mak 2446804edf29SJuan Quintelaecho "HOST_CC=$host_cc" >> $config_host_mak 2447804edf29SJuan Quintelaif test "$sparse" = "yes" ; then 2448804edf29SJuan Quintela echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_host_mak 2449804edf29SJuan Quintela echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_host_mak 2450a558ee17SJuan Quintela echo "QEMU_CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak 2451804edf29SJuan Quintelafi 2452804edf29SJuan Quintelaecho "AR=$ar" >> $config_host_mak 2453804edf29SJuan Quintelaecho "OBJCOPY=$objcopy" >> $config_host_mak 2454804edf29SJuan Quintelaecho "LD=$ld" >> $config_host_mak 2455e2a2ed06SJuan Quintelaecho "CFLAGS=$CFLAGS" >> $config_host_mak 2456a558ee17SJuan Quintelaecho "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak 2457c81da56eSJuan Quintelaecho "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak 2458e2a2ed06SJuan Quintelaecho "LDFLAGS=$LDFLAGS" >> $config_host_mak 2459a36abbbbSJuan Quintelaecho "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak 2460a36abbbbSJuan Quintelaecho "ARLIBS_END=$arlibs_end" >> $config_host_mak 246173da375eSJuan Quintelaecho "LIBS+=$LIBS" >> $config_host_mak 24623e2e0e6bSJuan Quintelaecho "LIBS_TOOLS+=$libs_tools" >> $config_host_mak 2463804edf29SJuan Quintelaecho "EXESUF=$EXESUF" >> $config_host_mak 2464804edf29SJuan Quintela 24654bf6b55bSJuan Quintela# generate list of library paths for linker script 24664bf6b55bSJuan Quintela 24674bf6b55bSJuan Quintela$ld --verbose -v 2> /dev/null | grep SEARCH_DIR > ${config_host_ld} 24684bf6b55bSJuan Quintela 24694bf6b55bSJuan Quintelaif test -f ${config_host_ld}~ ; then 24704bf6b55bSJuan Quintela if cmp -s $config_host_ld ${config_host_ld}~ ; then 24714bf6b55bSJuan Quintela mv ${config_host_ld}~ $config_host_ld 24724bf6b55bSJuan Quintela else 24734bf6b55bSJuan Quintela rm ${config_host_ld}~ 24744bf6b55bSJuan Quintela fi 24754bf6b55bSJuan Quintelafi 24764bf6b55bSJuan Quintela 24774d904533SBlue Swirlfor d in libdis libdis-user; do 24784d904533SBlue Swirl mkdir -p $d 24794d904533SBlue Swirl rm -f $d/Makefile 24804d904533SBlue Swirl ln -s $source_path/Makefile.dis $d/Makefile 24814d904533SBlue Swirl echo > $d/config.mak 24824d904533SBlue Swirldone 2483d44cff22SRichard Hendersonif test "$static" = "no" -a "$user_pie" = "yes" ; then 2484d44cff22SRichard Henderson echo "QEMU_CFLAGS+=-fpie" > libdis-user/config.mak 2485d44cff22SRichard Hendersonfi 24864d904533SBlue Swirl 248797a847bcSbellardfor target in $target_list; do 248897a847bcSbellardtarget_dir="$target" 248925be210fSJuan Quintelaconfig_target_mak=$target_dir/config-target.mak 2490600309b6SBlue Swirltarget_arch2=`echo $target | cut -d '-' -f 1` 249197a847bcSbellardtarget_bigendian="no" 24921f3d3c8fSJuan Quintela 2493ea2d6a39SJuan Quintelacase "$target_arch2" in 249424e804ecSAlexander Graf armeb|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|s390x|sh4eb|sparc|sparc64|sparc32plus) 2495ea2d6a39SJuan Quintela target_bigendian=yes 2496ea2d6a39SJuan Quintela ;; 2497ea2d6a39SJuan Quintelaesac 249897a847bcSbellardtarget_softmmu="no" 2499997344f3Sbellardtarget_user_only="no" 2500831b7825Sthstarget_linux_user="no" 2501831b7825Sthstarget_darwin_user="no" 250284778508Sblueswir1target_bsd_user="no" 25039e407a85Spbrookcase "$target" in 2504600309b6SBlue Swirl ${target_arch2}-softmmu) 25059e407a85Spbrook target_softmmu="yes" 25069e407a85Spbrook ;; 2507600309b6SBlue Swirl ${target_arch2}-linux-user) 25089c7a4202SBlue Swirl if test "$linux" != "yes" ; then 25099c7a4202SBlue Swirl echo "ERROR: Target '$target' is only available on a Linux host" 25109c7a4202SBlue Swirl exit 1 25119c7a4202SBlue Swirl fi 25129e407a85Spbrook target_user_only="yes" 25139e407a85Spbrook target_linux_user="yes" 25149e407a85Spbrook ;; 2515600309b6SBlue Swirl ${target_arch2}-darwin-user) 25169c7a4202SBlue Swirl if test "$darwin" != "yes" ; then 25179c7a4202SBlue Swirl echo "ERROR: Target '$target' is only available on a Darwin host" 25189c7a4202SBlue Swirl exit 1 25199c7a4202SBlue Swirl fi 25209e407a85Spbrook target_user_only="yes" 2521831b7825Sths target_darwin_user="yes" 25229e407a85Spbrook ;; 2523600309b6SBlue Swirl ${target_arch2}-bsd-user) 25249cf55765SBlue Swirl if test "$bsd" != "yes" ; then 25259c7a4202SBlue Swirl echo "ERROR: Target '$target' is only available on a BSD host" 25269c7a4202SBlue Swirl exit 1 25279c7a4202SBlue Swirl fi 252884778508Sblueswir1 target_user_only="yes" 252984778508Sblueswir1 target_bsd_user="yes" 253084778508Sblueswir1 ;; 25319e407a85Spbrook *) 25329e407a85Spbrook echo "ERROR: Target '$target' not recognised" 25339e407a85Spbrook exit 1 25349e407a85Spbrook ;; 25359e407a85Spbrookesac 2536831b7825Sths 253797a847bcSbellardmkdir -p $target_dir 2538158142c2Sbellardmkdir -p $target_dir/fpu 253957fec1feSbellardmkdir -p $target_dir/tcg 254059f2a787SGerd Hoffmannmkdir -p $target_dir/ide 254184778508Sblueswir1if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then 254269de927cSbellard mkdir -p $target_dir/nwfpe 254369de927cSbellardfi 254469de927cSbellard 2545ec530c81Sbellard# 2546ec530c81Sbellard# don't use ln -sf as not all "ln -sf" over write the file/link 2547ec530c81Sbellard# 2548ec530c81Sbellardrm -f $target_dir/Makefile 2549ec530c81Sbellardln -s $source_path/Makefile.target $target_dir/Makefile 2550ec530c81Sbellard 255197a847bcSbellard 255225be210fSJuan Quintelaecho "# Automatically generated by configure - do not modify" > $config_target_mak 255397a847bcSbellard 2554e5fe0c52Spbrookbflt="no" 2555bd0c5661Spbrooktarget_nptl="no" 2556600309b6SBlue Swirlinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"` 25577ee2822cSPaolo Bonziniecho "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak 255856aebc89Spbrookgdb_xml_files="" 25597ba1e619Saliguori 2560938b1eddSJuan QuintelaTARGET_ARCH="$target_arch2" 25616acff7daSJuan QuintelaTARGET_BASE_ARCH="" 2562e6e91b9cSJuan QuintelaTARGET_ABI_DIR="" 2563e73aae67SJuan Quintela 2564600309b6SBlue Swirlcase "$target_arch2" in 25652408a527Saurel32 i386) 25661ad2134fSPaul Brook target_phys_bits=32 25672408a527Saurel32 ;; 25682408a527Saurel32 x86_64) 25696acff7daSJuan Quintela TARGET_BASE_ARCH=i386 25701ad2134fSPaul Brook target_phys_bits=64 25712408a527Saurel32 ;; 25722408a527Saurel32 alpha) 25731ad2134fSPaul Brook target_phys_bits=64 2574a4b388ffSRichard Henderson target_nptl="yes" 25752408a527Saurel32 ;; 25762408a527Saurel32 arm|armeb) 2577b498c8a0SJuan Quintela TARGET_ARCH=arm 2578e5fe0c52Spbrook bflt="yes" 2579bd0c5661Spbrook target_nptl="yes" 258056aebc89Spbrook gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml" 25811ad2134fSPaul Brook target_phys_bits=32 25822408a527Saurel32 ;; 25832408a527Saurel32 cris) 2584253bd7f8Sedgar_igl target_nptl="yes" 25851ad2134fSPaul Brook target_phys_bits=32 25862408a527Saurel32 ;; 25872408a527Saurel32 m68k) 25880938cda5Saurel32 bflt="yes" 258956aebc89Spbrook gdb_xml_files="cf-core.xml cf-fp.xml" 25901ad2134fSPaul Brook target_phys_bits=32 25912408a527Saurel32 ;; 259272b675caSEdgar E. Iglesias microblaze) 259372b675caSEdgar E. Iglesias bflt="yes" 259472b675caSEdgar E. Iglesias target_nptl="yes" 259572b675caSEdgar E. Iglesias target_phys_bits=32 259672b675caSEdgar E. Iglesias ;; 25972408a527Saurel32 mips|mipsel) 2598b498c8a0SJuan Quintela TARGET_ARCH=mips 259925be210fSJuan Quintela echo "TARGET_ABI_MIPSO32=y" >> $config_target_mak 2600f04dc72fSPaul Brook target_nptl="yes" 26011ad2134fSPaul Brook target_phys_bits=64 26022408a527Saurel32 ;; 26032408a527Saurel32 mipsn32|mipsn32el) 2604b498c8a0SJuan Quintela TARGET_ARCH=mipsn32 26056acff7daSJuan Quintela TARGET_BASE_ARCH=mips 260625be210fSJuan Quintela echo "TARGET_ABI_MIPSN32=y" >> $config_target_mak 26071ad2134fSPaul Brook target_phys_bits=64 26082408a527Saurel32 ;; 26092408a527Saurel32 mips64|mips64el) 2610b498c8a0SJuan Quintela TARGET_ARCH=mips64 26116acff7daSJuan Quintela TARGET_BASE_ARCH=mips 261225be210fSJuan Quintela echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak 26131ad2134fSPaul Brook target_phys_bits=64 26142408a527Saurel32 ;; 26152408a527Saurel32 ppc) 2616c8b3532dSaurel32 gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml" 26171ad2134fSPaul Brook target_phys_bits=32 2618d6630708SNathan Froyd target_nptl="yes" 26192408a527Saurel32 ;; 26202408a527Saurel32 ppcemb) 26216acff7daSJuan Quintela TARGET_BASE_ARCH=ppc 2622e6e91b9cSJuan Quintela TARGET_ABI_DIR=ppc 2623c8b3532dSaurel32 gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml" 26241ad2134fSPaul Brook target_phys_bits=64 2625d6630708SNathan Froyd target_nptl="yes" 26262408a527Saurel32 ;; 26272408a527Saurel32 ppc64) 26286acff7daSJuan Quintela TARGET_BASE_ARCH=ppc 2629e6e91b9cSJuan Quintela TARGET_ABI_DIR=ppc 2630c8b3532dSaurel32 gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml" 26311ad2134fSPaul Brook target_phys_bits=64 26322408a527Saurel32 ;; 26332408a527Saurel32 ppc64abi32) 2634b498c8a0SJuan Quintela TARGET_ARCH=ppc64 26356acff7daSJuan Quintela TARGET_BASE_ARCH=ppc 2636e6e91b9cSJuan Quintela TARGET_ABI_DIR=ppc 263725be210fSJuan Quintela echo "TARGET_ABI32=y" >> $config_target_mak 2638c8b3532dSaurel32 gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml" 26391ad2134fSPaul Brook target_phys_bits=64 26402408a527Saurel32 ;; 26412408a527Saurel32 sh4|sh4eb) 2642b498c8a0SJuan Quintela TARGET_ARCH=sh4 26434dbed897Spbrook bflt="yes" 26440b6d3ae0Saurel32 target_nptl="yes" 26451ad2134fSPaul Brook target_phys_bits=32 26462408a527Saurel32 ;; 26472408a527Saurel32 sparc) 26481ad2134fSPaul Brook target_phys_bits=64 26492408a527Saurel32 ;; 26502408a527Saurel32 sparc64) 26516acff7daSJuan Quintela TARGET_BASE_ARCH=sparc 26521ad2134fSPaul Brook target_phys_bits=64 26532408a527Saurel32 ;; 26542408a527Saurel32 sparc32plus) 2655b498c8a0SJuan Quintela TARGET_ARCH=sparc64 26566acff7daSJuan Quintela TARGET_BASE_ARCH=sparc 2657e6e91b9cSJuan Quintela TARGET_ABI_DIR=sparc 265825be210fSJuan Quintela echo "TARGET_ABI32=y" >> $config_target_mak 26591ad2134fSPaul Brook target_phys_bits=64 26602408a527Saurel32 ;; 266124e804ecSAlexander Graf s390x) 266224e804ecSAlexander Graf target_phys_bits=64 266324e804ecSAlexander Graf ;; 26642408a527Saurel32 *) 2665de83cd02Sbellard echo "Unsupported target CPU" 2666de83cd02Sbellard exit 1 26672408a527Saurel32 ;; 26682408a527Saurel32esac 266925be210fSJuan Quintelaecho "TARGET_ARCH=$TARGET_ARCH" >> $config_target_mak 2670053dd92eSJuan Quintelatarget_arch_name="`echo $TARGET_ARCH | tr '[:lower:]' '[:upper:]'`" 267125be210fSJuan Quintelaecho "TARGET_$target_arch_name=y" >> $config_target_mak 267225be210fSJuan Quintelaecho "TARGET_ARCH2=$target_arch2" >> $config_target_mak 267342bc608bSJuan Quintela# TARGET_BASE_ARCH needs to be defined after TARGET_ARCH 26746acff7daSJuan Quintelaif [ "$TARGET_BASE_ARCH" = "" ]; then 26756acff7daSJuan Quintela TARGET_BASE_ARCH=$TARGET_ARCH 26766acff7daSJuan Quintelafi 267725be210fSJuan Quintelaecho "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_target_mak 2678e6e91b9cSJuan Quintelaif [ "$TARGET_ABI_DIR" = "" ]; then 2679e6e91b9cSJuan Quintela TARGET_ABI_DIR=$TARGET_ARCH 2680e6e91b9cSJuan Quintelafi 268125be210fSJuan Quintelaecho "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_target_mak 26821b0c87fcSJuan Quintelacase "$target_arch2" in 26831b0c87fcSJuan Quintela i386|x86_64) 26841b0c87fcSJuan Quintela if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then 268525be210fSJuan Quintela echo "CONFIG_XEN=y" >> $config_target_mak 26861b0c87fcSJuan Quintela fi 26871b0c87fcSJuan Quintelaesac 2688c59249f9SJuan Quintelacase "$target_arch2" in 26890e60a699SAlexander Graf i386|x86_64|ppcemb|ppc|ppc64|s390x) 2690c59249f9SJuan Quintela # Make sure the target and host cpus are compatible 2691c59249f9SJuan Quintela if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \ 2692c59249f9SJuan Quintela \( "$target_arch2" = "$cpu" -o \ 2693c59249f9SJuan Quintela \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc" \) -o \ 26945f114bc6SAlexander Graf \( "$target_arch2" = "ppc64" -a "$cpu" = "ppc" \) -o \ 2695c59249f9SJuan Quintela \( "$target_arch2" = "x86_64" -a "$cpu" = "i386" \) -o \ 2696c59249f9SJuan Quintela \( "$target_arch2" = "i386" -a "$cpu" = "x86_64" \) \) ; then 269725be210fSJuan Quintela echo "CONFIG_KVM=y" >> $config_target_mak 269825be210fSJuan Quintela echo "KVM_CFLAGS=$kvm_cflags" >> $config_target_mak 2699dae5079aSJan Kiszka if test "$kvm_para" = "yes"; then 2700dae5079aSJan Kiszka echo "CONFIG_KVM_PARA=y" >> $config_target_mak 2701dae5079aSJan Kiszka fi 2702d5970055SMichael S. Tsirkin if test $vhost_net = "yes" ; then 2703d5970055SMichael S. Tsirkin echo "CONFIG_VHOST_NET=y" >> $config_target_mak 2704d5970055SMichael S. Tsirkin fi 2705c59249f9SJuan Quintela fi 2706c59249f9SJuan Quintelaesac 2707de83cd02Sbellardif test "$target_bigendian" = "yes" ; then 270825be210fSJuan Quintela echo "TARGET_WORDS_BIGENDIAN=y" >> $config_target_mak 270997a847bcSbellardfi 271097a847bcSbellardif test "$target_softmmu" = "yes" ; then 2711b1aa27c4SPaul Brook echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_target_mak 271225be210fSJuan Quintela echo "CONFIG_SOFTMMU=y" >> $config_target_mak 271325be210fSJuan Quintela echo "LIBS+=$libs_softmmu" >> $config_target_mak 27140e8c9214SAndreas Färber echo "HWDIR=../libhw$target_phys_bits" >> $config_target_mak 27155791f45bSKirill A. Shutemov echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak 2716de83cd02Sbellardfi 2717997344f3Sbellardif test "$target_user_only" = "yes" ; then 271825be210fSJuan Quintela echo "CONFIG_USER_ONLY=y" >> $config_target_mak 2719997344f3Sbellardfi 2720831b7825Sthsif test "$target_linux_user" = "yes" ; then 272125be210fSJuan Quintela echo "CONFIG_LINUX_USER=y" >> $config_target_mak 2722831b7825Sthsfi 2723831b7825Sthsif test "$target_darwin_user" = "yes" ; then 272425be210fSJuan Quintela echo "CONFIG_DARWIN_USER=y" >> $config_target_mak 2725831b7825Sthsfi 272656aebc89Spbrooklist="" 272756aebc89Spbrookif test ! -z "$gdb_xml_files" ; then 272856aebc89Spbrook for x in $gdb_xml_files; do 272956aebc89Spbrook list="$list $source_path/gdb-xml/$x" 273056aebc89Spbrook done 273125be210fSJuan Quintela echo "TARGET_XML_FILES=$list" >> $config_target_mak 27323d0f1517SJuan Quintelafi 2733de83cd02Sbellard 2734f57975fbSJuan Quintelacase "$target_arch2" in 2735990b3e19SRichard Henderson alpha|arm|armeb|m68k|microblaze|mips|mipsel|mipsn32|mipsn32el|mips64|mips64el|ppc|ppc64|ppc64abi32|ppcemb|s390x|sparc|sparc64|sparc32plus) 273625be210fSJuan Quintela echo "CONFIG_SOFTFLOAT=y" >> $config_target_mak 2737f57975fbSJuan Quintela ;; 2738d6b38939SJuan Quintela *) 273925be210fSJuan Quintela echo "CONFIG_NOSOFTFLOAT=y" >> $config_target_mak 2740d6b38939SJuan Quintela ;; 2741f57975fbSJuan Quintelaesac 2742f57975fbSJuan Quintela 2743e5fe0c52Spbrookif test "$target_user_only" = "yes" -a "$bflt" = "yes"; then 274425be210fSJuan Quintela echo "TARGET_HAS_BFLT=y" >> $config_target_mak 2745e5fe0c52Spbrookfi 2746bd0c5661Spbrookif test "$target_user_only" = "yes" \ 2747bd0c5661Spbrook -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then 274825be210fSJuan Quintela echo "CONFIG_USE_NPTL=y" >> $config_target_mak 2749bd0c5661Spbrookfi 2750379f6698SPaul Brookif test "$target_user_only" = "yes" -a "$guest_base" = "yes"; then 275125be210fSJuan Quintela echo "CONFIG_USE_GUEST_BASE=y" >> $config_target_mak 2752379f6698SPaul Brookfi 275384778508Sblueswir1if test "$target_bsd_user" = "yes" ; then 275425be210fSJuan Quintela echo "CONFIG_BSD_USER=y" >> $config_target_mak 275584778508Sblueswir1fi 27565b0753e0Sbellard 27574afddb55SJuan Quintela# generate QEMU_CFLAGS/LDFLAGS for targets 2758fa282484SJuan Quintela 27594afddb55SJuan Quintelacflags="" 2760fa282484SJuan Quintelaldflags="" 27619b8e111fSJuan Quintela 276257ddfbf7SJuan Quintelaif test "$ARCH" = "sparc64" ; then 276357ddfbf7SJuan Quintela cflags="-I\$(SRC_PATH)/tcg/sparc $cflags" 276424e804ecSAlexander Grafelif test "$ARCH" = "s390x" ; then 276524e804ecSAlexander Graf cflags="-I\$(SRC_PATH)/tcg/s390 $cflags" 27665d8a4f8fSRichard Hendersonelif test "$ARCH" = "x86_64" ; then 27675d8a4f8fSRichard Henderson cflags="-I\$(SRC_PATH)/tcg/i386 $cflags" 276857ddfbf7SJuan Quintelaelse 276957ddfbf7SJuan Quintela cflags="-I\$(SRC_PATH)/tcg/\$(ARCH) $cflags" 277057ddfbf7SJuan Quintelafi 277157ddfbf7SJuan Quintelacflags="-I\$(SRC_PATH)/tcg $cflags" 277257ddfbf7SJuan Quintelacflags="-I\$(SRC_PATH)/fpu $cflags" 277357ddfbf7SJuan Quintela 27744d904533SBlue Swirlif test "$target_user_only" = "yes" ; then 27754d904533SBlue Swirl libdis_config_mak=libdis-user/config.mak 27764d904533SBlue Swirlelse 27774d904533SBlue Swirl libdis_config_mak=libdis/config.mak 27784d904533SBlue Swirlfi 27794d904533SBlue Swirl 278064656024SJuan Quintelafor i in $ARCH $TARGET_BASE_ARCH ; do 278164656024SJuan Quintela case "$i" in 278264656024SJuan Quintela alpha) 278325be210fSJuan Quintela echo "CONFIG_ALPHA_DIS=y" >> $config_target_mak 27844d904533SBlue Swirl echo "CONFIG_ALPHA_DIS=y" >> $libdis_config_mak 278564656024SJuan Quintela ;; 278664656024SJuan Quintela arm) 278725be210fSJuan Quintela echo "CONFIG_ARM_DIS=y" >> $config_target_mak 27884d904533SBlue Swirl echo "CONFIG_ARM_DIS=y" >> $libdis_config_mak 278964656024SJuan Quintela ;; 279064656024SJuan Quintela cris) 279125be210fSJuan Quintela echo "CONFIG_CRIS_DIS=y" >> $config_target_mak 27924d904533SBlue Swirl echo "CONFIG_CRIS_DIS=y" >> $libdis_config_mak 279364656024SJuan Quintela ;; 279464656024SJuan Quintela hppa) 279525be210fSJuan Quintela echo "CONFIG_HPPA_DIS=y" >> $config_target_mak 27964d904533SBlue Swirl echo "CONFIG_HPPA_DIS=y" >> $libdis_config_mak 279764656024SJuan Quintela ;; 279864656024SJuan Quintela i386|x86_64) 279925be210fSJuan Quintela echo "CONFIG_I386_DIS=y" >> $config_target_mak 28004d904533SBlue Swirl echo "CONFIG_I386_DIS=y" >> $libdis_config_mak 280164656024SJuan Quintela ;; 2802903ec55cSAurelien Jarno ia64*) 2803903ec55cSAurelien Jarno echo "CONFIG_IA64_DIS=y" >> $config_target_mak 2804903ec55cSAurelien Jarno echo "CONFIG_IA64_DIS=y" >> $libdis_config_mak 2805903ec55cSAurelien Jarno ;; 280664656024SJuan Quintela m68k) 280725be210fSJuan Quintela echo "CONFIG_M68K_DIS=y" >> $config_target_mak 28084d904533SBlue Swirl echo "CONFIG_M68K_DIS=y" >> $libdis_config_mak 280964656024SJuan Quintela ;; 281064656024SJuan Quintela microblaze) 281125be210fSJuan Quintela echo "CONFIG_MICROBLAZE_DIS=y" >> $config_target_mak 28124d904533SBlue Swirl echo "CONFIG_MICROBLAZE_DIS=y" >> $libdis_config_mak 281364656024SJuan Quintela ;; 281464656024SJuan Quintela mips*) 281525be210fSJuan Quintela echo "CONFIG_MIPS_DIS=y" >> $config_target_mak 28164d904533SBlue Swirl echo "CONFIG_MIPS_DIS=y" >> $libdis_config_mak 281764656024SJuan Quintela ;; 281864656024SJuan Quintela ppc*) 281925be210fSJuan Quintela echo "CONFIG_PPC_DIS=y" >> $config_target_mak 28204d904533SBlue Swirl echo "CONFIG_PPC_DIS=y" >> $libdis_config_mak 282164656024SJuan Quintela ;; 282224e804ecSAlexander Graf s390*) 282325be210fSJuan Quintela echo "CONFIG_S390_DIS=y" >> $config_target_mak 28244d904533SBlue Swirl echo "CONFIG_S390_DIS=y" >> $libdis_config_mak 282564656024SJuan Quintela ;; 282664656024SJuan Quintela sh4) 282725be210fSJuan Quintela echo "CONFIG_SH4_DIS=y" >> $config_target_mak 28284d904533SBlue Swirl echo "CONFIG_SH4_DIS=y" >> $libdis_config_mak 282964656024SJuan Quintela ;; 283064656024SJuan Quintela sparc*) 283125be210fSJuan Quintela echo "CONFIG_SPARC_DIS=y" >> $config_target_mak 28324d904533SBlue Swirl echo "CONFIG_SPARC_DIS=y" >> $libdis_config_mak 283364656024SJuan Quintela ;; 283464656024SJuan Quintela esac 283564656024SJuan Quinteladone 283664656024SJuan Quintela 28376ee7126fSJuan Quintelacase "$ARCH" in 28386ee7126fSJuan Quintelaalpha) 28396ee7126fSJuan Quintela # Ensure there's only a single GP 28406ee7126fSJuan Quintela cflags="-msmall-data $cflags" 28416ee7126fSJuan Quintela;; 28426ee7126fSJuan Quintelaesac 28436ee7126fSJuan Quintela 284455d9c04bSJuan Quintelaif test "$target_softmmu" = "yes" ; then 284555d9c04bSJuan Quintela case "$TARGET_BASE_ARCH" in 284655d9c04bSJuan Quintela arm) 284755d9c04bSJuan Quintela cflags="-DHAS_AUDIO $cflags" 284855d9c04bSJuan Quintela ;; 284955d9c04bSJuan Quintela i386|mips|ppc) 285055d9c04bSJuan Quintela cflags="-DHAS_AUDIO -DHAS_AUDIO_CHOICE $cflags" 285155d9c04bSJuan Quintela ;; 285255d9c04bSJuan Quintela esac 285355d9c04bSJuan Quintelafi 285455d9c04bSJuan Quintela 285534005a00SKirill A. Shutemovif test "$target_user_only" = "yes" -a "$static" = "no" -a \ 285634005a00SKirill A. Shutemov "$user_pie" = "yes" ; then 285734005a00SKirill A. Shutemov cflags="-fpie $cflags" 285834005a00SKirill A. Shutemov ldflags="-pie $ldflags" 285934005a00SKirill A. Shutemovfi 286034005a00SKirill A. Shutemov 2861471857ddSJuan Quintelaif test "$target_softmmu" = "yes" -a \( \ 2862471857ddSJuan Quintela "$TARGET_ARCH" = "microblaze" -o \ 2863471857ddSJuan Quintela "$TARGET_ARCH" = "cris" \) ; then 286425be210fSJuan Quintela echo "CONFIG_NEED_MMU=y" >> $config_target_mak 2865471857ddSJuan Quintelafi 2866471857ddSJuan Quintela 2867d02c1db3SJuan Quintelaif test "$gprof" = "yes" ; then 286825be210fSJuan Quintela echo "TARGET_GPROF=yes" >> $config_target_mak 2869d02c1db3SJuan Quintela if test "$target_linux_user" = "yes" ; then 2870d02c1db3SJuan Quintela cflags="-p $cflags" 2871d02c1db3SJuan Quintela ldflags="-p $ldflags" 2872d02c1db3SJuan Quintela fi 2873d02c1db3SJuan Quintela if test "$target_softmmu" = "yes" ; then 2874d02c1db3SJuan Quintela ldflags="-p $ldflags" 287525be210fSJuan Quintela echo "GPROF_CFLAGS=-p" >> $config_target_mak 2876d02c1db3SJuan Quintela fi 2877d02c1db3SJuan Quintelafi 2878d02c1db3SJuan Quintela 28796ee7126fSJuan Quintelalinker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld" 28809b8e111fSJuan Quintelaif test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then 2881fa282484SJuan Quintela case "$ARCH" in 2882fa282484SJuan Quintela sparc) 2883fa282484SJuan Quintela # -static is used to avoid g1/g3 usage by the dynamic linker 2884322e5878SJuan Quintela ldflags="$linker_script -static $ldflags" 2885fa282484SJuan Quintela ;; 28864d58be06SRichard Henderson alpha | s390x) 28874d58be06SRichard Henderson # The default placement of the application is fine. 28884d58be06SRichard Henderson ;; 2889fd76e73aSRichard Henderson *) 2890322e5878SJuan Quintela ldflags="$linker_script $ldflags" 2891fa282484SJuan Quintela ;; 2892fa282484SJuan Quintela esac 2893fa282484SJuan Quintelafi 2894fa282484SJuan Quintela 289525be210fSJuan Quintelaecho "LDFLAGS+=$ldflags" >> $config_target_mak 289625be210fSJuan Quintelaecho "QEMU_CFLAGS+=$cflags" >> $config_target_mak 2897fa282484SJuan Quintela 289897a847bcSbellarddone # for target in $targets 28997d13299dSbellard 29007d13299dSbellard# build tree in object directory if source path is different from current one 29017d13299dSbellardif test "$source_path_used" = "yes" ; then 2902e1144d00SMark McLoughlin DIRS="tests tests/cris slirp audio block net pc-bios/optionrom" 29032d9f27d2SAnthony Liguori DIRS="$DIRS roms/seabios roms/vgabios" 29043e230dd2SCorentin Chary DIRS="$DIRS fsdev ui" 29057d13299dSbellard FILES="Makefile tests/Makefile" 2906e7daa605Sths FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" 2907e1ffb0f1Sedgar_igl FILES="$FILES tests/test-mmap.c" 29087ea78b74SJan Kiszka FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps pc-bios/video.x" 29092d9f27d2SAnthony Liguori FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile" 29107ea78b74SJan Kiszka for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do 29117ea78b74SJan Kiszka FILES="$FILES pc-bios/`basename $bios_file`" 29127ea78b74SJan Kiszka done 29137d13299dSbellard for dir in $DIRS ; do 29147d13299dSbellard mkdir -p $dir 29157d13299dSbellard done 2916ec530c81Sbellard # remove the link and recreate it, as not all "ln -sf" overwrite the link 29177d13299dSbellard for f in $FILES ; do 2918ec530c81Sbellard rm -f $f 2919ec530c81Sbellard ln -s $source_path/$f $f 29207d13299dSbellard done 29217d13299dSbellardfi 29221ad2134fSPaul Brook 2923c34ebfdcSAnthony Liguori# temporary config to build submodules 29242d9f27d2SAnthony Liguorifor rom in seabios vgabios ; do 2925c34ebfdcSAnthony Liguori config_mak=roms/$rom/config.mak 292637116c89SStefan Weil echo "# Automatically generated by configure - do not modify" > $config_mak 2927c34ebfdcSAnthony Liguori echo "SRC_PATH=$source_path/roms/$rom" >> $config_mak 2928c34ebfdcSAnthony Liguori echo "CC=$cc" >> $config_mak 2929c34ebfdcSAnthony Liguori echo "BCC=bcc" >> $config_mak 2930c34ebfdcSAnthony Liguori echo "CPP=${cross_prefix}cpp" >> $config_mak 2931c34ebfdcSAnthony Liguori echo "OBJCOPY=objcopy" >> $config_mak 2932c34ebfdcSAnthony Liguori echo "IASL=iasl" >> $config_mak 2933c34ebfdcSAnthony Liguori echo "HOST_CC=$host_cc" >> $config_mak 2934c34ebfdcSAnthony Liguori echo "LD=$ld" >> $config_mak 2935c34ebfdcSAnthony Liguoridone 2936c34ebfdcSAnthony Liguori 29371ad2134fSPaul Brookfor hwlib in 32 64; do 29381ad2134fSPaul Brook d=libhw$hwlib 29391ad2134fSPaul Brook mkdir -p $d 29409953b2fcSBlue Swirl mkdir -p $d/ide 29411ad2134fSPaul Brook rm -f $d/Makefile 29421ad2134fSPaul Brook ln -s $source_path/Makefile.hw $d/Makefile 294337116c89SStefan Weil echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" > $d/config.mak 29441ad2134fSPaul Brookdone 2945add16157SBlue Swirl 2946add16157SBlue Swirld=libuser 2947add16157SBlue Swirlmkdir -p $d 2948add16157SBlue Swirlrm -f $d/Makefile 2949add16157SBlue Swirlln -s $source_path/Makefile.user $d/Makefile 2950299060a0SKirill A. Shutemovif test "$static" = "no" -a "$user_pie" = "yes" ; then 2951299060a0SKirill A. Shutemov echo "QEMU_CFLAGS+=-fpie" > $d/config.mak 2952299060a0SKirill A. Shutemovfi 2953b40292e7SJan Kiszka 2954b40292e7SJan Kiszkaif test "$docs" = "yes" ; then 2955b40292e7SJan Kiszka mkdir -p QMP 2956b40292e7SJan Kiszkafi 2957