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 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 # relies on $TEST_COMPILER being set correctly
228 compilerSupportsFlag()
230 cat >conftest.cpp <<EOF
231 int main() { return 0; }
233 "$TEST_COMPILER" "$@" -o conftest.o conftest.cpp
235 rm -f conftest.cpp conftest.o
239 # relies on $TEST_COMPILER being set correctly
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag "$lflags" >/dev/null 2>&1
251 #-------------------------------------------------------------------------------
253 #-------------------------------------------------------------------------------
261 echo >&2 "BUG: wrong command to QMakeVar: $1"
265 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
268 resolveDeviceMkspec()
270 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
271 match_count=$(echo "$result" | wc -w)
272 if [ "$match_count" -gt 1 ]; then
273 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
274 tabbed_result=$(echo "$result" | sed "s,^, ,")
275 echo >&2 "$tabbed_result"
277 elif [ "$match_count" -eq 0 ]; then
278 echo >&2 "Error: No device matching '$1'"
285 #-------------------------------------------------------------------------------
286 # operating system detection
287 #-------------------------------------------------------------------------------
289 # need that throughout the script
290 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
291 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
292 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
293 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
295 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
296 if echo '\c' | grep '\c' >/dev/null; then
302 #-------------------------------------------------------------------------------
303 # window system detection
304 #-------------------------------------------------------------------------------
308 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
313 #-----------------------------------------------------------------------------
314 # Qt version detection
315 #-----------------------------------------------------------------------------
316 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
320 if [ -n "$QT_VERSION" ]; then
321 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
322 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
323 if [ -n "$MAJOR" ]; then
324 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
325 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
326 QT_MAJOR_VERSION="$MAJOR"
327 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
328 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
331 if [ -z "$QT_MAJOR_VERSION" ]; then
332 echo "Cannot process version from qglobal.h: $QT_VERSION"
333 echo "Cannot proceed."
337 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
338 if [ -z "$QT_PACKAGEDATE" ]; then
339 echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
340 echo "Cannot proceed"
344 #-------------------------------------------------------------------------------
346 #-------------------------------------------------------------------------------
350 EditionString=Commercial
354 # parse the arguments, setting things to "yes" or "no"
355 while [ "$#" -gt 0 ]; do
359 #Autoconf style options
361 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
365 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
369 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
370 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
373 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
376 -h|help|--help|-help)
377 if [ "$VAL" = "yes" ]; then
379 COMMERCIAL_USER="no" #doesn't matter we will display the help
382 COMMERCIAL_USER="no" #doesn't matter we will display the help
386 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
390 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
397 if [ "$UNKNOWN_ARG" = "yes" ]; then
409 COMMERCIAL_USER="yes"
423 if [ "$COMMERCIAL_USER" = "ask" ]; then
425 echo "Which edition of Qt do you want to use ?"
427 echo "Type 'c' if you want to use the Commercial Edition."
428 echo "Type 'o' if you want to use the Open Source Edition."
432 if [ "$commercial" = "c" ]; then
433 COMMERCIAL_USER="yes"
435 elif [ "$commercial" = "o" ]; then
442 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
443 # Commercial preview release
444 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
447 QT_EDITION="QT_EDITION_DESKTOP"
448 LicenseType="Technology Preview"
449 elif [ $COMMERCIAL_USER = "yes" ]; then
450 # one of commercial editions
451 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
453 # read in the license file
454 if [ -f "$LICENSE_FILE" ]; then
455 . "$LICENSE_FILE" >/dev/null 2>&1
456 if [ -z "$LicenseKeyExt" ]; then
458 echo "You are using an old license file."
460 echo "Please install the license file supplied by Nokia,"
461 echo "or install the Qt Open Source Edition if you intend to"
462 echo "develop free software."
465 if [ -z "$Licensee" ]; then
467 echo "Invalid license key. Please check the license key."
471 if [ -z "$LicenseKeyExt" ]; then
473 echo $ECHO_N "Please enter your license key: $ECHO_C"
475 Licensee="Unknown user"
480 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
481 && LicenseValid="yes" \
483 if [ "$LicenseValid" != "yes" ]; then
485 echo "Invalid license key. Please check the license key."
488 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
489 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
490 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
491 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
493 # determine which edition we are licensed to use
494 case "$LicenseTypeCode" in
496 LicenseType="Commercial"
500 QT_EDITION="QT_EDITION_UNIVERSAL"
503 Edition="FullFramework"
504 EditionString="Full Framework"
505 QT_EDITION="QT_EDITION_DESKTOP"
508 Edition="GUIFramework"
509 EditionString="GUI Framework"
510 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
515 LicenseType="Evaluation"
516 QMakeVar add DEFINES QT_EVAL
520 QT_EDITION="QT_EDITION_EVALUATION"
525 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
527 echo "Invalid license key. Please check the license key."
531 # verify that we are licensed to use Qt on this platform
533 case "$PlatformCode" in
536 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
540 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
543 ### EMBEDDED_QPA logic missing ###
544 case "$PlatformCode,$PLATFORM_MAC" in
545 X9,* | XC,* | XU,* | XW,* | XM,*)
547 LICENSE_EXTENSION="-ALLOS"
549 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
550 # Qt for Embedded Linux
551 LICENSE_EXTENSION="-EMBEDDED"
553 6M,* | N7,* | N9,* | NX,*)
555 LICENSE_EXTENSION="-EMBEDDED"
557 FM,* | LM,yes | ZM,no)
559 LICENSE_EXTENSION="-DESKTOP"
563 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
565 echo "You are not licensed for the $Platform platform."
567 echo "Please contact qt-info@nokia.com to upgrade your license to"
568 echo "include the $Platform platform, or install the Qt Open Source Edition"
569 echo "if you intend to develop free software."
574 if test -r "$relpath/.LICENSE"; then
575 # Generic, non-final license
577 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
582 *TECHNOLOGY?PREVIEW*)
589 echo >&2 "Invalid license files; cannot continue"
594 EditionString="$Edition"
595 QT_EDITION="QT_EDITION_DESKTOP"
598 case "$LicenseFeatureCode" in
601 case "$LicenseType" in
603 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
606 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
612 case "$LicenseType" in
614 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
617 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
623 echo "Invalid license key. Please check the license key."
627 case "$LicenseFeatureCode" in
635 if [ '!' -f "$outpath/LICENSE" ]; then
636 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
637 echo "this software has disappeared."
639 echo "Sorry, you are not licensed to use this software."
640 echo "Try re-installing."
644 elif [ $COMMERCIAL_USER = "no" ]; then
645 # Open Source edition - may only be used under the terms of the GPL or LGPL.
646 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
647 Licensee="Open Source"
649 EditionString="Open Source"
650 QT_EDITION="QT_EDITION_OPENSOURCE"
653 #-------------------------------------------------------------------------------
654 # initalize variables
655 #-------------------------------------------------------------------------------
657 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
658 for varname in $SYSTEM_VARIABLES; do
659 qmakevarname="${varname}"
660 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
661 if [ "${varname}" = "LDFLAGS" ]; then
662 qmakevarname="LFLAGS"
663 elif [ "${varname}" = "LD" ]; then
667 'if [ -n "\$'${varname}'" ]; then
668 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
672 # Use CC/CXX to run config.tests
673 mkdir -p "$outpath/config.tests"
674 rm -f "$outpath/config.tests/.qmake.cache"
675 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
677 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
679 # QTDIR may be set and point to an old or system-wide Qt installation
682 # the minimum version of libdbus-1 that we require:
683 MIN_DBUS_1_VERSION=0.93
685 # initalize internal variables
686 CFG_CONFIGURE_EXIT_ON_ERROR=yes
688 CFG_GUI=auto # (yes|no|auto)
714 CFG_OPENVG_LC_INCLUDES=no
715 CFG_OPENVG_SHIVA=auto
716 CFG_OPENVG_ON_OPENGL=auto
722 QT_DEFAULT_BUILD_PARTS="libs examples"
726 CFG_AUDIO_BACKEND=auto
729 CFG_JAVASCRIPTCORE_JIT=auto
732 # Target architecture
735 # Host architecture, same as CFG_ARCH when not cross-compiling
737 CFG_HOST_CPUFEATURES=
738 # Set when the -arch or -host-arch arguments are used
739 OPT_OBSOLETE_HOST_ARG=no
751 CFG_OBSOLETE_WAYLAND=no
763 CFG_SEPARATE_DEBUG_INFO=no
764 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
765 CFG_REDUCE_EXPORTS=auto
773 CFG_REDUCE_RELOCATIONS=auto
774 CFG_ACCESSIBILITY=auto
779 CFG_CLOCK_GETTIME=auto
780 CFG_CLOCK_MONOTONIC=auto
788 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
790 CFG_PREFIX_INSTALL=yes
800 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
801 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
806 OPT_CONFIRM_LICENSE=no
819 QPA_PLATFORM_GUARD=yes
822 # initalize variables used for installation
831 QT_INSTALL_TRANSLATIONS=
840 #flags for SQL drivers
848 QT_LFLAGS_ODBC="-lodbc"
851 # flags for libdbus-1
855 # flags for Glib (X11 only)
859 # flags for GStreamer (X11 only)
863 # default qpa platform
864 QT_QPA_DEFAULT_PLATFORM=
866 #-------------------------------------------------------------------------------
867 # check SQL drivers available in this package
868 #-------------------------------------------------------------------------------
870 # opensource version removes some drivers, so force them to be off
876 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
877 for a in "$relpath/src/plugins/sqldrivers/"*; do
879 base_a=`basename "$a"`
880 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
881 eval "CFG_SQL_${base_a}=auto"
886 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
887 if [ -d "$relpath/src/plugins/imageformats" ]; then
888 for a in "$relpath/src/plugins/imageformats/"*; do
890 base_a=`basename "$a"`
891 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
896 #-------------------------------------------------------------------------------
897 # parse command line arguments
898 #-------------------------------------------------------------------------------
900 # parse the arguments, setting things to "yes" or "no"
901 while [ "$#" -gt 0 ]; do
905 #Autoconf style options
907 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
911 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
915 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
916 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
919 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
923 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
927 -no-*-*|-plugin-*-*|-qt-*-*)
928 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
929 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
933 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
936 #Qt style options that pass an argument
937 -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|-qpa|-qconfig)
938 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
942 #Qt style complex options in one command
943 -enable-*|-disable-*)
944 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
945 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
947 #Qt Builtin/System style options
948 -no-*|-system-*|-qt-*)
949 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
950 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
952 #Options that cannot be generalized
959 # this option may or may not be followed by an argument
960 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
969 # this option may or may not be followed by an argument
970 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
978 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
979 # this option may or may not be followed by an argument
980 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
999 if [ "$1" = "-D" ]; then
1003 VAL=`echo $1 | sed 's,-D,,'`
1008 # this option may or may not be followed by an argument
1009 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1018 if [ "$1" = "-I" ]; then
1022 VAL=`echo $1 | sed 's,-I,,'`
1027 if [ "$1" = "-L" ]; then
1031 VAL=`echo $1 | sed 's,-L,,'`
1036 if [ "$1" = "-R" ]; then
1040 VAL=`echo $1 | sed 's,-R,,'`
1045 if [ "$1" = "-l" ]; then
1049 VAL=`echo $1 | sed 's,-l,,'`
1054 if [ "$1" = "-F" ]; then
1058 VAL=`echo $1 | sed 's,-F,,'`
1063 if [ "$1" = "-fw" ]; then
1067 VAL=`echo $1 | sed 's,-fw,,'`
1074 #General options, including Qt style yes options
1076 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1083 if [ "$UNKNOWN_ARG" = "yes" ]; then
1084 echo "$1: unknown argument"
1095 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1096 CFG_ACCESSIBILITY="$VAL"
1105 CFG_USE_GNUMAKE="$VAL"
1108 CFG_MYSQL_CONFIG="$VAL"
1111 QT_INSTALL_PREFIX="$VAL"
1114 QT_HOST_PREFIX="$VAL"
1123 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1124 CFG_PKGCONFIG="$VAL"
1130 CFG_PKGCONFIG="force"
1133 QT_INSTALL_DOCS="$VAL"
1136 QT_INSTALL_HEADERS="$VAL"
1139 QT_INSTALL_PLUGINS="$VAL"
1142 QT_INSTALL_IMPORTS="$VAL"
1145 QT_INSTALL_DATA="$VAL"
1148 QT_INSTALL_LIBS="$VAL"
1157 QT_INSTALL_TRANSLATIONS="$VAL"
1159 sysconfdir|settingsdir)
1160 QT_INSTALL_SETTINGS="$VAL"
1163 QT_INSTALL_EXAMPLES="$VAL"
1166 QT_INSTALL_TESTS="$VAL"
1175 QT_INSTALL_BINS="$VAL"
1178 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1185 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1186 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1187 [ "$VAL" = "es2" ]; then
1194 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1201 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1204 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1207 if [ "$BUILD_ON_MAC" = "yes" ]; then
1214 OPT_OBSOLETE_HOST_ARG=yes
1217 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1218 CFG_MAC_HARFBUZZ="$VAL"
1225 if [ "$BUILD_ON_MAC" = "yes" ]; then
1226 CFG_FRAMEWORK="$VAL"
1232 if [ "$VAL" = "yes" ]; then
1234 QMakeVar add QMAKE_CFLAGS -pg
1235 QMakeVar add QMAKE_CXXFLAGS -pg
1236 QMakeVar add QMAKE_LFLAGS -pg
1237 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1243 if [ "$VAL" = "yes" ]; then
1244 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1249 # keep compatibility with old platform names
1255 PLATFORM=hpux-acc-o64
1258 PLATFORM=hpux-acc-64
1261 PLATFORM=hpux-acc-64
1273 PLATFORM=reliant-cds-64
1276 PLATFORM=solaris-cc-64
1279 PLATFORM=unixware-cc
1282 PLATFORM=unixware-g++
1285 PLATFORM=unixware-cc
1288 PLATFORM=unixware-g++
1294 i386) NATIVE_64_ARCH="x86_64" ;;
1295 powerpc) NATIVE_64_ARCH="ppc64" ;;
1296 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1298 if [ ! -z "$NATIVE_64_ARCH" ]; then
1299 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1306 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1309 XPLATFORM=`resolveDeviceMkspec $VAL`
1310 [ "$XPLATFORM" = "undefined" ] && exit 101
1313 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1314 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1315 DeviceVar set $DEV_VAR $DEV_VAL
1318 QT_QPA_DEFAULT_PLATFORM="$VAL"
1321 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1322 CFG_DEBUG_RELEASE="$VAL"
1328 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1329 CFG_RELEASE_QMAKE="$VAL"
1335 if [ "$VAL" = "yes" ]; then
1337 elif [ "$VAL" = "no" ]; then
1344 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1345 CFG_PREFIX_INSTALL="$VAL"
1353 developer-build|commercial|opensource)
1354 # These switches have been dealt with already
1357 if [ "$VAL" = "yes" ]; then
1359 elif [ "$VAL" = "no" ]; then
1366 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1367 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1373 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1374 if [ "$VAL" = "no" ]; then
1375 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1376 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1377 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1383 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1390 if [ "$VAL" = "no" ]; then
1397 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1405 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1412 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1419 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1426 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1433 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1440 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1447 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1454 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1455 CFG_PRECOMPILE="$VAL"
1460 separate-debug-info)
1461 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1462 CFG_SEPARATE_DEBUG_INFO="$VAL"
1463 elif [ "$VAL" = "nocopy" ] ; then
1464 CFG_SEPARATE_DEBUG_INFO="yes"
1465 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1471 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1472 CFG_REDUCE_EXPORTS="$VAL"
1478 if [ "$VAL" = "no" ]; then
1485 if [ "$VAL" = "no" ]; then
1492 if [ "$VAL" = "no" ]; then
1499 if [ "$VAL" = "no" ]; then
1506 if [ "$VAL" = "no" ]; then
1513 if [ "$VAL" = "no" ]; then
1520 if [ "$VAL" = "no" ]; then
1530 if [ "$VAL" = "no" ]; then
1537 if [ "$VAL" = "no" ]; then
1544 if [ "$VAL" = "no" ]; then
1545 CFG_MIPS_DSPR2="$VAL"
1551 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1552 CFG_REDUCE_RELOCATIONS="$VAL"
1558 [ "$VAL" = "qt" ] && VAL=yes
1559 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1564 # No longer supported:
1565 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1568 if [ "$VAL" = "system" ]; then
1575 [ "$VAL" = "yes" ] && VAL=qt
1576 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1583 [ "$VAL" = "yes" ] && VAL=qt
1584 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1591 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1598 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1605 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1612 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1619 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1626 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1627 CFG_FONTCONFIG="$VAL"
1633 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1640 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1647 CFG_OBSOLETE_WAYLAND=yes
1650 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1657 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1664 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1671 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1678 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1685 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1692 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1699 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1700 CFG_GSTREAMER="$VAL"
1706 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1707 CFG_QGTKSTYLE="$VAL"
1713 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1716 if [ "$VAL" = "no" ]; then
1724 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1726 elif [ "$VAL" = "no" ]; then
1733 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1734 QPA_PLATFORM_GUARD="$VAL"
1740 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1742 elif [ "$VAL" = "runtime" ]; then
1749 if [ "$VAL" = "yes" ]; then
1756 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1763 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1764 CFG_LARGEFILE="$VAL"
1770 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1777 if [ "$VAL" = "yes" ]; then
1778 CFG_OPENSSL="linked"
1784 if [ "$VAL" = "yes" ]; then
1787 if [ "$VAL" = "no" ]; then
1795 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1796 CFG_JAVASCRIPTCORE_JIT="$VAL"
1802 if [ "$VAL" = "yes" ]; then
1803 OPT_CONFIRM_LICENSE="$VAL"
1809 if [ "$VAL" = "yes" ]; then
1815 sql-*|imageformat-*)
1816 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1817 # if autoconf style options were used, $VAL can be "yes" or "no"
1818 [ "$VAL" = "yes" ] && VAL=qt
1819 # now $VAL should be "no", "qt", or "plugin"... double-check
1820 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1823 # now $VAL is "no", "qt", or "plugin"
1825 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1826 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1828 # Grab the available values
1831 avail="$CFG_SQL_AVAILABLE"
1834 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1835 if [ "$OPT" != "plugin" ]; then
1836 # png is always built in
1842 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1846 # Check that that user's value is available.
1849 if [ "$VAL" = "$d" ]; then
1854 [ "$found" = yes ] || ERROR=yes
1856 if [ "$VAR" = "sql" ]; then
1857 # set the CFG_SQL_driver
1858 eval "CFG_SQL_$VAL=\$OPT"
1860 elif [ "$VAR" = "imageformat" ]; then
1861 [ "$OPT" = "qt" ] && OPT=yes
1862 VAL="`echo $VAL |tr a-z A-Z`"
1863 eval "CFG_$VAL=$OPT"
1867 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1868 if [ "$OPT" = "plugin" ]; then
1871 QMakeVar add "${VAR}s" "${VAL}"
1872 elif [ "$OPT" = "no" ]; then
1873 PLUG_VAR="${VAR}-plugin"
1875 QMakeVar del "${IN_VAR}s" "$VAL"
1876 QMakeVar del "${PLUG_VAR}s" "$VAL"
1878 if [ "$ERROR" = "yes" ]; then
1879 echo "$CURRENT_OPT: unknown argument"
1884 if [ "$VAL" = "yes" ]; then
1885 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1886 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1890 elif [ "$VAL" = "no" ]; then
1891 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1892 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1901 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1908 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1915 DEFINES="$DEFINES \"$VAL\""
1916 D_FLAGS="$D_FLAGS -D\"$VAL\""
1919 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1922 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1925 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1928 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1931 if [ "$BUILD_ON_MAC" = "yes" ]; then
1932 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1933 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1939 if [ "$BUILD_ON_MAC" = "yes" ]; then
1940 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1946 W_FLAGS="$W_FLAGS \"${VAL}\""
1952 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1953 CFG_PHONON_BACKEND="$VAL"
1965 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1966 CFG_AUDIO_BACKEND="$VAL"
1972 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1979 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1980 CFG_FORCE_ASSERTS="$VAL"
1986 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
1993 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2003 if [ "$UNKNOWN_OPT" = "yes" ]; then
2004 echo "${CURRENT_OPT}: invalid command-line switch"
2010 # update QT_CONFIG to show our current predefined configuration
2011 case "$CFG_QCONFIG" in
2012 minimal|small|medium|large|full)
2013 # these are a sequence of increasing functionality
2014 for c in minimal small medium large full; do
2015 QT_CONFIG="$QT_CONFIG $c-config"
2016 [ "$CFG_QCONFIG" = $c ] && break
2020 # not known to be sufficient for anything
2021 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2022 echo >&2 "Error: configuration file not found:"
2023 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2025 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2030 #-------------------------------------------------------------------------------
2031 # build tree initialization
2032 #-------------------------------------------------------------------------------
2034 # where to find which..
2035 unixtests="$relpath/config.tests/unix"
2036 mactests="$relpath/config.tests/mac"
2037 WHICH="$unixtests/which.test"
2039 PERL=`$WHICH perl 2>/dev/null`
2041 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2043 for e in gawk nawk awk; do
2044 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2051 PERL="/usr/bin/perl"
2052 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2056 ### skip this if the user just needs help...
2057 if [ "$OPT_HELP" != "yes" ]; then
2059 # is this a shadow build?
2060 if [ "$OPT_SHADOW" = "maybe" ]; then
2062 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2063 if [ -h "$outpath" ]; then
2064 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2070 if [ "$OPT_SHADOW" = "yes" ]; then
2071 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2072 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2073 echo >&2 "Cannot proceed."
2076 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2079 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2081 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2082 echo "Qt can be built in release mode with separate debug information, so"
2083 echo "-debug-and-release is not necessary anymore"
2087 if [ "$CFG_SILENT" = "yes" ]; then
2088 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2091 # if the source tree is different from the build tree,
2092 # symlink or copy part of the sources
2093 if [ "$OPT_SHADOW" = "yes" ]; then
2094 echo "Preparing build tree..."
2096 if [ -z "$PERL" ]; then
2098 echo "You need perl in your PATH to make a shadow build."
2099 echo "Cannot proceed."
2103 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2105 # make a syncqt script that can be used in the shadow
2106 rm -f "$outpath/bin/syncqt"
2107 if [ -x "$relpath/bin/syncqt" ]; then
2108 mkdir -p "$outpath/bin"
2109 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2110 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2111 chmod 755 "$outpath/bin/syncqt"
2114 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2115 rm -f "$outpath/bin/$i"
2116 if [ -x "$relpath/bin/$i" ]; then
2117 mkdir -p "$outpath/bin"
2118 echo "#!/bin/sh" >"$outpath/bin/$i"
2119 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2120 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2121 chmod 755 "$outpath/bin/$i"
2125 # save a pre-existing mkspecs/modules dir
2126 test -d "$outpath/mkspecs/modules" && \
2127 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2129 # symlink the mkspecs directory
2130 mkdir -p "$outpath/mkspecs"
2131 rm -rf "$outpath"/mkspecs/*
2132 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2133 rm -f "$outpath/mkspecs/default"
2137 rm -rf "$outpath/mkspecs/$1"
2138 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2139 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2142 # Special case for mkspecs/features directory.
2143 # To be able to place .prf files into a shadow build directory,
2144 # we're creating links for files only. The directory structure is reproduced.
2145 ShadowMkspecs features
2147 # The modules dir is special, too.
2148 if test -d "$outpath/mkspecs-modules"; then
2149 rm -rf "$outpath/mkspecs/modules"
2150 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2152 ShadowMkspecs modules
2155 # symlink the doc directory
2156 rm -rf "$outpath/doc"
2157 ln -s "$relpath/doc" "$outpath/doc"
2160 # symlink fonts to be able to run application from build directory
2161 if [ ! -d "${outpath}/lib/fonts" ]; then
2162 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2163 mkdir -p "${outpath}/lib"
2164 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2168 if [ "$OPT_FAST" = "auto" ]; then
2169 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2176 # find a make command
2177 if [ -z "$MAKE" ]; then
2179 for mk in gmake make; do
2180 if "$WHICH" $mk >/dev/null 2>&1; then
2185 if [ -z "$MAKE" ]; then
2186 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2187 echo >&2 "Cannot proceed."
2190 # export MAKE, we need it later in the config.tests
2196 #-------------------------------------------------------------------------------
2197 # auto-detect all that hasn't been specified in the arguments
2198 #-------------------------------------------------------------------------------
2200 if [ -z "$PLATFORM" ]; then
2202 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2204 OSX_VERSION=`uname -r | cut -d. -f1`
2205 # Select compiler. Use g++ unless we find a usable Clang version
2207 if [ "$OSX_VERSION" -ge 12 ]; then
2208 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2210 elif [ "$OSX_VERSION" -eq 11 ]; then
2211 # We're on Lion. Check if we have a supported Clang version
2212 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2215 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2222 #PLATFORM=aix-g++-64
2224 #PLATFORM=aix-xlc-64
2226 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2236 # PLATFORM=dynix-g++
2242 PLATFORM=freebsd-g++
2244 - Also available for FreeBSD: freebsd-icc
2248 PLATFORM=openbsd-g++
2259 #PLATFORM=irix-cc-64
2261 - Also available for IRIX: irix-g++ irix-cc-64
2265 case "$UNAME_MACHINE" in
2267 #PLATFORM=hpuxi-acc-32
2268 PLATFORM=hpuxi-acc-64
2270 - Also available for HP-UXi: hpuxi-acc-32
2276 #PLATFORM=hpux-acc-64
2278 #PLATFORM=hpux-acc-o64
2280 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2289 - Also available for Tru64: tru64-g++
2293 case "$UNAME_MACHINE" in
2295 PLATFORM=linux-g++-64
2302 - Also available for Linux: linux-kcc linux-icc linux-cxx
2306 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2307 PLATFORM="solaris-g++"
2309 #PLATFORM=solaris-g++
2311 #PLATFORM=solaris-cc64
2314 - Also available for Solaris: solaris-g++ solaris-cc-64
2317 ReliantUNIX-*:*|SINIX-*:*)
2318 PLATFORM=reliant-cds
2319 #PLATFORM=reliant-cds-64
2321 - Also available for Reliant UNIX: reliant-cds-64
2331 #PLATFORM=unixware-g++
2332 PLATFORM=unixware-cc
2334 - Also available for OpenUNIX: unixware-g++
2338 #PLATFORM=unixware-g++
2339 PLATFORM=unixware-cc
2341 - Also available for UnixWare: unixware-g++
2348 - Also available for SCO OpenServer: sco-g++
2352 PLATFORM=unixware-g++
2355 PLATFORM=unsupported/qnx-g++
2358 if [ "$OPT_HELP" != "yes" ]; then
2360 echo " The build script does not currently recognize all" >&2
2361 echo " platforms supported by Qt." >&2
2362 echo " Rerun this script with a -platform option listed to" >&2
2363 echo " set the system/compiler combination you use." >&2
2370 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2372 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2373 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2374 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2376 if [ -d "$PLATFORM" ]; then
2377 QMAKESPEC="$PLATFORM"
2379 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2381 if [ -d "$XPLATFORM" ]; then
2382 XQMAKESPEC="$XPLATFORM"
2384 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2386 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2387 QT_CROSS_COMPILE=yes
2388 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2389 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2392 if [ "$BUILD_ON_MAC" = "yes" ]; then
2393 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2395 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2396 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2397 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2398 echo " built with 'macx-g++'" >&2
2404 # check specified platforms are supported
2405 if [ '!' -d "$QMAKESPEC" ]; then
2407 echo " The specified system/compiler is not supported:"
2411 echo " Please see the README file for a complete list."
2415 if [ '!' -d "$XQMAKESPEC" ]; then
2417 echo " The specified system/compiler is not supported:"
2421 echo " Please see the README file for a complete list."
2425 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2427 echo " The specified system/compiler port is not complete:"
2429 echo " $XQMAKESPEC/qplatformdefs.h"
2431 echo " Please contact qt-info@nokia.com."
2436 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2437 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2438 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2439 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2440 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2444 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2445 case `basename "$XPLATFORM"` in
2448 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2450 echo "Please contact qt-info@nokia.com to upgrade your license to"
2451 echo "include this platform, or install the Qt Open Source Edition"
2452 echo "if you intend to develop free software."
2458 #-------------------------------------------------------------------------------
2459 # tests that don't need qmake (must be run before displaying help)
2460 #-------------------------------------------------------------------------------
2462 # detect build style
2463 if [ "$CFG_DEBUG" = "auto" ]; then
2464 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2465 CFG_DEBUG_RELEASE=yes
2467 elif [ "$CFG_DEV" = "yes" ]; then
2468 CFG_DEBUG_RELEASE=no
2471 CFG_DEBUG_RELEASE=no
2475 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2476 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2479 # pass on $CFG_SDK to the configure tests.
2480 if [ '!' -z "$CFG_SDK" ]; then
2481 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2484 # find the default framework value
2485 if [ "$BUILD_ON_MAC" = "yes" ]; then
2486 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2487 CFG_FRAMEWORK="$CFG_SHARED"
2488 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2490 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2498 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2500 TEST_COMPILER=$QMAKE_CONF_COMPILER
2501 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2502 if [ -z "$TEST_COMPILER" ]; then
2503 echo "ERROR: Cannot set the compiler for the configuration tests"
2509 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2510 if [ -n "$GCC_MACHINE_DUMP" ]; then
2511 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2514 if [ -n "$CFG_SYSROOT" ]; then
2515 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2519 export SYSROOT_FLAG # used by config.tests/unix/compile.test
2521 # auto-detect precompiled header support
2522 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2523 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2530 # auto-detect support for separate debug info in objcopy
2531 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2532 TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2533 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2534 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2535 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2536 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2537 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2538 CFG_SEPARATE_DEBUG_INFO=no
2542 # binutils on HP-UX is buggy; default to no.
2543 CFG_SEPARATE_DEBUG_INFO=no
2546 CFG_SEPARATE_DEBUG_INFO=yes
2552 # auto-detect -fvisibility support
2553 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2554 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2555 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2556 echo "-reduce-exports was requested but this compiler does not support it"
2557 echo "Re-run configure with -v for more information"
2560 CFG_REDUCE_EXPORTS=no
2562 CFG_REDUCE_EXPORTS=yes
2566 # detect the availability of the -Bsymbolic-functions linker optimization
2567 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2568 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2569 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2570 echo "-reduce-relocations was requested but this compiler does not support it"
2571 echo "Re-run configure with -v for more information"
2574 CFG_REDUCE_RELOCATIONS=no
2576 CFG_REDUCE_RELOCATIONS=yes
2580 # auto-detect GNU make support
2581 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2585 # find the default framework value
2586 if [ "$BUILD_ON_MAC" = "yes" ]; then
2587 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2588 CFG_FRAMEWORK="$CFG_SHARED"
2589 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2591 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2599 #setup the build parts
2600 if [ -z "$CFG_BUILD_PARTS" ]; then
2601 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2603 # build tests by default, if a developer build
2604 if [ "$CFG_DEV" = "yes" ]; then
2605 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2608 # don't build tools by default when cross-compiling
2609 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2610 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2613 for nobuild in $CFG_NOBUILD_PARTS; do
2614 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2616 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2618 # echo "WARNING: libs is a required part of the build."
2620 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2623 #-------------------------------------------------------------------------------
2624 # post process QT_INSTALL_* variables
2625 #-------------------------------------------------------------------------------
2627 if [ -z "$QT_INSTALL_PREFIX" ]; then
2628 if [ "$CFG_DEV" = "yes" ]; then
2629 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2631 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2634 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2636 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2637 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2638 if [ "$BUILD_ON_MAC" = "yes" ]; then
2639 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2642 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2645 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2647 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2648 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2649 if [ "$BUILD_ON_MAC" = "yes" ]; then
2650 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2655 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2658 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2660 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2661 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2662 if [ "$BUILD_ON_MAC" = "yes" ]; then
2663 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2664 QT_INSTALL_LIBS="/Libraries/Frameworks"
2668 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2670 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2672 if [ -z "$QT_INSTALL_BINS" ]; then #default
2673 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2674 if [ "$BUILD_ON_MAC" = "yes" ]; then
2675 QT_INSTALL_BINS="/Developer/Applications/Qt"
2678 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2680 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2682 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2683 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2684 if [ "$BUILD_ON_MAC" = "yes" ]; then
2685 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2688 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2690 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2692 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2693 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2694 if [ "$BUILD_ON_MAC" = "yes" ]; then
2695 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2698 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2700 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2702 if [ -z "$QT_INSTALL_DATA" ]; then #default
2703 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2705 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2707 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2708 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2710 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2712 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2713 if [ "$BUILD_ON_MAC" = "yes" ]; then
2714 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2716 QT_INSTALL_SETTINGS=/etc/xdg
2719 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2721 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2722 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2723 if [ "$BUILD_ON_MAC" = "yes" ]; then
2724 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2727 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2729 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2732 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2733 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2734 if [ "$BUILD_ON_MAC" = "yes" ]; then
2735 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2738 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2740 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2742 #------- host paths --------
2744 if [ -z "$QT_HOST_PREFIX" ]; then
2745 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2748 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2752 if [ -z "$QT_HOST_BINS" ]; then #default
2754 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2755 if [ "$BUILD_ON_MAC" = "yes" ]; then
2756 QT_HOST_BINS="/Developer/Applications/Qt"
2759 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2761 QT_HOST_BINS="$QT_INSTALL_BINS"
2764 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2766 if [ -z "$QT_HOST_DATA" ]; then #default
2768 QT_HOST_DATA="$QT_HOST_PREFIX"
2770 QT_HOST_DATA="$QT_INSTALL_DATA"
2773 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2776 #-------------------------------------------------------------------------------
2777 # help - interactive parts of the script _after_ this section please
2778 #-------------------------------------------------------------------------------
2780 # next, emit a usage message if something failed.
2781 if [ "$OPT_HELP" = "yes" ]; then
2782 [ "x$ERROR" = "xyes" ] && echo
2783 if [ "$CFG_NIS" = "no" ]; then
2790 if [ "$CFG_CUPS" = "no" ]; then
2797 if [ "$CFG_ICONV" = "no" ]; then
2804 if [ "$CFG_LARGEFILE" = "no" ]; then
2811 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2819 if [ "$CFG_XCB" = "no" ]; then
2827 if [ "$CFG_EGLFS" = "no" ]; then
2835 if [ "$CFG_DIRECTFB" = "no" ]; then
2842 if [ "$CFG_XINPUT2" = "no" ]; then
2850 if [ "$CFG_DBUS" = "no" ]; then
2858 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2866 if [ "$CFG_GLIB" = "no" ]; then
2875 Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
2876 [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
2877 [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>] [-testsdir <dir>]
2878 [-release] [-debug] [-debug-and-release] [-c++11] [-no-c++11]
2879 [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
2880 [-largefile] [-no-accessibility] [-accessibility] [-no-sql-<driver>] [-sql-<driver>]
2881 [-plugin-sql-<driver>] [-system-sqlite]
2882 [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
2883 [-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng] [-qt-libpng] [-system-libpng]
2884 [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
2885 [-nomake <part>] [-R <string>] [-l <string>] [-no-rpath] [-rpath] [-continue]
2886 [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
2887 [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
2888 [-no-separate-debug-info] [-no-sse2]
2889 [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
2890 [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info]
2891 [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
2892 [-no-audio-backend] [-audio-backend]
2893 [-no-javascript-jit] [-javascript-jit] [-no-qml-debug] [-qml-debug]
2894 [-no-optimized-qmake] [-optimized-qmake]
2895 [-no-openssl] [-openssl] [-openssl-linked]
2896 [-no-gtkstyle] [-gtkstyle]
2897 [-qt-pcre] [-system-pcre]
2898 [-device <name>] [-device-option <key=value>]
2899 [additional platform specific options (see below)]
2902 Installation options:
2904 These are optional, but you may specify install directories.
2906 -prefix <dir> ...... This will install everything relative to <dir>
2907 (default $QT_INSTALL_PREFIX)
2909 -hostprefix [dir] .. Tools and libraries needed when developing
2910 applications are installed in [dir]. If [dir] is
2911 not given, the current build directory will be used.
2914 * -prefix-install .... Force a sandboxed "local" installation of
2915 Qt. This will install into
2916 $QT_INSTALL_PREFIX, if this option is
2917 disabled then some platforms will attempt a
2918 "system" install by placing default values to
2919 be placed in a system location other than
2922 You may use these to separate different parts of the install:
2924 -bindir <dir> ......... Executables will be installed to <dir>
2925 (default PREFIX/bin)
2926 -libdir <dir> ......... Libraries will be installed to <dir>
2927 (default PREFIX/lib)
2928 -docdir <dir> ......... Documentation will be installed to <dir>
2929 (default PREFIX/doc)
2930 -headerdir <dir> ...... Headers will be installed to <dir>
2931 (default PREFIX/include)
2932 -plugindir <dir> ...... Plugins will be installed to <dir>
2933 (default PREFIX/plugins)
2934 -importdir <dir> ...... Imports for QML will be installed to <dir>
2935 (default PREFIX/imports)
2936 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2938 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2939 (default PREFIX/translations)
2940 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2941 (default PREFIX/etc/settings)
2942 -examplesdir <dir> .... Examples will be installed to <dir>
2943 (default PREFIX/examples)
2944 -testsdir <dir> ....... Tests will be installed to <dir>
2945 (default PREFIX/tests)
2947 -hostbindir <dir> .. Host executables will be installed to <dir>
2948 (default HOSTPREFIX/bin)
2949 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2950 (default HOSTPREFIX)
2954 The defaults (*) are usually acceptable. A plus (+) denotes a default value
2955 that needs to be evaluated. If the evaluation succeeds, the feature is
2956 included. Here is a short explanation of each option:
2958 * -release ........... Compile and link Qt with debugging turned off.
2959 -debug ............. Compile and link Qt with debugging turned on.
2960 -debug-and-release . Compile and link two versions of Qt, with and without
2961 debugging turned on (Mac only).
2963 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2965 -opensource ........ Compile and link the Open-Source Edition of Qt.
2966 -commercial ........ Compile and link the Commercial Edition of Qt.
2968 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
2969 + -c++11 ............. Compile Qt with C++11 support enabled.
2971 * -shared ............ Create and use shared Qt libraries.
2972 -static ............ Create and use static Qt libraries.
2974 * -no-fast ........... Configure Qt normally by generating Makefiles for all
2976 -fast .............. Configure Qt quickly by generating Makefiles only for
2977 library and subdirectory targets. All other Makefiles
2978 are created as wrappers, which will in turn run qmake.
2980 -no-largefile ...... Disables large file support.
2981 + -largefile ......... Enables Qt to access files larger than 4 GB.
2983 -no-accessibility .. Do not compile Accessibility support.
2984 * -accessibility ..... Compile Accessibility support.
2986 -no-sql-<driver> ... Disable SQL <driver> entirely.
2987 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
2989 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
2992 Possible values for <driver>:
2993 [ $CFG_SQL_AVAILABLE ]
2995 -system-sqlite ..... Use sqlite from the operating system.
2997 -no-phonon-backend.. Do not build the platform phonon plugin.
2998 + -phonon-backend..... Build the platform phonon plugin.
3000 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3001 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3003 -no-qml-debug ...... Do not build the in-process QML debugging support.
3004 + -qml-debug ......... Build the QML debugging support.
3006 -platform target ... The operating system and compiler you are building
3009 See the README file for a list of supported
3010 operating systems and compilers.
3012 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3013 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3014 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3015 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3016 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3017 -no-avx ............ Do not compile with use of AVX instructions.
3018 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3019 -no-neon ........... Do not compile with use of NEON instructions.
3020 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3021 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3023 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3024 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3026 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3028 -D <string> ........ Add an explicit define to the preprocessor.
3029 -I <string> ........ Add an explicit include path.
3030 -L <string> ........ Add an explicit library path.
3032 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3033 configure determines whether to use pkg-config or not with
3034 some heuristics such as checking the environment variables.
3035 -no-pkg-config ..... Disable use of pkg-config.
3036 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3037 detection heuristic).
3039 -help, -h .......... Display this information.
3041 Third Party Libraries:
3043 -qt-zlib ........... Use the zlib bundled with Qt.
3044 + -system-zlib ....... Use zlib from the operating system.
3045 See http://www.gzip.org/zlib
3047 -no-gif ............ Do not compile GIF reading support.
3049 -no-libpng ......... Do not compile PNG support.
3050 -qt-libpng ......... Use the libpng bundled with Qt.
3051 + -system-libpng ..... Use libpng from the operating system.
3052 See http://www.libpng.org/pub/png
3054 -no-libjpeg ........ Do not compile JPEG support.
3055 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3056 + -system-libjpeg .... Use libjpeg from the operating system.
3057 See http://www.ijg.org
3059 -no-openssl ........ Do not compile support for OpenSSL.
3060 + -openssl ........... Enable run-time OpenSSL support.
3061 -openssl-linked .... Enabled linked OpenSSL support.
3063 -qt-pcre ........... Use the PCRE library bundled with Qt.
3064 + -system-pcre ....... Use the PCRE library from the operating system.
3068 -make <part> ....... Add part to the list of parts to be built at make time.
3069 ($QT_DEFAULT_BUILD_PARTS)
3070 -nomake <part> ..... Exclude part from the list of parts to be built.
3072 -R <string> ........ Add an explicit runtime library path to the Qt
3074 -l <string> ........ Add an explicit library.
3076 -no-rpath .......... Do not use the library install path as a runtime
3078 + -rpath ............. Link Qt libraries and executables using the library
3079 install path as a runtime library path. Equivalent
3080 to -R install_libpath
3082 -continue .......... Continue as far as possible if an error occurs.
3084 -verbose, -v ....... Print verbose information about each step of the
3087 -silent ............ Reduce the build output so that warnings and errors
3088 can be seen more easily.
3090 * -no-optimized-qmake ... Do not build qmake optimized.
3091 -optimized-qmake ...... Build qmake optimized.
3093 -no-gui ............ Don't build the Qt GUI library
3095 $NSN -no-nis ............ Do not compile NIS support.
3096 $NSY -nis ............... Compile NIS support.
3098 $CUN -no-cups ........... Do not compile CUPS support.
3099 $CUY -cups .............. Compile CUPS support.
3100 Requires cups/cups.h and libcups.so.2.
3102 $CIN -no-iconv .......... Do not compile support for iconv(3).
3103 $CIY -iconv ............. Compile support for iconv(3).
3105 $PHN -no-pch ............ Do not use precompiled header support.
3106 $PHY -pch ............... Use precompiled header support.
3108 $DBN -no-dbus ........... Do not compile the QtDBus module.
3109 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3110 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3112 -reduce-relocations ..... Reduce relocations in the libraries through extra
3113 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3114 experimental; needs GNU ld >= 2.18).
3116 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3118 -device <name> ............... Cross-compile for device <name> (experimental)
3119 -device-option <key=value> ... Add device specific options for the device mkspec
3122 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3123 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3125 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3126 $XCBY -xcb ............... Compile Xcb support.
3128 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3129 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3131 $DFBN -no-directfb ....... Do not compile DirectFB support.
3132 $DFBY -directfb .......... Compile DirectFB support.
3134 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3136 -xplatform target ... The target platform when cross-compiling.
3138 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot.
3140 -no-feature-<feature> Do not compile in <feature>.
3141 -feature-<feature> .. Compile in <feature>. The available features
3142 are described in src/corelib/global/qfeatures.txt
3144 -no-freetype ........ Do not compile in Freetype2 support.
3145 -qt-freetype ........ Use the libfreetype bundled with Qt.
3146 * -system-freetype .... Use libfreetype from the operating system.
3147 See http://www.freetype.org/
3149 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3150 default ($CFG_QCONFIG).
3152 -no-opengl .......... Do not support OpenGL.
3153 -opengl <api> ....... Enable OpenGL support
3154 With no parameter, this will attempt to auto-detect
3155 OpenGL ES 2, or regular desktop OpenGL.
3156 Use es2 for <api> to override auto-detection.
3158 $GBN -no-glib ........... Do not compile Glib support.
3159 $GBY -glib .............. Compile Glib support.
3162 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3165 $X2N -no-xinput2......... Do not compile XInput2 support.
3166 $X2Y -xinput2............ Compile XInput2 support.
3172 if [ "$BUILD_ON_MAC" = "yes" ]; then
3177 -Fstring ........... Add an explicit framework path.
3178 -fw string ......... Add an explicit framework.
3180 * -framework ......... Build Qt as a series of frameworks and
3181 link tools against those frameworks.
3182 -no-framework ...... Do not build Qt as a series of frameworks.
3184 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3185 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3187 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3188 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3189 QT_ENABLE_HARFBUZZ environment variable.
3194 [ "x$ERROR" = "xyes" ] && exit 1
3199 # -----------------------------------------------------------------------------
3200 # LICENSING, INTERACTIVE PART
3201 # -----------------------------------------------------------------------------
3204 echo "This is the Qt ${EditionString} Edition."
3207 if [ "$Edition" = "OpenSource" ]; then
3209 echo "You are licensed to use this software under the terms of"
3210 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3211 if [ -f "$relpath/LICENSE.GPL3" ]; then
3212 echo "You are also licensed to use this software under the terms of"
3213 echo "the GNU General Public License (GPL) versions 3."
3219 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3220 echo "You have already accepted the terms of the $LicenseType license."
3223 if [ -f "$relpath/LICENSE.GPL3" ]; then
3224 echo "Type '3' to view the GNU General Public License version 3."
3226 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3227 echo "Type 'yes' to accept this license offer."
3228 echo "Type 'no' to decline this license offer."
3230 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3234 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3236 elif [ "$acceptance" = "no" ]; then
3237 echo "You are not licensed to use this software."
3240 elif [ "$acceptance" = "3" ]; then
3241 more "$relpath/LICENSE.GPL3"
3242 elif [ "$acceptance" = "L" ]; then
3243 more "$relpath/LICENSE.LGPL"
3246 elif [ "$Edition" = "Preview" ]; then
3247 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3250 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3251 echo "You have already accepted the terms of the $LicenseType license."
3254 echo "You are licensed to use this software under the terms of"
3255 echo "the $TheLicense"
3257 echo "Type '?' to read the Preview License."
3258 echo "Type 'yes' to accept this license offer."
3259 echo "Type 'no' to decline this license offer."
3261 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3265 if [ "$acceptance" = "yes" ]; then
3267 elif [ "$acceptance" = "no" ] ;then
3268 echo "You are not licensed to use this software."
3271 elif [ "$acceptance" = "?" ]; then
3272 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3275 elif [ "$Edition" != "OpenSource" ]; then
3276 if [ -n "$ExpiryDate" ]; then
3277 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3278 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3279 Today=`date +%Y%m%d`
3280 if [ "$Today" -gt "$ExpiryDate" ]; then
3281 case "$LicenseType" in
3282 Commercial|Academic|Educational)
3283 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3285 echo "NOTICE NOTICE NOTICE NOTICE"
3287 echo " Your support and upgrade period has expired."
3289 echo " You are no longer licensed to use this version of Qt."
3290 echo " Please contact qt-info@nokia.com to renew your support"
3291 echo " and upgrades for this license."
3293 echo "NOTICE NOTICE NOTICE NOTICE"
3298 echo "WARNING WARNING WARNING WARNING"
3300 echo " Your support and upgrade period has expired."
3302 echo " You may continue to use your last licensed release"
3303 echo " of Qt under the terms of your existing license"
3304 echo " agreement. But you are not entitled to technical"
3305 echo " support, nor are you entitled to use any more recent"
3306 echo " Qt releases."
3308 echo " Please contact qt-info@nokia.com to renew your"
3309 echo " support and upgrades for this license."
3311 echo "WARNING WARNING WARNING WARNING"
3318 echo "NOTICE NOTICE NOTICE NOTICE"
3320 echo " Your Evaluation license has expired."
3322 echo " You are no longer licensed to use this software. Please"
3323 echo " contact qt-info@nokia.com to purchase license, or install"
3324 echo " the Qt Open Source Edition if you intend to develop free"
3327 echo "NOTICE NOTICE NOTICE NOTICE"
3334 TheLicense=`head -n 1 "$outpath/LICENSE"`
3336 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3337 echo "You have already accepted the terms of the $TheLicense."
3340 echo "You are licensed to use this software under the terms of"
3341 echo "the $TheLicense."
3343 echo "Type '?' to view the $TheLicense."
3344 echo "Type 'yes' to accept this license offer."
3345 echo "Type 'no' to decline this license offer."
3347 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3351 if [ "$acceptance" = "yes" ]; then
3353 elif [ "$acceptance" = "no" ]; then
3354 echo "You are not licensed to use this software."
3357 else [ "$acceptance" = "?" ]
3358 more "$outpath/LICENSE"
3363 # this should be moved somewhere else
3366 AIX_VERSION=`uname -v`
3367 if [ "$AIX_VERSION" -lt "5" ]; then
3368 QMakeVar add QMAKE_LIBS_X11 -lbind
3375 #-------------------------------------------------------------------------------
3376 # generate qconfig.cpp
3377 #-------------------------------------------------------------------------------
3378 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3380 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3382 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3383 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3385 /* Installation date */
3386 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3388 /* Installation Info */
3389 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3390 "qt_prfxpath=$QT_INSTALL_PREFIX",
3391 "qt_docspath=$QT_INSTALL_DOCS",
3392 "qt_hdrspath=$QT_INSTALL_HEADERS",
3393 "qt_libspath=$QT_INSTALL_LIBS",
3394 "qt_binspath=$QT_INSTALL_BINS",
3395 "qt_plugpath=$QT_INSTALL_PLUGINS",
3396 "qt_impspath=$QT_INSTALL_IMPORTS",
3397 "qt_datapath=$QT_INSTALL_DATA",
3398 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3399 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3400 "qt_tstspath=$QT_INSTALL_TESTS",
3401 #ifdef QT_BUILD_QMAKE
3402 "qt_ssrtpath=$CFG_SYSROOT",
3403 "qt_hpfxpath=$QT_HOST_PREFIX",
3404 "qt_hbinpath=$QT_HOST_BINS",
3405 "qt_hdatpath=$QT_HOST_DATA",
3408 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3411 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3413 /* strlen( "qt_lcnsxxxx" ) == 12 */
3414 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3415 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3417 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3420 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3421 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3422 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3424 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3425 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3426 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3429 # -----------------------------------------------------------------------------
3430 if [ "$LicenseType" = "Evaluation" ]; then
3431 EVALKEY=qt_qevalkey=$LicenseKeyExt
3432 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3433 EVALKEY=qt_qevalkey=
3436 if [ -n "$EVALKEY" ]; then
3437 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3438 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3439 /* Evaluation license key */
3440 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3442 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3446 # -----------------------------------------------------------------------------
3448 # -----------------------------------------------------------------------------
3451 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3453 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3454 if [ "$OPT_SHADOW" = "yes" ]; then
3455 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3456 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3457 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3461 # $1: input variable name (awk regexp)
3462 # $2: optional output variable name
3463 # $3: optional value transformation (sed command)
3464 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3465 # is where the resulting variable is written to
3466 setBootstrapVariable()
3468 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3472 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3473 echo "Creating qmake. Please wait..."
3476 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3477 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3478 if [ -f "$QCONFIG_H" ]; then
3479 OLD_QCONFIG_H=$QCONFIG_H
3480 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3483 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3484 # when building qmake, we use #defines for the install paths,
3485 # however they are real functions in the library
3486 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3487 mkdir -p "$outpath/src/corelib/global"
3488 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3489 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3492 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3494 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3495 rm -rf mkspecs/default mkspecs/default-host
3496 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3497 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3498 mkdir -p "$outpath/qmake" || exit
3500 for mkfile in GNUmakefile Makefile; do
3503 in_mkfile="${mkfile}.in"
3504 if [ "$mkfile" = "Makefile" ]; then
3505 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3506 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3508 in_mkfile="${mkfile}.unix"
3510 in_mkfile="$relpath/qmake/$in_mkfile"
3511 mkfile="$outpath/qmake/$mkfile"
3512 if [ -f "$mkfile" ]; then
3513 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3516 [ -f "$in_mkfile" ] || continue
3518 echo "########################################################################" > "$mkfile"
3519 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3520 echo "########################################################################" >> "$mkfile"
3523 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3524 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3525 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3527 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3528 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3531 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3532 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3533 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3534 setBootstrapVariable QMAKE_CFLAGS
3535 setBootstrapVariable QMAKE_CXXFLAGS
3536 setBootstrapVariable QMAKE_LFLAGS
3538 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3539 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3540 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3542 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3543 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3544 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3545 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3546 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3547 elif [ "$CFG_DEBUG" = "yes" ]; then
3548 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3549 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3550 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3551 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3554 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3555 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3556 for rpath in $RPATH_FLAGS; do
3557 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3560 if [ "$BUILD_ON_MAC" = "yes" ]; then
3561 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3562 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3563 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3564 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3565 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3566 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3567 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3568 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3569 if [ '!' -z "$CFG_SDK" ]; then
3570 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3571 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3572 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3573 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3574 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3577 if [ '!' -z "$D_FLAGS" ]; then
3578 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3580 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3581 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3582 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3583 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3585 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3586 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3587 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3588 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3589 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3590 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3591 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3592 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3593 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3594 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3596 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3597 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3598 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3599 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3604 QMAKE_BUILD_ERROR=no
3605 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3606 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3607 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3608 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3611 #-------------------------------------------------------------------------------
3612 # create a qt.conf for the Qt build tree itself
3613 #-------------------------------------------------------------------------------
3615 QTCONFFILE="$outpath/bin/qt.conf"
3616 cat > "$QTCONFFILE" <<EOF
3621 #-------------------------------------------------------------------------------
3623 #-------------------------------------------------------------------------------
3624 if [ -z "$PKG_CONFIG" ]; then
3625 # See if PKG_CONFIG is set in the mkspec:
3626 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3628 if [ -z "$PKG_CONFIG" ]; then
3629 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3632 if [ "$CFG_PKGCONFIG" = "no" ]; then
3634 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3636 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3637 echo >&2 "a correctly setup pkg-config environment!"
3639 elif [ -n "$PKG_CONFIG" ]; then
3640 # found a pkg-config
3641 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3642 # when xcompiling, check environment to see if it's actually usable
3643 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3644 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3645 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3646 if [ -n "$GCC_MACHINE_DUMP" ]; then
3647 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3649 export PKG_CONFIG_LIBDIR
3650 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3651 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3652 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3653 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3654 echo >&2 "Set this variable to the directory that contains target .pc files"
3655 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3656 echo >&2 "use -force-pkg-config to override this test."
3660 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3663 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3664 if [ -n "$CFG_SYSROOT" ]; then
3665 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3666 export PKG_CONFIG_SYSROOT_DIR
3667 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3668 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3669 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3670 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3671 echo >&2 "or use -force-pkg-config to override this test."
3675 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3679 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3680 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3684 if [ -z "$PKG_CONFIG" ]; then
3685 QT_CONFIG="$QT_CONFIG no-pkg-config"
3688 #-------------------------------------------------------------------------------
3689 # write out device config before we run the test.
3690 #-------------------------------------------------------------------------------
3691 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3692 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3693 rm -f "$DEVICE_VARS_FILE"
3695 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3696 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3699 #-------------------------------------------------------------------------------
3700 # tests that need qmake
3701 #-------------------------------------------------------------------------------
3703 #-------------------------------------------------------------------------------
3704 # determine the target and host architectures
3705 #-------------------------------------------------------------------------------
3707 # Use config.tests/arch/arch.pro to has the compiler tell us what the target architecture is
3708 OUTFILE=$outpath/arch.result
3709 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG"
3710 if [ $? -eq 0 ]; then
3711 eval `cat "$OUTFILE"`
3714 echo "Could not determine the target architecture!"
3715 echo "Turn on verbose messaging (-v) to see the final report."
3717 rm -f "$OUTFILE" 2>/dev/null
3718 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3720 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3721 # Do the same test again, using the host compiler
3722 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST"
3723 if [ $? -eq 0 ]; then
3724 eval `cat "$OUTFILE"`
3727 echo "Could not determine the host architecture!"
3728 echo "Turn on verbose messaging (-v) to see the final report."
3730 rm -f "$OUTFILE" 2>/dev/null
3731 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3733 # not cross compiling, host == target
3734 CFG_HOST_ARCH="$CFG_ARCH"
3735 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3739 if [ "$OPT_VERBOSE" = "yes" ]; then
3740 echo "System architecture: '$CFG_ARCH'"
3741 echo "Host architecture: '$CFG_HOST_ARCH'"
3744 #-------------------------------------------------------------------------------
3745 # functionality tests
3746 #-------------------------------------------------------------------------------
3748 # Detect C++11 support
3749 if [ "$CFG_CXX11" != "no" ]; then
3750 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/c++11 "C++11" $L_FLAGS $I_FLAGS $l_FLAGS; then
3752 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3753 echo "C++11 support cannot be enabled due to functionality tests!"
3754 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3755 echo " If you believe this message is in error you may use the continue"
3756 echo " switch (-continue) to $0 to continue."
3763 # detect availability of float math.h functions
3764 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3765 CFG_USE_FLOATMATH=yes
3767 CFG_USE_FLOATMATH=no
3770 # detect sse2 support
3771 if [ "${CFG_SSE2}" = "auto" ]; then
3772 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/common/sse2 "sse2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3779 # detect sse3 support
3780 if [ "${CFG_SSE3}" = "auto" ]; then
3781 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/common/sse3 "sse3" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3788 # detect ssse3 support
3789 if [ "${CFG_SSSE3}" = "auto" ]; then
3790 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/common/ssse3 "ssse3" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3797 # detect sse4.1 support
3798 if [ "${CFG_SSE4_1}" = "auto" ]; then
3799 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/common/sse4_1 "sse4_1" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3806 # detect sse4.2 support
3807 if [ "${CFG_SSE4_2}" = "auto" ]; then
3808 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/common/sse4_2 "sse4_2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3815 # detect avx support
3816 if [ "${CFG_AVX}" = "auto" ]; then
3817 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/common/avx "avx" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3818 case "$XQMAKESPEC" in
3820 # Some clang versions produce internal compiler errors compiling Qt AVX code
3821 case `$TEST_COMPILER --version` in
3822 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3824 if [ "$OPT_VERBOSE" = "yes" ]; then
3825 echo 'AVX support disabled for blacklisted clang compiler'
3842 # detect avx2 support
3843 if [ "${CFG_AVX}" = "no" ]; then
3846 if [ "${CFG_AVX2}" = "auto" ]; then
3847 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/common/avx2 "avx2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3854 # check iWMMXt support
3855 if [ "$CFG_IWMMXT" = "yes" ]; then
3856 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
3857 if [ $? != "0" ]; then
3858 echo "The iWMMXt functionality test failed!"
3859 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3864 # detect neon support
3865 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3866 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/neon "neon" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3871 elif [ "$CFG_ARCH" != "arm" ]; then
3875 # detect mips_dsp support
3876 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3882 # detect mips_dspr2 support
3883 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3889 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3892 if [ "$CFG_ZLIB" = "no" ]; then
3893 # Note: Qt no longer support builds without zlib
3894 # So we force a "no" to be "auto" here.
3895 # If you REALLY really need no zlib support, you can still disable
3896 # it by doing the following:
3897 # add "no-zlib" to mkspecs/qconfig.pri
3898 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3900 # There's no guarantee that Qt will build under those conditions
3905 if [ "$CFG_ZLIB" = "auto" ]; then
3906 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3913 if [ "$CFG_LARGEFILE" = "auto" ]; then
3914 #Large files should be enabled for all Linux systems
3918 if [ "$CFG_GUI" = "no" ]; then
3919 QPA_PLATFORM_GUARD=no
3922 # detect how jpeg should be built
3923 if [ "$CFG_JPEG" = "auto" ]; then
3924 if [ "$CFG_SHARED" = "yes" ]; then
3931 if [ "$CFG_LIBJPEG" = "auto" ]; then
3932 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3939 # detect how gif should be built
3940 if [ "$CFG_GIF" = "auto" ]; then
3941 if [ "$CFG_SHARED" = "yes" ]; then
3949 if [ "$CFG_LIBPNG" = "auto" ]; then
3950 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
3957 # detect accessibility
3958 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3959 CFG_ACCESSIBILITY=yes
3962 if [ "$CFG_EGLFS" = "yes" ]; then
3963 if [ "$CFG_EGL" = "no" ]; then
3964 echo "The EGLFS plugin requires EGL support and cannot be built"
3967 if [ "$CFG_OPENGL" != "es2" ]; then
3968 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
3975 # auto-detect SQL-modules support
3976 for _SQLDR in $CFG_SQL_AVAILABLE; do
3979 if [ "$CFG_SQL_mysql" != "no" ]; then
3980 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
3981 if [ -x "$CFG_MYSQL_CONFIG" ]; then
3982 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
3983 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
3984 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
3985 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
3986 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
3988 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
3989 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3990 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
3991 echo " You need MySql 4 or higher."
3992 echo " If you believe this message is in error you may use the continue"
3993 echo " switch (-continue) to $0 to continue."
3998 QT_LFLAGS_MYSQL_R=""
4002 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 $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4003 QMakeVar add CONFIG use_libmysqlclient_r
4004 if [ "$CFG_SQL_mysql" = "auto" ]; then
4005 CFG_SQL_mysql=plugin
4007 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4008 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 $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4009 if [ "$CFG_SQL_mysql" = "auto" ]; then
4010 CFG_SQL_mysql=plugin
4013 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4014 echo "MySQL support cannot be enabled due to functionality tests!"
4015 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4016 echo " If you believe this message is in error you may use the continue"
4017 echo " switch (-continue) to $0 to continue."
4022 QT_LFLAGS_MYSQL_R=""
4030 if [ "$CFG_SQL_psql" != "no" ]; then
4031 # Be careful not to use native pg_config when cross building.
4032 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4033 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4034 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4036 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4037 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4038 # But, respect PSQL_LIBS if set
4039 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4040 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 $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4041 if [ "$CFG_SQL_psql" = "auto" ]; then
4045 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4046 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4047 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4048 echo " If you believe this message is in error you may use the continue"
4049 echo " switch (-continue) to $0 to continue."
4060 if [ "$CFG_SQL_odbc" != "no" ]; then
4061 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 $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4062 if [ "$CFG_SQL_odbc" = "auto" ]; then
4066 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iodbc "iODBC" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4067 QT_LFLAGS_ODBC="-liodbc"
4068 if [ "$CFG_SQL_odbc" = "auto" ]; then
4072 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4073 echo "ODBC support cannot be enabled due to functionality tests!"
4074 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4075 echo " If you believe this message is in error you may use the continue"
4076 echo " switch (-continue) to $0 to continue."
4086 if [ "$CFG_SQL_oci" != "no" ]; then
4087 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4088 if [ "$CFG_SQL_oci" = "auto" ]; then
4092 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4093 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4094 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4095 echo " If you believe this message is in error you may use the continue"
4096 echo " switch (-continue) to $0 to continue."
4105 if [ "$CFG_SQL_tds" != "no" ]; then
4106 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4107 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4108 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $QT_LFLAGS_TDS $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4109 if [ "$CFG_SQL_tds" = "auto" ]; then
4113 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4114 echo "TDS support cannot be enabled due to functionality tests!"
4115 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4116 echo " If you believe this message is in error you may use the continue"
4117 echo " switch (-continue) to $0 to continue."
4126 if [ "$CFG_SQL_db2" != "no" ]; then
4127 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4128 if [ "$CFG_SQL_db2" = "auto" ]; then
4132 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4133 echo "ODBC 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."
4145 if [ "$CFG_SQL_ibase" != "no" ]; then
4146 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4147 if [ "$CFG_SQL_ibase" = "auto" ]; then
4148 CFG_SQL_ibase=plugin
4151 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4152 echo "InterBase support cannot be enabled due to functionality tests!"
4153 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4154 echo " If you believe this message is in error you may use the continue"
4155 echo " switch (-continue) to $0 to continue."
4164 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4165 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4166 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4167 CFG_SQL_sqlite2=plugin
4170 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4171 echo "SQLite2 support cannot be enabled due to functionality tests!"
4172 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4173 echo " If you believe this message is in error you may use the continue"
4174 echo " switch (-continue) to $0 to continue."
4183 if [ "$CFG_SQL_sqlite" != "no" ]; then
4184 SQLITE_AUTODETECT_FAILED="no"
4185 if [ "$CFG_SQLITE" = "system" ]; then
4186 if [ -n "$PKG_CONFIG" ]; then
4187 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4188 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4190 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 $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4191 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4192 CFG_SQL_sqlite=plugin
4194 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4196 SQLITE_AUTODETECT_FAILED="yes"
4199 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4200 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4201 CFG_SQL_sqlite=plugin
4204 SQLITE_AUTODETECT_FAILED="yes"
4208 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4209 echo "SQLite support cannot be enabled due to functionality tests!"
4210 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4211 echo " If you believe this message is in error you may use the continue"
4212 echo " switch (-continue) to $0 to continue."
4218 if [ "$OPT_VERBOSE" = "yes" ]; then
4219 echo "unknown SQL driver: $_SQLDR"
4225 # auto-detect NIS support
4226 if [ "$CFG_NIS" != "no" ]; then
4227 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4230 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4231 echo "NIS support cannot be enabled due to functionality tests!"
4232 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4233 echo " If you believe this message is in error you may use the continue"
4234 echo " switch (-continue) to $0 to continue."
4242 # auto-detect CUPS support
4243 if [ "$CFG_CUPS" != "no" ]; then
4244 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4247 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4248 echo "Cups support cannot be enabled due to functionality tests!"
4249 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4250 echo " If you believe this message is in error you may use the continue"
4251 echo " switch (-continue) to $0 to continue."
4259 # auto-detect iconv(3) support
4260 if [ "$CFG_ICONV" != "no" ]; then
4261 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4263 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4265 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/sun-libiconv" "SUN libiconv" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4267 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/gnu-libiconv" "GNU libiconv" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4270 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4271 echo "Iconv support cannot be enabled due to functionality tests!"
4272 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4273 echo " If you believe this message is in error you may use the continue"
4274 echo " switch (-continue) to $0 to continue."
4282 # auto-detect libdbus-1 support
4283 if [ "$CFG_DBUS" != "no" ]; then
4284 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4285 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4286 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4288 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/dbus "D-Bus" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QT_CFLAGS_DBUS $QT_LIBS_DBUS $MAC_CONFIG_TEST_COMMANDLINE; then
4289 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4290 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4291 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4293 if [ "$CFG_DBUS" = "auto" ]; then
4295 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4296 # CFG_DBUS is "yes" or "linked" here
4298 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4299 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4300 echo " If you believe this message is in error you may use the continue"
4301 echo " switch (-continue) to $0 to continue."
4307 # auto-detect Glib support
4308 if [ "$CFG_GLIB" != "no" ]; then
4309 if [ -n "$PKG_CONFIG" ]; then
4310 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4311 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4313 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4315 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4316 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4318 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4319 echo "Glib support cannot be enabled due to functionality tests!"
4320 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4321 echo " If you believe this message is in error you may use the continue"
4322 echo " switch (-continue) to $0 to continue."
4330 # auto-detect GTK style support
4331 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4332 if [ -n "$PKG_CONFIG" ]; then
4333 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4334 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4336 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4338 QT_CONFIG="$QT_CONFIG gtkstyle"
4339 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4340 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4342 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4343 echo "Gtk theme support cannot be enabled due to functionality tests!"
4344 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4345 echo " If you believe this message is in error you may use the continue"
4346 echo " switch (-continue) to $0 to continue."
4352 elif [ "$CFG_GLIB" = "no" ]; then
4357 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4358 if [ -n "$PKG_CONFIG" ]; then
4359 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4360 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4362 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4364 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4365 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4367 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4368 echo "Gstreamer support cannot be enabled due to functionality tests!"
4369 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4370 echo " If you believe this message is in error you may use the continue"
4371 echo " switch (-continue) to $0 to continue."
4377 elif [ "$CFG_GLIB" = "no" ]; then
4381 # auto-detect libicu support
4382 if [ "$CFG_ICU" != "no" ]; then
4383 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icu "ICU" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4384 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4386 if [ "$CFG_ICU" = "auto" ]; then
4388 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4391 echo "The ICU library support cannot be enabled."
4392 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4393 echo " If you believe this message is in error you may use the continue"
4394 echo " switch (-continue) to $0 to continue."
4400 # Auto-detect PulseAudio support
4401 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4402 if [ -n "$PKG_CONFIG" ]; then
4403 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4404 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4406 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pulseaudio "PulseAudio" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4408 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4409 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4411 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4412 echo "PulseAudio support cannot be enabled due to functionality tests!"
4413 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4414 echo " If you believe this message is in error you may use the continue"
4415 echo " switch (-continue) to $0 to continue."
4424 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4425 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4426 if [ "$CFG_GUI" = "no" ]; then
4427 if [ "$CFG_OPENGL" = "auto" ]; then
4430 if [ "$CFG_OPENGL" != "no" ]; then
4431 echo "OpenGL enabled, but GUI disabled."
4432 echo " You might need to either enable the GUI or disable OpenGL"
4436 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4437 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4439 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4442 if [ "$CFG_OPENGL" = "yes" ]; then
4443 echo "All the OpenGL functionality tests failed!"
4444 echo " You might need to modify the include and library search paths by editing"
4445 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4446 echo " ${XQMAKESPEC}."
4453 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4454 if [ "$CFG_OPENGL" = "desktop" ]; then
4455 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4456 if [ $? != "0" ]; then
4457 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4464 elif [ "$CFG_OPENGL" = "es2" ]; then
4466 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4467 if [ $? != "0" ]; then
4468 echo "The OpenGL ES 2.0 functionality test failed!"
4469 echo " You might need to modify the include and library search paths by editing"
4470 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4471 echo " ${XQMAKESPEC}."
4474 elif [ "$CFG_OPENGL" = "desktop" ]; then
4475 # Desktop OpenGL support
4476 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4477 if [ $? != "0" ]; then
4478 echo "The OpenGL functionality test failed!"
4479 echo " You might need to modify the include and library search paths by editing"
4480 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4481 echo " ${XQMAKESPEC}."
4486 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4487 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4488 if [ $? != "0" ]; then
4489 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4496 fi # X11/MINGW OpenGL
4498 if [ "$BUILD_ON_MAC" = "yes" ]; then
4499 if [ "$CFG_PHONON" != "no" ]; then
4500 # Always enable Phonon (unless it was explicitly disabled)
4504 if [ "$CFG_COREWLAN" = "auto" ]; then
4505 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/corewlan "CoreWlan" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4513 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4514 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4515 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4517 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4520 if [ "$CFG_OPENGL" = "yes" ]; then
4521 echo "All the OpenGL functionality tests failed!"
4522 echo " You might need to modify the include and library search paths by editing"
4523 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4524 echo " ${XQMAKESPEC}."
4529 elif [ "$CFG_OPENGL" = "es2" ]; then
4531 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4532 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4533 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4534 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4535 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4536 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4537 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4538 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4541 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4542 if [ $? != "0" ]; then
4543 echo "The OpenGL ES 2.0 functionality test failed!"
4544 echo " You might need to modify the include and library search paths by editing"
4545 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4546 echo " ${XQMAKESPEC}."
4549 elif [ "$CFG_OPENGL" = "desktop" ]; then
4550 # Desktop OpenGL support
4551 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4552 if [ $? != "0" ]; then
4553 echo "The OpenGL functionality test failed!"
4554 echo " You might need to modify the include and library search paths by editing"
4555 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4556 echo " ${XQMAKESPEC}."
4561 # auto-detect FontConfig support
4562 if [ "$CFG_FONTCONFIG" != "no" ]; then
4563 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4564 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4565 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4567 QT_CFLAGS_FONTCONFIG=
4568 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4570 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4571 QT_CONFIG="$QT_CONFIG fontconfig"
4572 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4573 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4575 CFG_LIBFREETYPE=system
4582 # Save these for a check later
4583 ORIG_CFG_XCB="$CFG_XCB"
4584 ORIG_CFG_EGLFS="$CFG_EGLFS"
4585 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4587 if [ "$CFG_LIBUDEV" != "no" ]; then
4588 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4589 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4590 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4591 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4592 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4594 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libudev "libudev" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4596 QT_CONFIG="$QT_CONFIG libudev"
4597 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4598 echo "The libudev functionality test failed!"
4602 QMakeVar add DEFINES QT_NO_LIBUDEV
4606 if [ "$CFG_EVDEV" != "no" ]; then
4607 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/evdev "evdev" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4609 QT_CONFIG="$QT_CONFIG evdev"
4610 elif [ "$CFG_EVDEV" = "yes" ]; then
4611 echo "The evdev functionality test failed!"
4615 QMakeVar add DEFINES QT_NO_EVDEV
4619 # Check we actually have X11 :-)
4620 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4621 QT_CONFIG="$QT_CONFIG xlib"
4624 # auto-detect Xrender support
4625 if [ "$CFG_XRENDER" != "no" ]; then
4626 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4628 QT_CONFIG="$QT_CONFIG xrender"
4630 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4631 echo "Xrender support cannot be enabled due to functionality tests!"
4632 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4633 echo " If you believe this message is in error you may use the continue"
4634 echo " switch (-continue) to $0 to continue."
4642 if [ "$CFG_XCB" != "no" ]; then
4643 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4644 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4645 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4647 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb "xcb" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4649 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-render "xcb-render" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4650 QT_CONFIG="$QT_CONFIG xcb-render"
4653 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 $D_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4655 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4658 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-xlib "xcb-xlib" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4659 QT_CONFIG="$QT_CONFIG xcb-xlib"
4662 # auto-detect XInput2 support. Needed by xcb too.
4663 if [ "$CFG_XINPUT2" != "no" ]; then
4664 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput2 "XInput2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4668 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4669 echo "XInput2 support cannot be enabled due to functionality tests!"
4670 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4671 echo " If you believe this message is in error you may use the continue"
4672 echo " switch (-continue) to $0 to continue."
4680 if [ "$CFG_XCB" = "yes" ]; then
4681 echo "The XCB test failed!"
4682 echo " You might need to install dependency packages."
4683 echo " See src/plugins/platforms/xcb/README."
4687 QMakeVar add DEFINES QT_NO_XCB
4691 if [ "$CFG_DIRECTFB" != "no" ]; then
4692 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4693 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4694 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4695 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/directfb" "DirectFB" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4697 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4698 echo " DirectFB support cannot be enabled due to functionality tests!"
4699 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4700 echo " If you believe this message is in error you may use the continue"
4701 echo " switch (-continue) to $0 to continue."
4711 # Detect libxkbcommon
4712 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4713 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4714 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4715 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4716 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4718 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4722 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4723 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4724 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4725 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4726 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4727 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4728 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4729 fi # detect EGL support
4730 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/egl" "EGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4732 elif [ "$CFG_EGL" = "yes" ]; then
4733 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4734 echo " You might need to modify the include and library search paths by editing"
4735 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4740 elif [ "$CFG_OPENGL" = "desktop" ]; then
4741 if [ "$CFG_EGL" = "yes" ]; then
4742 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4743 echo "Either disable EGL support or enable OpenGL ES support."
4749 if [ "$CFG_EGLFS" != "no" ]; then
4750 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4751 CFG_EGLFS="$CFG_EGL"
4757 # Determine the default QPA platform
4758 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4760 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4761 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4762 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4763 QT_QPA_DEFAULT_PLATFORM="windows"
4764 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4765 QT_QPA_DEFAULT_PLATFORM="cocoa"
4766 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4767 QT_QPA_DEFAULT_PLATFORM="qnx"
4769 QT_QPA_DEFAULT_PLATFORM="xcb"
4774 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4775 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4776 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4777 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4779 if [ "$CFG_DIRECTFB" = "yes" ]; then
4780 QT_CONFIG="$QT_CONFIG directfb"
4781 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4782 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4785 if [ "$BUILD_ON_MAC" = "yes" ]; then
4786 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/coreservices "CoreServices" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4787 QT_CONFIG="$QT_CONFIG coreservices"
4789 QMakeVar add DEFINES QT_NO_CORESERVICES
4793 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4794 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ]; then
4795 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4796 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] ); then
4797 echo "No QPA platform plugin enabled!"
4798 echo " If you really want to build without a QPA platform plugin you must pass"
4799 echo " -no-qpa-platform-guard to configure. Doing this will"
4800 echo " produce a Qt that can not run GUI applications."
4801 echo " The dependencies needed for xcb to build are listed in"
4802 echo " src/plugins/platforms/xcb/README"
4808 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
4811 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4812 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4813 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4814 CFG_LIBFREETYPE=system
4820 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS &&
4821 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4822 echo "STL functionality check failed! Cannot build Qt with this STL library."
4823 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4828 # detect POSIX clock_gettime()
4829 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4830 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-gettime "POSIX clock_gettime()" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4831 CFG_CLOCK_GETTIME=yes
4833 CFG_CLOCK_GETTIME=no
4837 # detect POSIX monotonic clocks
4838 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4839 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-monotonic "POSIX Monotonic Clock" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4840 CFG_CLOCK_MONOTONIC=yes
4842 CFG_CLOCK_MONOTONIC=no
4844 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4845 CFG_CLOCK_MONOTONIC=no
4849 if [ "$CFG_MREMAP" = "auto" ]; then
4850 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4857 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4858 if [ "$CFG_GETADDRINFO" != "no" ]; then
4859 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4862 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4863 echo "getaddrinfo support cannot be enabled due to functionality tests!"
4864 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4865 echo " If you believe this message is in error you may use the continue"
4866 echo " switch (-continue) to $0 to continue."
4874 # find if the platform provides inotify
4875 if [ "$CFG_INOTIFY" != "no" ]; then
4876 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4879 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4880 echo "inotify support cannot be enabled due to functionality tests!"
4881 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4882 echo " If you believe this message is in error you may use the continue"
4883 echo " switch (-continue) to $0 to continue."
4891 # find if the platform provides if_nametoindex (ipv6 interface name support)
4892 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4893 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6ifname "IPv6 interface name" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4896 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4897 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4898 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4899 echo " If you believe this message is in error you may use the continue"
4900 echo " switch (-continue) to $0 to continue."
4908 # find if the platform provides getifaddrs (network interface enumeration)
4909 if [ "$CFG_GETIFADDRS" != "no" ]; then
4910 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4913 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4914 echo "getifaddrs support cannot be enabled due to functionality tests!"
4915 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4916 echo " If you believe this message is in error you may use the continue"
4917 echo " switch (-continue) to $0 to continue."
4926 if [ "$CFG_OPENSSL" != "no" ]; then
4927 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4928 if [ "$CFG_OPENSSL" = "auto" ]; then
4932 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4933 echo "OpenSSL support cannot be enabled due to functionality tests!"
4934 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4935 echo " If you believe this message is in error you may use the continue"
4936 echo " switch (-continue) to $0 to continue."
4945 if [ "$CFG_PCRE" != "qt" ]; then
4946 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pcre "PCRE" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4949 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4950 echo "PCRE support cannot be enabled due to functionality tests!"
4951 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4952 echo " If you believe this message is in error you may use the continue"
4953 echo " switch (-continue) to $0 to continue."
4961 # detect OpenVG support
4962 if [ "$CFG_OPENVG" != "no" ]; then
4963 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $CONFIG_ARG; then
4964 if [ "$CFG_OPENVG" = "auto" ]; then
4967 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $CONFIG_ARG; then
4968 if [ "$CFG_OPENVG" = "auto" ]; then
4971 CFG_OPENVG_ON_OPENGL=yes
4972 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 $D_FLAGS $l_FLAGS $CONFIG_ARG; then
4973 if [ "$CFG_OPENVG" = "auto" ]; then
4976 CFG_OPENVG_LC_INCLUDES=yes
4977 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 $D_FLAGS $l_FLAGS $CONFIG_ARG; then
4978 if [ "$CFG_OPENVG" = "auto" ]; then
4981 CFG_OPENVG_LC_INCLUDES=yes
4982 CFG_OPENVG_ON_OPENGL=yes
4984 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4985 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
4986 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4987 echo " If you believe this message is in error you may use the continue"
4988 echo " switch (-continue) to $0 to continue."
4994 if [ "$CFG_OPENVG" = "yes" ] && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/shivavg" "ShivaVG" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS $CONFIG_ARG; then
4995 CFG_OPENVG_SHIVA=yes
4999 if [ "$CFG_ALSA" = "auto" ]; then
5000 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/alsa "alsa" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
5007 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5008 if [ "$CFG_ARCH" = "arm" ]; then
5009 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/javascriptcore-jit "javascriptcore-jit" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
5010 if [ $? != "0" ]; then
5011 CFG_JAVASCRIPTCORE_JIT=no
5014 case "$XPLATFORM" in
5016 CFG_JAVASCRIPTCORE_JIT=no
5022 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5023 QMakeVar set JAVASCRIPTCORE_JIT yes
5024 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5025 QMakeVar set JAVASCRIPTCORE_JIT no
5028 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5029 CFG_AUDIO_BACKEND=yes
5032 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5033 echo "Warning: largefile support cannot be disabled for win32."
5037 #-------------------------------------------------------------------------------
5038 # ask for all that hasn't been auto-detected or specified in the arguments
5039 #-------------------------------------------------------------------------------
5041 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5044 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
5045 QT_CONFIG="$QT_CONFIG phonon-backend"
5048 # disable accessibility
5049 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5050 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5052 QT_CONFIG="$QT_CONFIG accessibility"
5056 if [ "$CFG_EGL" = "yes" ]; then
5057 QT_CONFIG="$QT_CONFIG egl"
5059 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5063 if [ "$CFG_EGLFS" = "yes" ]; then
5064 QT_CONFIG="$QT_CONFIG eglfs"
5066 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5070 if [ "$CFG_OPENVG" = "no" ]; then
5071 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5073 QT_CONFIG="$QT_CONFIG openvg"
5074 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5075 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5077 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5078 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5080 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5081 QT_CONFIG="$QT_CONFIG shivavg"
5082 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5087 if [ "$CFG_OPENGL" = "no" ]; then
5088 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5090 QT_CONFIG="$QT_CONFIG opengl"
5093 if [ "$CFG_OPENGL" = "es2" ]; then
5094 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5097 if [ "$CFG_OPENGL" = "es2" ]; then
5098 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5099 QT_CONFIG="$QT_CONFIG opengles2"
5102 # build up the variables for output
5103 if [ "$CFG_DEBUG" = "yes" ]; then
5104 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5105 elif [ "$CFG_DEBUG" = "no" ]; then
5106 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5108 if [ "$CFG_SHARED" = "yes" ]; then
5109 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5110 QT_CONFIG="$QT_CONFIG shared"
5111 elif [ "$CFG_SHARED" = "no" ]; then
5112 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5113 QT_CONFIG="$QT_CONFIG static"
5116 #FIXME: qpa is implicit this should all be removed
5117 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5118 QT_CONFIG="$QT_CONFIG qpa"
5119 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5120 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5122 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5123 # Do not set this here for Windows. Let qmake do it so
5124 # debug and release precompiled headers are kept separate.
5125 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5127 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5128 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5129 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5130 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5131 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5132 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5134 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5135 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5137 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5138 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5139 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5140 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5141 QMakeVar add QMAKE_CFLAGS -g
5142 QMakeVar add QMAKE_CXXFLAGS -g
5143 QT_CONFIG="$QT_CONFIG separate_debug_info"
5145 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5146 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5148 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5149 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5150 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5151 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5152 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5153 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5154 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5155 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5156 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5157 if [ "$CFG_ARCH" = "mips" ]; then
5158 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5159 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5161 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5162 QT_CONFIG="$QT_CONFIG clock-gettime"
5164 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5165 QT_CONFIG="$QT_CONFIG clock-monotonic"
5167 if [ "$CFG_MREMAP" = "yes" ]; then
5168 QT_CONFIG="$QT_CONFIG mremap"
5170 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5171 QT_CONFIG="$QT_CONFIG getaddrinfo"
5173 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5174 QT_CONFIG="$QT_CONFIG ipv6ifname"
5176 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5177 QT_CONFIG="$QT_CONFIG getifaddrs"
5179 if [ "$CFG_INOTIFY" = "yes" ]; then
5180 QT_CONFIG="$QT_CONFIG inotify"
5182 if [ "$CFG_LIBJPEG" = "no" ]; then
5184 elif [ "$CFG_LIBJPEG" = "system" ]; then
5185 QT_CONFIG="$QT_CONFIG system-jpeg"
5187 if [ "$CFG_JPEG" = "no" ]; then
5188 QT_CONFIG="$QT_CONFIG no-jpeg"
5189 elif [ "$CFG_JPEG" = "yes" ]; then
5190 QT_CONFIG="$QT_CONFIG jpeg"
5192 if [ "$CFG_LIBPNG" = "no" ]; then
5195 if [ "$CFG_LIBPNG" = "system" ]; then
5196 QT_CONFIG="$QT_CONFIG system-png"
5198 if [ "$CFG_PNG" = "no" ]; then
5199 QT_CONFIG="$QT_CONFIG no-png"
5200 elif [ "$CFG_PNG" = "yes" ]; then
5201 QT_CONFIG="$QT_CONFIG png"
5203 if [ "$CFG_GIF" = "no" ]; then
5204 QT_CONFIG="$QT_CONFIG no-gif"
5205 elif [ "$CFG_GIF" = "yes" ]; then
5206 QT_CONFIG="$QT_CONFIG gif"
5208 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5209 QT_CONFIG="$QT_CONFIG no-freetype"
5210 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5211 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5212 QT_CONFIG="$QT_CONFIG system-freetype"
5214 QT_CONFIG="$QT_CONFIG freetype"
5216 if [ "$CFG_GUI" = "auto" ]; then
5219 if [ "$CFG_GUI" = "no" ]; then
5220 QT_CONFIG="$QT_CONFIG no-gui"
5223 if [ "$CFG_WIDGETS" = "no" ]; then
5224 QT_CONFIG="$QT_CONFIG no-widgets"
5225 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5228 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5229 #On Mac we implicitly link against libz, so we
5230 #never use the 3rdparty stuff.
5231 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5233 if [ "$CFG_ZLIB" = "yes" ]; then
5234 QT_CONFIG="$QT_CONFIG zlib"
5235 elif [ "$CFG_ZLIB" = "system" ]; then
5236 QT_CONFIG="$QT_CONFIG system-zlib"
5239 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5240 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5241 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5242 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5243 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5244 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5245 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5246 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5247 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5248 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5249 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5250 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5251 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5252 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5254 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5255 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5256 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5258 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5259 if [ "$CFG_RPATH" = "yes" ]; then
5260 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5261 # set the default rpath to the library installation directory
5262 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5264 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5265 if [ -n "$RPATH_FLAGS" ]; then
5267 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5271 elif [ "$CFG_RPATH" = "yes" ]; then
5272 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5276 if [ "$CFG_RPATH" = "yes" ]; then
5277 # set the default rpath to the library installation directory
5278 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5280 if [ -n "$RPATH_FLAGS" ]; then
5281 # add the user defined rpaths
5282 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5286 if [ '!' -z "$I_FLAGS" ]; then
5287 # add the user define include paths
5288 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5289 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5292 if [ '!' -z "$W_FLAGS" ]; then
5293 # add the user defined warning flags
5294 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5295 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5296 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5299 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5300 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5301 # Follow default behavior of configure.exe by overriding with "rtti".
5302 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5305 if [ "$CFG_ALSA" = "yes" ]; then
5306 QT_CONFIG="$QT_CONFIG alsa"
5309 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5310 QT_CONFIG="$QT_CONFIG pulseaudio"
5313 if [ "$CFG_COREWLAN" = "yes" ]; then
5314 QT_CONFIG="$QT_CONFIG corewlan"
5317 if [ "$CFG_ICU" = "yes" ]; then
5318 QT_CONFIG="$QT_CONFIG icu"
5321 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5322 QT_CONFIG="$QT_CONFIG force_asserts"
5325 if [ "$CFG_PCRE" = "qt" ]; then
5326 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5330 # Some Qt modules are too advanced in C++ for some old compilers
5331 # Detect here the platforms where they are known to work.
5333 # See Qt documentation for more information on which features are
5334 # supported and on which compilers.
5336 canBuildQtConcurrent="yes"
5337 canUseV8Snapshot="yes"
5339 case "$XPLATFORM" in
5341 # PA-RISC's assembly is too limited
5342 # gcc 3.4 on that platform can't build QtXmlPatterns
5343 # the assembly it generates cannot be compiled
5345 # Check gcc's version
5346 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5350 canBuildQtXmlPatterns="no"
5354 canBuildQtXmlPatterns="no"
5358 unsupported/vxworks-*-g++*)
5361 unsupported/vxworks-*-dcc*)
5363 canBuildQtXmlPatterns="no"
5366 # Check gcc's version
5367 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5375 canBuildQtXmlPatterns="no"
5380 # Check the compiler version
5381 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5384 canBuildQtXmlPatterns="no"
5385 canBuildQtConcurrent="no"
5389 canBuildQtConcurrent="no"
5395 canBuildQtXmlPatterns="no"
5396 canBuildQtConcurrent="no"
5402 # Get the xlC version
5403 cat > xlcver.c <<EOF
5407 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5412 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5413 xlcver=`./xlcver 2>/dev/null`
5416 if [ "$OPT_VERBOSE" = "yes" ]; then
5417 if [ -n "$xlcver" ]; then
5418 echo Found IBM xlC version: $xlcver.
5420 echo Could not determine IBM xlC version, assuming oldest supported.
5427 canBuildQtXmlPatterns="no"
5428 canBuildQtConcurrent="no"
5432 canBuildQtConcurrent="no"
5438 canBuildQtConcurrent="no"
5442 if [ "$CFG_GUI" = "no" ]; then
5443 # WebKit requires QtGui
5447 if [ "$CFG_SHARED" = "no" ]; then
5449 echo "WARNING: Using static linking will disable the WebKit module."
5454 CFG_CONCURRENT="yes"
5455 if [ "$canBuildQtConcurrent" = "no" ]; then
5456 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5459 QT_CONFIG="$QT_CONFIG concurrent"
5463 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5464 QT_CONFIG="$QT_CONFIG audio-backend"
5468 if [ "$CFG_WEBKIT" = "debug" ]; then
5469 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5473 QT_CONFIG="$QT_CONFIG v8"
5474 # Detect snapshot support
5475 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5476 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5479 *) canUseV8Snapshot="no"
5483 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5484 # QEMU crashes when building inside Scratchbox with an ARM target
5485 canUseV8Snapshot="no"
5488 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5489 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5491 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5492 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5495 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5496 QT_CONFIG="$QT_CONFIG v8snapshot"
5500 if [ "$CFG_QML_DEBUG" = "no" ]; then
5501 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5504 case "$QMAKE_CONF_COMPILER" in
5507 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5509 case "$COMPILER_VERSION" in
5511 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5512 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5513 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5516 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5517 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5518 QT_GCC_PATCH_VERSION=0
5528 #-------------------------------------------------------------------------------
5529 # part of configuration information goes into qconfig.h
5530 #-------------------------------------------------------------------------------
5532 case "$CFG_QCONFIG" in
5534 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5537 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5538 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5539 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5540 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5541 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5542 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5544 echo "#endif" >>"$tmpconfig"
5548 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5552 # define QT_EDITION $QT_EDITION
5556 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5557 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5559 if [ "$CFG_SHARED" = "no" ]; then
5560 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5561 /* Qt was configured for a static build */
5562 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5569 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5570 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5573 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5574 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5577 if [ "$BUILD_ON_MAC" = "yes" ]; then
5578 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5579 #if defined(__LP64__)
5580 # define QT_POINTER_SIZE 8
5582 # define QT_POINTER_SIZE 4
5586 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5587 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5590 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5591 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5592 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5596 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5598 if [ "$CFG_DEV" = "yes" ]; then
5599 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5602 # Add QPA to config.h
5603 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
5605 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5606 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5609 # Add turned on SQL drivers
5610 for DRIVER in $CFG_SQL_AVAILABLE; do
5611 eval "VAL=\$CFG_SQL_$DRIVER"
5614 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5615 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5616 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5619 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5625 QMakeVar set sql-drivers "$SQL_DRIVERS"
5626 QMakeVar set sql-plugins "$SQL_PLUGINS"
5628 # Add other configuration options to the qconfig.h file
5629 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5630 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5631 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5632 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5633 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5635 # X11/Unix/Mac only configs
5636 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5637 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5638 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5639 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5640 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5641 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5642 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5643 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5644 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5645 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5646 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5647 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5648 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5649 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5651 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5652 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5653 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5654 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5655 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5656 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5657 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5658 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5659 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5660 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5661 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5662 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5663 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5665 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5666 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5667 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5668 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5669 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5670 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5671 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5672 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5674 # sort QCONFIG_FLAGS for neatness if we can
5675 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5676 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5678 if [ -n "$QCONFIG_FLAGS" ]; then
5679 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5680 #ifndef QT_BOOTSTRAPPED
5683 for cfg in $QCONFIG_FLAGS; do
5684 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5685 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5686 # figure out define logic, so we can output the correct
5687 # ifdefs to override the global defines in a project
5689 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5690 # QT_NO_option can be forcefully turned on by QT_option
5691 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5692 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5693 # QT_option can be forcefully turned off by QT_NO_option
5694 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5697 if [ -z $cfgdNeg ]; then
5698 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5705 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5706 #if defined($cfgd) && defined($cfgdNeg)
5708 #elif !defined($cfgd) && !defined($cfgdNeg)
5715 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5716 #endif // QT_BOOTSTRAPPED
5721 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5722 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5723 #define QT_VISIBILITY_AVAILABLE
5728 if [ -n "$QT_LIBINFIX" ]; then
5729 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5730 #define QT_LIBINFIX "$QT_LIBINFIX"
5735 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5737 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5738 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5739 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5741 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5742 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5743 chmod -w "$outpath/src/corelib/global/qconfig.h"
5744 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5745 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5749 #-------------------------------------------------------------------------------
5750 # save configuration into qconfig.pri
5751 #-------------------------------------------------------------------------------
5752 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5753 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5754 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5755 if [ "$CFG_DEBUG" = "yes" ]; then
5756 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5757 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5758 QT_CONFIG="$QT_CONFIG release"
5760 QT_CONFIG="$QT_CONFIG debug"
5761 elif [ "$CFG_DEBUG" = "no" ]; then
5762 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5763 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5764 QT_CONFIG="$QT_CONFIG debug"
5766 QT_CONFIG="$QT_CONFIG release"
5768 if [ "$CFG_FRAMEWORK" = "no" ]; then
5769 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5771 QT_CONFIG="$QT_CONFIG qt_framework"
5772 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5774 if [ "$CFG_DEV" = "yes" ]; then
5775 QT_CONFIG="$QT_CONFIG private_tests"
5778 cat >>"$QTCONFIG.tmp" <<EOF
5780 CONFIG += $QTCONFIG_CONFIG
5782 QT_HOST_ARCH = $CFG_HOST_ARCH
5783 QT_CPU_FEATURES = $CFG_CPUFEATURES
5784 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5785 QT_EDITION = $Edition
5786 QT_CONFIG += $QT_CONFIG
5789 QT_VERSION = $QT_VERSION
5790 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5791 QT_MINOR_VERSION = $QT_MINOR_VERSION
5792 QT_PATCH_VERSION = $QT_PATCH_VERSION
5795 QT_LIBINFIX = $QT_LIBINFIX
5796 QT_NAMESPACE = $QT_NAMESPACE
5800 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5801 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5802 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5803 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5804 echo >> "$QTCONFIG.tmp"
5807 if [ -n "$CFG_SYSROOT" ]; then
5808 echo "# sysroot" >>"$QTCONFIG.tmp"
5809 echo "!host_build {" >>"$QTCONFIG.tmp"
5810 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5811 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5812 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5813 echo "}" >> "$QTCONFIG.tmp"
5814 echo >> "$QTCONFIG.tmp"
5816 if [ -n "$RPATH_FLAGS" ]; then
5817 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5819 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5820 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5821 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5822 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5825 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5826 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5827 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5830 # replace qconfig.pri if it differs from the newly created temp file
5831 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5832 rm -f "$QTCONFIG.tmp"
5834 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5837 #-------------------------------------------------------------------------------
5838 # save configuration into qmodule.pri
5839 #-------------------------------------------------------------------------------
5840 QTMODULE="$outpath/mkspecs/qmodule.pri"
5842 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5843 echo "QT_BUILD_PARTS = $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
5845 # Ensure we can link to uninistalled libraries
5846 if [ "$BUILD_ON_MAC" != "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
5847 echo "QMAKE_LFLAGS = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
5849 if [ -n "$QT_CFLAGS_PSQL" ]; then
5850 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5852 if [ -n "$QT_LFLAGS_PSQL" ]; then
5853 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5855 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5856 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5858 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5859 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5861 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5862 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5864 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5865 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5867 if [ -n "$QT_LFLAGS_ODBC" ]; then
5868 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5870 if [ -n "$QT_LFLAGS_TDS" ]; then
5871 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5874 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5875 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5878 #dump in the OPENSSL_LIBS info
5879 if [ '!' -z "$OPENSSL_LIBS" ]; then
5880 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5881 elif [ "$CFG_OPENSSL" = "linked" ]; then
5882 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5885 #dump in the SDK info
5886 if [ '!' -z "$CFG_SDK" ]; then
5887 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5891 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5892 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5894 # replace qmodule.pri if it differs from the newly created temp file
5895 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5896 rm -f "$QTMODULE.tmp"
5898 mv -f "$QTMODULE.tmp" "$QTMODULE"
5901 #-------------------------------------------------------------------------------
5902 # save configuration into .qmake.cache
5903 #-------------------------------------------------------------------------------
5905 CACHEFILE="$outpath/.qmake.cache"
5906 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5907 cat >>"$CACHEFILE.tmp" <<EOF
5909 QT_SOURCE_TREE = \$\$quote($relpath)
5910 QT_BUILD_TREE = \$\$quote($outpath)
5912 include(\$\$PWD/mkspecs/qmodule.pri)
5913 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5917 # replace .qmake.cache if it differs from the newly created temp file
5918 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5919 rm -f "$CACHEFILE.tmp"
5921 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5924 #-------------------------------------------------------------------------------
5925 # give feedback on configuration
5926 #-------------------------------------------------------------------------------
5927 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
5930 if [ "$XPLATFORM" = "$PLATFORM" ]; then
5931 echo "Build type: $PLATFORM"
5933 echo "Building on: $PLATFORM"
5934 echo "Building for: $XPLATFORM"
5937 # the missing space before $CFG_FEATURES is intentional
5938 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
5939 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
5941 if [ -n "$PLATFORM_NOTES" ]; then
5942 echo "Platform notes:"
5943 echo "$PLATFORM_NOTES"
5948 if [ "$OPT_VERBOSE" = "yes" ]; then
5949 echo $ECHO_N "qmake vars .......... $ECHO_C"
5950 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
5951 echo "qmake switches ......... $QMAKE_SWITCHES"
5954 echo "Build .................. $CFG_BUILD_PARTS"
5955 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
5956 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5957 echo "Debug .................. yes (combined)"
5958 if [ "$CFG_DEBUG" = "yes" ]; then
5959 echo "Default Link ........... debug"
5961 echo "Default Link ........... release"
5964 echo "Debug .................. $CFG_DEBUG"
5966 echo "C++11 support .......... $CFG_CXX11"
5967 if [ -n "$PKG_CONFIG" ]; then
5968 echo "pkg-config ............. yes"
5970 echo "pkg-config ............. no"
5972 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
5973 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
5974 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
5975 echo "QtConcurrent code ...... $CFG_CONCURRENT"
5976 echo "QtGui module ........... $CFG_GUI"
5977 echo "QtWidgets module ....... $CFG_WIDGETS"
5978 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5979 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
5981 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
5983 echo "QML debugging .......... $CFG_QML_DEBUG"
5984 echo "PCH support ............ $CFG_PRECOMPILE"
5985 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
5986 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
5987 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
5988 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
5989 elif [ "$CFG_ARCH" = "arm" ]; then
5990 echo "iWMMXt support ......... ${CFG_IWMMXT}"
5991 echo "NEON support ........... ${CFG_NEON}"
5993 if [ "$CFG_ARCH" = "mips" ]; then
5994 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
5996 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
5997 echo "getaddrinfo support .... $CFG_GETADDRINFO"
5998 echo "getifaddrs support ..... $CFG_GETIFADDRS"
5999 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6000 echo "NIS support ............ $CFG_NIS"
6001 echo "CUPS support ........... $CFG_CUPS"
6002 echo "Iconv support .......... $CFG_ICONV"
6003 echo "Glib support ........... $CFG_GLIB"
6004 echo "GStreamer support ...... $CFG_GSTREAMER"
6005 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6006 echo "Large File support ..... $CFG_LARGEFILE"
6007 echo "GIF support ............ $CFG_GIF"
6008 if [ "$CFG_JPEG" = "no" ]; then
6009 echo "JPEG support ........... $CFG_JPEG"
6011 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6013 if [ "$CFG_PNG" = "no" ]; then
6014 echo "PNG support ............ $CFG_PNG"
6016 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6018 echo "zlib support ........... $CFG_ZLIB"
6019 echo "Session management ..... $CFG_SM"
6020 echo "libudev support ........ $CFG_LIBUDEV"
6022 if [ "$CFG_OPENGL" = "desktop" ]; then
6023 echo "OpenGL support ......... yes (Desktop OpenGL)"
6024 elif [ "$CFG_OPENGL" = "es2" ]; then
6025 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6027 echo "OpenGL support ......... no"
6030 if [ "$CFG_OPENVG" ]; then
6031 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6032 echo "OpenVG support ......... ShivaVG"
6034 echo "OpenVG support ......... $CFG_OPENVG"
6038 echo "XShape support ......... $CFG_XSHAPE"
6039 echo "XVideo support ......... $CFG_XVIDEO"
6040 echo "XSync support .......... $CFG_XSYNC"
6041 echo "Xinerama support ....... $CFG_XINERAMA"
6042 echo "Xcursor support ........ $CFG_XCURSOR"
6043 echo "Xfixes support ......... $CFG_XFIXES"
6044 echo "Xrandr support ......... $CFG_XRANDR"
6045 echo "Xi support ............. $CFG_XINPUT"
6046 echo "Xi2 support ............ $CFG_XINPUT2"
6047 echo "MIT-SHM support ........ $CFG_MITSHM"
6048 echo "FontConfig support ..... $CFG_FONTCONFIG"
6049 echo "XKB Support ............ $CFG_XKB"
6050 echo "immodule support ....... $CFG_IM"
6051 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6053 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6054 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6055 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6056 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6057 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6058 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6059 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6060 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6061 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6064 if [ "$CFG_OPENSSL" = "yes" ]; then
6065 OPENSSL_LINKAGE="(run-time)"
6066 elif [ "$CFG_OPENSSL" = "linked" ]; then
6067 OPENSSL_LINKAGE="(linked)"
6069 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6070 echo "Alsa support ........... $CFG_ALSA"
6071 if [ "$BUILD_ON_MAC" = "yes" ]; then
6072 echo "CoreWlan support ....... $CFG_COREWLAN"
6074 echo "libICU support ......... $CFG_ICU"
6075 echo "PCRE support ........... $CFG_PCRE"
6076 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6077 echo "Xcb support ............ limited (old version)"
6079 echo "Xcb support ............ $CFG_XCB"
6081 echo "Xrender support ........ $CFG_XRENDER"
6082 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6083 echo "XInput2 support ........ $CFG_XINPUT2"
6085 echo "EGLFS support .......... $CFG_EGLFS"
6086 echo "DirectFB support ....... $CFG_DIRECTFB"
6089 # complain about not being able to use dynamic plugins if we are using a static build
6090 if [ "$CFG_SHARED" = "no" ]; then
6092 echo "WARNING: Using static linking will disable the use of dynamically"
6093 echo "loaded plugins. Make sure to import all needed static plugins,"
6094 echo "or compile needed modules into the library."
6097 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6099 echo "NOTE: When linking against OpenSSL, you can override the default"
6100 echo "library names through OPENSSL_LIBS."
6102 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6106 exec 1>&3 3>&- # restore stdout
6107 cat $outpath/config.summary # display config feedback to user
6109 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6111 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6112 echo "if you want a pure debug build."
6117 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6122 #-------------------------------------------------------------------------------
6123 # build makefiles based on the configuration
6124 #-------------------------------------------------------------------------------
6126 if [ "$CFG_NOPROCESS" != "yes" ]; then
6127 echo "Creating makefiles. Please wait..."
6128 "$outpath/bin/qmake" -r ${OPT_FAST+CONFIG+=fast} "$relpath"
6131 if [ "$OPT_FAST" = "yes" ]; then
6133 for part in $CFG_BUILD_PARTS; do
6135 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6138 if [ "x$PART_ROOTS" != "x" ]; then
6140 echo "Creating stub makefiles. Please wait..."
6141 QMAKE="$outpath/bin/qmake"
6142 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6143 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6145 test -f "$outpath/$d/Makefile" && continue
6146 echo " for $relpath/$p"
6148 mkdir -p "$outpath/$d" || exit
6149 cat > "$outpath/$d/Makefile" <<EOF || exit
6150 # $outpath/$d/Makefile: generated by configure
6152 # WARNING: This makefile will be replaced with a real makefile.
6153 # All changes made to this file will be lost.
6158 all clean install qmake first Makefile: FORCE
6159 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6169 #-------------------------------------------------------------------------------
6170 # check for platforms that we don't yet know about
6171 #-------------------------------------------------------------------------------
6172 if [ "$CFG_ARCH" = "unknown" ]; then
6175 NOTICE: configure was unable to determine the architecture
6176 for the $XQMAKESPEC target.
6178 Qt will not use a specialized implementation for any atomic
6179 operations. Instead a generic implemention based on either GCC
6180 intrinsics or C++11 std::atomic<T> will be used (when
6181 available). The generic implementations are generally as fast
6182 as and always as safe as a specialized implementation.
6184 If no generic implementation is available, Qt will use a
6185 fallback UNIX implementation which uses a single
6186 pthread_mutex_t to protect all atomic operations. This
6187 implementation is the slow (but safe) fallback implementation
6188 for architectures Qt does not yet support.
6192 #-------------------------------------------------------------------------------
6193 # check if the user passed the -no-zlib option, which is no longer supported
6194 #-------------------------------------------------------------------------------
6195 if [ -n "$ZLIB_FORCED" ]; then
6196 which_zlib="supplied"
6197 if [ "$CFG_ZLIB" = "system" ]; then
6203 NOTICE: The -no-zlib option was supplied but is no longer
6206 Qt now requires zlib support in all builds, so the -no-zlib
6207 option was ignored. Qt will be built using the $which_zlib
6212 #-------------------------------------------------------------------------------
6213 # check if the user passed the obsoleted -wayland or -no-wayland flag
6214 #-------------------------------------------------------------------------------
6215 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6218 NOTICE: The -wayland and -no-wayland flags are now obsolete
6220 All configuring of QtWayland plugin and QtCompositor happens in the module
6224 #-------------------------------------------------------------------------------
6225 # check if the user passed the obsoleted -arch or -host-arch options
6226 #-------------------------------------------------------------------------------
6227 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6230 NOTICE: The -arch and -host-arch options are obsolete.
6232 Qt now detects the target and host architectures based on compiler
6233 output. Qt will be built using $CFG_ARCH for the target architecture
6234 and $CFG_HOST_ARCH for the host architecture (note that these two
6235 will be the same unless you are cross-compiling).
6239 #-------------------------------------------------------------------------------
6240 # finally save the executed command to another script
6241 #-------------------------------------------------------------------------------
6242 if [ `basename $0` != "config.status" ]; then
6243 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6245 # add the system variables
6246 for varname in $SYSTEM_VARIABLES; do
6248 'if [ -n "\$'${varname}'" ]; then
6249 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6254 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6256 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6257 echo "#!/bin/sh" > "$outpath/config.status"
6258 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6259 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6260 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6261 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6262 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6263 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6264 echo "else" >> "$outpath/config.status"
6265 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6266 echo "fi" >> "$outpath/config.status"
6267 chmod +x "$outpath/config.status"
6270 if [ -n "$RPATH_MESSAGE" ]; then
6272 echo "$RPATH_MESSAGE"
6275 MAKE=`basename "$MAKE"`
6277 echo Qt is now configured for building. Just run \'$MAKE\'.
6278 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6279 echo Once everything is built, Qt is installed.
6280 echo You should not run \'$MAKE install\'.
6282 echo Once everything is built, you must run \'$MAKE install\'.
6283 echo Qt will be installed into $QT_INSTALL_PREFIX
6286 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.