configure revision 46723de6081372d13eee8cd369a08d162614f6b6
436aad11e01e916f75e68a2e9cb89ac217a990d3Tinderbox User#!/bin/sh
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater# The purpose of this script is to check for all external tools, headers, and
18920d790825d96ca3943aa2dcb6eb80dc611c5fTinderbox User# libraries VBox OSE depends on.
18920d790825d96ca3943aa2dcb6eb80dc611c5fTinderbox User
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews#
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User# Copyright (C) 2006-2013 Oracle Corporation
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User#
c57668a2fbbe558c1bd21652813616f2f517c469Tinderbox User# This file is part of VirtualBox Open Source Edition (OSE), as
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews# available from http://www.virtualbox.org. This file is free software;
137fdbc214e99c4cbe57551e9e14f2015c2e42aeTinderbox User# you can redistribute it and/or modify it under the terms of the GNU
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User# General Public License (GPL) as published by the Free Software
bed0874e1a09e810575328c4bfc346a47514b69fMark Andrews# Foundation, in version 2 as it comes in the "COPYING" file of the
02b47c5d62e1e827743684c28a08e871da454a2dMark Andrews# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
e20309353e6246485c521278131d3fced73d7957Tinderbox User
e20309353e6246485c521278131d3fced73d7957Tinderbox UserLC_ALL=C
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewsexport LC_ALL
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews# append some extra paths
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsPATH="$PATH:/opt/gnome/bin"
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews# Solaris (order of paths important for tr, echo, grep, sed to work)
e20309353e6246485c521278131d3fced73d7957Tinderbox UserPATH="/usr/xpg4/bin:/usr/ucb:$PATH:/usr/local/bin:/usr/sfw/bin:/usr/ccs/bin"
e20309353e6246485c521278131d3fced73d7957Tinderbox UserORGPATH=$PATH
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# Wrapper for ancient /usr/bin/which on darwin that always returns 0
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewswhich_wrapper()
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ -z "$have_ancient_which" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if which /bin/___cErTaINly_a_nOn_eXisTing_fIle___ 2> /dev/null > /dev/null; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews have_ancient_which="yes"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews else
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews have_ancient_which="no"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ "$have_ancient_which" = "yes" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews retval=`which $* 2>/dev/null`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "$retval"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews test -n "$retval" -a -x "$retval"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews unset retval
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews else
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews which $* 2> /dev/null
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox UserOS=`uname -s | sed -e 's/GNU\/Linux/Linux/g' | tr '[:upper:]' '[:lower:]'`
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updatercase "$OS" in
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt linux)
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater ;;
24934f08b9ff81c2be711e566e8002d145573031Tinderbox User darwin)
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater ;;
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt freebsd)
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User ;;
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User sunos)
aa9c561961e9d877946ebaa8795fa2be054ab7bfEvan Hunt OS='solaris'
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User ;;
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater haiku)
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater ;;
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater *)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "Cannot determine OS!"
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic Updater exit 1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews ;;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsesac
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater# Defaults
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsOSE=1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsODIR="`pwd`/"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsODIR_OVERRIDE=0
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic UpdaterOUT_PATH=""
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsOUT_PATH_OVERRIDE=0
eabc9c3c07cd956d3c436bd7614cb162dabdda76Mark AndrewsSETUP_WINE=
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsTARGET_MACHINE=""
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsTARGET_CPU=""
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsWITH_XPCOM=1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsWITH_PYTHON=1
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox UserWITH_JAVA=1
e20309353e6246485c521278131d3fced73d7957Tinderbox UserWITH_VMMRAW=1
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsWITH_LIBIDL=1
24934f08b9ff81c2be711e566e8002d145573031Tinderbox UserWITH_GSOAP=0
e20309353e6246485c521278131d3fced73d7957Tinderbox UserWITH_QT4=1
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsWITH_SDL=1
18920d790825d96ca3943aa2dcb6eb80dc611c5fTinderbox UserWITH_SDL_TTF=1
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsWITH_X11=1
ad411d8ccf8a27eb903b842ab507ba6729d0246bTinderbox UserWITH_ALSA=1
80faf1588895fd26490f82f95a7a1b771df1c324Automatic UpdaterWITH_PULSE=1
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsWITH_DBUS=1
18920d790825d96ca3943aa2dcb6eb80dc611c5fTinderbox UserWITH_DEVMAPPER=1
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsWITH_KMODS=1
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark AndrewsWITH_OPENGL=1
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark AndrewsWITH_HARDENING=1
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsWITH_UDPTUNNEL=1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsWITH_VDE=0
91216cff91b34c9ff6e846dc23f248219cafe660Andreas GustafssonWITH_VNC=0
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsWITH_EXTPACK=1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsWITH_DOCS=1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsWITH_LIBVPX=1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsBUILD_LIBXML2=
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsBUILD_LIBCURL=
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark AndrewsBUILD_LIBSSL=
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsBUILD_LIBVPX=
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsPASSIVE_MESA=0
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsCC="gcc"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsCC32=""
91216cff91b34c9ff6e846dc23f248219cafe660Andreas GustafssonCC64=""
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsCXX="g++"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsCXX32=""
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsCXX64=""
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsYASM="yasm"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsIASL="iasl"
91216cff91b34c9ff6e846dc23f248219cafe660Andreas GustafssonXSLTPROC="xsltproc"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsGENISOIMAGE="genisoimage"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsMKISOFS="mkisofs"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsINCCRYPTO=""
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsLIBCRYPTO="-lssl -lcrypto"
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark AndrewsLIBPTHREAD="-lpthread"
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark AndrewsLIBCAP="-lcap"
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark AndrewsGSOAP=""
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox UserGSOAP_IMPORT=""
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox UserINCX11="/usr/local/include"
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark AndrewsLIBX11="-L/usr/X11R6/lib -L/usr/X11R6/lib64 -L/usr/local/lib -lXext -lX11"
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark AndrewsLIBXCURSOR="-lXcursor"
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark AndrewsLIBXMU="-lXmu"
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark AndrewsLIBXINERAMA="-lXinerama"
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark AndrewsLIBXRANDR="-lXrandr"
2a31bd531072824ef252c18303859d6af7451b00Francis DupontMAKESELF="makeself"
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox UserMESA="-lGL"
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox UserINCZ=""
2a31bd531072824ef252c18303859d6af7451b00Francis DupontLIBZ="-lz"
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsINCVNCSERVER=""
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox UserLIBVNCSERVER="-lvncserver"
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox UserINCDEVMAPPER=""
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark AndrewsLIBDEVMAPPER="-ldevmapper"
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark AndrewsCXX_FLAGS=""
bed0874e1a09e810575328c4bfc346a47514b69fMark Andrewsif [ "$OS" = "freebsd" ]; then
24bf1e02f03577db0feb50b80238c4150c96d05dAutomatic Updater INCCURL="-I/usr/local/include"
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews LIBCURL="-L/usr/local/lib -lcurl"
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews INCPULSE="-I/usr/local/include"
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox User LIBPULSE="-L/usr/local/lib"
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater INCPNG="-I/usr/local/include"
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews LIBPNG="-L/usr/local/lib -lpng"
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrewselse
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User INCCURL=""
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrews LIBCURL="-lcurl"
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews INCPNG=""
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews LIBPNG="-lpng"
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrewsfi
b871c7156eb037d41f53828c6fcb9cc876128962Mark AndrewsINCVPX=""
01a5c5503482fb3ba52088bf0178a7213273bf96Mark AndrewsLIBVPX="-lvpx"
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox UserPKGCONFIG="`which_wrapper pkg-config`"
b871c7156eb037d41f53828c6fcb9cc876128962Mark AndrewsPYTHONDIR="/usr /usr/local"
e16b482740c5e7ad4c27e271fa829b957cdf67d4Mark AndrewsQT4DIR="/usr/lib/qt4 /usr/share/qt4 /usr/lib64/qt4 /usr /usr/local"
cdfc81e048bd34c1d628380247bda6b80a89e20eAutomatic UpdaterQT4DIR_PKGCONFIG=1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsQT4UIC3DIR="/usr/bin"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsKBUILDDIR="`cd \`dirname $0\`; pwd`/kBuild"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsDEVDIR="`cd \`dirname $0\`; pwd`/tools"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsif [ -d "/lib/modules/`uname -r`/build" ]; then
fe80a4909bf62b602feaf246866e9d29f7654194Automatic Updater LINUX="/lib/modules/`uname -r`/build"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewselse
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews LINUX="/usr/src/linux"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsfi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsKCHMVIEWER="kchmviewer"
e16b482740c5e7ad4c27e271fa829b957cdf67d4Mark AndrewsLOG="configure.log"
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox UserCNF="AutoConfig.kmk"
e16b482740c5e7ad4c27e271fa829b957cdf67d4Mark AndrewsENV="env.sh"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsBUILD_TYPE="release"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# the restricting tool is ar (mri mode).
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsINVALID_CHARS="[^A-Za-z0-9/\\$:._-]"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
fe80a4909bf62b602feaf246866e9d29f7654194Automatic Updaterif (cd `dirname $0`; pwd)|grep -q "$INVALID_CHARS"; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "Error: VBox base path contains invalid characters!"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews exit 1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsfi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# darwin /bin/sh has a builtin echo that doesn't grok -n. gotta love it.
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssonif [ "$OS" = "darwin" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews ECHO_N="/bin/echo -n"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewselse
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews ECHO_N="echo -n"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsfi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updater
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewscleanup()
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews rm -f $ODIR.tmp_src.cc $ODIR.tmp_src.c $ODIR.tmp_out $ODIR.test_execute.log
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews}
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
133e6d43fa82e80d3798be4de00f4540f485ec6cAutomatic Updaterfail()
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ -z "$nofatal" -o "x$1" != "x" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cleanup
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews rm -f $ENV
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "Check $LOG for details"
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson exit 1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews}
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewslog()
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
5f7586ddbd3edd11272cdd30ed613d936129328bTinderbox User echo "$1"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "$1" >> $LOG
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews}
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewslog_success()
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User{
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews if [ -n "$1" ]; then $ECHO_N "$1, "; fi
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User echo "OK."
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews echo "$1" >> $LOG
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews echo >> $LOG
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo >> $LOG
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User}
d642d3857129678797a01adee14fbd70335b05a9Mark Andrews
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox Userlog_failure()
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews{
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User echo
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews echo " ** $1!"
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews echo "** $1!" >> $LOG
269519eeb959d905ed125f96426e01d725c3b597Tinderbox User echo >> $LOG
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewscnf_append()
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews{
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updater printf "%-30s := %s\n" "$1" "$2" >> $CNF
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews}
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewsstrip_l()
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews{
bc0a53583d92309bebcf93c408e2f3247ebd3d3cAutomatic Updater echo "$1"|$KBUILD_SED 's|-l\([^ ]\+\)|\1|g; s|^-[^l][^ ]*||g; s| -[^l][^ ]*||g; s|^ ||; s| *$||g'
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updaterstrip_L()
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater{
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "$1"|$KBUILD_SED 's|-L\([^ ]\+\)|\1|g; s|^-[^L][^ ]*||g; s| -[^L][^ ]*||g; s|^ ||; s| *$||g'
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews}
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterstrip_I()
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews{
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews echo "$1"|$KBUILD_SED 's|-I\([^ ]\+\)|\1|g; s|^-[^I][^ ]*||g; s| -[^I][^ ]*||g; s|^ ||; s| *$||g'
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
19b3dc94bce93fa76bd7e066f9298630dbc9dcb4Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterprefix_I()
9513a2a6670951f5cf5477fcfec9f933fcaff628Automatic Updater{
7f94d9a8162c9a96b56e66176702b66e79d8e1a2Automatic Updater echo "$1"|$KBUILD_SED 's|^\/|-I/|g; s| \/| -I/|g'
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
5ecad47f69b3fd945472ab2900a9ff826a7ce2f6Automatic Updatercheck_avail()
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews{
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews if [ -z "$1" ]; then
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User log_failure "$2 is empty"
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User fail $3
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User return 1
96ea71632887c58a9d00f47eb318bf76b35903c3Mark Andrews elif which_wrapper $1 > /dev/null; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater return 0
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater else
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User log_failure "$1 (variable $2) not found"
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User fail $3
4cda4fd158d6ded5586bacea8c388445d99611eaAutomatic Updater return 1
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews fi
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews}
80faf1588895fd26490f82f95a7a1b771df1c324Automatic Updater
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# Prepare a test
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox Usertest_header()
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews{
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews echo "***** Checking $1 *****" >> $LOG
bf5e2127e92e52cbf661e77dd6a76e5aef43542fTinderbox User $ECHO_N "Checking for $1: "
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews}
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox User
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# Compile a test
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User# $1 compile flags/libs
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User# $2 library name
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# $3 package name
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews# $4 if this argument is 'nofatal', don't abort
da59e63e7af147a8bcef985b98b04443e04c3a0eTinderbox Usertest_compile()
da59e63e7af147a8bcef985b98b04443e04c3a0eTinderbox User{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo "compiling the following source file:" >> $LOG
dc5552b4df5e3821783821c8d4e734c1608c446eTinderbox User cat $ODIR.tmp_src.cc >> $LOG
cf7e98f59148b559946a7f1ca728471374f1eef3Automatic Updater echo "using the following command line:" >> $LOG
0ea1646bf1253f50946ed5e4d3c01c1d2767012bTinderbox User echo "$CXX $CXX_FLAGS -g -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc \"$1\"" >> $LOG
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrews $CXX $CXX_FLAGS -g -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc $1 >> $LOG 2>&1
dc5552b4df5e3821783821c8d4e734c1608c446eTinderbox User if [ $? -ne 0 ]; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if [ -z "$4" ]; then
cf7e98f59148b559946a7f1ca728471374f1eef3Automatic Updater echo
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo " $2 not found at $1 or $3 headers not found"
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson echo " Check the file $LOG for detailed error information."
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews else
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo >> $LOG
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo >> $LOG
cd6e9010079a4e58f7e30063df3dec0ff154ad59Tinderbox User fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews return 1
fe600c3ad88c0bb078283a953d048087d227c0e5Tinderbox User fi
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User return 0
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User}
e20309353e6246485c521278131d3fced73d7957Tinderbox User
3857cb6fcabeb79d85de4b3e3e4ab99912b701f8Mark Andrews
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User# Execute a compiled test binary
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox Usertest_execute()
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews{
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "executing the binary" >> $LOG
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson $ODIR.tmp_out > $ODIR.test_execute.log
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews rc=$?
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cat $ODIR.test_execute.log | tee -a $LOG
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ $rc -ne 0 ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail $1
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return 1
8292deab031e7599cd7622aa7675fbe139ca6095Mark Andrews fi
0b57424d28c9a67018107133f9fbc0a7dcf057e2Mark Andrews echo >> $LOG
0b57424d28c9a67018107133f9fbc0a7dcf057e2Mark Andrews echo >> $LOG
0b57424d28c9a67018107133f9fbc0a7dcf057e2Mark Andrews return 0
e31cfd80616deb9781902306b34a69aa7309b6cbTinderbox User}
7ac34650fa344f42211d6da744ae486b0145a083Tinderbox User
7ac34650fa344f42211d6da744ae486b0145a083Tinderbox User
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews# Execute a compiled test binary
b109432c3a939bff66a463be86c371bd88efe3aaAutomatic Updatertest_execute_path()
7d12a6b412fe47e6d6582923fd6954ab8cd0baebAutomatic Updater{
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews echo "executing the binary (LD_LIBRARY_PATH=$1)" >> $LOG
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews LD_LIBRARY_PATH=$1 $ODIR.tmp_out > $ODIR.test_execute.log
3351ccbd5c1961404044f8273d54dad405f53960Mark Andrews rc=$?
7d12a6b412fe47e6d6582923fd6954ab8cd0baebAutomatic Updater cat $ODIR.test_execute.log | tee -a $LOG
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews if [ $rc -ne 0 ]; then
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews fail
3351ccbd5c1961404044f8273d54dad405f53960Mark Andrews return 1
7d12a6b412fe47e6d6582923fd6954ab8cd0baebAutomatic Updater fi
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews echo >> $LOG
0b57424d28c9a67018107133f9fbc0a7dcf057e2Mark Andrews echo >> $LOG
7d12a6b412fe47e6d6582923fd6954ab8cd0baebAutomatic Updater return 0
0b57424d28c9a67018107133f9fbc0a7dcf057e2Mark Andrews}
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
e8fc8c884b44371784805e1e0d3100da403dd3f1Automatic Updater
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# Check for OS, MACHINE, CPU
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewscheck_environment()
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
e8fc8c884b44371784805e1e0d3100da403dd3f1Automatic Updater test_header environment
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews BUILD_CPU=`uname -m`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews [ "$OS" = "solaris" ] && BUILD_CPU=`isainfo | cut -f 1 -d ' '`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews case "$BUILD_CPU" in
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews i[3456789]86|x86|i86pc|BePC)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews BUILD_MACHINE='x86'
e8fc8c884b44371784805e1e0d3100da403dd3f1Automatic Updater LIB='lib'
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews ;;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews x86_64|amd64)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews BUILD_MACHINE='amd64'
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews BUILD_CPU='k8'
7d12a6b412fe47e6d6582923fd6954ab8cd0baebAutomatic Updater if [ "$OS" != "solaris" ]; then
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews # on AMD64 systems, 64bit libs are usually located in /usr/lib64
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User # see http://www.pathname.com/fhs/pub/fhs-2.3.html#LIB64
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User LIB='lib64'
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox User else
01a5c5503482fb3ba52088bf0178a7213273bf96Mark Andrews # Solaris doesn't seem to subscribe to fhs, libs are usually in
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User # a '64' subdirectory of the standard 'lib' dirs while some 64-bit
dc435f1033bcba88b748074987db6cfd34c057a4Tinderbox User # alternative binaries can be found in 'amd64' subdirs of the 'bin'
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User # ones. So, in order to find the right stuff (esp. sdl-config) we'll
dc435f1033bcba88b748074987db6cfd34c057a4Tinderbox User # have to make sure the */bin/amd64 dirs are searched before the */bin
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User # ones. (The sed has some sideeffects, but they shouldn't harm us...)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "64-bit Solaris detected, hacking the PATH" >> $LOG
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User echo "old PATH: $PATH" >> $LOG
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User PATH=`echo ":$PATH:" | sed -e 's,\(:[^:]*/bin\):,\1/amd64:\1:,g' \
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater -e 's/^:*//' -e 's/:*$//g' -e 's/::*/:/g' `
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews export PATH
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User echo "new PATH: $PATH" >> $LOG
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User LIB='lib/64'
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews fi
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User ;;
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews *)
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User log_failure "Cannot determine system"
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews exit 1
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater ;;
7f79131f9a8e804b93c57f3c679065cce878b726Automatic Updater esac
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews [ -z "$TARGET_MACHINE" ] && TARGET_MACHINE=$BUILD_MACHINE
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson [ -z "$TARGET_CPU" ] && TARGET_CPU=$BUILD_CPU
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews DEVDIR_BIN="$DEVDIR/$OS.$BUILD_MACHINE/bin"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews log_success "Determined build machine: $OS.$BUILD_MACHINE, target machine: $OS.$TARGET_MACHINE"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "BUILD_PLATFORM=\"$OS\"" >> $ENV
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "export BUILD_PLATFORM" >> $ENV
efb0e886f18894a1d2489f1ad74ad14b579e11c7Mark Andrews echo "BUILD_PLATFORM_ARCH=\"$BUILD_MACHINE\"" >> $ENV
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "export BUILD_PLATFORM_ARCH" >> $ENV
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "BUILD_TARGET=\"$OS\"" >> $ENV
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "export BUILD_TARGET" >> $ENV
3a988722ad9e209ba4064604d482dc4efe0e19ebTinderbox User echo "BUILD_TARGET_ARCH=\"$TARGET_MACHINE\"" >> $ENV
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington echo "export BUILD_TARGET_ARCH" >> $ENV
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington echo "BUILD_TARGET_CPU=\"$TARGET_CPU\"" >> $ENV
e20309353e6246485c521278131d3fced73d7957Tinderbox User echo "export BUILD_TARGET_CPU" >> $ENV
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews echo "BUILD_TYPE=\"$BUILD_TYPE\"" >> $ENV
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo "export BUILD_TYPE" >> $ENV
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews}
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# Check for gcc with version >= 3.2.
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# We depend on a working gcc, if we fail terminate in every case.
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewscheck_gcc()
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User test_header gcc
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if check_avail "$CC" CC really; then
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews cc_ver=`$CC -dumpversion` 2>/dev/null
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews if [ $? -ne 0 ]; then
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews log_failure "cannot execute '$CC -dumpversion'"
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews fail really
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews fi
f7369b2881b5e63d69600adcedc8ba938303d30cTinderbox User if check_avail "$CXX" CXX really; then
f7369b2881b5e63d69600adcedc8ba938303d30cTinderbox User cxx_ver=`$CXX -dumpversion` 2>/dev/null
d6317350b1180aa4517f2e8a92fa8fbcbf904ad8Automatic Updater if [ $? -ne 0 ]; then
bc0a4c01beede169df81a3ee5b614ed9e82339dbAutomatic Updater log_failure "cannot execute '$CXX -dumpversion'"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fail really
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cc_maj=`echo $cc_ver|cut -d. -f1`
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cc_min=`echo $cc_ver|cut -d. -f2`
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ "x$cc_ver" != "x$cxx_ver" ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_failure "gcc version $cc_ver does not match g++ version $cxx_ver"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fail really
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington elif [ $cc_maj -eq 4 -a $cc_min -eq 0 -a "$OS" = "darwin" ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_success "found version $cc_ver"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington # gcc-4.0 is allowed for Darwin only
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington elif [ $cc_maj -lt 3 \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington -o \( $cc_maj -eq 3 -a $cc_min -lt 2 \) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington -o \( $cc_maj -eq 4 -a $cc_min -lt 1 -a "$OS" != "darwin" \) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington -o \( $cc_maj -eq 4 -a $cc_min -gt 8 \) \
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington -o $cc_maj -gt 4 ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_failure "gcc version $cc_ver found, expected gcc 3.x with x>1 or gcc 4.x with 0<x<8"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fail really
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington else
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_success "found version $cc_ver"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ "$BUILD_MACHINE" = "amd64" ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington [ -z "$CC32" ] && CC32="$CC -m32"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington [ -z "$CXX32" ] && CXX32="$CXX -m32"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington else
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington [ -z "$CC32" ] && CC32="$CC"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington [ -z "$CXX32" ] && CXX32="$CXX"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ "$BUILD_MACHINE" = "x86" -a "$TARGET_MACHINE" = "amd64" ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington [ -z "$CC64" ] && CC64="$CC -m64"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington [ -z "$CXX64" ] && CXX64="$CXX -m64"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ "$TARGET_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 0 ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington CC32="undefined"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington CXX32="undefined"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ "$CC" != "gcc" ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GCC3_CC" "$CC"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GCC3_AS" "$CC"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GCC3_LD" "$CC"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GXX3_CC" "$CC"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GXX3_AS" "$CC"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ "$CXX" != "g++" ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GCC3_CXX" "$CXX"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GXX3_CXX" "$CXX"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GXX3_LD" "$CXX"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ "$CC32" != "gcc -m32" -a "$CC32" != "undefined" ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GCC32_CC" "$CC32"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GCC32_AS" "$CC32"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "TOOL_GCC32_LD" "$CC32"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cnf_append "TOOL_GXX32_CC" "$CC32"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cnf_append "TOOL_GXX32_AS" "$CC32"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ "$CXX32" != "g++ -m32" -a "$CXX32" != "undefined" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cnf_append "TOOL_GCC32_CXX" "$CXX32"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cnf_append "TOOL_GXX32_CXX" "$CXX32"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cnf_append "TOOL_GXX32_LD" "$CXX32"
22d32791e5daa0bc80335a0f10ab2de95f41ccdbTinderbox User fi
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater # this isn't not necessary, there is not such tool.
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater if [ -n "$CC64" ]; then
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater cnf_append "TOOL_GCC64_CC" "$CC64"
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater cnf_append "TOOL_GCC64_AS" "$CC64"
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater cnf_append "TOOL_GCC64_LD" "$CC64"
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater cnf_append "TOOL_GXX64_CC" "$CC64"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "TOOL_GXX64_AS" "$CC64"
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater fi
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater if [ -n "$CXX64" ]; then
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater cnf_append "TOOL_GCC64_CXX" "$CXX64"
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater cnf_append "TOOL_GXX64_CXX" "$CXX64"
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater cnf_append "TOOL_GXX64_LD" "$CXX64"
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater fi
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater # Solaris sports a 32-bit gcc/g++.
ae7e54b14c946e0984c191554db9abb4893f9349Automatic Updater if [ "$OS" = "solaris" -a "$BUILD_MACHINE" = "amd64" ]; then
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews [ "$CC" = "gcc" ] && CC="gcc -m64"
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User [ "$CXX" = "g++" ] && CXX="g++ -m64"
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User fi
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User fi
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User fi
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User}
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User#
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User# Check for the OpenWatcom compiler, needed for compiling the BIOS
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User#
02b47c5d62e1e827743684c28a08e871da454a2dMark Andrews# If the system has Open Watcom installed, WATCOM will be set in the
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User# environment. If the user has her/his own Open Watcom install it will be
da59e63e7af147a8bcef985b98b04443e04c3a0eTinderbox User# pointed to by on the command line, which will set the WATCOM variable.
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# The only exception is detecting OpenWatcom in tools/common/openwatcom.
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User#
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox Usercheck_open_watcom()
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User{
c11c7b47726c02eb05e29ff7be56a3343146e396Tinderbox User test_header "Open Watcom"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ -z "$WATCOM" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews WATCOM=`/bin/ls -rd1 $PWD/tools/common/openwatcom/* 2> /dev/null | head -1`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ -z "$WATCOM" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews log_failure "Open Watcom was not found"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cnf_append "VBOX_WITH_OPEN_WATCOM" ""
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews return 0;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
febbdb34a7f7759922e239655e7429d78d3a8d26Tinderbox User case "$OS" in
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater "darwin") wc_bin="binosx";; # ??
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater "dos") wc_bin="binw";;
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User "freebsd") wc_bin="binfbsd";; # ??
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User "linux") wc_bin="binl";;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews "solaris") wc_bin="binsol";; # ??
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews "os2") wc_bin="binp";;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews "win") wc_bin="binnt";;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews *) wc_bin="binl";;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews esac
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews # Check that the tools we use are there.
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User for prog in wasm wcc wlink;
c01dec514a81ecf8c17ca3ef8c3ba95e437295ebAutomatic Updater do
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if [ ! -f "$WATCOM/$wc_bin/$prog" ]; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater log_failure "$WATCOM/$wc_bin/$prog does not exist or is not a regular file."
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fail
3de6db3208d51de1e138b63b9670430c03f99694Automatic Updater fi
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater done
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
e20309353e6246485c521278131d3fced73d7957Tinderbox User # Use WASM to get the version.
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User wasm_ver=`$WATCOM/$wc_bin/wasm -? 2>&1 | sed -e '1!d' -e 's/Open Watcom Assembler Version *//'`
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ -z "$wasm_ver" ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_failure "$WATCOM/$wc_bin/wasm -? did not produce the expected response"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fail
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_success "found version $wasm_ver"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "PATH_TOOL_OPENWATCOM" "$WATCOM"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "VBOX_WITH_OPEN_WATCOM" "1"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington unset wasm_ver
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington unset wc_wasm
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington unset wc_bin
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington}
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Check for yasm, needed to compile assembler files
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtoncheck_yasm()
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews{
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews test_header yasm
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if check_avail "$YASM" YASM; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington yasm_ver=`$YASM --version|grep "^yasm"|sed 's+^yasm \(.*\)+\1+'`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ $? -ne 0 ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews log_failure "yasm not found"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews else
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews yasm_maj=`echo $yasm_ver|cut -d. -f1`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews yasm_min=`echo $yasm_ver|cut -d. -f2`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews yasm_rev=`echo $yasm_ver|cut -d. -f3`
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater yasm_ver_mul=`expr $yasm_maj \* 10000 + $yasm_min \* 100 + $yasm_rev`
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if [ $yasm_ver_mul -lt 501 ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews log_failure "found version $yasm_ver, expected at least 0.5.1"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews else
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews log_success "found version $yasm_ver"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater
79cea03ba823e2d3a34895f0ba91d7fb5ad799e7Automatic Updater
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Check for the iasl ACPI compiler, needed to compile vbox.dsl
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews#
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrewscheck_iasl()
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington{
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington test_header iasl
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if check_avail "$IASL" IASL; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington iasl_ver=`$IASL|grep version|sed 's+^ASL.*version \([0-9]*\).*+\1+'`
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ $? -ne 0 ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_failure "iasl not found"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fail
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington else
b7aab05edae933e169d5f83c653935b17c7f0a8bMark Andrews log_success "found version $iasl_ver"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "VBOX_IASLCMD" "`which_wrapper $IASL`"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
409ba95e573b40cf36acf97dd62ee7e9c7775851Tinderbox User}
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews# Check for xsltproc, needed by Main
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtoncheck_xsltproc()
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington{
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User if [ -n "$BUILD_LIBXSLT" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews return 0;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews test_header xslt
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if check_avail "$XSLTPROC" XSLTPROC; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews xsltproc_ver=`$XSLTPROC --version`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ $? -ne 0 ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_failure "xsltproc not found"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fail
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington else
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_success "found"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "VBOX_XSLTPROC" "`which_wrapper $XSLTPROC`"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington}
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# Check for mkisofs, needed to build the CDROM image containing the additions
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updatercheck_mkisofs()
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater{
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater test_header mkisofs
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if which_wrapper $GENISOIMAGE > /dev/null; then
56effd2e3f579fd77b1fb37d47871d1bf1286bc4Automatic Updater mkisofs_ver=`$GENISOIMAGE --version`
42bee07ebb8152a6ec2f87f4790d87368c24704cAutomatic Updater if [ $? -ne 0 ]; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater log_failure "mkisofs not found"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fail
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User else
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_success "found $mkisofs_ver"
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews cnf_append "VBOX_MKISOFS" "`which_wrapper $GENISOIMAGE`"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews elif check_avail "$MKISOFS" MKISOFS; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington mkisofs_ver=`$MKISOFS --version`
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews if [ $? -ne 0 ]; then
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews log_failure "mkisofs not working"
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews fail
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews else
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews log_success "found $mkisofs_ver"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "VBOX_MKISOFS" "`which_wrapper $MKISOFS`"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington}
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Check for libxml2, needed by VBoxSettings and Runtime.
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# 2.6.24 is known to NOT work, 2.6.26 is known to work (there is no 2.6.25 release)
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtoncheck_libxml2()
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington{
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ -z "$BUILD_LIBXML2" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews test_header libxml2
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if which_wrapper pkg-config > /dev/null; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews libxml2_ver=`pkg-config libxml-2.0 --modversion 2>> $LOG`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ $? -ne 0 ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews log_failure "libxml2 not found"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail
89623368b8f662d458d9964b923050f33c5f75b0Tinderbox User else
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington FLGXML2=`pkg-config libxml-2.0 --cflags`
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User INCXML2=`strip_I "$FLGXML2"`
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User LIBXML2=`pkg-config libxml-2.0 --libs`
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cat > $ODIR.tmp_src.cc << EOF
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#include <cstdio>
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#include <libxml/xmlversion.h>
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsextern "C" int main(void)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews printf("found version %s", LIBXML_DOTTED_VERSION);
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#if LIBXML_VERSION >= 20626
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews printf(", OK.\n");
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews return 0;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#else
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater printf(", expected version 2.6.26 or higher\n");
22d32791e5daa0bc80335a0f10ab2de95f41ccdbTinderbox User return 1;
da59e63e7af147a8bcef985b98b04443e04c3a0eTinderbox User#endif
22d32791e5daa0bc80335a0f10ab2de95f41ccdbTinderbox User}
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox UserEOF
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews [ -n "$INCXML2" ] && I_INCXML2=`prefix_I "$INCXML2"`
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if test_compile "$LIBXML2 $LIBPTHREAD $I_INCXML2" xml2 xml2; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if test_execute; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cnf_append "SDK_VBOX_LIBXML2_INCS" "$INCXML2"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cnf_append "SDK_VBOX_LIBXML2_LIBS" "`strip_l "$LIBXML2"`"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
1fdd58445074579ee3b65c871137a7a1740eb542Mark Andrews fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User elif which_wrapper xml2-config; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User libxml2_ver=`xml2-config --version`
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if [ $? -ne 0 ]; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User log_failure "xml2-config not found"
cc5a9ce75af9870f2cb9e2bf00548c2f7e6398d6Automatic Updater fail
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater else
ec8755f605d7dcb2de1076040e77bc2d7ec33b4aTinderbox User log_success "found version $libxml2_ver"
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews FLGXML2=`xml2-config --cflags`
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews INCXML2=`strip_I "$FLGXML2"`
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User LIBXML2=`xml2-config --libs`
532d27b39244fadfcf8d8b4593f4c65434c9c664Automatic Updater cat > $ODIR.tmp_src.cc << EOF
532d27b39244fadfcf8d8b4593f4c65434c9c664Automatic Updater#include <cstdio>
532d27b39244fadfcf8d8b4593f4c65434c9c664Automatic Updater#include <libxml/xmlversion.h>
532d27b39244fadfcf8d8b4593f4c65434c9c664Automatic Updaterextern "C" int main(void)
91faa748a27dee38f6caea461d3e87f15b93abeaTinderbox User{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User printf("found version %s", LIBXML_DOTTED_VERSION);
91faa748a27dee38f6caea461d3e87f15b93abeaTinderbox User#if LIBXML_VERSION >= 20626
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews printf(", OK.\n");
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews return 0;
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews#else
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews printf(", expected version 2.6.26 or higher\n");
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews return 1;
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews#endif
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews}
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark AndrewsEOF
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews [ -n "$INCXML2" ] && I_INCXML2=`prefix_I "$INCXML2"`
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews if test_compile "$LIBXML2 $LIBPTHREAD $I_INCXML2" xml2 xml2; then
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews if test_execute; then
93089a352d6903b0d7845a039de4ec2df9a0e35aTinderbox User cnf_append "SDK_VBOX_LIBXML2_INCS" "$INCXML2"
93089a352d6903b0d7845a039de4ec2df9a0e35aTinderbox User cnf_append "SDK_VBOX_LIBXML2_LIBS" "`strip_l "$LIBXML2"`"
93089a352d6903b0d7845a039de4ec2df9a0e35aTinderbox User fi
861836e5f5df62bfaea9ad8923a05278d5ab2f3dTinderbox User fi
e8c17c74535be290abaaa160a434ed80bf0ad2feMark Andrews fi
93089a352d6903b0d7845a039de4ec2df9a0e35aTinderbox User else
665ba746c0585088d0c314dcfc4671aa2c7b2dc1Automatic Updater log_failure "neither pkg-config nor xml2-config found"
9c446b72069d0ab9f710502f4d7048e50875fccbAutomatic Updater fail
665ba746c0585088d0c314dcfc4671aa2c7b2dc1Automatic Updater fi
665ba746c0585088d0c314dcfc4671aa2c7b2dc1Automatic Updater fi
93089a352d6903b0d7845a039de4ec2df9a0e35aTinderbox User}
93089a352d6903b0d7845a039de4ec2df9a0e35aTinderbox User
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater#
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater# Check for libIDL, needed by xpcom
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater#
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updatercheck_libidl()
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater{
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater test_header libIDL
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater if which_wrapper libIDL-config-2 > /dev/null; then
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater libidl_ver=`libIDL-config-2 --version`
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater if [ $? -ne 0 ]; then
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater log_failure "libIDL-config-2 not working"
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater fail
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater else
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater log_success "found version $libidl_ver"
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater cnf_append "VBOX_LIBIDL_CONFIG" \
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater "PKG_CONFIG_PATH=`libIDL-config-2 --prefix`/$LIB/pkgconfig `which_wrapper libIDL-config-2`"
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater fi
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater elif check_avail "libIDL-config" libIDL-config; then
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater libidl_ver=`libIDL-config --version`
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater if [ $? -ne 0 ]; then
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater log_failure "libIDL-config not working"
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater fail
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater else
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater log_success "found version $libidl_ver"
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater cnf_append "VBOX_LIBIDL_CONFIG" "`which_wrapper libIDL-config`"
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater fi
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater fi
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater}
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater#
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater# Check for libdevmapper, needed by the VBoxVolInfo
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater#
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updatercheck_libdevmapper()
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater{
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater test_header libdevmapper
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater cat > $ODIR.tmp_src.cc << EOF
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater#include <cstdio>
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updaterextern "C" {
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater#define private
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater#include <libdevmapper.h>
bbc0e1c4f47f101c4a64db3469352c49a49e734fTinderbox Userint main()
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater{
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater char version[80];
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if (!dm_get_library_version(version, sizeof(version)))
bbc0e1c4f47f101c4a64db3469352c49a49e734fTinderbox User {
fe84edc17e0d582cf7b4270f8df9d4742a107b1cAutomatic Updater printf("dm_get_library_version() failed.\n");
3a988722ad9e209ba4064604d482dc4efe0e19ebTinderbox User return 1;
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User }
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater const char* v=version;
bf8c3776f1bf1a1270e5e0443ae5a8df022632a8Mark Andrews unsigned int major = 0, minor = 0, micro = 0;
bf8c3776f1bf1a1270e5e0443ae5a8df022632a8Mark Andrews
bf8c3776f1bf1a1270e5e0443ae5a8df022632a8Mark Andrews for (; *v !='.' && *v != '\0'; v++) major = major*10 + *v-'0';
bf8c3776f1bf1a1270e5e0443ae5a8df022632a8Mark Andrews if (*v == '.') v++;
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater for (; *v !='.' && *v != '\0'; v++) minor = minor*10 + *v-'0';
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater if (*v == '.') v++;
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater for (; *v !='.' && *v != '\0'; v++) micro = micro*10 + *v-'0';
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater printf("found version %s", version);
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater if (major*10000 + minor*100 + micro >= 10200)
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User {
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User printf(", OK.\n");
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater return 0;
ec8755f605d7dcb2de1076040e77bc2d7ec33b4aTinderbox User }
4ea3649f028ea6a1e42377082a7ccf8f789fb950Automatic Updater else
40072ce70bc4125329addb4aaa56d18a1230bc17Automatic Updater {
60d5d17479b47c03b9c7c86f54269718103750b8Automatic Updater printf(", expected version 1.02 or higher\n");
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater return 1;
a382ca49c874d38ad3ac8995b49f9f27128e4ca9Automatic Updater }
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User}
60d5d17479b47c03b9c7c86f54269718103750b8Automatic Updater}
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic UpdaterEOF
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater if test_compile "$LIBDEVMAPPER $INCDEVMAPPER" libdevmapper libdevmapper; then
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater if test_execute; then
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater cnf_append "VBOX_WITH_DEVMAPPER" "1"
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater fi
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater fi
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater}
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater#
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater# Check for openssl, needed for RDP and S3
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater#
19dbf2e20df03f2b81ed1f347e27718084374059Automatic Updatercheck_ssl()
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater{
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater if [ -z "$BUILD_LIBSSL" ]; then
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater test_header ssl
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater cat > $ODIR.tmp_src.cc << EOF
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater#include <cstdio>
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater#include <openssl/opensslv.h>
a308b69ac66fadf66863484f301314d6e6a3f1d2Automatic Updater#include <openssl/ssl.h>
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updaterextern "C" int main(void)
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User printf("found version %s", OPENSSL_VERSION_TEXT);
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User SSL_library_init();
99c231a3bd27893583204cd0a3e3103dc78dbc28Tinderbox User#if OPENSSL_VERSION_NUMBER >= 0x00908000
7dd02af3c9350553e1d52d980a7812425b3f1295Automatic Updater printf(", OK.\n");
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return 0;
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#else
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington printf(", expected version 0.9.8 or higher\n");
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington return 1;
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews#endif
01f91b9cd440833f66e7476e43659655cb52ad10Automatic Updater}
3e5b24a74c03d5b52f32d138e64e427bd2cbc8f3Automatic UpdaterEOF
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User if test_compile "$INCCRYPTO $LIBCRYPTO" libcrypto openssl; then
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews if test_execute nofatal; then
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User cnf_append "SDK_VBOX_OPENSSL_INCS" "`strip_I "$INCCRYPTO"`"
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User cnf_append "SDK_VBOX_OPENSSL_LIBS" "`strip_l "$LIBCRYPTO"`"
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User cnf_append "SDK_VBOX_BLD_OPENSSL_LIBS" "`strip_l "$LIBCRYPTO"`"
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User fi
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User fi
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User fi
d642d3857129678797a01adee14fbd70335b05a9Mark Andrews}
aa49af836ce7a7a2888f5cedf4cbb14ff4dc1d11Mark Andrews
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews#
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User# Check for pthread, needed by VBoxSVC, frontends, ...
f6ba5791728d244650c1887d8dd8ed771fd50a1dMark Andrews#
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox Usercheck_pthread()
789875a1bd6d50c00d3bd883cad17ead1d3c21cdMark Andrews{
789875a1bd6d50c00d3bd883cad17ead1d3c21cdMark Andrews test_header pthread
789875a1bd6d50c00d3bd883cad17ead1d3c21cdMark Andrews cat > $ODIR.tmp_src.cc << EOF
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews#include <cstdio>
08a1e53c738c425390557196a2ba5039e5afd364Mark Andrews#include <pthread.h>
7e8129652903780873ba91f379f9ffca1f59773cMark Andrewsextern "C" int main(void)
7e8129652903780873ba91f379f9ffca1f59773cMark Andrews{
7e8129652903780873ba91f379f9ffca1f59773cMark Andrews pthread_mutex_t mutex;
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews if (pthread_mutex_init(&mutex, NULL)) {
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews printf("pthread_mutex_init() failed\n");
f6ba5791728d244650c1887d8dd8ed771fd50a1dMark Andrews return 1;
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User }
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User if (pthread_mutex_lock(&mutex)) {
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt printf("pthread_mutex_lock() failed\n");
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt return 1;
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt }
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt if (pthread_mutex_unlock(&mutex)) {
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt printf("pthread_mutex_unlock() failed\n");
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt return 1;
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt }
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt printf("found, OK.\n");
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt}
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox UserEOF
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User if test_compile $LIBPTHREAD pthread pthread; then
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt if test_execute; then
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt cnf_append "LIB_PTHREAD" "`strip_l "$LIBPTHREAD"`"
b123be91958e0bc58a10c165be64d47661199e3bEvan Hunt fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# Check for zlib, needed by VBoxSVC, Runtime, ...
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updatercheck_z()
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater{
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater test_header zlib
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater cat > $ODIR.tmp_src.cc << EOF
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater#include <cstdio>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <zlib.h>
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Userextern "C" int main(void)
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews{
e20309353e6246485c521278131d3fced73d7957Tinderbox User printf("found version %s", ZLIB_VERSION);
e20309353e6246485c521278131d3fced73d7957Tinderbox User#if ZLIB_VERNUM >= 0x1210
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews printf(", OK.\n");
ff62ab3c2e6274f19190ded15548c723d38bbbe3Automatic Updater return 0;
9a5217f827ac0e006016745e5305b31dc0c7767fTinderbox User#else
e20309353e6246485c521278131d3fced73d7957Tinderbox User printf(", expected version 1.2.1 or higher\n");
e20309353e6246485c521278131d3fced73d7957Tinderbox User return 1;
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#endif
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox UserEOF
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User [ -n "$INCZ" ] && I_INCZ=`prefix_I "$INCZ"`
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User if test_compile "$LIBZ $I_INCZ" zlib zlib; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if test_execute; then
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews echo "if1of (\$(KBUILD_TARGET),darwin freebsd haiku linux solaris)" >> $CNF
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews cnf_append " SDK_VBOX_ZLIB_LIBS" "`strip_l "$LIBZ"`"
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews cnf_append " SDK_VBOX_ZLIB_INCS" "$INCZ"
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews echo "endif" >> $CNF
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews fi
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews fi
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews}
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews#
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews# Check for libpng, needed by kchmviewer
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews#
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrewscheck_png()
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews{
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews test_header libpng
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews cat > $ODIR.tmp_src.cc << EOF
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews#include <cstdio>
b30ec46fec40a1b246f7965fbcd341fc6cfd1cc1Mark Andrews#include <png.h>
d585233c52e283d9a8849f16f04f452419a2484eTinderbox Userextern "C" int main(void)
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User printf("found version %s", PNG_LIBPNG_VER_STRING);
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User#if PNG_LIBPNG_VER >= 10205
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User printf(", OK.\n");
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return 0;
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#else
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater printf(", expected version 1.2.5 or higher\n");
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater return 1;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#endif
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic UpdaterEOF
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater [ -n "$INCPNG" ] && I_INCPNG=`prefix_I "$INCPNG"`
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if test_compile "$LIBPNG $I_INCPNG" libpng libpng; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if test_execute; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "SDK_VBOX_LIBPNG_LIBS" "`strip_l "$LIBPNG"`"
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User cnf_append "SDK_VBOX_LIBPNG_INCS" "$INCPNG"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
7f814b8b164ae04916a8487cdc5e88ee3ff51a58Automatic Updater fi
7f814b8b164ae04916a8487cdc5e88ee3ff51a58Automatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
88d58d79c5bc7ce3c20a42461a5070116c736836Automatic Updater# Check for libvncserver, needed for VNC in OSE
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
7f814b8b164ae04916a8487cdc5e88ee3ff51a58Automatic Updatercheck_vncserver()
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater test_header libvncserver
48b36fa08b2b5bc0d552dc2a4425b3f7007b3d59Automatic Updater cat > $ODIR.tmp_src.cc <<EOF
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <cstdio>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <rfb/rfbconfig.h>
7f814b8b164ae04916a8487cdc5e88ee3ff51a58Automatic Updater
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Userextern "C" int main()
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater{
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater const char* v=LIBVNCSERVER_VERSION;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater unsigned int major = 0, minor = 0, micro = 0;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User for (; *v !='.' && *v != '\0'; v++) major = major*10 + *v-'0';
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User if (*v == '.') v++;
48b36fa08b2b5bc0d552dc2a4425b3f7007b3d59Automatic Updater for (; *v !='.' && *v != '\0'; v++) minor = minor*10 + *v-'0';
9fa39c73fc1d8bc44fdbbb79a1d26b837e7dd555Mark Andrews if (*v == '.') v++;
7f814b8b164ae04916a8487cdc5e88ee3ff51a58Automatic Updater for (; *v !='.' && *v != '\0'; v++) micro = micro*10 + *v-'0';
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User printf("found version %s", LIBVNCSERVER_PACKAGE_VERSION);
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if (major*10000 + minor*100 + micro >= 900)
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User {
1959fd489a8832e4e3d311670f64ae18e5d08156Automatic Updater printf(", OK.\n");
1959fd489a8832e4e3d311670f64ae18e5d08156Automatic Updater return 0;
1959fd489a8832e4e3d311670f64ae18e5d08156Automatic Updater }
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User else
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User {
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User printf(", expected version 0.9 or higher\n");
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User return 1;
b6561016dc8a813bfd91cef5b876b3dfc3f08ffaTinderbox User }
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
8bc194b266a17f89e6c54469d4dfbb408070f39eMark AndrewsEOF
8bc194b266a17f89e6c54469d4dfbb408070f39eMark Andrews if test_compile "$LIBVNCSERVER $INCVNCSERVER" libvncserver libvncserver; then
8bc194b266a17f89e6c54469d4dfbb408070f39eMark Andrews if test_execute; then
8bc194b266a17f89e6c54469d4dfbb408070f39eMark Andrews cnf_append "VBOX_WITH_EXTPACK_VNC" "1"
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
560d6da48f066000541dd43f5d407644dee12bebTinderbox User}
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User#
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater# Check for libcurl, needed by S3
f751b1576ee6fef4023bf7101d10167e4fe520f3Tinderbox User#
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updatercheck_curl()
b6561016dc8a813bfd91cef5b876b3dfc3f08ffaTinderbox User{
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User if [ -z "$BUILD_LIBCURL" ]; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User test_header libcurl
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cat > $ODIR.tmp_src.cc << EOF
dc5552b4df5e3821783821c8d4e734c1608c446eTinderbox User#include <cstdio>
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews#include <curl/curl.h>
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrewsextern "C" int main(void)
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews{
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews printf("found version %s", LIBCURL_VERSION);
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews#if 10000*LIBCURL_VERSION_MAJOR + 100*LIBCURL_VERSION_MINOR + LIBCURL_VERSION_PATCH >= 71901
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews printf(", OK.\n");
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews return 0;
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews#else
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews printf(", expected version 7.19.1 or higher\n");
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return 1;
e5bf83fe0bbca838a0749e9071bd76d9ee0fb59bFrancis Dupont#endif
e5bf83fe0bbca838a0749e9071bd76d9ee0fb59bFrancis Dupont}
e5bf83fe0bbca838a0749e9071bd76d9ee0fb59bFrancis DupontEOF
4dca64bb8991502db368028aeeba2f832d3b971dAutomatic Updater [ -n "$INCCURL" ] && I_INCCURL=`prefix_I "$INCCURL"`
e5bf83fe0bbca838a0749e9071bd76d9ee0fb59bFrancis Dupont if test_compile "$LIBCURL $I_INCCURL" libcurl libcurl; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if test_execute; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "SDK_VBOX_LIBCURL_LIBS" "`strip_l "$LIBCURL"`"
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater cnf_append "SDK_VBOX_LIBCURL_INCS" "$INCCURL"
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater fi
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater fi
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater fi
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater}
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater
7169f76a893666eb20fc7750782e7f411db742d6Tinderbox User
7169f76a893666eb20fc7750782e7f411db742d6Tinderbox User#
7169f76a893666eb20fc7750782e7f411db742d6Tinderbox User# Check for pam, needed by VRDPAuth
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater# Version 79 was introduced in 9/2005, do we support older versions?
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater# Debian/sarge uses 76
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater# OpenSUSE comes with 0.99.xxx where they changed the versioning scheme.
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater#
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updatercheck_pam()
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox User{
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater test_header pam
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updater cat > $ODIR.tmp_src.cc << EOF
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#include <cstdio>
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox User#include <security/pam_appl.h>
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox Userextern "C" int main(void)
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox User printf("found version %d", __LIBPAM_VERSION);
229ea4644b3a7d9c7fdaa43888e7f55ba01e2ee3Automatic Updater if (__LIBPAM_VERSION >= 76)
e20309353e6246485c521278131d3fced73d7957Tinderbox User {
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User printf(", OK.\n");
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater return 0;
e20309353e6246485c521278131d3fced73d7957Tinderbox User }
e20309353e6246485c521278131d3fced73d7957Tinderbox User else
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater {
665ba746c0585088d0c314dcfc4671aa2c7b2dc1Automatic Updater printf(", expected version 76 or higher\n");
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater return 1;
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater }
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic UpdaterEOF
50fa300826799727204b93cbe63bebc341c5eadeTinderbox User if test_compile "-lpam" pam pam nofatal; then
50fa300826799727204b93cbe63bebc341c5eadeTinderbox User if test_execute nofatal; then
da82e232161d67b77df2d67898bdac693f647be1Automatic Updater return 0;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
2da2220fe7af2c45724b50b0187523b1fab0cf08Rob Austein fi
af9cf290cea6ada6ce27b51c724ab77ad5d73fa0Tinderbox User echo "pam0.x not found"
e171a4137c6ba348957e61b7c4c3541493c0da02Automatic Updater test_header linux_pam
c53a6f37deaa396660adb6a4ca600c4a58adfd3fAutomatic Updater cat > $ODIR.tmp_src.cc << EOF
c53a6f37deaa396660adb6a4ca600c4a58adfd3fAutomatic Updater#include <cstdio>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <security/pam_appl.h>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterextern "C" int main(void)
19ad308d84cbf446a144e5a91f2032389a9d65c1Tinderbox User{
19ad308d84cbf446a144e5a91f2032389a9d65c1Tinderbox User printf("found version %d.%d", __LINUX_PAM__, __LINUX_PAM_MINOR__);
b3386fba31414344f38f0c30849c056dceb22dceTinderbox User if (__LINUX_PAM__ >= 1)
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater {
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater printf(", OK.\n");
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater return 0;
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater }
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater else
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater {
af9cf290cea6ada6ce27b51c724ab77ad5d73fa0Tinderbox User printf(", expected version 1.0 or higher\n");
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater return 1;
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User }
6671e343b8c7e44ac10a7900fde59555fbc71571Automatic Updater}
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic UpdaterEOF
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater if test_compile "-lpam" pam pam; then
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater test_execute
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater fi
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater}
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater#
99c231a3bd27893583204cd0a3e3103dc78dbc28Tinderbox User# Check for the SDL library, needed by VBoxSDL and VirtualBox
4104e236f71eb5108fcfda6711878a97f6f4a8e7Automatic Updater# We depend at least on version 1.2.7
4104e236f71eb5108fcfda6711878a97f6f4a8e7Automatic Updater#
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updatercheck_sdl()
50fa300826799727204b93cbe63bebc341c5eadeTinderbox User{
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater test_header SDL
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater if [ "$OS" = "darwin" ]; then
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews if [ -f "/System/Library/Frameworks/SDL.framework/SDL" ]; then
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews PATH_SDK_LIBSDL="/System/Library/Frameworks/SDL.framework"
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews elif [ -f "/Library/Frameworks/SDL.framework/SDL" ]; then
99c231a3bd27893583204cd0a3e3103dc78dbc28Tinderbox User PATH_SDK_LIBSDL="/Library/Frameworks/SDL.framework"
8e9f3b69914ee02a80b87c97b1f8093edb3e9ae0Automatic Updater fi
8e9f3b69914ee02a80b87c97b1f8093edb3e9ae0Automatic Updater if [ -n "$PATH_SDK_LIBSDL" ]; then
664917bedafa65dee4349c84324a31731aa1e228Francis Dupont foundsdl=1
c53a6f37deaa396660adb6a4ca600c4a58adfd3fAutomatic Updater INCSDL="$PATH_SDK_LIBSDL/Headers"
af9cf290cea6ada6ce27b51c724ab77ad5d73fa0Tinderbox User FLDSDL="-framework SDL"
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User else
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User log_failure "SDL framework not found"
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User fail
50fa300826799727204b93cbe63bebc341c5eadeTinderbox User fi
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater else
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if which_wrapper sdl-config > /dev/null; then
e20309353e6246485c521278131d3fced73d7957Tinderbox User FLGSDL=`sdl-config --cflags`
e20309353e6246485c521278131d3fced73d7957Tinderbox User INCSDL=`strip_I "$FLGSDL"`
e20309353e6246485c521278131d3fced73d7957Tinderbox User LIBSDL=`sdl-config --libs`
e20309353e6246485c521278131d3fced73d7957Tinderbox User LIBSDLMAIN="-lSDLmain"
e628576d3b3d91c8954679077f4c208f1e43b433Automatic Updater FLDSDL=
f8a9a38ee40c139a8d145ac76ecbff3a0f986453Mark Andrews foundsdl=1
e628576d3b3d91c8954679077f4c208f1e43b433Automatic Updater fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews [ "$OS" = "linux" -o "$OS" = "darwin" -o "$OS" = "solaris" ] && LIBSDLMAIN=""
9d80d23172c30fd63e5046a7e69b8445e564ff31Automatic Updater if [ -n "$foundsdl" ]; then
e20309353e6246485c521278131d3fced73d7957Tinderbox User cat > $ODIR.tmp_src.cc << EOF
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#include <cstdio>
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#include <SDL.h>
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#include <SDL_main.h>
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#undef main
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewsextern "C" int main(int argc, char** argv)
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews{
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews printf("found version %d.%d.%d",
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL);
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#if SDL_VERSION_ATLEAST(1,2,7)
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews printf(", OK.\n");
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews return 0;
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#else
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews printf(", expected version 1.2.7 or higher\n");
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews return 1;
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews#endif
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews}
91d187ce035f39073f0732ff2a401a45c3c955fbMark AndrewsEOF
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews [ -n "$INCSDL" ] && I_INCSDL=`prefix_I "$INCSDL"`
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews if test_compile "$LIBSDL $LIBSDLMAIN $I_INCSDL $FLDSDL" SDL SDL; then
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews if test_execute; then
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User cnf_append "LIB_SDK_LIBSDL_SDL" "`strip_l "$LIBSDL"`"
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User cnf_append "SDK_LIBSDL_LIBPATH" "`strip_L "$LIBSDL"`"
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User cnf_append "LIB_SDK_LIBSDL_SDLMAIN" "`strip_l "$LIBSDLMAIN"`"
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User [ -n "$INCSDL" ] && cnf_append "SDK_LIBSDL_INCS" "$INCSDL"
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User [ -n "$FLDSDL" ] && cnf_append "SDK_LIBSDL_LDFLAGS" "$FLDSDL"
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User fi
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User fi
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User else
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User log_failure "SDL not found"
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User fail
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User fi
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User}
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User
3a988722ad9e209ba4064604d482dc4efe0e19ebTinderbox User#
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User# Check for the SDL_ttf library, needed by VBoxSDL (secure label)
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User#
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox Usercheck_sdl_ttf()
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User{
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User test_header SDL_ttf
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User cat > $ODIR.tmp_src.cc << EOF
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User#include <cstdio>
e80c7005e3d59dfeb04dad186d36f3c15622954cTinderbox User#include <SDL_ttf.h>
b6561016dc8a813bfd91cef5b876b3dfc3f08ffaTinderbox User#ifndef SDL_TTF_MAJOR_VERSION
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#define SDL_TTF_MAJOR_VERSION TTF_MAJOR_VERSION
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User#define SDL_TTF_MINOR_VERSION TTF_MINOR_VERSION
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews#define SDL_TTF_PATCHLEVEL TTF_PATCHLEVEL
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews#endif
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrewsextern "C" int main(void)
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews{
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews printf("found version %d.%d.%d",
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews SDL_TTF_MAJOR_VERSION, SDL_TTF_MINOR_VERSION, SDL_TTF_PATCHLEVEL);
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews#if 10000*SDL_TTF_MAJOR_VERSION + 100*SDL_TTF_MINOR_VERSION + SDL_TTF_PATCHLEVEL >= 20006
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews printf(", OK.\n");
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews return 0;
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews#else
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews printf(", expected version 2.0.6 or higher\n");
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews return 1;
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews#endif
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews}
1368e4b34cef64604c874fcc40201c78e548714cTinderbox UserEOF
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User if test_compile "-lSDL_ttf $I_INCSDL" SDL_ttf SDL_ttf nofatal; then
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User if ! test_execute nofatal; then
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updater cnf_append "VBOX_WITH_SECURELABEL" ""
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updater else
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updater echo "not found -- disabling VBoxSDL secure label."
48dfee71508886d86fe8fb12f91961b5daf3141dMark Andrews cnf_append "VBOX_WITH_SECURELABEL" ""
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User fi
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User}
8c9c79e5fea0cb698026a74821695907c8312a46Mark Andrews
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User#
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User# Check for libasound, needed by the ALSA audio backend
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User#
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updatercheck_alsa()
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updater test_header ALSA
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updater cat > $ODIR.tmp_src.cc << EOF
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#include <cstdio>
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User#include <alsa/asoundlib.h>
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updaterextern "C" int main(void)
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews{
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews printf("found version %d.%d.%d",
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews SND_LIB_MAJOR, SND_LIB_MINOR, SND_LIB_SUBMINOR);
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews#if 10000*SND_LIB_MAJOR + 100*SND_LIB_MINOR + SND_LIB_SUBMINOR >= 10006
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews printf(", OK.\n");
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews return 0;
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews#else
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews printf(", expected version 1.0.6 or higher\n");
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return 1;
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#endif
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic UpdaterEOF
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if test_compile "-lasound" asound asound; then
166c467a9414778bdd0f2a1e4a32220843c0fde3Tinderbox User test_execute
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
166c467a9414778bdd0f2a1e4a32220843c0fde3Tinderbox User
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
e007e3e5b0316c6c05698a71101885743aca22bdAutomatic Updater# Check for PulseAudio
e007e3e5b0316c6c05698a71101885743aca22bdAutomatic Updater#
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrewscheck_pulse()
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews{
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews test_header "PulseAudio"
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews cat > $ODIR.tmp_src.cc << EOF
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#include <cstdio>
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#include <pulse/version.h>
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrewsextern "C" int main(void)
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews{
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews printf("found version %s API version %d", pa_get_headers_version(), PA_API_VERSION);
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#if PA_API_VERSION >= 9
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews printf(", OK.\n");
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews return 0;
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#else
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews printf(", expected version 0.9.0 (API version 9) or higher\n");
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews return 1;
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#endif
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews}
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark AndrewsEOF
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews if test_compile "$INCPULSE $LIBPULSE -lpulse" pulse pulse; then
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews test_execute
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews fi
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews}
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews# Check for the X libraries (Xext, X11)
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrewscheck_x()
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews{
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews test_header "X libraries"
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews cat > $ODIR.tmp_src.cc << EOF
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#include <cstdio>
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews#include <X11/Xlib.h>
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrewsextern "C" int main(void)
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews{
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews Display *dpy;
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews int scrn_num;
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews Screen *scrn;
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews Window win;
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews dpy = XOpenDisplay(NULL);
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews scrn_num = DefaultScreen(dpy);
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews scrn = ScreenOfDisplay(dpy, scrn_num);
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews win = XCreateWindow(dpy, RootWindowOfScreen(scrn), 0, 0, 100, 100,
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User 0, 16, InputOutput, CopyFromParent, 0, NULL);
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington XDestroyWindow(dpy, win);
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington XCloseDisplay(dpy);
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic UpdaterEOF
bbf7c3fd96ae5e02cb84743c581862e35327032aAutomatic Updater [ -n "$INCX11" ] && I_INCX11=`prefix_I "$INCX11"`
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if test_compile "$LIBX11 $I_INCX11" Xlibs Xlibs; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater log_success "found"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
fa0326cc2cf428f67575b6ba3b97b528a31b0010Tinderbox User
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
7adcb4de92bf4383a4c5624c4ed256736d02bc6dMark Andrews#
b6561016dc8a813bfd91cef5b876b3dfc3f08ffaTinderbox User# Check for the Xcursor library, needed by VBoxSDL.
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User#
95cfad51a3f71246d263af79a7861a6821f7a0beAutomatic Updatercheck_xcursor()
95cfad51a3f71246d263af79a7861a6821f7a0beAutomatic Updater{
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User test_header Xcursor
95cfad51a3f71246d263af79a7861a6821f7a0beAutomatic Updater cat > $ODIR.tmp_src.cc << EOF
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#include <cstdio>
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#include <X11/Xlib.h>
e80c7005e3d59dfeb04dad186d36f3c15622954cTinderbox User#include <X11/Xcursor/Xcursor.h>
e135e3c4b1f4f986f00997f5ad5866effb203139Tinderbox Userextern "C" int main(void)
6d20a14c6c5f0c89fb01f88b8d91b654b07c7247Tinderbox User{
6fd5f289d8455283fad33d1051e6fbaa3bec43d5Tinderbox User XcursorImage *cursor = XcursorImageCreate (10, 10);
5ecad47f69b3fd945472ab2900a9ff826a7ce2f6Automatic Updater XcursorImageDestroy(cursor);
99c231a3bd27893583204cd0a3e3103dc78dbc28Tinderbox User return 0;
5e1503eb9464c2284bb782228d4c315087a2415fAutomatic Updater}
5ecad47f69b3fd945472ab2900a9ff826a7ce2f6Automatic UpdaterEOF
6fd5f289d8455283fad33d1051e6fbaa3bec43d5Tinderbox User [ -n "$INCX11" ] && I_INCX11=`prefix_I "$INCX11"`
08d53af7d51409036462fa80fb1bde7a8c2ac123Automatic Updater if test_compile "$LIBX11 $LIBXCURSOR $I_INCX11" Xcursor Xcursor; then
08d53af7d51409036462fa80fb1bde7a8c2ac123Automatic Updater log_success "found"
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updater cnf_append "VBOX_XCURSOR_LIBS" "`strip_l "$LIBXCURSOR"`"
ec7751119a08c6a7250f3187beed69a8b836d349Tinderbox User fi
6fd5f289d8455283fad33d1051e6fbaa3bec43d5Tinderbox User}
6fd5f289d8455283fad33d1051e6fbaa3bec43d5Tinderbox User
5ecad47f69b3fd945472ab2900a9ff826a7ce2f6Automatic Updater
5ecad47f69b3fd945472ab2900a9ff826a7ce2f6Automatic Updater#
07d9d0dbcc0c79deb3c34f4a8af05ac68a6800e4Mark Andrews# Check for the Xinerama library, needed by the Qt GUI
07d9d0dbcc0c79deb3c34f4a8af05ac68a6800e4Mark Andrews#
a66012b52c20200f118781463db4e4ee44454298Automatic Updatercheck_xinerama()
99c231a3bd27893583204cd0a3e3103dc78dbc28Tinderbox User{
f46621af221784fd08339c6fe9509d9e48334561Tinderbox User test_header Xinerama
82447d835d3ff5c658749b4e9b4f66166407b3eaAutomatic Updater cat > $ODIR.tmp_src.cc << EOF
18920d790825d96ca3943aa2dcb6eb80dc611c5fTinderbox User#include <X11/Xlib.h>
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User#include <X11/extensions/Xinerama.h>
e135e3c4b1f4f986f00997f5ad5866effb203139Tinderbox Userextern "C" int main(void)
b6561016dc8a813bfd91cef5b876b3dfc3f08ffaTinderbox User{
2fd1e3918971180155c10d09454a277f015daecaAutomatic Updater Display *dpy;
2fd1e3918971180155c10d09454a277f015daecaAutomatic Updater Bool flag;
2fd1e3918971180155c10d09454a277f015daecaAutomatic Updater dpy = XOpenDisplay(NULL);
18920d790825d96ca3943aa2dcb6eb80dc611c5fTinderbox User if (dpy)
2fd1e3918971180155c10d09454a277f015daecaAutomatic Updater {
2fd1e3918971180155c10d09454a277f015daecaAutomatic Updater flag = XineramaIsActive(dpy);
b6561016dc8a813bfd91cef5b876b3dfc3f08ffaTinderbox User XCloseDisplay(dpy);
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User }
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
18920d790825d96ca3943aa2dcb6eb80dc611c5fTinderbox UserEOF
18920d790825d96ca3943aa2dcb6eb80dc611c5fTinderbox User [ -n "$INCX11" ] && I_INCX11=`prefix_I "$INCX11"`
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if test_compile "$LIBX11 $LIBXINERAMA $I_INCX11" Xinerama Xinerama; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington log_success "found"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington}
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# Check for the Xinerama library, needed by the Qt GUI
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Usercheck_xrandr()
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User test_header Xrandr
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User cat > $ODIR.tmp_src.cc << EOF
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User#include <X11/Xlib.h>
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User#include <X11/extensions/Xrandr.h>
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox Userextern "C" int main(void)
82447d835d3ff5c658749b4e9b4f66166407b3eaAutomatic Updater{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User Display *dpy;
6a9d2121152c94cb9e35832126c3f2e4d18d81edTinderbox User Bool flag;
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User int major, minor;
85b52a5959291f5014442814488ccb267cdea369Tinderbox User dpy = XOpenDisplay(NULL);
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if (dpy)
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User {
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews flag = XRRQueryVersion(dpy, &major, &minor);
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater XCloseDisplay(dpy);
e062b72f783cdb436a1a57a630bdff471dbb3038Mark Andrews }
d145b64cacc8d9cda51f9924ec70cd4661c3e2cfAutomatic Updater}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic UpdaterEOF
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater [ -n "$INCX11" ] && I_INCX11=`prefix_I "$INCX11"`
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if test_compile "$LIBX11 $LIBXRANDR $I_INCX11" Xrandr Xrandr; then
d145b64cacc8d9cda51f9924ec70cd4661c3e2cfAutomatic Updater log_success "found"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
85b52a5959291f5014442814488ccb267cdea369Tinderbox User
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews#
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews# Check for OpenGL
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updatercheck_opengl()
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater{
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater # On darwin this is a on/off decision only
2cdbfcdad94eba75f3f8e77343a0eefabf553b8eAutomatic Updater if [ "$OS" = "darwin" ]; then
2cdbfcdad94eba75f3f8e77343a0eefabf553b8eAutomatic Updater test_header "OpenGL support"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo "enabled"
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrews cnf_append "VBOX_WITH_CROGL" "1"
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrews else
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater check_xmu
52cfbde0bd391cfb37e3c1a1b460c16ba6bf1a73Automatic Updater check_mesa
5f7586ddbd3edd11272cdd30ed613d936129328bTinderbox User fi
5f7586ddbd3edd11272cdd30ed613d936129328bTinderbox User}
24e0e8d17df315d5d494ca933874e545eadce773Automatic Updater
52cfbde0bd391cfb37e3c1a1b460c16ba6bf1a73Automatic Updater
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrews#
5f7586ddbd3edd11272cdd30ed613d936129328bTinderbox User# Check for the Xmu library, needed by OpenGL
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrews#
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updatercheck_xmu()
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
31a540386a9abaf681d8952f1b2cdf5c75a0ba6cAutomatic Updater test_header Xmu
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cat > $ODIR.tmp_src.cc << EOF
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#include <cstdio>
2ba8f584b97cbab864570e38fd26b8cb90961428Tinderbox User#include <X11/Xatom.h>
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#include <X11/Xlib.h>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <X11/Xutil.h>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <X11/Xmu/StdCmap.h>
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updaterextern "C" int main(void)
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater{
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater Display *dpy;
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater int scrn_num;
0c7657e9302e7f9a8fe4f32fe561dc7e7e7ee6b5Automatic Updater Screen *scrn;
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User dpy = XOpenDisplay(NULL);
dcff0bfce2963a14e5af5774fd8901a42f18c720Tinderbox User if (dpy)
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User {
12ee3c02ab36d7e7430bd705cc289db1a69a5733Mark Andrews scrn_num = DefaultScreen(dpy);
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater scrn = ScreenOfDisplay(dpy, scrn_num);
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews Status status = XmuLookupStandardColormap(dpy, RootWindowOfScreen(scrn), 0,
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater 24, XA_RGB_DEFAULT_MAP, False, True);
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater printf("Status = %x\n", status);
bbc0e1c4f47f101c4a64db3469352c49a49e734fTinderbox User XCloseDisplay(dpy);
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews }
8ccd7da886e93cd490fcb6f4c4e98a6514f35820Automatic Updater return 0;
cd839f5cf5f84cf163f55ff05cb88ce37efd24d1Automatic Updater}
91d187ce035f39073f0732ff2a401a45c3c955fbMark AndrewsEOF
cd839f5cf5f84cf163f55ff05cb88ce37efd24d1Automatic Updater [ -n "$INCX11" ] && I_INCX11=`prefix_I "$INCX11"`
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if test_compile "$LIBX11 $LIBXMU $I_INCX11" Xmu Xmu; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User log_success "found"
bbc0e1c4f47f101c4a64db3469352c49a49e734fTinderbox User cnf_append "VBOX_XMU_LIBS" "`strip_l "$LIBXMU"`"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
d642d3857129678797a01adee14fbd70335b05a9Mark Andrews}
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews
fd8fb4df8499e292daeac765f599ac7c507d9ca3Mark Andrews#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# Check for Mesa, needed by OpenGL
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
c95f536d78842fbc8ebcef653d88e1f2270054f8Automatic Updatercheck_mesa()
f9119ad8f6114b2255e7545bf5cd187f4db0a89bAutomatic Updater{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User test_header "Mesa / GLU"
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater cat > $ODIR.tmp_src.cc << EOF
f9119ad8f6114b2255e7545bf5cd187f4db0a89bAutomatic Updater#include <cstdio>
f9119ad8f6114b2255e7545bf5cd187f4db0a89bAutomatic Updater#include <X11/Xlib.h>
f9119ad8f6114b2255e7545bf5cd187f4db0a89bAutomatic Updater#include <GL/glx.h>
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#include <GL/glu.h>
c95f536d78842fbc8ebcef653d88e1f2270054f8Automatic Updaterextern "C" int main(void)
c95f536d78842fbc8ebcef653d88e1f2270054f8Automatic Updater{
c95f536d78842fbc8ebcef653d88e1f2270054f8Automatic Updater Display *dpy;
c95f536d78842fbc8ebcef653d88e1f2270054f8Automatic Updater int major, minor;
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User dpy = XOpenDisplay(NULL);
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if (dpy)
ec8755f605d7dcb2de1076040e77bc2d7ec33b4aTinderbox User {
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User Bool glx_version = glXQueryVersion(dpy, &major, &minor);
45c349c278fd83acd4dcb91eec3482401a623e47Automatic Updater XCloseDisplay(dpy);
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User if (glx_version)
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User {
bbc0e1c4f47f101c4a64db3469352c49a49e734fTinderbox User printf("found version %u.%u, OK.\n", major, minor);
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return 0;
bf8c3776f1bf1a1270e5e0443ae5a8df022632a8Mark Andrews }
560d6da48f066000541dd43f5d407644dee12bebTinderbox User }
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater printf("found (inactive), OK.\n");
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater return 0;
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater}
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic UpdaterEOF
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater [ -n "$INCX11" ] && I_INCX11=`prefix_I "$INCX11"`
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater if test_compile "$LIBX11 $MESA $I_INCX11" Mesa Mesa; then
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater [ $PASSIVE_MESA -eq 1 ] && unset DISPLAY
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater test_execute
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater fi
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater}
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
560d6da48f066000541dd43f5d407644dee12bebTinderbox User#
560d6da48f066000541dd43f5d407644dee12bebTinderbox User# Check for the Qt4 library, needed by the VirtualBox frontend
9bc394fffdd50f6e47614b2d317da7274122366fTinderbox User#
560d6da48f066000541dd43f5d407644dee12bebTinderbox User# Currently not fatal.
560d6da48f066000541dd43f5d407644dee12bebTinderbox User#
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewscheck_qt4()
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater foundqt4=
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater test_header Qt4
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater if [ "$OS" = "darwin" ]; then
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater # First check if there is the internal version of Qt. If yes nothing else
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater # has to be done.
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater QT_INTERNAL=`/bin/ls -rd1 $PWD/tools/$BUILD_TARGET.$BUILD_PLATFORM_ARCH/qt/* 2> /dev/null`
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater for t in $QT_INTERNAL; do
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater if [ -f "$t/Frameworks/QtCoreVBox.framework/QtCoreVBox" ]; then
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater cnf_append "VBOX_WITH_QT4_SUN" "1"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User log_success "use internal version"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User done
0a50626faa2f8941f55bf435d3965d490bb5d026Tinderbox User # Now try the user provided directory and some of the standard directories.
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews QT_TRIES="$QT4DIR /System/Library /Library"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater for t in $QT_TRIES; do
e0bf4fc289705375be65c05a8fb085d514a98c97Tinderbox User if [ -f "$t/Frameworks/QtCore.framework/QtCore" ]; then
f42fc714eda962112e45b904d1f846c61a080114Automatic Updater PATH_SDK_QT4="$t"
f42fc714eda962112e45b904d1f846c61a080114Automatic Updater break
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User fi
a6e1f63f50af688610ebd2521ba7f028767b51f3Mark Andrews done
2cdbfcdad94eba75f3f8e77343a0eefabf553b8eAutomatic Updater # Add the necessary params for building the test application
4d813066e967a36c407ee641155ada0c614d4dc6Automatic Updater if [ -n "$PATH_SDK_QT4" ]; then
4d813066e967a36c407ee641155ada0c614d4dc6Automatic Updater foundqt4=1
f42fc714eda962112e45b904d1f846c61a080114Automatic Updater INCQT4=-I$PATH_SDK_QT4/Frameworks/QtCore.framework/Headers
f42fc714eda962112e45b904d1f846c61a080114Automatic Updater LIBQT4=-F$PATH_SDK_QT4/Frameworks
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews FLGQT4="-framework QtCore"
2cdbfcdad94eba75f3f8e77343a0eefabf553b8eAutomatic Updater else
e0bf4fc289705375be65c05a8fb085d514a98c97Tinderbox User log_failure "Qt4 framework not found (can be disabled using --disable-qt4)"
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater fail
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
f42fc714eda962112e45b904d1f846c61a080114Automatic Updater else
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews if [ $QT4DIR_PKGCONFIG -eq 1 ]; then
f42fc714eda962112e45b904d1f846c61a080114Automatic Updater # default is to use pkg-config
4d813066e967a36c407ee641155ada0c614d4dc6Automatic Updater if which_wrapper pkg-config > /dev/null; then
dbd021853bb1cd6ab128e8da8865f5965030aedcTinderbox User # this braindead path is necessary for mdv2008.1
11123e7d406d7b05fd2f07ba1c43eb63a4423abeMark Andrews qt4_ver=`\
50fa300826799727204b93cbe63bebc341c5eadeTinderbox User PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/qt4/lib/pkgconfig \
44e3b272904bfd85556771d30cf1bc6fa539dd03Automatic Updater pkg-config QtCore --modversion 2>> $LOG`
f42fc714eda962112e45b904d1f846c61a080114Automatic Updater if [ $? -ne 0 ]; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User log_failure "QtCore not found"
50fa300826799727204b93cbe63bebc341c5eadeTinderbox User fail
0a50626faa2f8941f55bf435d3965d490bb5d026Tinderbox User else
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User FLGQT4=`\
d98b4b724343547314bde32a54966c8f124a5f03Mark Andrews PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/qt4/lib/pkgconfig \
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User pkg-config QtCore --cflags`
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User INCQT4=`strip_I "$FLGQT4"`
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User LIBQT4=`\
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/qt4/lib/pkgconfig \
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 \
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User pkg-config QtCore --libs`
b6561016dc8a813bfd91cef5b876b3dfc3f08ffaTinderbox User foundqt4=1
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews fi
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews else
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews log_failure "pkg-config not found"
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews fail
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews fi
e8e87ede5c36b95806c77bcd34894ad9c4b39a78Tinderbox User else
e8e87ede5c36b95806c77bcd34894ad9c4b39a78Tinderbox User # do it the old way (e.g. user has specified QT4DIR)
e8e87ede5c36b95806c77bcd34894ad9c4b39a78Tinderbox User cat > $ODIR.tmp_src.cc << EOF
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#include <cstdio>
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#include <QtGlobal>
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrewsextern "C" int main(void)
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews{
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews printf("found version %s", QT_VERSION_STR);
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#if QT_VERSION >= 0x040602
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews printf(", OK.\n");
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews return 0;
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#else
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews printf(", expected version 4.6.2 or higher\n");
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews return 1;
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#endif
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews}
609b8d08176469485edce25f3c2f50365bbd3819Mark AndrewsEOF
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews for q in $QT4DIR; do
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews INCQT4="$q/include $q/include/QtCore"
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews FLGQT4="-DQT_SHARED"
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews I_INCQT4=`prefix_I "$INCQT4"`
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews LIBQT4="-L$q/lib -lQtCoreVBox"
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews if test_compile "$LIBQT4 $LIBPTHREAD $I_INCQT4 $FLGQT4" qt4 qt4 nofatal; then
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews foundqt4=2
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews break;
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews fi
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews LIBQT4="-L$q/lib -lQtCore"
d98b4b724343547314bde32a54966c8f124a5f03Mark Andrews if test_compile "$LIBQT4 $LIBPTHREAD $I_INCQT4 $FLGQT4" qt4 qt4 nofatal; then
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews foundqt4=1
015f044f7f916eb18d053f2e5dcbee481425bc66Mark Andrews break;
e7d35dad55e8deae14f29aabfb20d540b4b6ab3dMark Andrews fi
015f044f7f916eb18d053f2e5dcbee481425bc66Mark Andrews done
e7d35dad55e8deae14f29aabfb20d540b4b6ab3dMark Andrews fi
015f044f7f916eb18d053f2e5dcbee481425bc66Mark Andrews fi
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews if [ -n "$foundqt4" ]; then
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews cat > $ODIR.tmp_src.cc << EOF
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#include <cstdio>
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#include <QtGlobal>
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrewsextern "C" int main(void)
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews{
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews printf("found version %s", QT_VERSION_STR);
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#if QT_VERSION >= 0x040602
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews printf(", OK.\n");
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews return 0;
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews#else
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews printf(", expected version 4.6.2 or higher\n");
ec8755f605d7dcb2de1076040e77bc2d7ec33b4aTinderbox User return 1;
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews#endif
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews}
7e1a8f402e3881388db37152f71c698cb1f1c426Mark AndrewsEOF
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews [ -n "$INCQT4" ] && I_INCQT4=`prefix_I "$INCQT4"`
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews if test_compile "$LIBQT4 $LIBPTHREAD $I_INCQT4 $FLGQT4" qt4 qt4 nofatal; then
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews if test_execute_path "`strip_L "$LIBQT4"`"; then
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews if [ "$OS" = "darwin" ]; then
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews # Successful build & run the test application so add the necessary
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews # params to AutoConfig.kmk
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews cnf_append "PATH_SDK_QT4_INC" "$PATH_SDK_QT4/Frameworks"
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews cnf_append "PATH_SDK_QT4_LIB" "$PATH_SDK_QT4/Frameworks"
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews cnf_append "PATH_SDK_QT4" "$PATH_SDK_QT4/Frameworks"
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews # Check for the moc tool in the Qt directory found & some standard
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews # directories.
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews for q in $PATH_SDK_QT4 /usr /Developer/Tools/Qt; do
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews if which_wrapper "$q/bin/moc" > /dev/null; then
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews cnf_append "PATH_TOOL_QT4" "$q"
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews cnf_append "PATH_TOOL_QT4_BIN" "$q/bin"
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews fi
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews done
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews else
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews # strip .../QtCore as we add components ourself
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews INCQT4=`echo "$INCQT4"|$KBUILD_SED 's|\([^ ]*\)/QtCore|\1|g; s| $||g'`
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews # store only the first path, remove all other pathes
7e1a8f402e3881388db37152f71c698cb1f1c426Mark Andrews # most likely pkg-config gave us -I/usr/include/qt4 -I/usr/include/qt4/QtCore
bbd726b86a5b0f97a192b6027958dc7b763dc48bTinderbox User INCQT4=`echo "$INCQT4"|$KBUILD_SED 's|\([^ ]*\) .*|\1|'`
7a2a1b8b14fc804ac80612d7b98064095e445be5Automatic Updater cnf_append "VBOX_PATH_QT4_LIB" "`strip_L "$LIBQT4"`"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater cnf_append "SDK_QT4_LIBPATH" "`strip_L "$LIBQT4"`"
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater cnf_append "PATH_SDK_QT4_INC" "$INCQT4"
7a2a1b8b14fc804ac80612d7b98064095e445be5Automatic Updater # this is not quite right since the qt libpath does not have to be first...
3a988722ad9e209ba4064604d482dc4efe0e19ebTinderbox User cnf_append "PATH_SDK_QT4_LIB" '$'"(firstword `strip_L "$LIBQT4"`)"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews if [ "$foundqt4" = "2" ]; then
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews cnf_append "VBOX_WITH_QT4_SUN" "1"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews fi
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews test_header "Qt4 devtools"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews for q in $QT4DIR; do
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews # first try it with a suffix, some platforms use that
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews if which_wrapper "$q/bin/moc-qt4" > /dev/null; then
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews moc_ver=`$q/bin/moc-qt4 -v 2>&1|sed 's+^.*(Qt \(.*\))+\1+'`
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews if [ $? -ne 0 ]; then
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews log_failure "moc-qt4 not working"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews fail
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews else
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews log_success "found version $moc_ver"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews cnf_append "VBOX_PATH_QT4" "$q"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews cnf_append "PATH_SDK_QT4" "$q"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews cnf_append "PATH_TOOL_QT4" "$q"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews cnf_append "PATH_TOOL_QT4_BIN" "$q/bin"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews cnf_append "TOOL_QT4_BIN_SUFF" "-qt4"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews return
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews fi
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews elif which_wrapper "$q/bin/moc" > /dev/null; then
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews moc_ver=`$q/bin/moc -v 2>&1|sed 's+^.*(Qt \(.*\))+\1+'`
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews if [ $? -ne 0 ]; then
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews log_failure "moc not working"
351eca011cf38fd3272b325029afce144a9a1ebaMark Andrews fail
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User else
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User log_success "found version $moc_ver"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "VBOX_PATH_QT4" "$q"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "PATH_SDK_QT4" "$q"
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater cnf_append "PATH_TOOL_QT4" "$q"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "PATH_TOOL_QT4_BIN" "$q/bin"
ff8ec39ce4afc2d774ce99f2386474d2c8539cd4Automatic Updater return
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
4d813066e967a36c407ee641155ada0c614d4dc6Automatic Updater done
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater else
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater log_failure "qt4 not working"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fail
9a5217f827ac0e006016745e5305b31dc0c7767fTinderbox User fi
9a5217f827ac0e006016745e5305b31dc0c7767fTinderbox User else
9a5217f827ac0e006016745e5305b31dc0c7767fTinderbox User log_failure "qt4 not found"
9a5217f827ac0e006016745e5305b31dc0c7767fTinderbox User fail
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater#
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater# Check for libvpx
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater#
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updatercheck_vpx()
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater{
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater if [ -z "$BUILD_LIBVPX" ]; then
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater test_header libvpx
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater if which_wrapper pkg-config > /dev/null; then
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater libvpx_ver=`pkg-config vpx --modversion 2>> $LOG`
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater if [ $? -eq 0 ]; then
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater FLGVPX=`pkg-config vpx --cflags`
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater INCVPX=`strip_I "$FLGVPX"`
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater LIBVPX=`pkg-config vpx --libs`
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater fi
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater cat > $ODIR.tmp_src.cc << EOF
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater#include <cstdio>
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews#include <vpx/vpx_codec.h>
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updaterextern "C" int main(void)
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater{
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater int version = vpx_codec_version();
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater int verMajor = VPX_VERSION_MAJOR(version);
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater int verMinor = VPX_VERSION_MINOR(version);
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User int verPatch = VPX_VERSION_PATCH(version);
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User printf("found version %d.%d.%d", verMajor, verMinor, verPatch);
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater if ( verMajor == 1 && verMinor >= 0
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater || verMajor == 0 && verMinor == 9 && verPatch >= 5)
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater {
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater printf(", OK.\n");
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return 0;
8aa53dcb1d26277e8e805464bfff7bb7136f60cbAutomatic Updater }
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User else
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews {
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User printf(", expected version 0.9.5 or higher\n");
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User return 1;
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User }
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User}
1368e4b34cef64604c874fcc40201c78e548714cTinderbox UserEOF
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User [ -n "$INCVPX" ] && I_INCVPX=`prefix_I "$INCVPX"`
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User if test_compile "$LIBVPX $I_INCVPX" vpx vpx; then
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User if test_execute; then
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User cnf_append "SDK_VBOX_VPX_INCS" "$INCVPX"
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User cnf_append "SDK_VBOX_VPX_LIBS" "`strip_l "$LIBVPX"`"
059cd1994d4ac5c1b967ce777d2c7409dc829a42Tinderbox User fi
1368e4b34cef64604c874fcc40201c78e548714cTinderbox User fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User#
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater# Check whether static libstdc++ is installed. This library is required
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# for the Linux guest additions.
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Usercheck_staticlibstdcxx()
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User test_header "static stc++ library"
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington libstdcxx=`$CXX -print-file-name=libstdc++.a`
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews cat > $ODIR.tmp_src.cc << EOF
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <string>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterextern "C" int main(void)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater{
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater std::string s = "test";
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater return 0;
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews}
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark AndrewsEOF
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if test_compile "$libstdcxx" libstdc++ libstdc++; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User log_success "found"
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews fi
da59e63e7af147a8bcef985b98b04443e04c3a0eTinderbox User}
3e5340279d8875d136a4dd815cccad0044aa2644Automatic Updater
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# Check for Linux sources
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrewscheck_linux()
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User test_header "Linux kernel sources"
ec7751119a08c6a7250f3187beed69a8b836d349Tinderbox User cat > $ODIR.tmp_src.c << EOF
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <linux/version.h>
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Userint printf(const char *format, ...);
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Userint main(void)
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
ace530234c82bbfcd03bbfd4ba6c6a04293d497fMark Andrews printf("found version %d.%d.%d", LINUX_VERSION_CODE / 65536,
879391501ee0ffba072433120bf1baa4087f8899Automatic Updater (LINUX_VERSION_CODE % 65536) / 256,
f7a71eef29bcbf892270460269c79664f600cffdAutomatic Updater LINUX_VERSION_CODE % 256);
f7a71eef29bcbf892270460269c79664f600cffdAutomatic Updater#if LINUX_VERSION_CODE > KERNEL_VERSION(2,4,0)
8f536463f9fdfa7da6a8310e4f4895373beb2961Mark Andrews printf(", OK.\n");
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User return 0;
f7a71eef29bcbf892270460269c79664f600cffdAutomatic Updater#else
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User printf(", expected version 2.4.0 or higher\n");
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return 1;
ace530234c82bbfcd03bbfd4ba6c6a04293d497fMark Andrews#endif
c5f7f6aa6c51d35353a9485b32abbabfe8358b4eMark Andrews}
dcd42a39d311b44877161ffd1e27fa62700c0171Mark AndrewsEOF
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "compiling the following source file:" >> $LOG
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater cat $ODIR.tmp_src.c >> $LOG
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "using the following command line:" >> $LOG
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "$CC -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c -nostdinc -I$LINUX/include " \
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater "-I$LINUX/include/generated/uapi" >> $LOG
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater $CC -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c -nostdinc -I$LINUX/include \
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater -I$LINUX/include/generated/uapi >> $LOG 2>&1
3f68e9c0e5a6ce475d15eef04bfed9b08a22afa9Tinderbox User if [ $? -ne 0 ]; then
3f68e9c0e5a6ce475d15eef04bfed9b08a22afa9Tinderbox User echo
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo " Linux kernel headers not found at $LINUX"
3f68e9c0e5a6ce475d15eef04bfed9b08a22afa9Tinderbox User echo " Check the file $LOG for detailed error information."
3f68e9c0e5a6ce475d15eef04bfed9b08a22afa9Tinderbox User fail
3f68e9c0e5a6ce475d15eef04bfed9b08a22afa9Tinderbox User else
3f68e9c0e5a6ce475d15eef04bfed9b08a22afa9Tinderbox User if test_execute; then
c5f7f6aa6c51d35353a9485b32abbabfe8358b4eMark Andrews cnf_append "VBOX_LINUX_SRC" "`cd $LINUX ; pwd`"
c5f7f6aa6c51d35353a9485b32abbabfe8358b4eMark Andrews fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington#
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# Check for kchmviewer, needed to display the online help
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# (unused as we ship kchmviewer)
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater#
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updatercheck_kchmviewer()
63654fea53d6a58a65112234bc8d0c322e0c81b5Automatic Updater{
63654fea53d6a58a65112234bc8d0c322e0c81b5Automatic Updater test_header kchmviewer
27aa770222192dda4ba4ff4b76defd4b8c846226Automatic Updater if check_avail "$KCHMVIEWER" KCHMVIEWER; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User kchmviewer_ver=`$KCHMVIEWER --version|grep "^KchmViewer:"|sed 's+^KchmViewer: \(.*\)+\1+'`
64d59a0480180940d855a3431ac5ff617b53e997Tinderbox User if [ $? -ne 0 ]; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User log_failure "kchmviewer not working"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fail
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater else
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater log_success "found version $kchmviewer_ver"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater}
fd7c65dce9c2b1a3d12ca4df9074cd38019fdb5fAutomatic Updater
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews#
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews# Check for the kBuild tools, we don't support GNU make
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews#
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox Usercheck_kbuild()
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox User{
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrews test_header kBuild
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews if which_wrapper "$KBUILDDIR/bin/$OS.$BUILD_MACHINE/kmk" > /dev/null; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater KBUILDDIR_BIN="$KBUILDDIR/bin/$OS.$BUILD_MACHINE"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "PATH_KBUILD=\"`cd $KBUILDDIR ; pwd`\"" >> $ENV
b6561016dc8a813bfd91cef5b876b3dfc3f08ffaTinderbox User echo "export PATH_KBUILD" >> $ENV
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews echo "PATH_DEVTOOLS=\"$DEVDIR\"" >> $ENV
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "export PATH_DEVTOOLS" >> $ENV
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "path_kbuild_bin=\"\$PATH_KBUILD/bin/\$BUILD_TARGET.\$BUILD_PLATFORM_ARCH\"" >> $ENV
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "export PATH_KBUILD_BIN" >> $ENV
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews echo "path_dev_bin=\"\$PATH_DEVTOOLS/\$BUILD_TARGET.\$BUILD_PLATFORM_ARCH\"/bin" >> $ENV
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews if [ "$OS" = "solaris" ]; then
b6561016dc8a813bfd91cef5b876b3dfc3f08ffaTinderbox User # Because of sh being non-default shell in Solaris we need to export PATH again when
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews # sourcing env.sh. Simply exporting from ./configure does not export PATH correctly.
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "PATH=\"$ORGPATH\"" >> $ENV
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User echo "echo \"\$PATH\" | /usr/sfw/bin/ggrep -q \"\$path_kbuild_bin\" || PATH=\"\$path_kbuild_bin:\$PATH\"" >> $ENV
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User echo "echo \"\$PATH\" | /usr/sfw/bin/ggrep -q \"\$path_dev_bin\" || PATH=\"\$path_dev_bin:\$PATH\"" >> $ENV
80f05de86cd3cd8e4a4215c4501643891b942dafTinderbox User else
80f05de86cd3cd8e4a4215c4501643891b942dafTinderbox User echo "echo \"\$PATH\" | grep -q \"\$path_kbuild_bin\" || PATH=\"\$path_kbuild_bin:\$PATH\"" >> $ENV
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo "echo \"\$PATH\" | grep -q \"\$path_dev_bin\" || PATH=\"\$path_dev_bin:\$PATH\"" >> $ENV
fedd407a76adfdd745eb7d2461673693c6f9fea9Mark Andrews fi
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews echo "export PATH" >> $ENV
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews echo "unset path_kbuild_bin path_dev_bin" >> $ENV
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews KBUILD_SED="$KBUILDDIR_BIN/kmk_sed"
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User elif [ "$OS.$BUILD_MACHINE" = "darwin.amd64" ]; then
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User # Currently there are no amd64 kBuild bins. So use the x86 variant in any case.
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User KBUILDDIR_BIN="$KBUILDDIR/bin/$OS.x86"
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User echo "PATH_KBUILD=\"`cd $KBUILDDIR ; pwd`\"" >> $ENV
82a986aaa5d3384a541b5a7d6dae8cf0726d6513Tinderbox User echo "export PATH_KBUILD" >> $ENV
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews echo "PATH_DEVTOOLS=\"$DEVDIR\"" >> $ENV
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews echo "export PATH_DEVTOOLS" >> $ENV
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews echo "path_kbuild_bin=\"\$PATH_KBUILD/bin/\$BUILD_TARGET.x86\"" >> $ENV
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews echo "PATH_KBUILD_BIN=\"\$path_kbuild_bin\"" >> $ENV
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews echo "export PATH_KBUILD_BIN" >> $ENV
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews echo "path_dev_bin=\"\$PATH_DEVTOOLS/\$BUILD_TARGET.\$BUILD_PLATFORM_ARCH\"/bin" >> $ENV
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews echo "echo \"\$PATH\" | grep -q \"\$path_kbuild_bin\" || PATH=\"\$path_kbuild_bin:\$PATH\"" >> $ENV
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews echo "echo \"\$PATH\" | grep -q \"\$path_dev_bin\" || PATH=\"\$path_dev_bin:\$PATH\"" >> $ENV
cc17f4a672fc4ce67327902dd797c4465f12c4c9Mark Andrews echo "export PATH" >> $ENV
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews echo "unset path_kbuild_bin path_dev_bin" >> $ENV
82447d835d3ff5c658749b4e9b4f66166407b3eaAutomatic Updater KBUILD_SED="$KBUILDDIR_BIN/kmk_sed"
82447d835d3ff5c658749b4e9b4f66166407b3eaAutomatic Updater elif check_avail "kmk" KBUILDDIR really; then
82447d835d3ff5c658749b4e9b4f66166407b3eaAutomatic Updater # check for installed kBuild
82447d835d3ff5c658749b4e9b4f66166407b3eaAutomatic Updater KBUILD_SED="`which_wrapper kmk_sed`"
82447d835d3ff5c658749b4e9b4f66166407b3eaAutomatic Updater else
82447d835d3ff5c658749b4e9b4f66166407b3eaAutomatic Updater fail
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox User fi
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews log_success "found"
10702d681eb650391bcaa0e2704aa3cf2dbf0e98Mark Andrews}
e130ab53e992670e2a2ecf043976ac09f21358d1Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox User#
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox User# Check for compiler.h
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User# Some Linux distributions include "compiler.h" in their libc linux
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User# headers package, some don't. Most don't need it, building might (!)
183b6c7fca54001820078f324d102fc33e64bbc6Automatic Updater# not succeed on openSUSE without it.
e130ab53e992670e2a2ecf043976ac09f21358d1Automatic Updater#
e130ab53e992670e2a2ecf043976ac09f21358d1Automatic Updater# See http://www.mail-archive.com/qemu-devel%40nongnu.org/msg07980.html
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox Usercheck_compiler_h()
551271d8198ae06e37edf5da519d8ee153eeac0fTinderbox User{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User test_header compiler.h
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if ! test -f "/usr/include/linux/compiler.h"; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater log_success "compiler.h not found"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater else
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater cnf_append "VBOX_WITH_LINUX_COMPILER_H" "1"
601c1908d06375f5dea00ab98671a6c934d8a840Automatic Updater log_success "compiler.h found"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
f46621af221784fd08339c6fe9509d9e48334561Tinderbox User# Check for libcap.
f46621af221784fd08339c6fe9509d9e48334561Tinderbox User# Required to pass CAP_NET_RAW to our binaries to allow to open SOCK_RAW
f46621af221784fd08339c6fe9509d9e48334561Tinderbox User# sockets for doing ICMP requests.
f46621af221784fd08339c6fe9509d9e48334561Tinderbox User#
f46621af221784fd08339c6fe9509d9e48334561Tinderbox Usercheck_libcap()
f46621af221784fd08339c6fe9509d9e48334561Tinderbox User{
f46621af221784fd08339c6fe9509d9e48334561Tinderbox User test_header "libcap library"
f46621af221784fd08339c6fe9509d9e48334561Tinderbox User cat > $ODIR.tmp_src.cc << EOF
f46621af221784fd08339c6fe9509d9e48334561Tinderbox User#include <cstdio>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <sys/types.h>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater#include <linux/types.h>
8f2c45a35dd8c40bcc9caba8f7d40ce64fc27bcdAutomatic Updater#include <sys/capability.h>
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterextern "C" int main(void)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater{
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User char buf[1024];
e9e4257668ff6c4e583b0c0db2508650b0b677b8Tinderbox User cap_t caps = cap_get_proc();
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater snprintf(buf, sizeof(buf), "Current caps are '%s'\n", cap_to_text(caps, NULL));
3497d225321ed571428ed011650deb229ccfc977Tinderbox User return 0;
3497d225321ed571428ed011650deb229ccfc977Tinderbox User}
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox UserEOF
22d32791e5daa0bc80335a0f10ab2de95f41ccdbTinderbox User if test_compile $LIBCAP libcap libcap; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if test_execute; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews log_success "found"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews}
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# Check if we are able to build 32-bit applications (needed for the guest additions)
22d32791e5daa0bc80335a0f10ab2de95f41ccdbTinderbox User#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Usercheck_32bit()
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews test_header "32-bit support"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cat > $ODIR.tmp_src.c << EOF
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#include <stdint.h>
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsint main(void)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews return 0;
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
17198e77b87667f796e910d31a4f47a80e256d09Mark AndrewsEOF
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo "compiling the following source file:" >> $LOG
c07cdac6cf5bf3e9affc1aed25f8350087691f1eAutomatic Updater cat $ODIR.tmp_src.c >> $LOG
c07cdac6cf5bf3e9affc1aed25f8350087691f1eAutomatic Updater echo "using the following command line:" >> $LOG
c07cdac6cf5bf3e9affc1aed25f8350087691f1eAutomatic Updater echo "$CC -m32 -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c" >> $LOG
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User $CC -m32 -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.c >> $LOG 2>&1
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if [ $? -ne 0 ]; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo " Cannot compile 32-bit applications (missing headers and/or libraries)!"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo " Check the file $LOG for detailed error information."
c07cdac6cf5bf3e9affc1aed25f8350087691f1eAutomatic Updater fail
c07cdac6cf5bf3e9affc1aed25f8350087691f1eAutomatic Updater else
c07cdac6cf5bf3e9affc1aed25f8350087691f1eAutomatic Updater echo "executing the binary" >> $LOG
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User $ODIR.tmp_out 2> $ODIR.test_execute.log
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User rc=$?
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cat $ODIR.test_execute.log >> $LOG
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if [ $rc -ne 0 ]; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User echo
de73ef7ecdb9e009155993a6fa8dee5cd1bde319Mark Andrews echo " Cannot execute 32-bit applications! Either enable 32-bit support in the"
7c899ff8af55a6855100e7fb4f5dd9a0a04b48a0Automatic Updater echo " kernel configuration or use --disable-vmmraw to disable 32-bit guests."
7c899ff8af55a6855100e7fb4f5dd9a0a04b48a0Automatic Updater fail
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User return 1
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User log_success ""
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User}
7c899ff8af55a6855100e7fb4f5dd9a0a04b48a0Automatic Updater
7c899ff8af55a6855100e7fb4f5dd9a0a04b48a0Automatic Updater
7c899ff8af55a6855100e7fb4f5dd9a0a04b48a0Automatic Updater#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# Check for Python
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Usercheck_python()
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User{
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User test_header "Python support"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User # On darwin this is a on/off decision only
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User if [ "$OS" = "darwin" ]; then
7c899ff8af55a6855100e7fb4f5dd9a0a04b48a0Automatic Updater echo "enabled"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cnf_append "VBOX_WITH_PYTHON" "1"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews return
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cat > $ODIR.tmp_src.cc << EOF
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#include <cstdio>
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#include <Python.h>
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrewsextern "C" int main(void)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews Py_Initialize();
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews printf("found version %s", PY_VERSION);
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#if PY_VERSION_HEX >= 0x02030000
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews printf(", OK.\n");
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews return 0;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#else
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews printf(", expected version 2.3 or higher\n");
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews return 1;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews#endif
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews}
0eb371ca0dab50ae3462e98794a6126198c52f4bMark AndrewsEOF
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews found=
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews# For Solaris we use libpython2.4 for compatibility with Solaris 10 and passing IPS pkg audit
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ "$OS" != "solaris" ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews SUPPYTHONLIBS="python2.7 python2.6 python2.5 python2.4 python2.3"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews else
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews SUPPYTHONLIBS="python2.4"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews for p in $PYTHONDIR; do
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews for d in $SUPPYTHONLIBS; do
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews for b in lib/x86_64-linux-gnu lib/i386-linux-gnu lib64 lib/64 lib; do
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "compiling the following source file:" >> $LOG
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews cat $ODIR.tmp_src.cc >> $LOG
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "using the following command line:" >> $LOG
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "$CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so" >> $LOG
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews $CXX -O -Wall -o $ODIR.tmp_out $ODIR.tmp_src.cc -I$p/include/$d $p/$b/lib$d.so >> $LOG 2>&1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ $? -eq 0 ]; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews found=1
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews break
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews done
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if [ -n "$found" ]; then break; fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews done
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if [ -n "$found" ]; then break; fi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington done
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if [ -n "$found" ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington if test_execute; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "VBOX_WITH_PYTHON" "1"
febbdb34a7f7759922e239655e7429d78d3a8d26Tinderbox User cnf_append "VBOX_PATH_PYTHON_INC" "$p/include/$d"
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User cnf_append "VBOX_LIB_PYTHON" "$p/$b/lib$d.so"
e7d35dad55e8deae14f29aabfb20d540b4b6ab3dMark Andrews else
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews log_failure "Python not working"
0df8ead472f207020f8da22a185fe4b945248ab8Automatic Updater fail
0df8ead472f207020f8da22a185fe4b945248ab8Automatic Updater fi
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews else
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews log_failure "Python not found"
6c910bd5e4a85a56e3a61fdf7b237a45bb2553eeTinderbox User fail
6fab60452ed15c1039aee974a32d692d07eda4d2Automatic Updater fi
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews}
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews
f9119ad8f6114b2255e7545bf5cd187f4db0a89bAutomatic Updater
b4846627b60aff904d523a433b44482b3b1825a7Tinderbox User#
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews# Check for Java
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews#
71ba75c604df3604673232828a68bb28c420e698Mark Andrewscheck_java()
71ba75c604df3604673232828a68bb28c420e698Mark Andrews{
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews test_header "Java support"
e7d35dad55e8deae14f29aabfb20d540b4b6ab3dMark Andrews log_success
e7d35dad55e8deae14f29aabfb20d540b4b6ab3dMark Andrews}
e7d35dad55e8deae14f29aabfb20d540b4b6ab3dMark Andrews
e7d35dad55e8deae14f29aabfb20d540b4b6ab3dMark Andrews
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrews#
dfd613f037c1385db661f17e086d34ea57fea9b0Automatic Updater# Setup wine
6c6a121295b30772cbf3dd75a51fb9d883051a0eAutomatic Updater#
78f3ed4bc2fcd3d270bfd599804f3b27a1db4d91Mark Andrewssetup_wine()
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews{
979e02d122cddf1624cca8a4dab8d084c900fa48Automatic Updater test_header "Wine support"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if ! which_wrapper wine > /dev/null; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo " wine binary not found"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if ! which_wrapper wine > /dev/null; then
979e02d122cddf1624cca8a4dab8d084c900fa48Automatic Updater echo " wine not found"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews wine_version="`wine --version`"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews case "`expr "$wine_version" : 'wine-\([0-9.]*\)' '>' 1.1.43`" in
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews "0")
56334ccb2d4b5a04fc12b70b5852049db5d24088Evan Hunt if ! which_wrapper wineprefixcreate > /dev/null; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo " wineprefixcreate not found"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews ;;
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews *) eval "wineprefixcreate() { true ; }" ;; # now created automatically
979e02d122cddf1624cca8a4dab8d084c900fa48Automatic Updater esac
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews export WINEPREFIX="${ODIR}wine.$BUILD_MACHINE"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "WINEPREFIX=\"${ODIR}wine.$BUILD_MACHINE\"" >> $ENV
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "export WINEPREFIX" >> $ENV
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews rm -rf $WINEPREFIX
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews mkdir -p $WINEPREFIX
979e02d122cddf1624cca8a4dab8d084c900fa48Automatic Updater touch $WINEPREFIX/.no_prelaunch_window_flag
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews if ! wineprefixcreate -q > /dev/null 2>&1; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo " wineprefixcreate failed"
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fi
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews tmp=.tmp.wine.reg
51901858be9d4632c1d0bed28cfa8f29932c1967Tinderbox User rm -f $tmp
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo 'REGEDIT4' > $tmp
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo '' >> $tmp
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo '[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment]' >> $tmp
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo "\"PATH\"=\"c:\\\\\\\\windows\\\\\\\\system32;c:\\\\\\\\windows;z:$DEVDIR/win.x86/vcc/v8/bin/Microsoft.VC80.CRT;z:$DEVDIR/win.x86/HTML_Help_Workshop/v1.3\"" >> $tmp
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo '' >> $tmp
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo '[HKEY_CURRENT_USER\Software\Wine\AppDefaults\hhc.exe\DllOverrides]' >> $tmp
7f79131f9a8e804b93c57f3c679065cce878b726Automatic Updater echo '"itss"="native"' >> $tmp
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo '' >> $tmp
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson echo '[HKEY_CURRENT_USER\Software\Wine\AppDefaults\hhw.exe\DllOverrides]' >> $tmp
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo '"itss"="native"' >> $tmp
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo '' >> $tmp
3a9593055ead76cbbb417aee2d2e656c2c92cf46Automatic Updater if ! wine regedit $tmp > /dev/null 2>&1; then
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews rm -f $tmp
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews echo " failed to load registry changes (path)."
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews fail
ace6bfc72265153cb6123f7bb9e2751031f27150Tinderbox User fi
3a9593055ead76cbbb417aee2d2e656c2c92cf46Automatic Updater rm -f $tmp
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater log_success "found"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater}
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews
7932a7637170550bc53b38c35db9a0187dcb3d3bAutomatic Updater#
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson# Check for gSOAP.
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafsson#
91216cff91b34c9ff6e846dc23f248219cafe660Andreas Gustafssoncheck_gsoap()
3a9593055ead76cbbb417aee2d2e656c2c92cf46Automatic Updater{
229ea4644b3a7d9c7fdaa43888e7f55ba01e2ee3Automatic Updater test_header "GSOAP compiler"
8bc3d252395842452a6d2c775cf8445f6349e331Tinderbox User if [ -z "$GSOAP" -a -z "$GSOAP_IMPORT" ]; then
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews if which_wrapper pkg-config > /dev/null; then
a5636b773fa05a272b6876afd99309c0b3090e2fMark Andrews GSOAP_CXX_LIBS=`pkg-config gsoapssl++ --libs 2>> $LOG`
8bc3d252395842452a6d2c775cf8445f6349e331Tinderbox User if [ $? -eq 0 ]; then
de7b9a1dac0c293b39994c91d4376883da25554fTinderbox User GSOAP=`pkg-config gsoapssl++ --variable=exec_prefix`
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews GSOAP_IMPORT="$GSOAP/share/gsoap/import"
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews if [ ! -d "$GSOAP_IMPORT" -a -d "$GSOAP/include/gsoap" ]; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater GSOAP_IMPORT="$GSOAP/include/gsoap"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "VBOX_GSOAP_INSTALLED" "1"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater cnf_append "VBOX_PATH_GSOAP" "$GSOAP"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "VBOX_PATH_GSOAP_IMPORT" "$GSOAP_IMPORT"
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User if [ -f "$GSOAP/share/gsoap/stdsoap2.cpp" ]; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "VBOX_GSOAP_CXX_SOURCES" "$GSOAP/share/gsoap/stdsoap2.cpp"
0a50626faa2f8941f55bf435d3965d490bb5d026Tinderbox User else
467a823e57af687ebd486dfd73ea32f9d2a145beTinderbox User cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
467a823e57af687ebd486dfd73ea32f9d2a145beTinderbox User fi
7d704e522860496310bb29c28e76064868401a9cMark Andrews cnf_append "VBOX_GSOAP_CXX_LIBS" "`strip_l "$GSOAP_CXX_LIBS"`"
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews gsoap_version=`pkg-config gsoapssl++ --modversion`
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater log_success "found version $gsoap_version"
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User return
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews fi
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews fi
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater fi
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater if [ -z "$GSOAP" ]; then
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User GSOAP="/usr"
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User fi
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User if which_wrapper "$GSOAP/bin/soapcpp2" > /dev/null; then
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews if which_wrapper "$GSOAP/bin/wsdl2h" > /dev/null; then
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews if [ -f "$GSOAP/include/stdsoap2.h" ]; then
e6fc17ec5ad5ba1c4bf5730b2b97c82d1f2b8f3cMark Andrews # TODO: Check for libgsoap++.a/so
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews if [ -z "$GSOAP_IMPORT" ]; then
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater GSOAP_IMPORT="$GSOAP/share/gsoap/import"
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews if [ ! -d "$GSOAP_IMPORT" -a -d "$GSOAP/include/gsoap" ]; then
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews GSOAP_IMPORT="$GSOAP/include/gsoap"
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews fi
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews fi
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews if [ -f "$GSOAP_IMPORT/stlvector.h" ]; then
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews cnf_append "VBOX_GSOAP_INSTALLED" "1"
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews cnf_append "VBOX_PATH_GSOAP" "$GSOAP"
821d2613356f81e5bb5c107288d6d5cf35c2a1e8Mark Andrews cnf_append "VBOX_PATH_GSOAP_IMPORT" "$GSOAP_IMPORT"
f7a71eef29bcbf892270460269c79664f600cffdAutomatic Updater if [ -f "$GSOAP/share/gsoap/stdsoap2.cpp" ]; then
409ba95e573b40cf36acf97dd62ee7e9c7775851Tinderbox User cnf_append "VBOX_GSOAP_CXX_SOURCES" "$GSOAP/share/gsoap/stdsoap2.cpp"
f751b1576ee6fef4023bf7101d10167e4fe520f3Tinderbox User else
261ef37955c3468cbcb55d54b83c9a3b14e114dfTinderbox User cnf_append "VBOX_GSOAP_CXX_SOURCES" ""
f751b1576ee6fef4023bf7101d10167e4fe520f3Tinderbox User fi
24bf1e02f03577db0feb50b80238c4150c96d05dAutomatic Updater cnf_append "VBOX_GSOAP_CXX_LIBS" "libgsoapssl++"
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater log_success "found"
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater else
8711e5c73ca872d59810760af0332194cbdd619bAutomatic Updater log_failure "stlvector.h not found -- disabling webservice"
261ef37955c3468cbcb55d54b83c9a3b14e114dfTinderbox User cnf_append "VBOX_WITH_WEBSERVICES" ""
261ef37955c3468cbcb55d54b83c9a3b14e114dfTinderbox User fi
261ef37955c3468cbcb55d54b83c9a3b14e114dfTinderbox User else
261ef37955c3468cbcb55d54b83c9a3b14e114dfTinderbox User log_failure "stdsoap2.h not found -- disabling webservice"
261ef37955c3468cbcb55d54b83c9a3b14e114dfTinderbox User cnf_append "VBOX_WITH_WEBSERVICES" ""
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User fi
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User else
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User log_failure "wsdl2h not found -- disabling webservice"
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User cnf_append "VBOX_WITH_WEBSERVICES" ""
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User fi
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User else
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User log_failure "soapcpp2 not found -- disabling webservice"
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User cnf_append "VBOX_WITH_WEBSERVICES" ""
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User fi
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User}
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User#
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User# Determines the Darwin version.
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User# @todo This should really check the Xcode/SDK version.
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User#
87d422bb38fa1c8f0fb29c2a1b8c044870a7df46Tinderbox Usercheck_darwinversion()
87d422bb38fa1c8f0fb29c2a1b8c044870a7df46Tinderbox User{
87d422bb38fa1c8f0fb29c2a1b8c044870a7df46Tinderbox User test_header "Darwin version"
87d422bb38fa1c8f0fb29c2a1b8c044870a7df46Tinderbox User darwin_ver=`uname -r`
87d422bb38fa1c8f0fb29c2a1b8c044870a7df46Tinderbox User case "$darwin_ver" in
87d422bb38fa1c8f0fb29c2a1b8c044870a7df46Tinderbox User 11\.*)
b8cc0c5d896c361525708a2be2e5af7df76c96d7Tinderbox User darwin_ver="10.7" # Lion
959e5da49a2cff7dfd8fdb885cd11c5d7d94a292Tinderbox User sdk=/Developer/SDKs/MacOSX10.6.sdk
959e5da49a2cff7dfd8fdb885cd11c5d7d94a292Tinderbox User CXX_FLAGS="-mmacosx-version-min=10.6 -isysroot $sdk -Wl,-syslibroot,$sdk"
959e5da49a2cff7dfd8fdb885cd11c5d7d94a292Tinderbox User ;;
959e5da49a2cff7dfd8fdb885cd11c5d7d94a292Tinderbox User 10\.*)
959e5da49a2cff7dfd8fdb885cd11c5d7d94a292Tinderbox User darwin_ver="10.6" # Snow Leopard
959e5da49a2cff7dfd8fdb885cd11c5d7d94a292Tinderbox User if [ "$BUILD_MACHINE" = "x86" ]; then
959e5da49a2cff7dfd8fdb885cd11c5d7d94a292Tinderbox User sdk=/Developer/SDKs/MacOSX10.5.sdk
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User CXX_FLAGS="-mmacosx-version-min=10.5 -isysroot $sdk -Wl,-syslibroot,$sdk"
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User cnf_append "VBOX_MACOS_10_5_WORKAROUND" "1"
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User else
02d20c5d79600704d617d248642c477e9b5e6a2aTinderbox User sdk=/Developer/SDKs/MacOSX10.6.sdk
2ec4ab21838e218863d052ebfa3e106e04f50820Evan Hunt CXX_FLAGS="-mmacosx-version-min=10.6 -isysroot $sdk -Wl,-syslibroot,$sdk"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews fi
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# test "$CC" = "gcc" && CC="gcc-4.0"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# test "$CXX" = "g++" && CXX="g++-4.0"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_7" "1"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews ;;
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews 9\.*)
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews darwin_ver="10.5" # Leopard
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews sdk=/Developer/SDKs/MacOSX10.5.sdk
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews CXX_FLAGS="-mmacosx-version-min=10.5 -isysroot $sdk -Wl,-syslibroot,$sdk"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# test "$CC" = "gcc" && CC="gcc-4.0"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# test "$CXX" = "g++" && CXX="g++-4.0"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_6" "1"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_7" "1"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews ;;
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews 8\.*)
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews darwin_ver="10.4" # Tiger
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews sdk=/Developer/SDKs/MacOSX10.4u.sdk
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews CXX_FLAGS="-mmacosx-version-min=10.4 -isysroot $sdk -Wl,-syslibroot,$sdk"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# test "$CC" = "gcc" && CC="gcc-4.0"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# test "$CXX" = "g++" && CXX="g++-4.0"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews cnf_append "VBOX_WITH_COCOA_QT" ""
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_6" "1"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews cnf_append "VBOX_WITHOUT_VBOXPYTHON_FOR_OSX_10_7" "1"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews ;;
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews *)
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews echo " failed to determine Darwin version. (uname -r: $darwin_ver)"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews fail
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews darwin_ver="unknown"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews ;;
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews esac
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews log_success "found version $darwin_ver (SDK: $sdk)"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews}
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewscheck_makeself()
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews{
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews test_header "makeself"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews if check_avail "$MAKESELF" makeself; then
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews makeself_ver=`$MAKESELF --version|grep version|sed 's+^Makeself.*version \([0-9\.]*\).*+\1+'`
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews if [ $? -ne 0 ]; then
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews log_failure "makeself not working"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews fail
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews else
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews log_success "found version $makeself_ver"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews cnf_append "VBOX_MAKESELF" "`which_wrapper $MAKESELF`"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews fi
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews fi
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews}
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews#
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# Checks that i386-elf-gcc-3.4.6, i386-elf-gcc-3.4.3, i386-elf-gcc-3.4 or i386-elf-gcc
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# is around to prevent confusion when the build fails in src/recompiler.
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# Note. Keep the which order in sync with the $(which ) in src/recompiler/Makefile.kmk.
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews#
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewscheck_i386elfgcc()
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews{
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews test_header "i386-elf-gcc"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews i386_elf_gcc=`which_wrapper i386-elf-gcc-3.4.6`
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews test -z "$i386_elf_gcc" && i386_elf_gcc=`which_wrapper i386-elf-gcc-3.4.3`
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews test -z "$i386_elf_gcc" && i386_elf_gcc=`which_wrapper i386-elf-gcc-3.4`
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews test -z "$i386_elf_gcc" && i386_elf_gcc=`which_wrapper i386-elf-gcc`
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews if test -z "$i386_elf_gcc"; then
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews echo " failed to find i386-elf-gcc"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews fail
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews fi
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews log_success "found $i386_elf_gcc"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews}
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews#
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# Show help
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews#
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewsshow_help()
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews{
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewscat << EOF
4f087942583014b241adca1bc78c6db89ed96e94Mark AndrewsUsage: ./configure [OPTIONS]...
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark AndrewsConfiguration:
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews -h, --help display this help and exit
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --nofatal don't abort on errors
4f087942583014b241adca1bc78c6db89ed96e94Mark AndrewsEOF
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_XPCOM -eq 1 ] && echo " --disable-xpcom disable XPCOM and related stuff"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_PYTHON -eq 1 ] && echo " --disable-python disable python bindings"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_JAVA -eq 1 ] && echo " --disable-java disable java bindings"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_VMMRAW -eq 1 ] && echo " --disable-vmmraw disable VMM raw mode (VT-x/AMD-V mandatory!)"
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews[ $WITH_SDL_TTF -eq 1 ] && echo " --disable-sdl-ttf disable SDL_ttf detection"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_ALSA -eq 1 ] && echo " --disable-alsa disable the ALSA sound backend"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_PULSE -eq 1 ] && echo " --disable-pulse disable the PulseAudio backend"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_DBUS -eq 1 ] && echo " --disable-dbus don't use DBus and hal for hardware detection"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_KMODS -eq 1 ] && echo " --disable-kmods don't build Linux kernel modules (host and guest)"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_OPENGL -eq 1 ] && echo " --disable-opengl disable OpenGL support (2D & 3D)"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_GSOAP -eq 0 ] && echo " --enable-webservice enable the webservice stuff"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $OSE -eq 1 ] && echo " --enable-vnc enable the VNC server"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $OSE -eq 0 ] && echo " --disable-extpack don't build the extpack"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_DOCS -eq 1 ] && echo " --disable-docs don't build the documentation"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_LIBVPX -eq 1 ] && echo " --disable-libvpx don't use libvpx for video capturing"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ "$OS" = "linux" -o "$OS" = "freebsd" ] && echo " --enable-vde enable VDE networking"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewscat << EOF
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --disable-udptunnel disable UDP tunnel networking
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --disable-devmapper disable device mapper library access
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --disable-hardening don't be strict about /dev/vboxdrv access
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --build-libxml2 build libxml2 from sources
4f087942583014b241adca1bc78c6db89ed96e94Mark AndrewsEOF
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $OSE -eq 0 ] && cat << EOF
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --build-libssl build openssl from sources
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --build-libcurl build libcurl from sources
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --build-libvpx build libvpx from sources
4f087942583014b241adca1bc78c6db89ed96e94Mark AndrewsEOF
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ "$OS" != "darwin" ] && echo " --setup-wine setup a Wine directory and register the hhc hack"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewscat << EOF
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark AndrewsPaths:
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --with-gcc=PATH location of the gcc compiler [$CC]
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --with-g++=PATH location of the g++ compiler [$CXX]
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --with-kbuild=DIR kbuild directory [$KBUILDDIR]
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --with-iasl=PATH location of the iasl compiler [$IASL]
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --with-mkisofs=PATH location of mkisofs [$MKISOFS]
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --with-makeself=PATH location of makeself [$MAKESELF]
4f087942583014b241adca1bc78c6db89ed96e94Mark AndrewsEOF
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ "$OS" = "linux" ] && echo " --with-linux=DIR Linux kernel source directory [$LINUX]"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_QT4 -eq 1 ] && echo " --with-qt-dir=DIR directory for Qt4 headers/libraries [pkgconfig]"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_GSOAP -eq 1 ] && echo " --with-gsoap-dir=PATH directory for gSOAP compiler/headers/libraries"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_GSOAP -eq 1 ] && echo " (soapcpp2 and wsdl2h, soapstd2.h, libgsoap++.a/so)"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews[ $WITH_GSOAP -eq 1 ] && echo " --with-gsoap-import=PATH directory for gSOAP import files (stlvector.h)"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewscat << EOF
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --with-openssl-dir=DIR directory for OpenSSL headers/libraries
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --with-ow-dir=DIR directory where Open Watcom can be found [$WATCOM]
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --out-path=PATH the folder to which configuration and build output
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews should go
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark AndrewsBuild type:
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews -d, --build-debug build with debugging symbols and assertions
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --build-profile build with profiling support
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews --build-headless build headless (without any GUI frontend)
4f087942583014b241adca1bc78c6db89ed96e94Mark AndrewsEOF
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews exit 0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews}
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews#
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# The body.
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews#
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# test if we are OSE
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updaterif [ $OSE -eq 1 -a -r "`cd \`dirname $0\`; pwd`/src/VBox/RDP/server/server.cpp" ]; then
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews OSE=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews # Set this as a reminder to print a log message once we know the path of the
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews # log file
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews NOT_OSE=1
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewsfi
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# Change OS specific defaults; must be before all other stuff
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewsif [ "$OS" = "darwin" ]; then
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_SDL=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_SDL_TTF=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_X11=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_ALSA=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_PULSE=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_DBUS=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_KMODS=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews BUILD_LIBXML2=1
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews BUILD_LIBVPX=1
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews [ $OSE -eq 1 ] || BUILD_LIBCURL=1
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews [ $OSE -eq 1 ] && WITH_LIBVPX=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewselif [ "$OS" = "haiku" ]; then
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews #WITH_SDL=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_SDL_TTF=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_X11=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_ALSA=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_PULSE=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_DBUS=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_KMODS=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_LIBIDL=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_XPCOM=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews BUILD_LIBXSLT=1
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews BUILD_LIBXML2=1
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews WITH_LIBVPX=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews # it is part of libroot, which is linked by default,
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews # but the script wants something
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews LIBPTHREAD="-lroot"
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews #[ $OSE -eq 1 ] || BUILD_LIBCURL=1
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews [ $OSE -eq 1 ] || BUILD_LIBSSL=1
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewselif [ "$OS" = "solaris" ]; then
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews [ $OSE -eq 1 ] && WITH_LIBVPX=0
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewsfi
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews# scan command line options
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrewsfor option in $*; do
4f087942583014b241adca1bc78c6db89ed96e94Mark Andrews case "$option" in
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington --help|-help|-h)
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User show_help
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User ;;
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews --nofatal)
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews nofatal=1
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews ;;
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews --env-only)
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews ENV_ONLY=1
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews ;;
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews --with-gcc=*)
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews CC=`echo $option | cut -d'=' -f2`
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews ;;
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews --with-g++=*)
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews CXX=`echo $option | cut -d'=' -f2`
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews ;;
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews --with-kbuild=*)
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews KBUILDDIR=`echo $option | cut -d'=' -f2`
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews if echo $KBUILDDIR|grep -q "$INVALID_CHARS"; then
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews echo "Error: KBUILDDIR contains invalid characters!"
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews exit 1
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews fi
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews ;;
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews --with-qt-dir=*|--with-qt4-dir=*)
35bc7055d1b9b816e68a4180d46a49963e45c233Automatic Updater QT4DIR=`echo $option | cut -d'=' -f2`
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews QT4DIR_PKGCONFIG=0
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews ;;
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews --with-openssl-dir=*)
78cb74fab4665da2e2641ba909c6f59f74cc4193Automatic Updater OPENSSLDIR=`echo $option | cut -d'=' -f2`
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater INCCRYPTO="-I${OPENSSLDIR}/include"
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater LIBCRYPTO="${OPENSSLDIR}/lib/libcrypto.a ${OPENSSLDIR}/lib/libssl.a"
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater ;;
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater --with-ow-dir=*)
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater WATCOM=`echo $option | cut -d'=' -f2`
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater ;;
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater --with-gsoap-dir=*)
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater GSOAP=`echo $option | cut -d'=' -f2`
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater ;;
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater --with-gsoap-import=*)
c57668a2fbbe558c1bd21652813616f2f517c469Tinderbox User GSOAP_IMPORT=`echo $option | cut -d'=' -f2`
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater ;;
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater --with-iasl=*)
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater IASL=`echo $option | cut -d'=' -f2`
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater ;;
97669cab1f7e6f953dbf39ef1b2c4206ecb50d9eAutomatic Updater --with-linux=*)
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews LINUX=`echo $option | cut -d'=' -f2`
e4757e3dafe50ae59f693eec828f68c42c197a70Andreas Gustafsson ;;
309b912841e8b97bf0b0df0d96c3eaf16990c080Automatic Updater --with-mkisofs=*)
66d24a46538c7c2d29fdb5611ab1173e83685b1dTinderbox User MKISOFS=`echo $option | cut -d'=' -f2`
66d24a46538c7c2d29fdb5611ab1173e83685b1dTinderbox User ;;
e4757e3dafe50ae59f693eec828f68c42c197a70Andreas Gustafsson --with-makeself=*)
e4757e3dafe50ae59f693eec828f68c42c197a70Andreas Gustafsson MAKESELF=`echo $option | cut -d'=' -f2`
754ebd37e782356aedbb2987e3c1a8ab4f29574eMark Andrews ;;
754ebd37e782356aedbb2987e3c1a8ab4f29574eMark Andrews --target-arch=*)
754ebd37e782356aedbb2987e3c1a8ab4f29574eMark Andrews TARGET_MACHINE=`echo $option | cut -d'=' -f2`
93089a352d6903b0d7845a039de4ec2df9a0e35aTinderbox User ;;
94df856897945fe58f130ba78765c57308bc5400Automatic Updater --disable-xpcom)
5c679dbb66df92766f6a7e7bb93c18d61275d1feMark Andrews [ $WITH_XPCOM -eq 1 ] && WITH_XPCOM=0
1d4f4d2db2d69e48fec2dde5c1535853677d22a7Automatic Updater ;;
5c679dbb66df92766f6a7e7bb93c18d61275d1feMark Andrews --disable-python)
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater [ $WITH_PYTHON -eq 1 ] && WITH_PYTHON=0
1d4f4d2db2d69e48fec2dde5c1535853677d22a7Automatic Updater ;;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater --disable-java)
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews [ $WITH_JAVA -eq 1 ] && WITH_JAVA=0
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews ;;
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrews --disable-vmmraw)
1d4f4d2db2d69e48fec2dde5c1535853677d22a7Automatic Updater [ $WITH_VMMRAW -eq 1 ] && WITH_VMMRAW=0
da93950363b307b718d156514b95b9df93a63776Mark Andrews ;;
da93950363b307b718d156514b95b9df93a63776Mark Andrews --disable-sdl-ttf)
35bc7055d1b9b816e68a4180d46a49963e45c233Automatic Updater [ $WITH_SDL_TTF -eq 1 ] && WITH_SDL_TTF=0
1d4f4d2db2d69e48fec2dde5c1535853677d22a7Automatic Updater ;;
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater --disable-qt)
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater [ $WITH_QT4 -eq 1 ] && WITH_QT4=0
f6056ad06781c95198505ae3a361e6dd98df4b91Automatic Updater ;;
1d4f4d2db2d69e48fec2dde5c1535853677d22a7Automatic Updater --disable-qt4)
f6056ad06781c95198505ae3a361e6dd98df4b91Automatic Updater [ $WITH_QT4 -eq 1 ] && WITH_QT4=0
fbcaee30a27f47fe337152c27e7d90489dc8fd63Tinderbox User ;;
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User --passive-mesa)
1d4f4d2db2d69e48fec2dde5c1535853677d22a7Automatic Updater PASSIVE_MESA=1
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater ;;
1d4f4d2db2d69e48fec2dde5c1535853677d22a7Automatic Updater --disable-alsa)
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater [ $WITH_ALSA -eq 1 ] && WITH_ALSA=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
f8e61212a1b83e60f521577cc522e8bc1509c8cfAutomatic Updater --disable-pulse)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater [ $WITH_PULSE -eq 1 ] && WITH_PULSE=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --enable-pulse)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_PULSE=2
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --disable-dbus)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater [ $WITH_DBUS -eq 1 ] && WITH_DBUS=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
f8e61212a1b83e60f521577cc522e8bc1509c8cfAutomatic Updater --disable-kmods)
c57668a2fbbe558c1bd21652813616f2f517c469Tinderbox User [ $WITH_KMODS -eq 1 ] && WITH_KMODS=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --disable-opengl)
78d7186253dfed549ec0ce2d7c2b08a7978ede9cAutomatic Updater [ $WITH_OPENGL -eq 1 ] && WITH_OPENGL=0
78d7186253dfed549ec0ce2d7c2b08a7978ede9cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --enable-webservice)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater [ $WITH_GSOAP -eq 0 ] && WITH_GSOAP=1
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --enable-vnc)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_VNC=1
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --disable-hardening)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_HARDENING=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --disable-extpack)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_EXTPACK=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --disable-docs)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_DOCS=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --enable-hardening)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_HARDENING=2
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --disable-udptunnel)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_UDPTUNNEL=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --enable-vde)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_VDE=1
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --disable-devmapper)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_DEVMAPPER=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --disable-libvpx)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_LIBVPX=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --build-debug|-d)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater BUILD_TYPE=debug
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --build-profile)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater BUILD_TYPE=profile
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --build-libxml2)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater BUILD_LIBXML2=1
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --build-libssl)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater BUILD_LIBSSL=1
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --build-libcurl)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater BUILD_LIBCURL=1
0b580e05aec89f501a9c20cc00ceb42d043d3928Automatic Updater ;;
78d7186253dfed549ec0ce2d7c2b08a7978ede9cAutomatic Updater --build-libvpx)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater BUILD_LIBVPX=1
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --build-headless)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater HEADLESS=1
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_SDL=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_SDL_TTF=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_X11=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_OPENGL=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater WITH_QT4=0
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --ose)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater OSE=2
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --odir=*)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ODIR="`echo $option | cut -d'=' -f2`/"
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ODIR_OVERRIDE=1
78d7186253dfed549ec0ce2d7c2b08a7978ede9cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --out-path=*)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater out_path="`echo $option | cut -d'=' -f2`/"
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater if [ -d $out_path ]; then
0b580e05aec89f501a9c20cc00ceb42d043d3928Automatic Updater saved_path="`pwd`"
78d7186253dfed549ec0ce2d7c2b08a7978ede9cAutomatic Updater cd $out_path
78d7186253dfed549ec0ce2d7c2b08a7978ede9cAutomatic Updater OUT_PATH="`pwd`"
0b580e05aec89f501a9c20cc00ceb42d043d3928Automatic Updater cd $saved_path
f8e61212a1b83e60f521577cc522e8bc1509c8cfAutomatic Updater OUT_PATH_OVERRIDE=1
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater if [ $ODIR_OVERRIDE -eq 0 ]; then
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater # This variable has not *yet* been overridden. That can still happen.
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ODIR=$OUT_PATH/
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater fi
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater else
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater echo "Error: invalid folder \"$out_path\" in option \"$option\""
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater exit 1
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater fi
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater --setup-wine)
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater [ "$OS" != "darwin" ] && SETUP_WINE=1
c57668a2fbbe558c1bd21652813616f2f517c469Tinderbox User ;;
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater *)
f8e61212a1b83e60f521577cc522e8bc1509c8cfAutomatic Updater echo
782b50b4ebbd48d570831f66d8ffc550e0db340cAutomatic Updater echo "Unrecognized option \"$option\""
f8e61212a1b83e60f521577cc522e8bc1509c8cfAutomatic Updater echo
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User show_help
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User ;;
a7c412f37cc73d0332887a746e81220cbf09dd00Mark Andrews esac
d585233c52e283d9a8849f16f04f452419a2484eTinderbox Userdone
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User
d585233c52e283d9a8849f16f04f452419a2484eTinderbox UserLOG="$ODIR$LOG"
d585233c52e283d9a8849f16f04f452419a2484eTinderbox UserENV="$ODIR$ENV"
d585233c52e283d9a8849f16f04f452419a2484eTinderbox UserCNF="$ODIR$CNF"
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User# initialize output files
d585233c52e283d9a8849f16f04f452419a2484eTinderbox Usercat > $LOG << EOF
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User# Log file generated by
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User#
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User# '$0 $*'
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews#
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
068a66979695c77359e7a9181bb3f831c965b21cMark AndrewsEOF
c7ef13f6c9ef4436bc804b150e0a93307b11fa27Tinderbox Usercat > $CNF << EOF
4ea3649f028ea6a1e42377082a7ccf8f789fb950Automatic Updater# -*- Makefile -*-
644973f327e9db74779e7c0426db90909173b284Automatic Updater#
644973f327e9db74779e7c0426db90909173b284Automatic Updater# automatically generated by
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User#
418cc932318b1d67f88a36904d88d8a5a0a2ba09Automatic Updater# '$0 $*'
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User#
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User# It will be completely overwritten if configure is executed again.
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User#
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User
d585233c52e283d9a8849f16f04f452419a2484eTinderbox UserEOF
d585233c52e283d9a8849f16f04f452419a2484eTinderbox Usercat > $ENV << EOF
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User#!/bin/bash
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User#
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User# automatically generated by
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User#
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User# '$0 $*'
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User#
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User# It will be completely overwritten if configure is executed again.
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User# Make sure you source this file once before you start to build VBox.
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User#
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User
d585233c52e283d9a8849f16f04f452419a2484eTinderbox UserEOF
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User# Print log warning about OSE if necessary
d585233c52e283d9a8849f16f04f452419a2484eTinderbox Userif [ -n "$NOT_OSE" ]; then
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User echo "Found RDP server, assuming VBOX_OSE = FALSE" >> $LOG
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User echo >> $LOG
d585233c52e283d9a8849f16f04f452419a2484eTinderbox Userfi
d585233c52e283d9a8849f16f04f452419a2484eTinderbox User
418cc932318b1d67f88a36904d88d8a5a0a2ba09Automatic Updater
e31cfd80616deb9781902306b34a69aa7309b6cbTinderbox Userif [ "$BUILD_TYPE" = "debug" ]; then
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews echo "Creating DEBUG build!" >> $LOG
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewselif [ "$BUILD_TYPE" = "profile" ]; then
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews echo "Creating PROFILE build!" >> $LOG
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsfi
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# first determine our environment
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewscheck_environment
90863a6f9bfb06062c7fdf269bb675e7b674fc31Mark Andrewscheck_kbuild
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews[ -n "$ENV_ONLY" ] && exit 0
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# append the tools directory to the default search path
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsecho "$PATH" | grep -q "$DEVDIR_BIN" || PATH="$PATH:$DEVDIR_BIN"
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsexport PATH
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# if we will be writing to a different out directory then set this up now
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrewsif [ $OUT_PATH_OVERRIDE -eq 1 ]; then
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews echo "AUTOCFG=$OUT_PATH/AutoConfig.kmk" >> $ENV
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews echo "export AUTOCFG" >> $ENV
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews echo "LOCALCFG=$OUT_PATH/LocalConfig.kmk" >> $ENV
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews echo "export LOCALCFG" >> $ENV
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews echo "PATH_OUT_BASE=$OUT_PATH" >> $ENV
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo "export PATH_OUT_BASE" >> $ENV
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsfi
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# some things are not available in for OSE
68e1b398b5b1b417723e90b5e52b9148f8f93294Automatic Updaterif [ $OSE -ge 1 ]; then
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews cnf_append "VBOX_OSE" "1"
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews cnf_append "VBOX_WITH_TESTSUITE" ""
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews cnf_append "VBOX_WITH_WIN32_ADDITIONS" ""
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User
45eca3a5d46ed15aee14d81f6cb6c9fb6f365344Mark Andrews if [ "$OS" = "linux" ]; then
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User cnf_append "VBOX_WITH_LINUX_ADDITIONS" "1"
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User else
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater cnf_append "VBOX_WITH_LINUX_ADDITIONS" ""
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater fi
45eca3a5d46ed15aee14d81f6cb6c9fb6f365344Mark Andrews echo >> $CNF
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox Userfi
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User# extpack
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsif [ $OSE -eq 0 ]; then
872a5b83f68b8058945298715b0fa53442aad52fAutomatic Updater if [ $WITH_EXTPACK -eq 1 ]; then
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews BUILD_LIBSSL=1
8f7809dd50b2471151ad272d083dd8c6a29d070eTinderbox User else
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews cnf_append "VBOX_WITH_EXTPACK_PUEL_BUILD" ""
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews fi
068a66979695c77359e7a9181bb3f831c965b21cMark Andrewsfi
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington# headless
7a2a1b8b14fc804ac80612d7b98064095e445be5Automatic Updaterif [ -n "$HEADLESS" ]; then
7a42357217528037bdfedcb17eeebfe96ae4266aAutomatic Updater cnf_append "VBOX_HEADLESS" "1"
a7038d1a0513c8e804937ebc95fc9cb3a46c04f5Mark Andrewsfi
e007e3e5b0316c6c05698a71101885743aca22bdAutomatic Updater
068a66979695c77359e7a9181bb3f831c965b21cMark Andrews# emit disable directives corresponding to any --disable-xxx options.
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonif [ $WITH_OPENGL -eq 0 ]; then
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "VBOX_WITH_CROGL" ""
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "VBOX_WITH_VIDEOHWACCEL" ""
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington cnf_append "VBOX_GUI_USE_QGL" ""
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellingtonfi
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington[ $WITH_XPCOM -eq 0 ] && cnf_append "VBOX_WITH_MAIN" ""
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington[ $WITH_QT4 -eq 0 ] && cnf_append "VBOX_WITH_QTGUI" ""
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington[ $WITH_SDL_TTF -eq 0 ] && cnf_append "VBOX_WITH_SECURELABEL" ""
9e3a7b0faf417a10f5f689edf288807b2d5eedc5Brian Wellington[ $WITH_PYTHON -eq 0 ] && cnf_append "VBOX_WITH_PYTHON" ""
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User[ $WITH_JAVA -eq 0 ] && cnf_append "VBOX_WITH_JXPCOM" ""
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User[ $WITH_JAVA -eq 0 ] && cnf_append "VBOX_WITH_JWS" ""
cff0e0b52cf0928123bad6f3bccf56e22bbc07f5Automatic Updater[ $WITH_HARDENING -eq 0 ] && cnf_append "VBOX_WITHOUT_HARDENING" "1"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater[ $WITH_HARDENING -eq 2 ] && cnf_append "VBOX_WITH_HARDENING" "2"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater[ $WITH_VMMRAW -eq 0 ] && cnf_append "VBOX_WITH_RAW_MODE" ""
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater[ $WITH_LIBVPX -eq 0 ] && cnf_append "VBOX_WITH_VPX" ""
644973f327e9db74779e7c0426db90909173b284Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# Darwin-specific
c28a1243429dfaf8dc5f6c1db0dccdc6ce386baeMark Andrewsif [ "$OS" = "darwin" ]; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater check_darwinversion
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrewsfi
aa1d397c4736cd86540555193d71e55fa3b37b2aMark Andrews# the tools
5f7e0eb1cb917b788906d3e2aa01bfc4885dcae4Mark Andrewscheck_gcc
bf1263835e8e35421960f65088c043f42aacef13Mark Andrewscheck_open_watcom
15ae68f3db8261770fc33b8e0f83f5d8c7021e84Mark Andrews[ "$OS" != "darwin" ] && check_iasl
ac4e70ff8955669341f435bc0a734a17c01af124Mark Andrews# don't check for yasm for the time beeing as 0.40 and 0.50 both have known bugs
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User# [ "$OS" != "darwin" ] && check_yasm
2bb3422dc683c013db7042f5736240de6b86f182Automatic Updater[ "$OS" != "darwin" ] && check_xsltproc
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User[ "$OS" != "darwin" ] && check_mkisofs
9bc394fffdd50f6e47614b2d317da7274122366fTinderbox User
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User# the libraries
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater[ "$OS" != "darwin" ] && check_pthread
02b47c5d62e1e827743684c28a08e871da454a2dMark Andrewscheck_libxml2
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User[ $WITH_LIBIDL -eq 1 ] && check_libidl
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrewscheck_ssl
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox Usercheck_curl
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater[ $WITH_LIBVPX -eq 1 ] && check_vpx
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User[ "$OS" != "darwin" ] && check_z
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User[ "$OS" != "darwin" ] && check_png
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater[ $OSE -eq 0 -a "$OS" = "linux" ] && check_pam
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater[ $WITH_SDL -eq 1 ] && check_sdl
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater[ $WITH_SDL_TTF -eq 1 -a $OSE -eq 0 ] && check_sdl_ttf
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater[ $WITH_X11 -eq 1 ] && check_x
2f60dbd3787caa91e8ab1d7ae39ea312ad5ba31fAutomatic Updater# TODO check for xcomposite-dev (X11/extensions/Xcomposite.h, additions only)
10640b2e3efc7bc8034108136d7487f7407fbf37Andreas Gustafsson# TODO check for libxdamange-dev (X11/extensions/Xdamage.h, additions only)
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews[ $WITH_X11 -eq 1 ] && check_xcursor
10640b2e3efc7bc8034108136d7487f7407fbf37Andreas Gustafsson[ $WITH_X11 -eq 1 ] && check_xinerama
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews[ $WITH_X11 -eq 1 ] && check_xrandr
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews[ $WITH_OPENGL -eq 1 ] && check_opengl
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews[ $WITH_QT4 -eq 1 ] && check_qt4
0eb371ca0dab50ae3462e98794a6126198c52f4bMark Andrews[ $WITH_PYTHON -eq 1 ] && check_python
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater[ $WITH_JAVA -eq 1 ] && check_java
436aad11e01e916f75e68a2e9cb89ac217a990d3Tinderbox User
6fe48fb46e53ffc37542853a1edb74cb481b7d94Automatic Updater# PulseAudio
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrewsif [ "$OS" = "linux" -o "$OS" = "freebsd" ]; then
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews if [ $WITH_PULSE -eq 1 ]; then
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User check_pulse
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User elif [ $WITH_PULSE -eq 0 ]; then
f751b1576ee6fef4023bf7101d10167e4fe520f3Tinderbox User cnf_append "VBOX_WITH_PULSE" ""
fe600c3ad88c0bb078283a953d048087d227c0e5Tinderbox User fi
a792d42c3cdd6cd4608b936c0a06437b8c2d99ccTinderbox Userfi
a01aa536188bb3535dfc1107a623e6355a8e6b7cMark Andrews
0a50626faa2f8941f55bf435d3965d490bb5d026Tinderbox User# Linux-specific
1d4f4d2db2d69e48fec2dde5c1535853677d22a7Automatic Updaterif [ "$OS" = "linux" ]; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater # don't check for the static libstdc++ in the PUEL version as we build the
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews # additions at a dedicated box
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater [ $OSE -ge 1 ] && check_staticlibstdcxx
fe600c3ad88c0bb078283a953d048087d227c0e5Tinderbox User if [ $WITH_KMODS -eq 1 ]; then
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User check_linux
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User else
8d0e57cdac5e28964ebe7c0d925d158f17b401a6Tinderbox User cnf_append "VBOX_LINUX_SRC" ""
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User cnf_append "VBOX_WITH_VBOXDRV" ""
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User cnf_append "VBOX_WITH_ADDITION_DRIVERS" ""
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User fi
5b4ef313da4283079786e516b4b07a1691e1dc50Mark Andrews if [ $WITH_ALSA -eq 1 ]; then
99c231a3bd27893583204cd0a3e3103dc78dbc28Tinderbox User check_alsa
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater else
e10d61d84e0b735f1e8eca18644cfdb1b06cad33Tinderbox User cnf_append "VBOX_WITH_ALSA" ""
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews fi
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User if [ $WITH_DBUS -eq 0 ]; then
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews cnf_append "VBOX_WITH_DBUS" ""
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews fi
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews if [ $WITH_DEVMAPPER -eq 1 ]; then
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater check_libdevmapper
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater else
bbc0e1c4f47f101c4a64db3469352c49a49e734fTinderbox User cnf_append "VBOX_WITH_DEVMAPPER" ""
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews fi
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User check_libcap
7e8129652903780873ba91f379f9ffca1f59773cMark Andrews check_compiler_h
dc238a06bffa79de141ee7655765e2df91498a8aTinderbox User [ "$BUILD_MACHINE" = "amd64" -a $WITH_VMMRAW -eq 1 ] && check_32bit
710bce1a85c96e85ca1a90471382055acd29d51fTinderbox User # tools/common/makeself*
4c9f230f7ca5b2b08ea8fd7a6944135801dbe152Tinderbox User [ $OSE -ge 1 ] && check_makeself
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrewsfi
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews[ -n "$SETUP_WINE" ] && setup_wine
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterif [ $WITH_GSOAP -eq 1 ]; then
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews check_gsoap
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrewselse
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater if [ $OSE -ge 1 ]; then
608c08fec9e45832e66649bbdb219c25167e654aTinderbox User cnf_append "VBOX_WITH_WEBSERVICES" ""
1d4f4d2db2d69e48fec2dde5c1535853677d22a7Automatic Updater fi
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updaterfi
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrews
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# UDPTUNNEL
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterif [ $WITH_UDPTUNNEL -eq 0 ]; then
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews cnf_append "VBOX_WITH_UDPTUNNEL" ""
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewsfi
71fa3534bfaf174f6a938dc1ba3522f66606c4e1Mark Andrews
dc5552b4df5e3821783821c8d4e734c1608c446eTinderbox User# VDE
ead8aa3182c5805fccb6c7c1636cede6a24a5fc1Automatic Updaterif [ "$OS" = "linux" -o "$OS" = "freebsd" ]; then
e80c7005e3d59dfeb04dad186d36f3c15622954cTinderbox User if [ $WITH_VDE -eq 1 ]; then
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User cnf_append "VBOX_WITH_VDE" "1"
a80993946f29ff39df38818ee9b2e58a4e46cb7eTinderbox User fi
02b3e44a996e9753d86306b6a1b6b579a73787fcTinderbox Userfi
5ecad47f69b3fd945472ab2900a9ff826a7ce2f6Automatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# DOCS
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewsif [ $WITH_DOCS -eq 0 ]; then
8e5fce1f9ceba17dd7e3ff0eb287e1e999c14249Mark Andrews cnf_append "VBOX_WITH_DOCS" ""
53b97c9873a923f504893d1e2ab62000dfac221fTinderbox User cnf_append "VBOX_WITH_DOCS_PACKING" ""
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrewsfi
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updater
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater# VNC server support
8c6328ab5890aa79d84b86ed672e185dc111bb68Automatic Updaterif [ $OSE -ge 1 ]; then
3349f0044fda807e1fd6681c833d3593a22dad86Tinderbox User if [ $WITH_VNC = 1 ]; then
9cd5eb6fe0f26d65724b99216cb31dcdd12e4afdAutomatic Updater check_vncserver
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews else
59528addd704f8d5757b54e540520f74e588a7c7Automatic Updater cnf_append "VBOX_WITH_EXTPACK_VNC" ""
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrews fi
f89eb76a7516649f8717c6397fc496ca906ddb57Tinderbox Userfi
c5f7f6aa6c51d35353a9485b32abbabfe8358b4eMark Andrews
cd34c1adb0fa2120327fc8c11cda0d4a5f722aeeTinderbox User# success!
e20309353e6246485c521278131d3fced73d7957Tinderbox Userecho
b871c7156eb037d41f53828c6fcb9cc876128962Mark Andrewsecho "Successfully generated '$CNF' and '$ENV'."
c74518d655c1c563060f49569dce71e4a00f5f4eTinderbox Userecho "Source '$ENV' once before you start to build VBox:"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterecho ""
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterecho " source $ENV"
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewsecho " kmk"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterecho ""
53b97c9873a923f504893d1e2ab62000dfac221fTinderbox Userif [ "$OS" = "linux" ]; then
fbcaee30a27f47fe337152c27e7d90489dc8fd63Tinderbox User if [ $OUT_PATH_OVERRIDE -eq 1 ]; then
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater vbox_out_path=$OUT_PATH
28a5dd720187fddb16055a0f64b63a7b66f29f64Mark Andrews else
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater vbox_out_path=./out
ca904804e43f663f08eb1ac9d6d617930b9a3cd3Automatic Updater fi
19ad308d84cbf446a144e5a91f2032389a9d65c1Tinderbox User echo "To compile the kernel modules, do:"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo ""
713a5e3080f112b3efde9235e9c92035056ff966Automatic Updater echo " cd $vbox_out_path/$OS.$TARGET_MACHINE/$BUILD_TYPE/bin/src"
7af91d15b2ce1ce32f7320f6d5cc3b83621c241aAutomatic Updater echo " make"
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrews echo ""
91d187ce035f39073f0732ff2a401a45c3c955fbMark Andrewsfi
bbc0e1c4f47f101c4a64db3469352c49a49e734fTinderbox Userif [ $WITH_HARDENING -gt 0 ]; then
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo ""
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews echo " +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++"
f8b9948a4116226ac41b5509cca152849006c66cAutomatic Updater echo " Hardening is enabled which means that the VBox binaries will not run from"
609b8d08176469485edce25f3c2f50365bbd3819Mark Andrews echo " the binary directory. The binaries have to be installed suid root and some"
be46cb4bee9253ee4832340c719920642e00c41aTinderbox User echo " more prerequisites have to be fulfilled which is normally done by installing"
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox User echo " the final package. For development, the hardening feature can be disabled"
c243d779731a410f8dc2d2feeed20c15f299b6e3Automatic Updater echo " by specifying the --disable-hardening parameter. Please never disable that"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo " feature for the final distribution!"
dd65eb1efb40b1c47d57963192bfc54873b219beAutomatic Updater echo " +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++"
099b86fb8136a7dff81df85cf395978c16eb254cAutomatic Updater echo ""
b886b04d8d2b085cbf3e1bf4442dee87f43ba5e4Tinderbox Userelse
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo ""
66cf4a406525db9c42977d8034a60e0a8e2a9290Automatic Updater echo " +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++"
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updater echo " Hardening is disabled. Please do NOT build packages for distribution with"
572cb2c1c931f6bc6a4a019c103ae88239b0eb96Automatic Updater echo " disabled hardening!"
02b3e44a996e9753d86306b6a1b6b579a73787fcTinderbox User echo " +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++ WARNING +++"
3e5340279d8875d136a4dd815cccad0044aa2644Automatic Updater echo ""
ce9cad6bb04869c5e94d9dc721032b25117f9210Automatic Updaterfi
27c3c21f41520e8d6336d80a8094389e321cb6d2Mark Andrewsecho "Enjoy!"
f22980c16f244b7d7f33b5248f2d38bd4885f108Automatic Updatercleanup
e20309353e6246485c521278131d3fced73d7957Tinderbox User