2 #############################################################################
4 ## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## GNU Lesser General Public License Usage
11 ## This file may be used under the terms of the GNU Lesser General Public
12 ## License version 2.1 as published by the Free Software Foundation and
13 ## appearing in the file LICENSE.LGPL included in the packaging of this
14 ## file. Please review the following information to ensure the GNU Lesser
15 ## General Public License version 2.1 requirements will be met:
16 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 ## In addition, as a special exception, Nokia gives you certain additional
19 ## rights. These rights are described in the Nokia Qt LGPL Exception
20 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 ## GNU General Public License Usage
23 ## Alternatively, this file may be used under the terms of the GNU General
24 ## Public License version 3.0 as published by the Free Software Foundation
25 ## and appearing in the file LICENSE.GPL included in the packaging of this
26 ## file. Please review the following information to ensure the GNU General
27 ## Public License version 3.0 requirements will be met:
28 ## http://www.gnu.org/copyleft/gpl.html.
31 ## Alternatively, this file may be used in accordance with the terms and
32 ## conditions contained in a signed written agreement between you and Nokia.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 # Helper function for getQMakeConf. It parses include statements in
112 # qmake.conf and prints out the expanded file
115 while read line; do case "$line" in
117 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
118 current_dir=`dirname "$1"`
119 conf_file="$current_dir/$inc_file"
120 if [ ! -f "$conf_file" ]; then
121 echo "WARNING: Unable to find file $conf_file" >&2
124 getQMakeConf1 "$conf_file"
136 values["LITERAL_WHITESPACE"] = " "
137 values["LITERAL_DOLLAR"] = "$"
139 /^[_A-Z0-9.]+[ \t]*\+?=/ {
140 valStart = index($0, "=") + 1
143 if (substr($0, valStart - 2, 1) == "+") {
147 variable = substr($0, 0, valStart - 2 - append)
148 value = substr($0, valStart)
149 gsub("[ \t]+", "", variable)
150 gsub("^[ \t]+", "", value)
151 gsub("[ \t]+$", "", value)
154 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
155 ovalue = ovalue substr(value, 1, RSTART - 1)
156 var = substr(value, RSTART + 2, RLENGTH - 2)
157 value = substr(value, RSTART + RLENGTH)
159 var = substr(var, 2, length(var) - 2)
161 ovalue = ovalue values[var]
163 ovalue = ovalue value
165 combinedValue = values[variable]
166 if (append == 1 && length(combinedValue) > 0) {
167 combinedValue = combinedValue " " ovalue
169 combinedValue = ovalue
171 values[variable] = combinedValue
174 for (var in values) {
175 print var "=" values[var]
183 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
186 # relies on $QMAKESPEC being set correctly. parses include statements in
187 # qmake.conf and prints out the expanded file
190 if [ -z "$specvals" ]; then
191 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
193 getQMakeConf3 "$1" "$specvals"
198 if [ -z "$xspecvals" ]; then
199 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
201 getQMakeConf3 "$1" "$xspecvals"
204 # relies on $TEST_COMPILER being set correctly
205 compilerSupportsFlag()
207 cat >conftest.cpp <<EOF
208 int main() { return 0; }
210 "$TEST_COMPILER" "$@" -o conftest.o conftest.cpp
212 rm -f conftest.cpp conftest.o
216 # relies on $TEST_COMPILER being set correctly
222 safe_flag=`shellEscape "$flag"`
223 lflags=$lflags,$safe_flag
225 compilerSupportsFlag "$lflags" >/dev/null 2>&1
228 #-------------------------------------------------------------------------------
230 #-------------------------------------------------------------------------------
238 echo >&2 "BUG: wrong command to QMakeVar: $1"
242 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
245 #-------------------------------------------------------------------------------
246 # operating system detection
247 #-------------------------------------------------------------------------------
249 # need that throughout the script
250 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
251 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
252 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
253 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
255 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
256 if echo '\c' | grep '\c' >/dev/null; then
262 #-------------------------------------------------------------------------------
263 # window system detection
264 #-------------------------------------------------------------------------------
268 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
273 #-----------------------------------------------------------------------------
274 # Qt version detection
275 #-----------------------------------------------------------------------------
276 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
280 if [ -n "$QT_VERSION" ]; then
281 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
282 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
283 if [ -n "$MAJOR" ]; then
284 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
285 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
286 QT_MAJOR_VERSION="$MAJOR"
287 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
288 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
291 if [ -z "$QT_MAJOR_VERSION" ]; then
292 echo "Cannot process version from qglobal.h: $QT_VERSION"
293 echo "Cannot proceed."
297 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
298 if [ -z "$QT_PACKAGEDATE" ]; then
299 echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
300 echo "Cannot proceed"
304 #-------------------------------------------------------------------------------
306 #-------------------------------------------------------------------------------
310 EditionString=Commercial
314 # parse the arguments, setting things to "yes" or "no"
315 while [ "$#" -gt 0 ]; do
319 #Autoconf style options
321 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
325 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
329 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
330 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
333 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
336 -h|help|--help|-help)
337 if [ "$VAL" = "yes" ]; then
339 COMMERCIAL_USER="no" #doesn't matter we will display the help
342 COMMERCIAL_USER="no" #doesn't matter we will display the help
346 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
350 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
357 if [ "$UNKNOWN_ARG" = "yes" ]; then
369 COMMERCIAL_USER="yes"
383 if [ "$COMMERCIAL_USER" = "ask" ]; then
385 echo "Which edition of Qt do you want to use ?"
387 echo "Type 'c' if you want to use the Commercial Edition."
388 echo "Type 'o' if you want to use the Open Source Edition."
392 if [ "$commercial" = "c" ]; then
393 COMMERCIAL_USER="yes"
395 elif [ "$commercial" = "o" ]; then
402 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
403 # Commercial preview release
404 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
407 QT_EDITION="QT_EDITION_DESKTOP"
408 LicenseType="Technology Preview"
409 elif [ $COMMERCIAL_USER = "yes" ]; then
410 # one of commercial editions
411 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
413 # read in the license file
414 if [ -f "$LICENSE_FILE" ]; then
415 . "$LICENSE_FILE" >/dev/null 2>&1
416 if [ -z "$LicenseKeyExt" ]; then
418 echo "You are using an old license file."
420 echo "Please install the license file supplied by Nokia,"
421 echo "or install the Qt Open Source Edition if you intend to"
422 echo "develop free software."
425 if [ -z "$Licensee" ]; then
427 echo "Invalid license key. Please check the license key."
431 if [ -z "$LicenseKeyExt" ]; then
433 echo $ECHO_N "Please enter your license key: $ECHO_C"
435 Licensee="Unknown user"
440 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
441 && LicenseValid="yes" \
443 if [ "$LicenseValid" != "yes" ]; then
445 echo "Invalid license key. Please check the license key."
448 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
449 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
450 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
451 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
453 # determine which edition we are licensed to use
454 case "$LicenseTypeCode" in
456 LicenseType="Commercial"
460 QT_EDITION="QT_EDITION_UNIVERSAL"
463 Edition="FullFramework"
464 EditionString="Full Framework"
465 QT_EDITION="QT_EDITION_DESKTOP"
468 Edition="GUIFramework"
469 EditionString="GUI Framework"
470 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
475 LicenseType="Evaluation"
476 QMakeVar add DEFINES QT_EVAL
480 QT_EDITION="QT_EDITION_EVALUATION"
485 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
487 echo "Invalid license key. Please check the license key."
491 # verify that we are licensed to use Qt on this platform
493 case "$PlatformCode" in
496 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
500 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
503 ### EMBEDDED_QPA logic missing ###
504 case "$PlatformCode,$PLATFORM_MAC" in
505 X9,* | XC,* | XU,* | XW,* | XM,*)
507 LICENSE_EXTENSION="-ALLOS"
509 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
510 # Qt for Embedded Linux
511 LICENSE_EXTENSION="-EMBEDDED"
513 6M,* | N7,* | N9,* | NX,*)
515 LICENSE_EXTENSION="-EMBEDDED"
517 FM,* | LM,yes | ZM,no)
519 LICENSE_EXTENSION="-DESKTOP"
523 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
525 echo "You are not licensed for the $Platform platform."
527 echo "Please contact qt-info@nokia.com to upgrade your license to"
528 echo "include the $Platform platform, or install the Qt Open Source Edition"
529 echo "if you intend to develop free software."
534 if test -r "$relpath/.LICENSE"; then
535 # Generic, non-final license
537 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
542 *TECHNOLOGY?PREVIEW*)
549 echo >&2 "Invalid license files; cannot continue"
554 EditionString="$Edition"
555 QT_EDITION="QT_EDITION_DESKTOP"
558 case "$LicenseFeatureCode" in
561 case "$LicenseType" in
563 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
566 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
572 case "$LicenseType" in
574 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
577 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
583 echo "Invalid license key. Please check the license key."
587 case "$LicenseFeatureCode" in
595 if [ '!' -f "$outpath/LICENSE" ]; then
596 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
597 echo "this software has disappeared."
599 echo "Sorry, you are not licensed to use this software."
600 echo "Try re-installing."
604 elif [ $COMMERCIAL_USER = "no" ]; then
605 # Open Source edition - may only be used under the terms of the GPL or LGPL.
606 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
607 Licensee="Open Source"
609 EditionString="Open Source"
610 QT_EDITION="QT_EDITION_OPENSOURCE"
613 #-------------------------------------------------------------------------------
614 # initalize variables
615 #-------------------------------------------------------------------------------
617 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
618 for varname in $SYSTEM_VARIABLES; do
619 qmakevarname="${varname}"
620 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
621 if [ "${varname}" = "LDFLAGS" ]; then
622 qmakevarname="LFLAGS"
623 elif [ "${varname}" = "LD" ]; then
627 'if [ -n "\$'${varname}'" ]; then
628 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
632 # Use CC/CXX to run config.tests
633 mkdir -p "$outpath/config.tests"
634 rm -f "$outpath/config.tests/.qmake.cache"
635 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
637 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
639 # QTDIR may be set and point to an old or system-wide Qt installation
642 # the minimum version of libdbus-1 that we require:
643 MIN_DBUS_1_VERSION=0.93
645 # initalize internal variables
646 CFG_CONFIGURE_EXIT_ON_ERROR=yes
648 CFG_EXCEPTIONS=unspecified
649 CFG_GUI=auto # (yes|no|auto)
675 CFG_OPENVG_LC_INCLUDES=no
676 CFG_OPENVG_SHIVA=auto
677 CFG_OPENVG_ON_OPENGL=auto
683 QT_DEFAULT_BUILD_PARTS="libs examples"
687 CFG_AUDIO_BACKEND=auto
689 CFG_DECLARATIVE_DEBUG=yes
690 CFG_JAVASCRIPTCORE_JIT=auto
692 # Target architecture
694 # Host architecture, same as CFG_ARCH when not cross-compiling
696 # Set when the -arch or -host-arch arguments are used
697 OPT_OBSOLETE_HOST_ARG=no
708 CFG_OBSOLETE_WAYLAND=no
721 CFG_SEPARATE_DEBUG_INFO=no
722 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
723 CFG_REDUCE_EXPORTS=auto
733 CFG_REDUCE_RELOCATIONS=auto
734 CFG_ACCESSIBILITY=auto
739 CFG_CLOCK_GETTIME=auto
740 CFG_CLOCK_MONOTONIC=auto
748 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
752 CFG_PREFIX_INSTALL=yes
761 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
762 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
766 OPT_CONFIRM_LICENSE=no
779 QPA_PLATFORM_GUARD=yes
781 # initalize variables used for installation
790 QT_INSTALL_TRANSLATIONS=
799 #flags for SQL drivers
807 QT_LFLAGS_ODBC="-lodbc"
810 # flags for libdbus-1
814 # flags for Glib (X11 only)
818 # flags for GStreamer (X11 only)
822 #-------------------------------------------------------------------------------
823 # check SQL drivers available in this package
824 #-------------------------------------------------------------------------------
826 # opensource version removes some drivers, so force them to be off
832 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
833 for a in "$relpath/src/plugins/sqldrivers/"*; do
835 base_a=`basename "$a"`
836 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
837 eval "CFG_SQL_${base_a}=auto"
842 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
843 if [ -d "$relpath/src/plugins/imageformats" ]; then
844 for a in "$relpath/src/plugins/imageformats/"*; do
846 base_a=`basename "$a"`
847 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
852 #-------------------------------------------------------------------------------
853 # parse command line arguments
854 #-------------------------------------------------------------------------------
856 # parse the arguments, setting things to "yes" or "no"
857 while [ "$#" -gt 0 ]; do
861 #Autoconf style options
863 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
867 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
871 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
872 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
875 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
879 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
883 -no-*-*|-plugin-*-*|-qt-*-*)
884 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
885 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
889 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
892 #Qt style yes options
893 -profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-eglfs|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-exceptions|-harfbuzz|-prefix-install|-silent|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-declarative-debug|-javascript-jit|-rpath|-force-pkg-config|-icu|-force-asserts|-testcocoon)
894 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
897 #Qt style options that pass an argument
900 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
904 -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir)
905 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
909 #Qt style complex options in one command
910 -enable-*|-disable-*)
911 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
912 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
914 #Qt Builtin/System style options
915 -no-*|-system-*|-qt-*)
916 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
917 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
919 #Options that cannot be generalized
926 # this option may or may not be followed by an argument
927 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
936 # this option may or may not be followed by an argument
937 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
945 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
946 # this option may or may not be followed by an argument
947 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
966 if [ "$1" = "-D" ]; then
970 VAL=`echo $1 | sed 's,-D,,'`
975 # this option may or may not be followed by an argument
976 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
985 if [ "$1" = "-I" ]; then
989 VAL=`echo $1 | sed 's,-I,,'`
994 if [ "$1" = "-L" ]; then
998 VAL=`echo $1 | sed 's,-L,,'`
1003 if [ "$1" = "-R" ]; then
1007 VAL=`echo $1 | sed 's,-R,,'`
1012 VAL=`echo $1 | sed 's,-l,,'`
1016 if [ "$1" = "-F" ]; then
1020 VAL=`echo $1 | sed 's,-F,,'`
1025 if [ "$1" = "-fw" ]; then
1029 VAL=`echo $1 | sed 's,-fw,,'`
1037 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1044 if [ "$UNKNOWN_ARG" = "yes" ]; then
1045 echo "$1: unknown argument"
1056 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1057 CFG_ACCESSIBILITY="$VAL"
1066 CFG_USE_GNUMAKE="$VAL"
1069 CFG_MYSQL_CONFIG="$VAL"
1072 QT_INSTALL_PREFIX="$VAL"
1075 QT_HOST_PREFIX="$VAL"
1084 QT_FORCE_PKGCONFIG=yes
1087 QT_INSTALL_DOCS="$VAL"
1090 QT_INSTALL_HEADERS="$VAL"
1093 QT_INSTALL_PLUGINS="$VAL"
1096 QT_INSTALL_IMPORTS="$VAL"
1099 QT_INSTALL_DATA="$VAL"
1102 QT_INSTALL_LIBS="$VAL"
1111 QT_INSTALL_TRANSLATIONS="$VAL"
1113 sysconfdir|settingsdir)
1114 QT_INSTALL_SETTINGS="$VAL"
1117 QT_INSTALL_EXAMPLES="$VAL"
1120 QT_INSTALL_TESTS="$VAL"
1129 QT_INSTALL_BINS="$VAL"
1135 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1142 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1143 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1144 [ "$VAL" = "es2" ]; then
1151 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1158 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1161 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1164 if [ "$BUILD_ON_MAC" = "yes" ]; then
1171 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1172 CFG_MAC_DWARF2="$VAL"
1178 OPT_OBSOLETE_HOST_ARG=yes
1181 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1182 CFG_MAC_HARFBUZZ="$VAL"
1189 if [ "$BUILD_ON_MAC" = "yes" ]; then
1190 CFG_FRAMEWORK="$VAL"
1196 if [ "$VAL" = "yes" ]; then
1198 QMakeVar add QMAKE_CFLAGS -pg
1199 QMakeVar add QMAKE_CXXFLAGS -pg
1200 QMakeVar add QMAKE_LFLAGS -pg
1201 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1207 if [ "$VAL" = "yes" ]; then
1208 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1211 exceptions|g++-exceptions)
1212 if [ "$VAL" = "no" ]; then
1214 elif [ "$VAL" = "yes" ]; then
1222 # keep compatibility with old platform names
1228 PLATFORM=hpux-acc-o64
1231 PLATFORM=hpux-acc-64
1234 PLATFORM=hpux-acc-64
1246 PLATFORM=reliant-cds-64
1249 PLATFORM=solaris-cc-64
1252 PLATFORM=unixware-cc
1255 PLATFORM=unixware-g++
1258 PLATFORM=unixware-cc
1261 PLATFORM=unixware-g++
1267 i386) NATIVE_64_ARCH="x86_64" ;;
1268 powerpc) NATIVE_64_ARCH="ppc64" ;;
1269 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1271 if [ ! -z "$NATIVE_64_ARCH" ]; then
1272 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1279 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1282 XPLATFORM="devices/$VAL"
1285 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1286 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1287 DeviceVar set $DEV_VAR $DEV_VAL
1290 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1291 CFG_DEBUG_RELEASE="$VAL"
1297 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1298 CFG_RELEASE_QMAKE="$VAL"
1304 if [ "$VAL" = "yes" ]; then
1306 elif [ "$VAL" = "no" ]; then
1313 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1314 CFG_PREFIX_INSTALL="$VAL"
1322 developer-build|commercial|opensource)
1323 # These switches have been dealt with already
1326 if [ "$VAL" = "yes" ]; then
1328 elif [ "$VAL" = "no" ]; then
1335 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1336 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1342 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1343 if [ "$VAL" = "no" ]; then
1344 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1345 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1346 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1352 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1359 if [ "$VAL" = "no" ]; then
1366 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1374 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1381 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1388 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1395 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1402 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1409 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1416 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1423 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1430 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1431 CFG_PRECOMPILE="$VAL"
1436 separate-debug-info)
1437 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1438 CFG_SEPARATE_DEBUG_INFO="$VAL"
1439 elif [ "$VAL" = "nocopy" ] ; then
1440 CFG_SEPARATE_DEBUG_INFO="yes"
1441 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1447 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1448 CFG_REDUCE_EXPORTS="$VAL"
1454 if [ "$VAL" = "no" ]; then
1461 if [ "$VAL" = "no" ]; then
1468 if [ "$VAL" = "no" ]; then
1475 if [ "$VAL" = "no" ]; then
1482 if [ "$VAL" = "no" ]; then
1489 if [ "$VAL" = "no" ]; then
1496 if [ "$VAL" = "no" ]; then
1503 if [ "$VAL" = "no" ]; then
1510 if [ "$VAL" = "no" ]; then
1520 if [ "$VAL" = "no" ]; then
1527 if [ "$VAL" = "no" ]; then
1534 if [ "$VAL" = "no" ]; then
1535 CFG_MIPS_DSPR2="$VAL"
1541 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1542 CFG_REDUCE_RELOCATIONS="$VAL"
1548 [ "$VAL" = "qt" ] && VAL=yes
1549 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1554 # No longer supported:
1555 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1558 if [ "$VAL" = "system" ]; then
1565 [ "$VAL" = "yes" ] && VAL=qt
1566 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1573 [ "$VAL" = "yes" ] && VAL=qt
1574 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1581 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1588 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1595 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1602 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1609 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1616 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1617 CFG_FONTCONFIG="$VAL"
1623 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1630 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1637 CFG_OBSOLETE_WAYLAND=yes
1640 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1647 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1654 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1661 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1668 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1675 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1682 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1683 CFG_GSTREAMER="$VAL"
1689 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1690 CFG_QGTKSTYLE="$VAL"
1696 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1699 if [ "$VAL" = "no" ]; then
1707 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1709 elif [ "$VAL" = "no" ]; then
1716 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1717 QPA_PLATFORM_GUARD="$VAL"
1723 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1725 elif [ "$VAL" = "runtime" ]; then
1732 if [ "$VAL" = "yes" ]; then
1739 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1746 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1747 CFG_LARGEFILE="$VAL"
1753 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1760 if [ "$VAL" = "yes" ]; then
1761 CFG_OPENSSL="linked"
1767 if [ "$VAL" = "yes" ]; then
1768 CFG_DECLARATIVE_DEBUG="yes"
1770 if [ "$VAL" = "no" ]; then
1771 CFG_DECLARATIVE_DEBUG="no"
1778 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1779 CFG_JAVASCRIPTCORE_JIT="$VAL"
1785 if [ "$VAL" = "yes" ]; then
1786 OPT_CONFIRM_LICENSE="$VAL"
1792 if [ "$VAL" = "yes" ]; then
1798 sql-*|imageformat-*)
1799 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1800 # if autoconf style options were used, $VAL can be "yes" or "no"
1801 [ "$VAL" = "yes" ] && VAL=qt
1802 # now $VAL should be "no", "qt", or "plugin"... double-check
1803 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1806 # now $VAL is "no", "qt", or "plugin"
1808 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1809 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1811 # Grab the available values
1814 avail="$CFG_SQL_AVAILABLE"
1817 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1818 if [ "$OPT" != "plugin" ]; then
1819 # png is always built in
1825 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1829 # Check that that user's value is available.
1832 if [ "$VAL" = "$d" ]; then
1837 [ "$found" = yes ] || ERROR=yes
1839 if [ "$VAR" = "sql" ]; then
1840 # set the CFG_SQL_driver
1841 eval "CFG_SQL_$VAL=\$OPT"
1843 elif [ "$VAR" = "imageformat" ]; then
1844 [ "$OPT" = "qt" ] && OPT=yes
1845 VAL="`echo $VAL |tr a-z A-Z`"
1846 eval "CFG_$VAL=$OPT"
1850 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1851 if [ "$OPT" = "plugin" ]; then
1854 QMakeVar add "${VAR}s" "${VAL}"
1855 elif [ "$OPT" = "no" ]; then
1856 PLUG_VAR="${VAR}-plugin"
1858 QMakeVar del "${IN_VAR}s" "$VAL"
1859 QMakeVar del "${PLUG_VAR}s" "$VAL"
1861 if [ "$ERROR" = "yes" ]; then
1862 echo "$CURRENT_OPT: unknown argument"
1867 if [ "$VAL" = "yes" ]; then
1868 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1869 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1873 elif [ "$VAL" = "no" ]; then
1874 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1875 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1884 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1891 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1898 D_FLAGS="$D_FLAGS \"$VAL\""
1901 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1904 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1907 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1910 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1913 if [ "$BUILD_ON_MAC" = "yes" ]; then
1914 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1915 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1921 if [ "$BUILD_ON_MAC" = "yes" ]; then
1922 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1928 W_FLAGS="$W_FLAGS \"${VAL}\""
1934 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1935 CFG_PHONON_BACKEND="$VAL"
1947 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1948 CFG_AUDIO_BACKEND="$VAL"
1954 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1961 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1962 CFG_FORCE_ASSERTS="$VAL"
1968 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
1978 if [ "$UNKNOWN_OPT" = "yes" ]; then
1979 echo "${CURRENT_OPT}: invalid command-line switch"
1985 # update QT_CONFIG to show our current predefined configuration
1986 case "$CFG_QCONFIG" in
1987 minimal|small|medium|large|full)
1988 # these are a sequence of increasing functionality
1989 for c in minimal small medium large full; do
1990 QT_CONFIG="$QT_CONFIG $c-config"
1991 [ "$CFG_QCONFIG" = $c ] && break
1995 # not known to be sufficient for anything
1996 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
1997 echo >&2 "Error: configuration file not found:"
1998 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2000 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2005 #-------------------------------------------------------------------------------
2006 # build tree initialization
2007 #-------------------------------------------------------------------------------
2009 # where to find which..
2010 unixtests="$relpath/config.tests/unix"
2011 mactests="$relpath/config.tests/mac"
2012 WHICH="$unixtests/which.test"
2014 PERL=`$WHICH perl 2>/dev/null`
2016 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2018 for e in gawk nawk awk; do
2019 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2026 PERL="/usr/bin/perl"
2027 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2031 ### skip this if the user just needs help...
2032 if [ "$OPT_HELP" != "yes" ]; then
2034 # is this a shadow build?
2035 if [ "$OPT_SHADOW" = "maybe" ]; then
2037 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2038 if [ -h "$outpath" ]; then
2039 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2045 if [ "$OPT_SHADOW" = "yes" ]; then
2046 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2047 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2048 echo >&2 "Cannot proceed."
2051 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2054 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2056 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2057 echo "Qt can be built in release mode with separate debug information, so"
2058 echo "-debug-and-release is not necessary anymore"
2062 if [ "$CFG_SILENT" = "yes" ]; then
2063 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2066 # if the source tree is different from the build tree,
2067 # symlink or copy part of the sources
2068 if [ "$OPT_SHADOW" = "yes" ]; then
2069 echo "Preparing build tree..."
2071 if [ -z "$PERL" ]; then
2073 echo "You need perl in your PATH to make a shadow build."
2074 echo "Cannot proceed."
2078 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2080 # make a syncqt script that can be used in the shadow
2081 rm -f "$outpath/bin/syncqt"
2082 if [ -x "$relpath/bin/syncqt" ]; then
2083 mkdir -p "$outpath/bin"
2084 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2085 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2086 chmod 755 "$outpath/bin/syncqt"
2089 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2090 rm -f "$outpath/bin/$i"
2091 if [ -x "$relpath/bin/$i" ]; then
2092 mkdir -p "$outpath/bin"
2093 echo "#!/bin/sh" >"$outpath/bin/$i"
2094 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2095 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2096 chmod 755 "$outpath/bin/$i"
2100 # save a pre-existing mkspecs/modules dir
2101 test -d "$outpath/mkspecs/modules" && \
2102 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2104 # symlink the mkspecs directory
2105 mkdir -p "$outpath/mkspecs"
2106 rm -rf "$outpath"/mkspecs/*
2107 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2108 rm -f "$outpath/mkspecs/default"
2112 rm -rf "$outpath/mkspecs/$1"
2113 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2114 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2117 # Special case for mkspecs/features directory.
2118 # To be able to place .prf files into a shadow build directory,
2119 # we're creating links for files only. The directory structure is reproduced.
2120 ShadowMkspecs features
2122 # The modules dir is special, too.
2123 if test -d "$outpath/mkspecs-modules"; then
2124 rm -rf "$outpath/mkspecs/modules"
2125 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2127 ShadowMkspecs modules
2130 # symlink the doc directory
2131 rm -rf "$outpath/doc"
2132 ln -s "$relpath/doc" "$outpath/doc"
2135 # symlink fonts to be able to run application from build directory
2136 if [ ! -d "${outpath}/lib/fonts" ]; then
2137 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2138 mkdir -p "${outpath}/lib"
2139 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2143 if [ "$OPT_FAST" = "auto" ]; then
2144 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2151 # find a make command
2152 if [ -z "$MAKE" ]; then
2154 for mk in gmake make; do
2155 if "$WHICH" $mk >/dev/null 2>&1; then
2160 if [ -z "$MAKE" ]; then
2161 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2162 echo >&2 "Cannot proceed."
2165 # export MAKE, we need it later in the config.tests
2171 #-------------------------------------------------------------------------------
2172 # auto-detect all that hasn't been specified in the arguments
2173 #-------------------------------------------------------------------------------
2175 if [ -z "$PLATFORM" ]; then
2177 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2179 OSX_VERSION=`uname -r | cut -d. -f1`
2180 if [ "$OSX_VERSION" -ge 11 ]; then
2181 # We're on Lion or above. Check if we have a supported Clang version
2182 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2185 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2197 #PLATFORM=aix-g++-64
2199 #PLATFORM=aix-xlc-64
2201 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2211 # PLATFORM=dynix-g++
2217 PLATFORM=freebsd-g++
2219 - Also available for FreeBSD: freebsd-icc
2223 PLATFORM=openbsd-g++
2234 #PLATFORM=irix-cc-64
2236 - Also available for IRIX: irix-g++ irix-cc-64
2240 case "$UNAME_MACHINE" in
2242 #PLATFORM=hpuxi-acc-32
2243 PLATFORM=hpuxi-acc-64
2245 - Also available for HP-UXi: hpuxi-acc-32
2251 #PLATFORM=hpux-acc-64
2253 #PLATFORM=hpux-acc-o64
2255 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2264 - Also available for Tru64: tru64-g++
2268 case "$UNAME_MACHINE" in
2270 PLATFORM=linux-g++-64
2277 - Also available for Linux: linux-kcc linux-icc linux-cxx
2281 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2282 PLATFORM="solaris-g++"
2284 #PLATFORM=solaris-g++
2286 #PLATFORM=solaris-cc64
2289 - Also available for Solaris: solaris-g++ solaris-cc-64
2292 ReliantUNIX-*:*|SINIX-*:*)
2293 PLATFORM=reliant-cds
2294 #PLATFORM=reliant-cds-64
2296 - Also available for Reliant UNIX: reliant-cds-64
2306 #PLATFORM=unixware-g++
2307 PLATFORM=unixware-cc
2309 - Also available for OpenUNIX: unixware-g++
2313 #PLATFORM=unixware-g++
2314 PLATFORM=unixware-cc
2316 - Also available for UnixWare: unixware-g++
2323 - Also available for SCO OpenServer: sco-g++
2327 PLATFORM=unixware-g++
2330 PLATFORM=unsupported/qnx-g++
2333 if [ "$OPT_HELP" != "yes" ]; then
2335 for p in $PLATFORMS; do
2336 echo " $relconf $* -platform $p"
2339 echo " The build script does not currently recognize all" >&2
2340 echo " platforms supported by Qt." >&2
2341 echo " Rerun this script with a -platform option listed to" >&2
2342 echo " set the system/compiler combination you use." >&2
2349 PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
2351 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2353 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2354 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2356 if [ -d "$PLATFORM" ]; then
2357 QMAKESPEC="$PLATFORM"
2359 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2361 if [ -d "$XPLATFORM" ]; then
2362 XQMAKESPEC="$XPLATFORM"
2364 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2366 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2367 QT_CROSS_COMPILE=yes
2368 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2369 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2372 if [ "$BUILD_ON_MAC" = "yes" ]; then
2373 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2375 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2376 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2377 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2378 echo " built with 'macx-g++'" >&2
2384 # check specified platforms are supported
2385 if [ '!' -d "$QMAKESPEC" ]; then
2387 echo " The specified system/compiler is not supported:"
2391 echo " Please see the README file for a complete list."
2395 if [ '!' -d "$XQMAKESPEC" ]; then
2397 echo " The specified system/compiler is not supported:"
2401 echo " Please see the README file for a complete list."
2405 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2407 echo " The specified system/compiler port is not complete:"
2409 echo " $XQMAKESPEC/qplatformdefs.h"
2411 echo " Please contact qt-info@nokia.com."
2416 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2417 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2418 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2419 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2420 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2424 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2425 case `basename "$XPLATFORM"` in
2428 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2430 echo "Please contact qt-info@nokia.com to upgrade your license to"
2431 echo "include this platform, or install the Qt Open Source Edition"
2432 echo "if you intend to develop free software."
2438 #-------------------------------------------------------------------------------
2439 # write out device config before we run the test.
2440 #-------------------------------------------------------------------------------
2441 if cmp -s "$DEVICE_VARS_FILE" "$outpath/mkspecs/qdevice.pri"; then
2442 rm -f "$DEVICE_VARS_FILE"
2444 mv -f $DEVICE_VARS_FILE "$outpath/mkspecs/qdevice.pri"
2447 #-------------------------------------------------------------------------------
2448 # tests that don't need qmake (must be run before displaying help)
2449 #-------------------------------------------------------------------------------
2451 # detect build style
2452 if [ "$CFG_DEBUG" = "auto" ]; then
2453 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2454 CFG_DEBUG_RELEASE=yes
2456 elif [ "$CFG_DEV" = "yes" ]; then
2457 CFG_DEBUG_RELEASE=no
2460 CFG_DEBUG_RELEASE=no
2464 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2465 QT_CONFIG="$QT_CONFIG build_all"
2468 if [ -z "$PKG_CONFIG" ]; then
2469 # See if PKG_CONFIG is set in the mkspec:
2470 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
2472 if [ -z "$PKG_CONFIG" ]; then
2473 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
2476 # Work out if we can use pkg-config
2477 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
2478 if [ "$QT_FORCE_PKGCONFIG" = "yes" ]; then
2480 echo >&2 "You have asked to use pkg-config and are cross-compiling."
2481 echo >&2 "Please make sure you have a correctly set-up pkg-config"
2482 echo >&2 "environment!"
2484 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
2486 echo >&2 "Warning: PKG_CONFIG_LIBDIR has not been set. This could mean"
2487 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
2488 echo >&2 "This is probably not what you want."
2490 elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
2492 echo >&2 "Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not"
2493 echo >&2 "been set. This means your toolchain's .pc files must contain"
2494 echo >&2 "the paths to the toolchain's libraries & headers. If configure"
2495 echo >&2 "tests are failing, please check these files."
2500 echo >&2 "You have not explicitly asked to use pkg-config and are cross-compiling."
2501 echo >&2 "pkg-config will not be used to automatically query cflag/lib parameters for"
2502 echo >&2 "dependencies"
2508 if [ ! -n "$PKG_CONFIG" ]; then
2509 QT_CONFIG="$QT_CONFIG no-pkg-config"
2512 # pass on $CFG_SDK to the configure tests.
2513 if [ '!' -z "$CFG_SDK" ]; then
2514 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2517 # find the default framework value
2518 if [ "$BUILD_ON_MAC" = "yes" ]; then
2519 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2520 CFG_FRAMEWORK="$CFG_SHARED"
2521 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2523 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2531 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2533 TEST_COMPILER=$QMAKE_CONF_COMPILER
2534 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2535 if [ -z "$TEST_COMPILER" ]; then
2536 echo "ERROR: Cannot set the compiler for the configuration tests"
2542 if [ -n "$CFG_SYSROOT" ]; then
2543 if compilerSupportsFlag --sysroot="$CFG_SYSROOT"; then
2544 [ "$OPT_VERBOSE" = "yes" ] && echo "Setting sysroot to: $CFG_SYSROOT"
2545 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2547 echo >&2 "The compiler doesn't support the --sysroot flag, I can't set the sysroot"
2551 export SYSROOT_FLAG # used by config.tests/unix/compile.test
2553 # auto-detect precompiled header support
2554 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2555 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2562 #auto-detect DWARF2 on the mac
2563 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "auto" ]; then
2564 if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2571 # don't autodetect support for separate debug info on objcopy when
2572 # cross-compiling as lots of toolchains seems to have problems with this
2573 if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
2574 CFG_SEPARATE_DEBUG_INFO="no"
2577 # auto-detect support for separate debug info in objcopy
2578 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2579 TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2580 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2581 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2582 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2583 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2584 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2585 CFG_SEPARATE_DEBUG_INFO=no
2589 # binutils on HP-UX is buggy; default to no.
2590 CFG_SEPARATE_DEBUG_INFO=no
2593 CFG_SEPARATE_DEBUG_INFO=yes
2599 # auto-detect -fvisibility support
2600 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2601 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2602 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2603 echo "-reduce-exports was requested but this compiler does not support it"
2604 echo "Re-run configure with -v for more information"
2607 CFG_REDUCE_EXPORTS=no
2609 CFG_REDUCE_EXPORTS=yes
2613 # detect the availability of the -Bsymbolic-functions linker optimization
2614 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2615 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2616 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2617 echo "-reduce-relocations was requested but this compiler does not support it"
2618 echo "Re-run configure with -v for more information"
2621 CFG_REDUCE_RELOCATIONS=no
2623 CFG_REDUCE_RELOCATIONS=yes
2627 # auto-detect GNU make support
2628 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2632 # find the default framework value
2633 if [ "$BUILD_ON_MAC" = "yes" ]; then
2634 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2635 CFG_FRAMEWORK="$CFG_SHARED"
2636 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2638 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2646 #setup the build parts
2647 if [ -z "$CFG_BUILD_PARTS" ]; then
2648 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2650 # build tests by default, if a developer build
2651 if [ "$CFG_DEV" = "yes" ]; then
2652 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2655 # don't build tools by default when cross-compiling
2656 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2657 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2660 for nobuild in $CFG_NOBUILD_PARTS; do
2661 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2663 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2665 # echo "WARNING: libs is a required part of the build."
2667 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2670 #-------------------------------------------------------------------------------
2671 # post process QT_INSTALL_* variables
2672 #-------------------------------------------------------------------------------
2674 if [ -z "$QT_INSTALL_PREFIX" ]; then
2675 if [ "$CFG_DEV" = "yes" ]; then
2676 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2678 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2681 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2683 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2684 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2685 if [ "$BUILD_ON_MAC" = "yes" ]; then
2686 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2689 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2692 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2694 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2695 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2696 if [ "$BUILD_ON_MAC" = "yes" ]; then
2697 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2702 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2705 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2707 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2708 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2709 if [ "$BUILD_ON_MAC" = "yes" ]; then
2710 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2711 QT_INSTALL_LIBS="/Libraries/Frameworks"
2715 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2717 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2719 if [ -z "$QT_INSTALL_BINS" ]; then #default
2720 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2721 if [ "$BUILD_ON_MAC" = "yes" ]; then
2722 QT_INSTALL_BINS="/Developer/Applications/Qt"
2725 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2727 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2729 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2730 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2731 if [ "$BUILD_ON_MAC" = "yes" ]; then
2732 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2735 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2737 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2739 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2740 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2741 if [ "$BUILD_ON_MAC" = "yes" ]; then
2742 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2745 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2747 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2749 if [ -z "$QT_INSTALL_DATA" ]; then #default
2750 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2752 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2754 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2755 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2757 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2759 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2760 if [ "$BUILD_ON_MAC" = "yes" ]; then
2761 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2763 QT_INSTALL_SETTINGS=/etc/xdg
2766 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2768 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2769 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2770 if [ "$BUILD_ON_MAC" = "yes" ]; then
2771 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2774 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2776 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2779 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2780 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2781 if [ "$BUILD_ON_MAC" = "yes" ]; then
2782 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2785 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2787 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2789 #------- host paths --------
2791 if [ -z "$QT_HOST_PREFIX" ]; then
2792 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2795 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2799 if [ -z "$QT_HOST_BINS" ]; then #default
2801 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2802 if [ "$BUILD_ON_MAC" = "yes" ]; then
2803 QT_HOST_BINS="/Developer/Applications/Qt"
2806 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2808 QT_HOST_BINS="$QT_INSTALL_BINS"
2811 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2813 if [ -z "$QT_HOST_DATA" ]; then #default
2815 QT_HOST_DATA="$QT_HOST_PREFIX"
2817 QT_HOST_DATA="$QT_INSTALL_DATA"
2820 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2823 #-------------------------------------------------------------------------------
2824 # help - interactive parts of the script _after_ this section please
2825 #-------------------------------------------------------------------------------
2827 # next, emit a usage message if something failed.
2828 if [ "$OPT_HELP" = "yes" ]; then
2829 [ "x$ERROR" = "xyes" ] && echo
2830 if [ "$CFG_NIS" = "no" ]; then
2837 if [ "$CFG_CUPS" = "no" ]; then
2844 if [ "$CFG_ICONV" = "no" ]; then
2851 if [ "$CFG_LARGEFILE" = "no" ]; then
2858 if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
2865 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2873 if [ "$CFG_XCB" = "no" ]; then
2881 if [ "$CFG_EGLFS" = "no" ]; then
2889 if [ "$CFG_XINPUT2" = "no" ]; then
2897 if [ "$CFG_DBUS" = "no" ]; then
2905 if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
2906 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
2913 elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
2921 if [ "$CFG_GLIB" = "no" ]; then
2930 Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
2931 [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
2932 [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>] [-testsdir <dir>]
2933 [-release] [-debug] [-debug-and-release]
2934 [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
2935 [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
2936 [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
2937 [-plugin-sql-<driver>] [-system-sqlite]
2938 [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
2939 [-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng] [-qt-libpng] [-system-libpng]
2940 [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
2941 [-nomake <part>] [-R <string>] [-l <string>] [-no-rpath] [-rpath] [-continue]
2942 [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
2943 [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
2944 [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
2945 [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
2946 [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info]
2947 [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
2948 [-no-audio-backend] [-audio-backend]
2949 [-no-javascript-jit] [-javascript-jit] [-no-declarative-debug] [-declarative-debug]
2950 [-no-optimized-qmake] [-optimized-qmake]
2951 [-no-openssl] [-openssl] [-openssl-linked]
2952 [-no-gtkstyle] [-gtkstyle]
2953 [-qt-pcre] [-system-pcre]
2954 [-device <name>] [-device-option <key=value>]
2955 [additional platform specific options (see below)]
2958 Installation options:
2960 These are optional, but you may specify install directories.
2962 -prefix <dir> ...... This will install everything relative to <dir>
2963 (default $QT_INSTALL_PREFIX)
2965 -hostprefix [dir] .. Tools and libraries needed when developing
2966 applications are installed in [dir]. If [dir] is
2967 not given, the current build directory will be used.
2970 * -prefix-install .... Force a sandboxed "local" installation of
2971 Qt. This will install into
2972 $QT_INSTALL_PREFIX, if this option is
2973 disabled then some platforms will attempt a
2974 "system" install by placing default values to
2975 be placed in a system location other than
2978 You may use these to separate different parts of the install:
2980 -bindir <dir> ......... Executables will be installed to <dir>
2981 (default PREFIX/bin)
2982 -libdir <dir> ......... Libraries will be installed to <dir>
2983 (default PREFIX/lib)
2984 -docdir <dir> ......... Documentation will be installed to <dir>
2985 (default PREFIX/doc)
2986 -headerdir <dir> ...... Headers will be installed to <dir>
2987 (default PREFIX/include)
2988 -plugindir <dir> ...... Plugins will be installed to <dir>
2989 (default PREFIX/plugins)
2990 -importdir <dir> ...... Imports for QML will be installed to <dir>
2991 (default PREFIX/imports)
2992 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2994 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2995 (default PREFIX/translations)
2996 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2997 (default PREFIX/etc/settings)
2998 -examplesdir <dir> .... Examples will be installed to <dir>
2999 (default PREFIX/examples)
3000 -testsdir <dir> ....... Tests will be installed to <dir>
3001 (default PREFIX/tests)
3003 -hostbindir <dir> .. Host executables will be installed to <dir>
3004 (default HOSTPREFIX/bin)
3005 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3006 (default HOSTPREFIX)
3010 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3011 that needs to be evaluated. If the evaluation succeeds, the feature is
3012 included. Here is a short explanation of each option:
3014 * -release ........... Compile and link Qt with debugging turned off.
3015 -debug ............. Compile and link Qt with debugging turned on.
3016 -debug-and-release . Compile and link two versions of Qt, with and without
3017 debugging turned on (Mac only).
3019 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3021 -opensource ........ Compile and link the Open-Source Edition of Qt.
3022 -commercial ........ Compile and link the Commercial Edition of Qt.
3025 * -shared ............ Create and use shared Qt libraries.
3026 -static ............ Create and use static Qt libraries.
3028 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3030 -fast .............. Configure Qt quickly by generating Makefiles only for
3031 library and subdirectory targets. All other Makefiles
3032 are created as wrappers, which will in turn run qmake.
3034 -no-largefile ...... Disables large file support.
3035 + -largefile ......... Enables Qt to access files larger than 4 GB.
3037 -no-exceptions ..... Disable exceptions on compilers that support it.
3038 * -exceptions ........ Enable exceptions on compilers that support it.
3040 -no-accessibility .. Do not compile Accessibility support.
3041 * -accessibility ..... Compile Accessibility support.
3043 $SHN -no-stl ............ Do not compile STL support.
3044 $SHY -stl ............... Compile STL support.
3046 -no-sql-<driver> ... Disable SQL <driver> entirely.
3047 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3049 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3052 Possible values for <driver>:
3053 [ $CFG_SQL_AVAILABLE ]
3055 -system-sqlite ..... Use sqlite from the operating system.
3057 -no-phonon-backend.. Do not build the platform phonon plugin.
3058 + -phonon-backend..... Build the platform phonon plugin.
3060 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3061 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3063 -no-declarative-debug ..... Do not build the declarative debugging support.
3064 + -declarative-debug ....... Build the declarative debugging support.
3066 -platform target ... The operating system and compiler you are building
3069 See the README file for a list of supported
3070 operating systems and compilers.
3072 -no-mmx ............ Do not compile with use of MMX instructions.
3073 -no-3dnow .......... Do not compile with use of 3DNOW instructions.
3074 -no-sse ............ Do not compile with use of SSE instructions.
3075 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3076 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3077 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3078 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3079 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3080 -no-avx ............ Do not compile with use of AVX instructions.
3081 -no-neon ........... Do not compile with use of NEON instructions.
3082 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3083 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3085 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3086 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3088 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3090 -D <string> ........ Add an explicit define to the preprocessor.
3091 -I <string> ........ Add an explicit include path.
3092 -L <string> ........ Add an explicit library path.
3094 -help, -h .......... Display this information.
3096 Third Party Libraries:
3098 -qt-zlib ........... Use the zlib bundled with Qt.
3099 + -system-zlib ....... Use zlib from the operating system.
3100 See http://www.gzip.org/zlib
3102 -no-gif ............ Do not compile GIF reading support.
3104 -no-libpng ......... Do not compile PNG support.
3105 -qt-libpng ......... Use the libpng bundled with Qt.
3106 + -system-libpng ..... Use libpng from the operating system.
3107 See http://www.libpng.org/pub/png
3109 -no-libjpeg ........ Do not compile JPEG support.
3110 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3111 + -system-libjpeg .... Use libjpeg from the operating system.
3112 See http://www.ijg.org
3114 -no-openssl ........ Do not compile support for OpenSSL.
3115 + -openssl ........... Enable run-time OpenSSL support.
3116 -openssl-linked .... Enabled linked OpenSSL support.
3118 -qt-pcre ........... Use the PCRE library bundled with Qt.
3119 + -system-pcre ....... Use the PCRE library from the operating system.
3123 -make <part> ....... Add part to the list of parts to be built at make time.
3124 ($QT_DEFAULT_BUILD_PARTS)
3125 -nomake <part> ..... Exclude part from the list of parts to be built.
3127 -R <string> ........ Add an explicit runtime library path to the Qt
3129 -l <string> ........ Add an explicit library.
3131 -no-rpath .......... Do not use the library install path as a runtime
3133 + -rpath ............. Link Qt libraries and executables using the library
3134 install path as a runtime library path. Equivalent
3135 to -R install_libpath
3137 -continue .......... Continue as far as possible if an error occurs.
3139 -verbose, -v ....... Print verbose information about each step of the
3142 -silent ............ Reduce the build output so that warnings and errors
3143 can be seen more easily.
3145 * -no-optimized-qmake ... Do not build qmake optimized.
3146 -optimized-qmake ...... Build qmake optimized.
3148 -no-gui ............ Don't build the Qt GUI library
3150 $NSN -no-nis ............ Do not compile NIS support.
3151 $NSY -nis ............... Compile NIS support.
3153 $CUN -no-cups ........... Do not compile CUPS support.
3154 $CUY -cups .............. Compile CUPS support.
3155 Requires cups/cups.h and libcups.so.2.
3157 $CIN -no-iconv .......... Do not compile support for iconv(3).
3158 $CIY -iconv ............. Compile support for iconv(3).
3160 $PHN -no-pch ............ Do not use precompiled header support.
3161 $PHY -pch ............... Use precompiled header support.
3163 $DBN -no-dbus ........... Do not compile the QtDBus module.
3164 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3165 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3167 -reduce-relocations ..... Reduce relocations in the libraries through extra
3168 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3169 experimental; needs GNU ld >= 2.18).
3171 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3173 -device <name> ............... Cross-compile for device <name> (experimental)
3174 -device-option <key=value> ... Add device specific options for the device mkspec
3177 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3178 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3180 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3181 $XCBY -xcb ............... Compile Xcb support.
3183 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3184 $EGLFSY -eglfs ............. Compile EGLFS support.
3186 -xplatform target ... The target platform when cross-compiling.
3188 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot.
3190 -no-feature-<feature> Do not compile in <feature>.
3191 -feature-<feature> .. Compile in <feature>. The available features
3192 are described in src/corelib/global/qfeatures.txt
3194 -no-freetype ........ Do not compile in Freetype2 support.
3195 -qt-freetype ........ Use the libfreetype bundled with Qt.
3196 * -system-freetype .... Use libfreetype from the operating system.
3197 See http://www.freetype.org/
3199 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3200 default ($CFG_QCONFIG).
3202 -no-opengl .......... Do not support OpenGL.
3203 -opengl <api> ....... Enable OpenGL support
3204 With no parameter, this will attempt to auto-detect
3205 OpenGL ES 2, or regular desktop OpenGL.
3206 Use es2 for <api> to override auto-detection.
3208 $GBN -no-glib ........... Do not compile Glib support.
3209 $GBY -glib .............. Compile Glib support.
3212 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3215 $X2N -no-xinput2......... Do not compile XInput2 support.
3216 $X2Y -xinput2............ Compile XInput2 support.
3222 if [ "$BUILD_ON_MAC" = "yes" ]; then
3227 -Fstring ........... Add an explicit framework path.
3228 -fw string ......... Add an explicit framework.
3230 * -framework ......... Build Qt as a series of frameworks and
3231 link tools against those frameworks.
3232 -no-framework ...... Do not build Qt as a series of frameworks.
3234 * -dwarf2 ............ Enable dwarf2 debugging symbols.
3235 -no-dwarf2 ......... Disable dwarf2 debugging symbols.
3237 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3238 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3240 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3241 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3242 QT_ENABLE_HARFBUZZ environment variable.
3247 [ "x$ERROR" = "xyes" ] && exit 1
3252 # -----------------------------------------------------------------------------
3253 # LICENSING, INTERACTIVE PART
3254 # -----------------------------------------------------------------------------
3257 echo "This is the Qt ${EditionString} Edition."
3260 if [ "$Edition" = "OpenSource" ]; then
3262 echo "You are licensed to use this software under the terms of"
3263 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3264 if [ -f "$relpath/LICENSE.GPL3" ]; then
3265 echo "You are also licensed to use this software under the terms of"
3266 echo "the GNU General Public License (GPL) versions 3."
3272 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3273 echo "You have already accepted the terms of the $LicenseType license."
3276 if [ -f "$relpath/LICENSE.GPL3" ]; then
3277 echo "Type '3' to view the GNU General Public License version 3."
3279 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3280 echo "Type 'yes' to accept this license offer."
3281 echo "Type 'no' to decline this license offer."
3283 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3287 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3289 elif [ "$acceptance" = "no" ]; then
3290 echo "You are not licensed to use this software."
3293 elif [ "$acceptance" = "3" ]; then
3294 more "$relpath/LICENSE.GPL3"
3295 elif [ "$acceptance" = "L" ]; then
3296 more "$relpath/LICENSE.LGPL"
3299 elif [ "$Edition" = "Preview" ]; then
3300 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3303 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3304 echo "You have already accepted the terms of the $LicenseType license."
3307 echo "You are licensed to use this software under the terms of"
3308 echo "the $TheLicense"
3310 echo "Type '?' to read the Preview License."
3311 echo "Type 'yes' to accept this license offer."
3312 echo "Type 'no' to decline this license offer."
3314 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3318 if [ "$acceptance" = "yes" ]; then
3320 elif [ "$acceptance" = "no" ] ;then
3321 echo "You are not licensed to use this software."
3324 elif [ "$acceptance" = "?" ]; then
3325 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3328 elif [ "$Edition" != "OpenSource" ]; then
3329 if [ -n "$ExpiryDate" ]; then
3330 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3331 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3332 Today=`date +%Y%m%d`
3333 if [ "$Today" -gt "$ExpiryDate" ]; then
3334 case "$LicenseType" in
3335 Commercial|Academic|Educational)
3336 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3338 echo "NOTICE NOTICE NOTICE NOTICE"
3340 echo " Your support and upgrade period has expired."
3342 echo " You are no longer licensed to use this version of Qt."
3343 echo " Please contact qt-info@nokia.com to renew your support"
3344 echo " and upgrades for this license."
3346 echo "NOTICE NOTICE NOTICE NOTICE"
3351 echo "WARNING WARNING WARNING WARNING"
3353 echo " Your support and upgrade period has expired."
3355 echo " You may continue to use your last licensed release"
3356 echo " of Qt under the terms of your existing license"
3357 echo " agreement. But you are not entitled to technical"
3358 echo " support, nor are you entitled to use any more recent"
3359 echo " Qt releases."
3361 echo " Please contact qt-info@nokia.com to renew your"
3362 echo " support and upgrades for this license."
3364 echo "WARNING WARNING WARNING WARNING"
3371 echo "NOTICE NOTICE NOTICE NOTICE"
3373 echo " Your Evaluation license has expired."
3375 echo " You are no longer licensed to use this software. Please"
3376 echo " contact qt-info@nokia.com to purchase license, or install"
3377 echo " the Qt Open Source Edition if you intend to develop free"
3380 echo "NOTICE NOTICE NOTICE NOTICE"
3387 TheLicense=`head -n 1 "$outpath/LICENSE"`
3389 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3390 echo "You have already accepted the terms of the $TheLicense."
3393 echo "You are licensed to use this software under the terms of"
3394 echo "the $TheLicense."
3396 echo "Type '?' to view the $TheLicense."
3397 echo "Type 'yes' to accept this license offer."
3398 echo "Type 'no' to decline this license offer."
3400 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3404 if [ "$acceptance" = "yes" ]; then
3406 elif [ "$acceptance" = "no" ]; then
3407 echo "You are not licensed to use this software."
3410 else [ "$acceptance" = "?" ]
3411 more "$outpath/LICENSE"
3416 # this should be moved somewhere else
3419 AIX_VERSION=`uname -v`
3420 if [ "$AIX_VERSION" -lt "5" ]; then
3421 QMakeVar add QMAKE_LIBS_X11 -lbind
3428 #-------------------------------------------------------------------------------
3429 # generate qconfig.cpp
3430 #-------------------------------------------------------------------------------
3431 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3433 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3435 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3436 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3438 /* Installation date */
3439 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3441 /* Installation Info */
3442 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3443 "qt_prfxpath=$QT_INSTALL_PREFIX",
3444 "qt_docspath=$QT_INSTALL_DOCS",
3445 "qt_hdrspath=$QT_INSTALL_HEADERS",
3446 "qt_libspath=$QT_INSTALL_LIBS",
3447 "qt_binspath=$QT_INSTALL_BINS",
3448 "qt_plugpath=$QT_INSTALL_PLUGINS",
3449 "qt_impspath=$QT_INSTALL_IMPORTS",
3450 "qt_datapath=$QT_INSTALL_DATA",
3451 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3452 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3453 "qt_tstspath=$QT_INSTALL_TESTS",
3454 #ifdef QT_BUILD_QMAKE
3455 "qt_ssrtpath=$CFG_SYSROOT",
3456 "qt_hpfxpath=$QT_HOST_PREFIX",
3457 "qt_hbinpath=$QT_HOST_BINS",
3458 "qt_hdatpath=$QT_HOST_DATA",
3461 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3464 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3466 /* strlen( "qt_lcnsxxxx" ) == 12 */
3467 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3468 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3470 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3473 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3474 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3475 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3477 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3478 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3479 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3482 # -----------------------------------------------------------------------------
3483 if [ "$LicenseType" = "Evaluation" ]; then
3484 EVALKEY=qt_qevalkey=$LicenseKeyExt
3485 elif echo "$D_FLAGS" | grep QT_EVAL >/dev/null 2>&1; then
3486 EVALKEY=qt_qevalkey=
3489 if [ -n "$EVALKEY" ]; then
3490 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3491 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3492 /* Evaluation license key */
3493 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3495 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3499 # -----------------------------------------------------------------------------
3501 # -----------------------------------------------------------------------------
3504 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3506 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3507 if [ "$OPT_SHADOW" = "yes" ]; then
3508 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3509 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3510 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3514 # $1: input variable name (awk regexp)
3515 # $2: optional output variable name
3516 # $3: optional value transformation (sed command)
3517 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3518 # is where the resulting variable is written to
3519 setBootstrapVariable()
3521 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3525 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3526 echo "Creating qmake. Please wait..."
3529 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3530 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3531 if [ -f "$QCONFIG_H" ]; then
3532 OLD_QCONFIG_H=$QCONFIG_H
3533 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3536 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3537 # when building qmake, we use #defines for the install paths,
3538 # however they are real functions in the library
3539 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3540 mkdir -p "$outpath/src/corelib/global"
3541 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3542 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3545 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3547 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3548 rm -rf mkspecs/default
3549 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3550 mkdir -p "$outpath/qmake" || exit
3552 for mkfile in GNUmakefile Makefile; do
3555 in_mkfile="${mkfile}.in"
3556 if [ "$mkfile" = "Makefile" ]; then
3557 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3558 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3560 in_mkfile="${mkfile}.unix"
3562 in_mkfile="$relpath/qmake/$in_mkfile"
3563 mkfile="$outpath/qmake/$mkfile"
3564 if [ -f "$mkfile" ]; then
3565 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3568 [ -f "$in_mkfile" ] || continue
3570 echo "########################################################################" > "$mkfile"
3571 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3572 echo "########################################################################" >> "$mkfile"
3575 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3576 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3577 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3579 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3580 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3583 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3584 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3585 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3586 setBootstrapVariable QMAKE_CFLAGS
3587 setBootstrapVariable QMAKE_CXXFLAGS
3588 setBootstrapVariable QMAKE_LFLAGS
3590 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3591 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3592 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3594 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3595 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3596 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3597 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3598 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3599 elif [ "$CFG_DEBUG" = "yes" ]; then
3600 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3601 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3602 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3603 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3606 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3607 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3608 for rpath in $RPATH_FLAGS; do
3609 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3612 if [ "$BUILD_ON_MAC" = "yes" ]; then
3613 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3614 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3615 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3616 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3617 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3618 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3619 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3620 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3621 if [ '!' -z "$CFG_SDK" ]; then
3622 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3623 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3624 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3625 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3626 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3629 if [ '!' -z "$D_FLAGS" ]; then
3630 for DEF in $D_FLAGS; do
3631 EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
3634 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3635 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3636 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3637 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3639 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3640 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3641 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3642 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3643 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3644 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3645 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3646 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3647 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3648 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3650 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3651 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3652 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3653 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3658 QMAKE_BUILD_ERROR=no
3659 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3660 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3661 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3662 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3665 #-------------------------------------------------------------------------------
3666 # tests that need qmake
3667 #-------------------------------------------------------------------------------
3669 #-------------------------------------------------------------------------------
3670 # determine the target and host architectures
3671 #-------------------------------------------------------------------------------
3673 # Use config.tests/arch/arch.pro to has the compiler tell us what the target architecture is
3674 CFG_ARCH=`OUTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9_]*\).*,\1,p'`
3676 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3677 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3678 # Do the same test again, using the host compiler
3679 CFG_HOST_ARCH=`OUTDIR="$outpath" "$outpath/bin/qmake" -spec "$QMAKESPEC" -o /dev/null "$relpath/config.tests/arch/arch.pro" 2>&1 | sed -n -e 's,^Project MESSAGE:.*Architecture: \([a-zA-Z0-9_]*\).*,\1,p'`
3680 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3682 # not cross compiling, host == target
3683 CFG_HOST_ARCH="$CFG_ARCH"
3686 if [ "$OPT_VERBOSE" = "yes" ]; then
3687 echo "System architecture: '$CFG_ARCH'"
3688 echo "Host architecture: '$CFG_HOST_ARCH'"
3691 #-------------------------------------------------------------------------------
3692 # functionality tests
3693 #-------------------------------------------------------------------------------
3695 # detect availability of float math.h functions
3696 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
3697 CFG_USE_FLOATMATH=yes
3699 CFG_USE_FLOATMATH=no
3702 # detect mmx support
3703 if [ "${CFG_MMX}" = "auto" ]; then
3704 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
3711 # detect 3dnow support
3712 if [ "${CFG_3DNOW}" = "auto" ]; then
3713 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
3720 # detect sse support
3721 if [ "${CFG_SSE}" = "auto" ]; then
3722 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
3729 # detect sse2 support
3730 if [ "${CFG_SSE2}" = "auto" ]; then
3731 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
3738 # detect sse3 support
3739 if [ "${CFG_SSE3}" = "auto" ]; then
3740 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse3 "sse3" $L_FLAGS $I_FLAGS $l_FLAGS "-msse3"; then
3747 # detect ssse3 support
3748 if [ "${CFG_SSSE3}" = "auto" ]; then
3749 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ssse3 "ssse3" $L_FLAGS $I_FLAGS $l_FLAGS "-mssse3"; then
3756 # detect sse4.1 support
3757 if [ "${CFG_SSE4_1}" = "auto" ]; then
3758 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse4_1 "sse4_1" $L_FLAGS $I_FLAGS $l_FLAGS "-msse4.1"; then
3765 # detect sse4.2 support
3766 if [ "${CFG_SSE4_2}" = "auto" ]; then
3767 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse4_2 "sse4_2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse4.2"; then
3774 # detect avx support
3775 if [ "${CFG_AVX}" = "auto" ]; then
3776 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx "avx" $L_FLAGS $I_FLAGS $l_FLAGS "-mavx"; then
3783 # check iWMMXt support
3784 if [ "$CFG_IWMMXT" = "yes" ]; then
3785 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"
3786 if [ $? != "0" ]; then
3787 echo "The iWMMXt functionality test failed!"
3788 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3793 # detect neon support
3794 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3795 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/neon "neon" $L_FLAGS $I_FLAGS $l_FLAGS "-mfpu=neon"; then
3800 elif [ "$CFG_ARCH" != "arm" ]; then
3804 # detect mips_dsp support
3805 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3811 # detect mips_dspr2 support
3812 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3818 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3821 if [ "$CFG_ZLIB" = "no" ]; then
3822 # Note: Qt no longer support builds without zlib
3823 # So we force a "no" to be "auto" here.
3824 # If you REALLY really need no zlib support, you can still disable
3825 # it by doing the following:
3826 # add "no-zlib" to mkspecs/qconfig.pri
3827 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3829 # There's no guarantee that Qt will build under those conditions
3834 if [ "$CFG_ZLIB" = "auto" ]; then
3835 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3842 if [ "$CFG_LARGEFILE" = "auto" ]; then
3843 #Large files should be enabled for all Linux systems
3847 if [ "$CFG_GUI" = "no" ]; then
3848 QPA_PLATFORM_GUARD=no
3851 # detect how jpeg should be built
3852 if [ "$CFG_JPEG" = "auto" ]; then
3853 if [ "$CFG_SHARED" = "yes" ]; then
3860 if [ "$CFG_LIBJPEG" = "auto" ]; then
3861 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3868 # detect how gif should be built
3869 if [ "$CFG_GIF" = "auto" ]; then
3870 if [ "$CFG_SHARED" = "yes" ]; then
3878 if [ "$CFG_LIBPNG" = "auto" ]; then
3879 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3886 # detect accessibility
3887 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3888 CFG_ACCESSIBILITY=yes
3891 if [ "$CFG_EGLFS" = "yes" ]; then
3892 if [ "$CFG_EGL" = "no" ]; then
3893 echo "The EGLFS plugin requires EGL support and cannot be built"
3899 # auto-detect SQL-modules support
3900 for _SQLDR in $CFG_SQL_AVAILABLE; do
3903 if [ "$CFG_SQL_mysql" != "no" ]; then
3904 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
3905 if [ -x "$CFG_MYSQL_CONFIG" ]; then
3906 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
3907 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
3908 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
3909 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
3910 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
3912 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
3913 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3914 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
3915 echo " You need MySql 4 or higher."
3916 echo " If you believe this message is in error you may use the continue"
3917 echo " switch (-continue) to $0 to continue."
3922 QT_LFLAGS_MYSQL_R=""
3926 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3927 QMakeVar add CONFIG use_libmysqlclient_r
3928 if [ "$CFG_SQL_mysql" = "auto" ]; then
3929 CFG_SQL_mysql=plugin
3931 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
3932 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3933 if [ "$CFG_SQL_mysql" = "auto" ]; then
3934 CFG_SQL_mysql=plugin
3937 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3938 echo "MySQL support cannot be enabled due to functionality tests!"
3939 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3940 echo " If you believe this message is in error you may use the continue"
3941 echo " switch (-continue) to $0 to continue."
3946 QT_LFLAGS_MYSQL_R=""
3954 if [ "$CFG_SQL_psql" != "no" ]; then
3955 # Be careful not to use native pg_config when cross building.
3956 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
3957 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
3958 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
3960 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
3961 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
3962 # But, respect PSQL_LIBS if set
3963 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
3964 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $L_FLAGS $QT_CFLAGS_PSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3965 if [ "$CFG_SQL_psql" = "auto" ]; then
3969 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3970 echo "PostgreSQL support cannot be enabled due to functionality tests!"
3971 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3972 echo " If you believe this message is in error you may use the continue"
3973 echo " switch (-continue) to $0 to continue."
3984 if [ "$CFG_SQL_odbc" != "no" ]; then
3985 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/odbc "ODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3986 if [ "$CFG_SQL_odbc" = "auto" ]; then
3990 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iodbc "iODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3991 QT_LFLAGS_ODBC="-liodbc"
3992 if [ "$CFG_SQL_odbc" = "auto" ]; then
3996 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3997 echo "ODBC support cannot be enabled due to functionality tests!"
3998 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3999 echo " If you believe this message is in error you may use the continue"
4000 echo " switch (-continue) to $0 to continue."
4010 if [ "$CFG_SQL_oci" != "no" ]; then
4011 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4012 if [ "$CFG_SQL_oci" = "auto" ]; then
4016 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4017 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4018 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4019 echo " If you believe this message is in error you may use the continue"
4020 echo " switch (-continue) to $0 to continue."
4029 if [ "$CFG_SQL_tds" != "no" ]; then
4030 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4031 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4032 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $QT_LFLAGS_TDS $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4033 if [ "$CFG_SQL_tds" = "auto" ]; then
4037 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4038 echo "TDS support cannot be enabled due to functionality tests!"
4039 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4040 echo " If you believe this message is in error you may use the continue"
4041 echo " switch (-continue) to $0 to continue."
4050 if [ "$CFG_SQL_db2" != "no" ]; then
4051 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4052 if [ "$CFG_SQL_db2" = "auto" ]; then
4056 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4057 echo "ODBC support cannot be enabled due to functionality tests!"
4058 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4059 echo " If you believe this message is in error you may use the continue"
4060 echo " switch (-continue) to $0 to continue."
4069 if [ "$CFG_SQL_ibase" != "no" ]; then
4070 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4071 if [ "$CFG_SQL_ibase" = "auto" ]; then
4072 CFG_SQL_ibase=plugin
4075 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4076 echo "InterBase support cannot be enabled due to functionality tests!"
4077 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4078 echo " If you believe this message is in error you may use the continue"
4079 echo " switch (-continue) to $0 to continue."
4088 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4089 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4090 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4091 CFG_SQL_sqlite2=plugin
4094 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4095 echo "SQLite2 support cannot be enabled due to functionality tests!"
4096 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4097 echo " If you believe this message is in error you may use the continue"
4098 echo " switch (-continue) to $0 to continue."
4107 if [ "$CFG_SQL_sqlite" != "no" ]; then
4108 SQLITE_AUTODETECT_FAILED="no"
4109 if [ "$CFG_SQLITE" = "system" ]; then
4110 if [ -n "$PKG_CONFIG" ]; then
4111 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4112 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4114 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $L_FLAGS $QT_CFLAGS_SQLITE $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4115 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4116 CFG_SQL_sqlite=plugin
4118 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4120 SQLITE_AUTODETECT_FAILED="yes"
4123 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4124 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4125 CFG_SQL_sqlite=plugin
4128 SQLITE_AUTODETECT_FAILED="yes"
4132 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4133 echo "SQLite support cannot be enabled due to functionality tests!"
4134 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4135 echo " If you believe this message is in error you may use the continue"
4136 echo " switch (-continue) to $0 to continue."
4142 if [ "$OPT_VERBOSE" = "yes" ]; then
4143 echo "unknown SQL driver: $_SQLDR"
4149 # auto-detect NIS support
4150 if [ "$CFG_NIS" != "no" ]; then
4151 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4154 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4155 echo "NIS support cannot be enabled due to functionality tests!"
4156 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4157 echo " If you believe this message is in error you may use the continue"
4158 echo " switch (-continue) to $0 to continue."
4166 # auto-detect CUPS support
4167 if [ "$CFG_CUPS" != "no" ]; then
4168 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4171 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4172 echo "Cups support cannot be enabled due to functionality tests!"
4173 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4174 echo " If you believe this message is in error you may use the continue"
4175 echo " switch (-continue) to $0 to continue."
4183 # auto-detect iconv(3) support
4184 if [ "$CFG_ICONV" != "no" ]; then
4185 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4187 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4189 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/sun-libiconv" "SUN libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4191 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/gnu-libiconv" "GNU libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4194 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4195 echo "Iconv support cannot be enabled due to functionality tests!"
4196 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4197 echo " If you believe this message is in error you may use the continue"
4198 echo " switch (-continue) to $0 to continue."
4206 # auto-detect libdbus-1 support
4207 if [ "$CFG_DBUS" != "no" ]; then
4208 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4209 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4210 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4212 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/dbus "D-Bus" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DBUS $QT_LIBS_DBUS $MAC_CONFIG_TEST_COMMANDLINE; then
4213 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4214 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4215 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4217 if [ "$CFG_DBUS" = "auto" ]; then
4219 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4220 # CFG_DBUS is "yes" or "linked" here
4222 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4223 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4224 echo " If you believe this message is in error you may use the continue"
4225 echo " switch (-continue) to $0 to continue."
4231 # auto-detect Glib support
4232 if [ "$CFG_GLIB" != "no" ]; then
4233 if [ -n "$PKG_CONFIG" ]; then
4234 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4235 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4237 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4239 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4240 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4242 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4243 echo "Glib support cannot be enabled due to functionality tests!"
4244 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4245 echo " If you believe this message is in error you may use the continue"
4246 echo " switch (-continue) to $0 to continue."
4255 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4256 if [ -n "$PKG_CONFIG" ]; then
4257 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4258 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4260 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4262 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4263 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4265 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4266 echo "Gstreamer support cannot be enabled due to functionality tests!"
4267 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4268 echo " If you believe this message is in error you may use the continue"
4269 echo " switch (-continue) to $0 to continue."
4275 elif [ "$CFG_GLIB" = "no" ]; then
4279 # auto-detect libicu support
4280 if [ "$CFG_ICU" != "no" ]; then
4281 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icu "ICU" $L_FLAGS $I_FLAGS $l_FLAGS; then
4282 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4284 if [ "$CFG_ICU" = "auto" ]; then
4286 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4289 echo "The ICU library support cannot be enabled."
4290 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4291 echo " If you believe this message is in error you may use the continue"
4292 echo " switch (-continue) to $0 to continue."
4298 # Auto-detect PulseAudio support
4299 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4300 if [ -n "$PKG_CONFIG" ]; then
4301 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4302 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4304 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pulseaudio "PulseAudio" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4306 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4307 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4309 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4310 echo "PulseAudio support cannot be enabled due to functionality tests!"
4311 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4312 echo " If you believe this message is in error you may use the continue"
4313 echo " switch (-continue) to $0 to continue."
4322 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4323 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4324 if [ "$CFG_GUI" = "no" ]; then
4325 if [ "$CFG_OPENGL" = "auto" ]; then
4328 if [ "$CFG_OPENGL" != "no" ]; then
4329 echo "OpenGL enabled, but GUI disabled."
4330 echo " You might need to either enable the GUI or disable OpenGL"
4334 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4335 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4337 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4340 if [ "$CFG_OPENGL" = "yes" ]; then
4341 echo "All the OpenGL functionality tests failed!"
4342 echo " You might need to modify the include and library search paths by editing"
4343 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4344 echo " ${XQMAKESPEC}."
4351 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4352 if [ "$CFG_OPENGL" = "desktop" ]; then
4353 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4354 if [ $? != "0" ]; then
4355 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4362 elif [ "$CFG_OPENGL" = "es2" ]; then
4364 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
4365 if [ $? != "0" ]; then
4366 echo "The OpenGL ES 2.0 functionality test failed!"
4367 echo " You might need to modify the include and library search paths by editing"
4368 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4369 echo " ${XQMAKESPEC}."
4372 elif [ "$CFG_OPENGL" = "desktop" ]; then
4373 # Desktop OpenGL support
4374 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4375 if [ $? != "0" ]; then
4376 echo "The OpenGL functionality test failed!"
4377 echo " You might need to modify the include and library search paths by editing"
4378 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4379 echo " ${XQMAKESPEC}."
4384 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4385 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4386 if [ $? != "0" ]; then
4387 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4394 fi # X11/MINGW OpenGL
4396 if [ "$BUILD_ON_MAC" = "yes" ]; then
4397 if [ "$CFG_PHONON" != "no" ]; then
4398 # Always enable Phonon (unless it was explicitly disabled)
4402 if [ "$CFG_COREWLAN" = "auto" ]; then
4403 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/corewlan "CoreWlan" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4411 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4412 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4413 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4415 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4418 if [ "$CFG_OPENGL" = "yes" ]; then
4419 echo "All the OpenGL functionality tests failed!"
4420 echo " You might need to modify the include and library search paths by editing"
4421 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4422 echo " ${XQMAKESPEC}."
4427 elif [ "$CFG_OPENGL" = "es2" ]; then
4429 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4430 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4431 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4432 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4433 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4434 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "$QMAKE_INCDIR_OPENGL_ES2"
4435 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "$QMAKE_LIBDIR_OPENGL_ES2"
4436 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "$QMAKE_LIBS_OPENGL_ES2"
4439 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4440 if [ $? != "0" ]; then
4441 echo "The OpenGL ES 2.0 functionality test failed!"
4442 echo " You might need to modify the include and library search paths by editing"
4443 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4444 echo " ${XQMAKESPEC}."
4447 elif [ "$CFG_OPENGL" = "desktop" ]; then
4448 # Desktop OpenGL support
4449 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS
4450 if [ $? != "0" ]; then
4451 echo "The OpenGL functionality test failed!"
4452 echo " You might need to modify the include and library search paths by editing"
4453 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4454 echo " ${XQMAKESPEC}."
4459 # auto-detect FontConfig support
4460 if [ "$CFG_FONTCONFIG" != "no" ]; then
4461 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4462 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4463 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4465 QT_CFLAGS_FONTCONFIG=
4466 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4468 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4469 QT_CONFIG="$QT_CONFIG fontconfig"
4470 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4471 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4472 CFG_LIBFREETYPE=system
4477 # Save these for a check later
4478 ORIG_CFG_XCB="$CFG_XCB"
4479 ORIG_CFG_EGLFS="$CFG_EGLFS"
4481 if [ "$CFG_LIBUDEV" != "no" ]; then
4482 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4483 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4484 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4485 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4486 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4488 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libudev "libudev" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4490 QT_CONFIG="$QT_CONFIG libudev"
4491 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4492 echo "The libudev functionality test failed!"
4496 QMakeVar add DEFINES QT_NO_LIBUDEV
4500 if [ "$CFG_EVDEV" != "no" ]; then
4501 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/evdev "evdev" $L_FLAGS $I_FLAGS $l_FLAGS; then
4503 QT_CONFIG="$QT_CONFIG evdev"
4504 elif [ "$CFG_EVDEV" = "yes" ]; then
4505 echo "The evdev functionality test failed!"
4509 QMakeVar add DEFINES QT_NO_EVDEV
4513 # Check we actually have X11 :-)
4514 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS; then
4515 QT_CONFIG="$QT_CONFIG xlib"
4518 # auto-detect Xrender support
4519 if [ "$CFG_XRENDER" != "no" ]; then
4520 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS; then
4522 QT_CONFIG="$QT_CONFIG xrender"
4524 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4525 echo "Xrender support cannot be enabled due to functionality tests!"
4526 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4527 echo " If you believe this message is in error you may use the continue"
4528 echo " switch (-continue) to $0 to continue."
4536 if [ "$CFG_XCB" != "no" ]; then
4537 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4538 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4539 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4541 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb "xcb" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4543 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-render "xcb-render" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4544 QT_CONFIG="$QT_CONFIG xcb-render"
4547 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4549 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4552 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-xlib "xcb-xlib" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4553 QT_CONFIG="$QT_CONFIG xcb-xlib"
4556 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
4557 # auto-detect XInput2/Xinput support
4558 if [ "$CFG_XINPUT2" != "no" ]; then
4559 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput2 "XInput2" $L_FLAGS $I_FLAGS $l_FLAGS; then
4563 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4564 echo "XInput2 support cannot be enabled due to functionality tests!"
4565 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4566 echo " If you believe this message is in error you may use the continue"
4567 echo " switch (-continue) to $0 to continue."
4576 if [ "$CFG_XCB" = "yes" ]; then
4577 echo "The XCB test failed!"
4578 echo " You might need to install dependency packages."
4579 echo " See src/plugins/platforms/xcb/README."
4583 QMakeVar add DEFINES QT_NO_XCB
4587 # Detect libxkbcommon
4588 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4589 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4590 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4591 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4592 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4594 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4598 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4599 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4600 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4601 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4602 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4603 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4604 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4605 fi # detect EGL support
4606 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/egl" "EGL" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4608 elif [ "$CFG_EGL" = "yes" ]; then
4609 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4610 echo " You might need to modify the include and library search paths by editing"
4611 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4616 elif [ "$CFG_OPENGL" = "desktop" ]; then
4617 if [ "$CFG_EGL" = "yes" ]; then
4618 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4619 echo "Either disable EGL support or enable OpenGL ES support."
4625 if [ "$CFG_EGLFS" != "no" ]; then
4626 CFG_EGLFS="$CFG_EGL"
4629 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4630 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4631 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4632 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4635 if [ "$BUILD_ON_MAC" = "yes" ]; then
4636 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/coreservices "CoreServices" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4637 QT_CONFIG="$QT_CONFIG coreservices"
4639 QMakeVar add DEFINES QT_NO_CORESERVICES
4643 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then
4644 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ]; then
4645 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4646 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] ); then
4647 echo "No QPA platform plugin enabled!"
4648 echo " If you really want to build without a QPA platform plugin you must pass"
4649 echo " -no-xcb and -no-eglfs to configure. Doing this will"
4650 echo " produce a Qt that cannot run GUI applications."
4651 echo " The dependencies needed for xcb to build are listed in"
4652 echo " src/plugins/platforms/xcb/README"
4658 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
4661 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4662 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4663 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4664 CFG_LIBFREETYPE=system
4671 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
4675 if [ "$CFG_STL" != "no" ]; then
4676 if [ "$HAVE_STL" = "yes" ]; then
4679 if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4680 echo "STL support cannot be enabled due to functionality tests!"
4681 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4682 echo " If you believe this message is in error you may use the continue"
4683 echo " switch (-continue) to $0 to continue."
4691 # detect POSIX clock_gettime()
4692 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4693 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-gettime "POSIX clock_gettime()" $L_FLAGS $I_FLAGS $l_FLAGS; then
4694 CFG_CLOCK_GETTIME=yes
4696 CFG_CLOCK_GETTIME=no
4700 # detect POSIX monotonic clocks
4701 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4702 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-monotonic "POSIX Monotonic Clock" $L_FLAGS $I_FLAGS $l_FLAGS; then
4703 CFG_CLOCK_MONOTONIC=yes
4705 CFG_CLOCK_MONOTONIC=no
4707 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4708 CFG_CLOCK_MONOTONIC=no
4712 if [ "$CFG_MREMAP" = "auto" ]; then
4713 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
4720 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4721 if [ "$CFG_GETADDRINFO" != "no" ]; then
4722 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
4725 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4726 echo "getaddrinfo support cannot be enabled due to functionality tests!"
4727 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4728 echo " If you believe this message is in error you may use the continue"
4729 echo " switch (-continue) to $0 to continue."
4737 # find if the platform provides inotify
4738 if [ "$CFG_INOTIFY" != "no" ]; then
4739 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
4742 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4743 echo "inotify support cannot be enabled due to functionality tests!"
4744 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4745 echo " If you believe this message is in error you may use the continue"
4746 echo " switch (-continue) to $0 to continue."
4754 # find if the platform provides if_nametoindex (ipv6 interface name support)
4755 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4756 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6ifname "IPv6 interface name" $L_FLAGS $I_FLAGS $l_FLAGS; then
4759 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4760 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4761 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4762 echo " If you believe this message is in error you may use the continue"
4763 echo " switch (-continue) to $0 to continue."
4771 # find if the platform provides getifaddrs (network interface enumeration)
4772 if [ "$CFG_GETIFADDRS" != "no" ]; then
4773 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
4776 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4777 echo "getifaddrs support cannot be enabled due to functionality tests!"
4778 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4779 echo " If you believe this message is in error you may use the continue"
4780 echo " switch (-continue) to $0 to continue."
4789 if [ "$CFG_OPENSSL" != "no" ]; then
4790 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4791 if [ "$CFG_OPENSSL" = "auto" ]; then
4795 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4796 echo "OpenSSL support cannot be enabled due to functionality tests!"
4797 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4798 echo " If you believe this message is in error you may use the continue"
4799 echo " switch (-continue) to $0 to continue."
4808 if [ "$CFG_PCRE" != "qt" ]; then
4809 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pcre "PCRE" $L_FLAGS $I_FLAGS $l_FLAGS; then
4812 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4813 echo "PCRE support cannot be enabled due to functionality tests!"
4814 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4815 echo " If you believe this message is in error you may use the continue"
4816 echo " switch (-continue) to $0 to continue."
4824 # detect OpenVG support
4825 if [ "$CFG_OPENVG" != "no" ]; then
4826 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4827 if [ "$CFG_OPENVG" = "auto" ]; then
4830 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4831 if [ "$CFG_OPENVG" = "auto" ]; then
4834 CFG_OPENVG_ON_OPENGL=yes
4835 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4836 if [ "$CFG_OPENVG" = "auto" ]; then
4839 CFG_OPENVG_LC_INCLUDES=yes
4840 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4841 if [ "$CFG_OPENVG" = "auto" ]; then
4844 CFG_OPENVG_LC_INCLUDES=yes
4845 CFG_OPENVG_ON_OPENGL=yes
4847 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4848 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
4849 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4850 echo " If you believe this message is in error you may use the continue"
4851 echo " switch (-continue) to $0 to continue."
4857 if [ "$CFG_OPENVG" = "yes" ] && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/shivavg" "ShivaVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
4858 CFG_OPENVG_SHIVA=yes
4862 if [ "$CFG_ALSA" = "auto" ]; then
4863 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/alsa "alsa" $L_FLAGS $I_FLAGS $l_FLAGS; then
4870 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
4871 if [ "$CFG_ARCH" = "arm" ]; then
4872 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/javascriptcore-jit "javascriptcore-jit" $L_FLAGS $I_FLAGS $l_FLAGS
4873 if [ $? != "0" ]; then
4874 CFG_JAVASCRIPTCORE_JIT=no
4877 case "$XPLATFORM" in
4879 CFG_JAVASCRIPTCORE_JIT=no
4885 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
4886 QMakeVar set JAVASCRIPTCORE_JIT yes
4887 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
4888 QMakeVar set JAVASCRIPTCORE_JIT no
4891 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
4892 CFG_AUDIO_BACKEND=yes
4895 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
4896 echo "Warning: largefile support cannot be disabled for win32."
4900 #-------------------------------------------------------------------------------
4901 # ask for all that hasn't been auto-detected or specified in the arguments
4902 #-------------------------------------------------------------------------------
4904 # enable dwarf2 support on Mac
4905 if [ "$CFG_MAC_DWARF2" = "yes" ]; then
4906 QT_CONFIG="$QT_CONFIG dwarf2"
4909 # Detect the default arch (x86 or x86_64) on Mac OS X
4910 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
4912 case `file "${outpath}/bin/qmake"` in
4920 # unsupported/unknown
4924 if [ -n "$DEFAULT_ARCH" ]; then
4925 [ "$OPT_VERBOSE" = "yes" ] && echo "Setting default Mac OS X architechture to $DEFAULT_ARCH."
4926 QT_CONFIG="$QT_CONFIG $DEFAULT_ARCH"
4927 QMAKE_CONFIG="$QMAKE_CONFIG $DEFAULT_ARCH"
4928 # Make the application arch follow the Qt arch
4929 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $DEFAULT_ARCH"
4934 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
4935 QT_CONFIG="$QT_CONFIG phonon-backend"
4938 # disable accessibility
4939 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
4940 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
4942 QT_CONFIG="$QT_CONFIG accessibility"
4946 if [ "$CFG_EGL" = "yes" ]; then
4947 QT_CONFIG="$QT_CONFIG egl"
4949 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
4953 if [ "$CFG_EGLFS" = "yes" ]; then
4954 QT_CONFIG="$QT_CONFIG eglfs"
4956 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
4960 if [ "$CFG_OPENVG" = "no" ]; then
4961 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
4963 QT_CONFIG="$QT_CONFIG openvg"
4964 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
4965 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
4967 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
4968 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
4970 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
4971 QT_CONFIG="$QT_CONFIG shivavg"
4972 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
4977 if [ "$CFG_OPENGL" = "no" ]; then
4978 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
4980 QT_CONFIG="$QT_CONFIG opengl"
4983 if [ "$CFG_OPENGL" = "es2" ]; then
4984 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
4987 if [ "$CFG_OPENGL" = "es2" ]; then
4988 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
4989 QT_CONFIG="$QT_CONFIG opengles2"
4992 # safe execution environment
4993 if [ "$CFG_SXE" != "no" ]; then
4994 QT_CONFIG="$QT_CONFIG sxe"
4997 # build up the variables for output
4998 if [ "$CFG_DEBUG" = "yes" ]; then
4999 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5000 QMAKE_CONFIG="$QMAKE_CONFIG debug"
5001 elif [ "$CFG_DEBUG" = "no" ]; then
5002 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5003 QMAKE_CONFIG="$QMAKE_CONFIG release"
5005 if [ "$CFG_SHARED" = "yes" ]; then
5006 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5007 QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
5008 elif [ "$CFG_SHARED" = "no" ]; then
5009 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5010 QMAKE_CONFIG="$QMAKE_CONFIG static"
5013 #FIXME: qpa is implicit this should all be removed
5014 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5015 QT_CONFIG="$QT_CONFIG qpa"
5016 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5017 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5019 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5020 # Do not set this here for Windows. Let qmake do it so
5021 # debug and release precompiled headers are kept separate.
5022 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5024 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5025 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5026 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5027 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5028 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5029 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5031 if [ "$CFG_STL" = "no" ]; then
5032 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
5034 QMAKE_CONFIG="$QMAKE_CONFIG stl"
5036 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5037 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5039 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5040 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5041 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5042 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5043 QMakeVar add QMAKE_CFLAGS -g
5044 QMakeVar add QMAKE_CXXFLAGS -g
5045 QT_CONFIG="$QT_CONFIG separate_debug_info"
5047 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5048 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5050 [ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
5051 [ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
5052 [ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
5053 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5054 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5055 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5056 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5057 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5058 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5059 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5060 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5061 if [ "$CFG_ARCH" = "mips" ]; then
5062 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5063 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5065 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5066 QT_CONFIG="$QT_CONFIG clock-gettime"
5068 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5069 QT_CONFIG="$QT_CONFIG clock-monotonic"
5071 if [ "$CFG_MREMAP" = "yes" ]; then
5072 QT_CONFIG="$QT_CONFIG mremap"
5074 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5075 QT_CONFIG="$QT_CONFIG getaddrinfo"
5077 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5078 QT_CONFIG="$QT_CONFIG ipv6ifname"
5080 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5081 QT_CONFIG="$QT_CONFIG getifaddrs"
5083 if [ "$CFG_INOTIFY" = "yes" ]; then
5084 QT_CONFIG="$QT_CONFIG inotify"
5086 if [ "$CFG_LIBJPEG" = "no" ]; then
5088 elif [ "$CFG_LIBJPEG" = "system" ]; then
5089 QT_CONFIG="$QT_CONFIG system-jpeg"
5091 if [ "$CFG_JPEG" = "no" ]; then
5092 QT_CONFIG="$QT_CONFIG no-jpeg"
5093 elif [ "$CFG_JPEG" = "yes" ]; then
5094 QT_CONFIG="$QT_CONFIG jpeg"
5096 if [ "$CFG_LIBPNG" = "no" ]; then
5099 if [ "$CFG_LIBPNG" = "system" ]; then
5100 QT_CONFIG="$QT_CONFIG system-png"
5102 if [ "$CFG_PNG" = "no" ]; then
5103 QT_CONFIG="$QT_CONFIG no-png"
5104 elif [ "$CFG_PNG" = "yes" ]; then
5105 QT_CONFIG="$QT_CONFIG png"
5107 if [ "$CFG_GIF" = "no" ]; then
5108 QT_CONFIG="$QT_CONFIG no-gif"
5109 elif [ "$CFG_GIF" = "yes" ]; then
5110 QT_CONFIG="$QT_CONFIG gif"
5112 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5113 QT_CONFIG="$QT_CONFIG no-freetype"
5114 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5115 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5116 QT_CONFIG="$QT_CONFIG system-freetype"
5118 QT_CONFIG="$QT_CONFIG freetype"
5120 if [ "$CFG_GUI" = "auto" ]; then
5123 if [ "$CFG_GUI" = "no" ]; then
5124 QT_CONFIG="$QT_CONFIG no-gui"
5127 if [ "$CFG_WIDGETS" = "no" ]; then
5128 QT_CONFIG="$QT_CONFIG no-widgets"
5129 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5132 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5133 #On Mac we implicitly link against libz, so we
5134 #never use the 3rdparty stuff.
5135 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5137 if [ "$CFG_ZLIB" = "yes" ]; then
5138 QT_CONFIG="$QT_CONFIG zlib"
5139 elif [ "$CFG_ZLIB" = "system" ]; then
5140 QT_CONFIG="$QT_CONFIG system-zlib"
5143 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5144 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5145 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5146 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5147 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5148 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5149 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5150 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5151 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5152 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5153 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5154 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5155 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5156 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5158 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
5159 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5160 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5162 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5163 if [ "$CFG_RPATH" = "yes" ]; then
5164 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5165 # set the default rpath to the library installation directory
5166 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5168 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5169 if [ -n "$RPATH_FLAGS" ]; then
5171 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5175 elif [ "$CFG_RPATH" = "yes" ]; then
5176 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5180 if [ "$CFG_RPATH" = "yes" ]; then
5181 # set the default rpath to the library installation directory
5182 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5184 if [ -n "$RPATH_FLAGS" ]; then
5185 # add the user defined rpaths
5186 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5190 if [ '!' -z "$I_FLAGS" ]; then
5191 # add the user define include paths
5192 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5193 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5196 if [ '!' -z "$W_FLAGS" ]; then
5197 # add the user defined warning flags
5198 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5199 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5200 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5203 # turn off exceptions for the compilers that support it
5204 if [ "$XPLATFORM" != "$PLATFORM" ]; then
5205 COMPILER=`echo $XPLATFORM | cut -f 2- -d-`
5207 COMPILER=`echo $PLATFORM | cut -f 2- -d-`
5210 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5211 QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
5214 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5215 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5216 # Follow default behavior of configure.exe by overriding with "rtti".
5217 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5220 if [ "$CFG_ALSA" = "yes" ]; then
5221 QT_CONFIG="$QT_CONFIG alsa"
5224 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5225 QT_CONFIG="$QT_CONFIG pulseaudio"
5228 if [ "$CFG_COREWLAN" = "yes" ]; then
5229 QT_CONFIG="$QT_CONFIG corewlan"
5232 if [ "$CFG_ICU" = "yes" ]; then
5233 QT_CONFIG="$QT_CONFIG icu"
5236 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5237 QT_CONFIG="$QT_CONFIG force_asserts"
5240 if [ "$CFG_PCRE" = "qt" ]; then
5241 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5245 # Some Qt modules are too advanced in C++ for some old compilers
5246 # Detect here the platforms where they are known to work.
5248 # See Qt documentation for more information on which features are
5249 # supported and on which compilers.
5251 canBuildQtConcurrent="yes"
5252 canUseV8Snapshot="yes"
5254 case "$XPLATFORM" in
5256 # PA-RISC's assembly is too limited
5257 # gcc 3.4 on that platform can't build QtXmlPatterns
5258 # the assembly it generates cannot be compiled
5260 # Check gcc's version
5261 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5265 canBuildQtXmlPatterns="no"
5269 canBuildQtXmlPatterns="no"
5273 unsupported/vxworks-*-g++*)
5276 unsupported/vxworks-*-dcc*)
5278 canBuildQtXmlPatterns="no"
5281 # Check gcc's version
5282 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5290 canBuildQtXmlPatterns="no"
5295 # Check the compiler version
5296 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5299 canBuildQtXmlPatterns="no"
5300 canBuildQtConcurrent="no"
5304 canBuildQtConcurrent="no"
5310 canBuildQtXmlPatterns="no"
5311 canBuildQtConcurrent="no"
5317 # Get the xlC version
5318 cat > xlcver.c <<EOF
5322 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5327 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5328 xlcver=`./xlcver 2>/dev/null`
5331 if [ "$OPT_VERBOSE" = "yes" ]; then
5332 if [ -n "$xlcver" ]; then
5333 echo Found IBM xlC version: $xlcver.
5335 echo Could not determine IBM xlC version, assuming oldest supported.
5342 canBuildQtXmlPatterns="no"
5343 canBuildQtConcurrent="no"
5347 canBuildQtConcurrent="no"
5353 canBuildQtConcurrent="no"
5357 if [ "$CFG_GUI" = "no" ]; then
5358 # WebKit requires QtGui
5362 if [ "$CFG_SHARED" = "no" ]; then
5364 echo "WARNING: Using static linking will disable the WebKit module."
5369 CFG_CONCURRENT="yes"
5370 if [ "$canBuildQtConcurrent" = "no" ]; then
5371 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5374 QT_CONFIG="$QT_CONFIG concurrent"
5378 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5379 QT_CONFIG="$QT_CONFIG audio-backend"
5383 if [ "$CFG_WEBKIT" = "debug" ]; then
5384 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5388 QT_CONFIG="$QT_CONFIG v8"
5389 # Detect snapshot support
5390 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5391 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5394 *) canUseV8Snapshot="no"
5398 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5399 # QEMU crashes when building inside Scratchbox with an ARM target
5400 canUseV8Snapshot="no"
5403 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5404 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5406 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5407 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5410 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5411 QT_CONFIG="$QT_CONFIG v8snapshot"
5415 if [ "$CFG_DECLARATIVE_DEBUG" = "no" ]; then
5416 QCONFIG_FLAGS="$QCONFIG_FLAGS QDECLARATIVE_NO_DEBUG_PROTOCOL"
5419 if [ "$CFG_EXCEPTIONS" = "no" ]; then
5422 QMakeVar add QMAKE_CFLAGS -fno-exceptions
5423 QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
5424 QMakeVar add QMAKE_LFLAGS -fno-exceptions
5429 QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
5430 QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
5431 QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
5438 QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
5444 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5446 case "$COMPILER_VERSION" in
5448 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5449 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5450 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5453 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5454 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5455 QT_GCC_PATCH_VERSION=0
5465 #-------------------------------------------------------------------------------
5466 # part of configuration information goes into qconfig.h
5467 #-------------------------------------------------------------------------------
5469 case "$CFG_QCONFIG" in
5471 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5474 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5475 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5476 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5477 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5478 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5479 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5481 echo "#endif" >>"$tmpconfig"
5485 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5489 # define QT_EDITION $QT_EDITION
5493 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5494 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5496 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5497 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5500 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5501 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5504 if [ "$BUILD_ON_MAC" = "yes" ]; then
5505 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5506 #if defined(__LP64__)
5507 # define QT_POINTER_SIZE 8
5509 # define QT_POINTER_SIZE 4
5513 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5514 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5517 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5518 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5519 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5523 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5525 if [ "$CFG_DEV" = "yes" ]; then
5526 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5529 # Add QPA to config.h
5530 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
5532 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5533 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5536 # Add turned on SQL drivers
5537 for DRIVER in $CFG_SQL_AVAILABLE; do
5538 eval "VAL=\$CFG_SQL_$DRIVER"
5541 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5542 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5543 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5546 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5552 QMakeVar set sql-drivers "$SQL_DRIVERS"
5553 QMakeVar set sql-plugins "$SQL_PLUGINS"
5555 # Add other configuration options to the qconfig.h file
5556 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5557 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5558 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5559 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5560 [ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
5561 [ "$CFG_SXE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
5562 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5564 # X11/Unix/Mac only configs
5565 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5566 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5567 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5568 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5569 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5570 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5571 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5572 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5573 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5574 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5575 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5576 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5577 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5578 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5580 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5581 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5582 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5583 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5584 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5585 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5586 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5587 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5588 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5589 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5590 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5591 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5592 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5594 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5595 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5596 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5597 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5598 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5599 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5600 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5601 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5603 # sort QCONFIG_FLAGS for neatness if we can
5604 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5605 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5607 if [ -n "$QCONFIG_FLAGS" ]; then
5608 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5609 #ifndef QT_BOOTSTRAPPED
5612 for cfg in $QCONFIG_FLAGS; do
5613 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5614 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5615 # figure out define logic, so we can output the correct
5616 # ifdefs to override the global defines in a project
5618 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5619 # QT_NO_option can be forcefully turned on by QT_option
5620 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5621 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5622 # QT_option can be forcefully turned off by QT_NO_option
5623 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5626 if [ -z $cfgdNeg ]; then
5627 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5634 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5635 #if defined($cfgd) && defined($cfgdNeg)
5637 #elif !defined($cfgd) && !defined($cfgdNeg)
5644 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5645 #endif // QT_BOOTSTRAPPED
5650 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5651 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5652 #define QT_VISIBILITY_AVAILABLE
5657 if [ -n "$QT_LIBINFIX" ]; then
5658 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5659 #define QT_LIBINFIX "$QT_LIBINFIX"
5664 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5665 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5666 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5668 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5669 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5670 chmod -w "$outpath/src/corelib/global/qconfig.h"
5671 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5672 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5676 #-------------------------------------------------------------------------------
5677 # save configuration into qconfig.pri
5678 #-------------------------------------------------------------------------------
5679 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5680 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5681 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5682 if [ "$CFG_DEBUG" = "yes" ]; then
5683 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5684 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5685 QT_CONFIG="$QT_CONFIG release"
5687 QT_CONFIG="$QT_CONFIG debug"
5688 elif [ "$CFG_DEBUG" = "no" ]; then
5689 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5690 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5691 QT_CONFIG="$QT_CONFIG debug"
5693 QT_CONFIG="$QT_CONFIG release"
5695 if [ "$CFG_STL" = "yes" ]; then
5696 QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
5698 if [ "$CFG_FRAMEWORK" = "no" ]; then
5699 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5701 QT_CONFIG="$QT_CONFIG qt_framework"
5702 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5704 if [ "$CFG_DEV" = "yes" ]; then
5705 QT_CONFIG="$QT_CONFIG private_tests"
5708 cat >>"$QTCONFIG.tmp" <<EOF
5710 CONFIG += $QTCONFIG_CONFIG
5712 QT_HOST_ARCH = $CFG_HOST_ARCH
5713 QT_EDITION = $Edition
5714 QT_CONFIG += $QT_CONFIG
5717 QT_VERSION = $QT_VERSION
5718 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5719 QT_MINOR_VERSION = $QT_MINOR_VERSION
5720 QT_PATCH_VERSION = $QT_PATCH_VERSION
5723 QT_LIBINFIX = $QT_LIBINFIX
5724 QT_NAMESPACE = $QT_NAMESPACE
5727 if [ -n "$CFG_SYSROOT" ]; then
5728 echo "# sysroot" >>"$QTCONFIG.tmp"
5729 echo `basename "$XQMAKESPEC"` \{ >>"$QTCONFIG.tmp"
5730 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5731 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5732 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5733 echo "}" >> "$QTCONFIG.tmp"
5734 echo >> "$QTCONFIG.tmp"
5736 if [ -n "$RPATH_FLAGS" ]; then
5737 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5739 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5740 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5741 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5742 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5745 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5746 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5747 echo "QMAKE_INCDIR_OPENGL_ES2 = \"$QMAKE_INCDIR_OPENGL_ES2\"" >> "$QTCONFIG.tmp"
5750 # replace qconfig.pri if it differs from the newly created temp file
5751 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5752 rm -f "$QTCONFIG.tmp"
5754 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5757 #-------------------------------------------------------------------------------
5758 # save configuration into qmodule.pri
5759 #-------------------------------------------------------------------------------
5760 QTMODULE="$outpath/mkspecs/qmodule.pri"
5762 echo "CONFIG += create_prl link_prl" >> "$QTMODULE.tmp"
5764 # Ensure we can link to uninistalled libraries
5765 if [ "$BUILD_ON_MAC" != "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
5766 echo "QMAKE_LFLAGS = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
5768 if [ -n "$QT_CFLAGS_PSQL" ]; then
5769 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5771 if [ -n "$QT_LFLAGS_PSQL" ]; then
5772 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5774 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5775 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5777 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5778 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5780 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5781 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5783 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5784 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5786 if [ -n "$QT_LFLAGS_ODBC" ]; then
5787 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5789 if [ -n "$QT_LFLAGS_TDS" ]; then
5790 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5793 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5794 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5797 #dump in the OPENSSL_LIBS info
5798 if [ '!' -z "$OPENSSL_LIBS" ]; then
5799 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5800 elif [ "$CFG_OPENSSL" = "linked" ]; then
5801 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5804 #dump in the SDK info
5805 if [ '!' -z "$CFG_SDK" ]; then
5806 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5810 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5811 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5813 # replace qmodule.pri if it differs from the newly created temp file
5814 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5815 rm -f "$QTMODULE.tmp"
5817 mv -f "$QTMODULE.tmp" "$QTMODULE"
5820 #-------------------------------------------------------------------------------
5821 # save configuration into .qmake.cache
5822 #-------------------------------------------------------------------------------
5824 CACHEFILE="$outpath/.qmake.cache"
5825 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5826 cat >>"$CACHEFILE.tmp" <<EOF
5828 QT_SOURCE_TREE = \$\$quote($relpath)
5829 QT_BUILD_TREE = \$\$quote($outpath)
5830 QT_BUILD_PARTS = $CFG_BUILD_PARTS
5832 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
5833 QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
5834 QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
5836 include(\$\$PWD/mkspecs/qmodule.pri)
5837 CONFIG += $QMAKE_CONFIG dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5841 #dump the qmake spec
5842 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
5843 echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
5845 echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
5848 # replace .qmake.cache if it differs from the newly created temp file
5849 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5850 rm -f "$CACHEFILE.tmp"
5852 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5855 #-------------------------------------------------------------------------------
5856 # give feedback on configuration
5857 #-------------------------------------------------------------------------------
5861 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5864 This target is using the GNU C++ compiler ($PLATFORM).
5866 Recent versions of this compiler automatically include code for
5867 exceptions, which increase both the size of the Qt libraries and
5868 the amount of memory taken by your applications.
5870 You may choose to re-run `basename $0` with the -no-exceptions
5871 option to compile Qt without exceptions. This is completely binary
5872 compatible, and existing applications will continue to work.
5880 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5883 This target is using the MIPSpro C++ compiler ($PLATFORM).
5885 You may choose to re-run `basename $0` with the -no-exceptions
5886 option to compile Qt without exceptions. This will make the
5887 size of the Qt library smaller and reduce the amount of memory
5888 taken by your applications.
5900 if [ "$XPLATFORM" = "$PLATFORM" ]; then
5901 echo "Build type: $PLATFORM"
5903 echo "Building on: $PLATFORM"
5904 echo "Building for: $XPLATFORM"
5907 echo "Architecture: $CFG_ARCH"
5908 echo "Host architecture: $CFG_HOST_ARCH"
5910 if [ -n "$PLATFORM_NOTES" ]; then
5911 echo "Platform notes:"
5912 echo "$PLATFORM_NOTES"
5917 if [ "$OPT_VERBOSE" = "yes" ]; then
5918 echo $ECHO_N "qmake vars .......... $ECHO_C"
5919 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
5920 echo "qmake switches ......... $QMAKE_SWITCHES"
5923 echo "Build .................. $CFG_BUILD_PARTS"
5924 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
5925 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5926 echo "Debug .................. yes (combined)"
5927 if [ "$CFG_DEBUG" = "yes" ]; then
5928 echo "Default Link ........... debug"
5930 echo "Default Link ........... release"
5933 echo "Debug .................. $CFG_DEBUG"
5935 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
5936 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
5937 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
5938 echo "QtConcurrent code ...... $CFG_CONCURRENT"
5939 echo "QtGui module ........... $CFG_GUI"
5940 echo "QtWidgets module ....... $CFG_WIDGETS"
5941 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5942 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
5944 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
5946 echo "Declarative debugging ...$CFG_DECLARATIVE_DEBUG"
5947 echo "STL support ............ $CFG_STL"
5948 echo "PCH support ............ $CFG_PRECOMPILE"
5949 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
5950 echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}"
5951 echo "SSSE3/SSE4.1/SSE4.2..... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
5952 echo "AVX..................... ${CFG_AVX}"
5953 elif [ "$CFG_ARCH" = "arm" ]; then
5954 echo "iWMMXt support ......... ${CFG_IWMMXT}"
5955 echo "NEON support ........... ${CFG_NEON}"
5957 if [ "$CFG_ARCH" = "mips" ]; then
5958 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
5960 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
5961 echo "getaddrinfo support .... $CFG_GETADDRINFO"
5962 echo "getifaddrs support ..... $CFG_GETIFADDRS"
5963 echo "Accessibility .......... $CFG_ACCESSIBILITY"
5964 echo "NIS support ............ $CFG_NIS"
5965 echo "CUPS support ........... $CFG_CUPS"
5966 echo "Iconv support .......... $CFG_ICONV"
5967 echo "Glib support ........... $CFG_GLIB"
5968 echo "GStreamer support ...... $CFG_GSTREAMER"
5969 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
5970 echo "Large File support ..... $CFG_LARGEFILE"
5971 echo "GIF support ............ $CFG_GIF"
5972 if [ "$CFG_JPEG" = "no" ]; then
5973 echo "JPEG support ........... $CFG_JPEG"
5975 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
5977 if [ "$CFG_PNG" = "no" ]; then
5978 echo "PNG support ............ $CFG_PNG"
5980 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
5982 echo "zlib support ........... $CFG_ZLIB"
5983 echo "Session management ..... $CFG_SM"
5984 echo "libudev support ........ $CFG_LIBUDEV"
5986 if [ "$CFG_OPENGL" = "desktop" ]; then
5987 echo "OpenGL support ......... yes (Desktop OpenGL)"
5988 elif [ "$CFG_OPENGL" = "es2" ]; then
5989 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
5991 echo "OpenGL support ......... no"
5994 if [ "$CFG_OPENVG" ]; then
5995 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5996 echo "OpenVG support ......... ShivaVG"
5998 echo "OpenVG support ......... $CFG_OPENVG"
6002 echo "XShape support ......... $CFG_XSHAPE"
6003 echo "XVideo support ......... $CFG_XVIDEO"
6004 echo "XSync support .......... $CFG_XSYNC"
6005 echo "Xinerama support ....... $CFG_XINERAMA"
6006 echo "Xcursor support ........ $CFG_XCURSOR"
6007 echo "Xfixes support ......... $CFG_XFIXES"
6008 echo "Xrandr support ......... $CFG_XRANDR"
6009 echo "Xi support ............. $CFG_XINPUT"
6010 echo "MIT-SHM support ........ $CFG_MITSHM"
6011 echo "FontConfig support ..... $CFG_FONTCONFIG"
6012 echo "XKB Support ............ $CFG_XKB"
6013 echo "immodule support ....... $CFG_IM"
6014 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6016 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6017 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6018 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6019 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6020 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6021 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6022 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6023 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6024 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6027 if [ "$CFG_OPENSSL" = "yes" ]; then
6028 OPENSSL_LINKAGE="(run-time)"
6029 elif [ "$CFG_OPENSSL" = "linked" ]; then
6030 OPENSSL_LINKAGE="(linked)"
6032 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6033 echo "Alsa support ........... $CFG_ALSA"
6034 if [ "$BUILD_ON_MAC" = "yes" ]; then
6035 echo "CoreWlan support ....... $CFG_COREWLAN"
6037 echo "libICU support ......... $CFG_ICU"
6038 echo "PCRE support ........... $CFG_PCRE"
6039 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6040 echo "Xcb support ............ limited (old version)"
6042 echo "Xcb support ............ $CFG_XCB"
6044 echo "Xrender support ........ $CFG_XRENDER"
6045 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6046 echo "XInput2 support ........ $CFG_XINPUT2"
6048 echo "EGLFS support .......... $CFG_EGLFS"
6051 # complain about not being able to use dynamic plugins if we are using a static build
6052 if [ "$CFG_SHARED" = "no" ]; then
6054 echo "WARNING: Using static linking will disable the use of dynamically"
6055 echo "loaded plugins. Make sure to import all needed static plugins,"
6056 echo "or compile needed modules into the library."
6059 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6061 echo "NOTE: When linking against OpenSSL, you can override the default"
6062 echo "library names through OPENSSL_LIBS."
6064 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6067 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6069 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6070 echo "if you want a pure debug build."
6075 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6080 #-------------------------------------------------------------------------------
6081 # build makefiles based on the configuration
6082 #-------------------------------------------------------------------------------
6084 echo "Finding project files. Please wait..."
6085 if [ "$CFG_NOPROCESS" != "yes" ]; then
6086 "$outpath/bin/qmake" -prl -r "${relpath}/qtbase.pro"
6087 if [ -f "${relpath}/qtbase.pro" ]; then
6088 mkfile="${outpath}/Makefile"
6089 [ -f "$mkfile" ] && chmod +w "$mkfile"
6090 QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/qtbase.pro" -o "$mkfile"
6094 # .projects -> projects to process
6095 # .projects.1 -> qt and moc
6096 # .projects.2 -> subdirs and libs
6097 # .projects.3 -> the rest
6098 rm -f .projects .projects.1 .projects.2 .projects.3
6100 QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
6101 if [ -z "$AWK" ]; then
6102 for p in `echo $QMAKE_PROJECTS`; do
6103 echo "$p" >> .projects
6106 cat >projects.awk <<EOF
6112 first = "./.projects.1.tmp"
6113 second = "./.projects.2.tmp"
6114 third = "./.projects.3.tmp"
6119 if ( ! target_file )
6121 print input_file >target_file
6126 input_file = FILENAME
6131 if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
6134 } else if ( \$3 == "lrelease" || \$3 == "qm_phony_target" ) {
6135 target_file = second
6140 matched_target == 0 && /^(TEMPLATE.*=)/ {
6141 if ( \$3 == "subdirs" )
6142 target_file = second
6143 else if ( \$3 == "lib" )
6149 matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
6150 if ( \$0 ~ /plugin/ )
6153 target_file = second
6158 if ( ! target_file )
6160 print input_file >>target_file
6167 for p in `echo $QMAKE_PROJECTS`; do
6168 echo "$p" >> .projects.all
6171 # if you get errors about the length of the command line to awk, change the -l arg
6173 split -l 100 .projects.all .projects.all.
6174 for p in .projects.all.*; do
6175 "$AWK" -f projects.awk `cat $p`
6176 [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
6177 [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
6178 [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
6179 rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
6181 rm -f .projects.all* projects.awk
6183 [ -f .projects.1 ] && cat .projects.1 >>.projects
6184 [ -f .projects.2 ] && cat .projects.2 >>.projects
6185 rm -f .projects.1 .projects.2
6186 if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
6187 cat .projects.3 >>.projects
6191 # don't sort Qt and MOC in with the other project files
6192 # also work around a segfaulting uniq(1)
6193 if [ -f .sorted.projects.2 ]; then
6194 sort .sorted.projects.2 > .sorted.projects.2.new
6195 mv -f .sorted.projects.2.new .sorted.projects.2
6196 cat .sorted.projects.2 >> .sorted.projects.1
6198 [ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
6199 rm -f .sorted.projects.2 .sorted.projects.1
6203 if [ -f .projects ]; then
6204 uniq .projects >.tmp
6205 mv -f .tmp .projects
6206 NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
6208 if [ -f .projects.3 ]; then
6209 uniq .projects.3 >.tmp
6210 mv -f .tmp .projects.3
6211 FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
6213 echo " `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
6217 for part in $CFG_BUILD_PARTS; do
6219 tools) PART_ROOTS="$PART_ROOTS tools" ;;
6220 libs) PART_ROOTS="$PART_ROOTS src" ;;
6221 translations) PART_ROOTS="$PART_ROOTS translations" ;;
6222 examples) PART_ROOTS="$PART_ROOTS examples" ;;
6227 if [ "$CFG_DEV" = "yes" ]; then
6228 PART_ROOTS="$PART_ROOTS tests"
6231 echo "Creating makefiles. Please wait..."
6232 for file in .projects .projects.3; do
6233 [ '!' -f "$file" ] && continue
6234 for a in `cat $file`; do
6236 for r in $PART_ROOTS; do
6237 if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
6242 [ "$IN_ROOT" = "no" ] && continue
6245 *winmain/winmain.pro)
6246 if [ "$CFG_NOPROCESS" = "yes" ] || [ "$XPLATFORM_MINGW" != "yes" ]; then
6250 */qmake/qmake.pro) continue ;;
6251 *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*tools/qdoc*) SPEC=$QMAKESPEC ;;
6252 *) if [ "$CFG_NOPROCESS" = "yes" ]; then
6258 dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
6259 test -d "$dir" || mkdir -p "$dir"
6260 OUTDIR="$outpath/$dir"
6261 if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
6262 # fast configure - the makefile exists, skip it
6263 # since the makefile exists, it was generated by qmake, which means we
6264 # can skip it, since qmake has a rule to regenerate the makefile if the .pro
6266 [ "$OPT_VERBOSE" = "yes" ] && echo " skipping $a"
6269 QMAKE_SPEC_ARGS="-spec $SPEC"
6270 echo $ECHO_N " for $a$ECHO_C"
6272 QMAKE="$outpath/bin/qmake"
6273 QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
6274 if [ "$file" = ".projects.3" ]; then
6277 cat >"${OUTDIR}/Makefile" <<EOF
6278 # ${OUTDIR}/Makefile: generated by configure
6280 # WARNING: This makefile will be replaced with a real makefile.
6281 # All changes made to this file will be lost.
6283 [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
6285 cat >>"${OUTDIR}/Makefile" <<EOF
6287 all clean install qmake first Makefile: FORCE
6288 \$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
6296 if [ "$OPT_VERBOSE" = "yes" ]; then
6297 echo " (`basename $SPEC`)"
6298 echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
6303 [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
6304 QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
6308 rm -f .projects .projects.3
6310 #-------------------------------------------------------------------------------
6311 # check for platforms that we don't yet know about
6312 #-------------------------------------------------------------------------------
6313 if [ "$CFG_ARCH" = "unknown" ]; then
6316 NOTICE: configure was unable to determine the architecture
6317 for the $XQMAKESPEC target.
6319 Qt will not use a specialized implementation for any atomic
6320 operations. Instead a generic implemention based on either GCC
6321 intrinsics or C++11 std::atomic<T> will be used (when
6322 available). The generic implementations are generally as fast
6323 as and always as safe as a specialized implementation.
6325 If no generic implementation is available, Qt will use a
6326 fallback UNIX implementation which uses a single
6327 pthread_mutex_t to protect all atomic operations. This
6328 implementation is the slow (but safe) fallback implementation
6329 for architectures Qt does not yet support.
6333 #-------------------------------------------------------------------------------
6334 # check if the user passed the -no-zlib option, which is no longer supported
6335 #-------------------------------------------------------------------------------
6336 if [ -n "$ZLIB_FORCED" ]; then
6337 which_zlib="supplied"
6338 if [ "$CFG_ZLIB" = "system" ]; then
6344 NOTICE: The -no-zlib option was supplied but is no longer
6347 Qt now requires zlib support in all builds, so the -no-zlib
6348 option was ignored. Qt will be built using the $which_zlib
6353 #-------------------------------------------------------------------------------
6354 # check if the user passed the obsoleted -wayland or -no-wayland flag
6355 #-------------------------------------------------------------------------------
6356 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6359 NOTICE: The -wayland and -no-wayland flags are now obsolete
6361 All configuring of QtWayland plugin and QtCompositor happens in the module
6365 #-------------------------------------------------------------------------------
6366 # check if the user passed the obsoleted -arch or -host-arch options
6367 #-------------------------------------------------------------------------------
6368 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6371 NOTICE: The -arch and -host-arch options are obsolete.
6373 Qt now detects the target and host architectures based on compiler
6374 output. Qt will be built using $CFG_ARCH for the target architecture
6375 and $CFG_HOST_ARCH for the host architecture (note that these two
6376 will be the same unless you are cross-compiling).
6380 #-------------------------------------------------------------------------------
6381 # finally save the executed command to another script
6382 #-------------------------------------------------------------------------------
6383 if [ `basename $0` != "config.status" ]; then
6384 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6386 # add the system variables
6387 for varname in $SYSTEM_VARIABLES; do
6389 'if [ -n "\$'${varname}'" ]; then
6390 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6395 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6397 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6398 echo "#!/bin/sh" > "$outpath/config.status"
6399 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6400 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6401 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6402 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6403 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6404 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6405 echo "else" >> "$outpath/config.status"
6406 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6407 echo "fi" >> "$outpath/config.status"
6408 chmod +x "$outpath/config.status"
6411 if [ -n "$RPATH_MESSAGE" ]; then
6413 echo "$RPATH_MESSAGE"
6416 MAKE=`basename "$MAKE"`
6418 echo Qt is now configured for building. Just run \'$MAKE\'.
6419 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6420 echo Once everything is built, Qt is installed.
6421 echo You should not run \'$MAKE install\'.
6423 echo Once everything is built, you must run \'$MAKE install\'.
6424 echo Qt will be installed into $QT_INSTALL_PREFIX
6427 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.