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 tools 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
753 CFG_OBSOLETE_WAYLAND=no
765 CFG_SEPARATE_DEBUG_INFO=no
766 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
767 CFG_REDUCE_EXPORTS=auto
775 CFG_REDUCE_RELOCATIONS=auto
776 CFG_ACCESSIBILITY=auto
781 CFG_CLOCK_GETTIME=auto
782 CFG_CLOCK_MONOTONIC=auto
790 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
792 CFG_PREFIX_INSTALL=yes
802 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
803 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
808 OPT_CONFIRM_LICENSE=no
821 QPA_PLATFORM_GUARD=yes
824 # initalize variables used for installation
833 QT_INSTALL_TRANSLATIONS=
838 CFG_GCC_SYSROOT="yes"
843 #flags for SQL drivers
851 QT_LFLAGS_ODBC="-lodbc"
854 # flags for libdbus-1
858 # flags for Glib (X11 only)
862 # flags for GStreamer (X11 only)
866 # default qpa platform
867 QT_QPA_DEFAULT_PLATFORM=
869 #-------------------------------------------------------------------------------
870 # check SQL drivers available in this package
871 #-------------------------------------------------------------------------------
873 # opensource version removes some drivers, so force them to be off
879 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
880 for a in "$relpath/src/plugins/sqldrivers/"*; do
882 base_a=`basename "$a"`
883 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
884 eval "CFG_SQL_${base_a}=auto"
889 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
890 if [ -d "$relpath/src/plugins/imageformats" ]; then
891 for a in "$relpath/src/plugins/imageformats/"*; do
893 base_a=`basename "$a"`
894 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
899 #-------------------------------------------------------------------------------
900 # parse command line arguments
901 #-------------------------------------------------------------------------------
903 # parse the arguments, setting things to "yes" or "no"
904 while [ "$#" -gt 0 ]; do
908 #Autoconf style options
910 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
914 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
918 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
919 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
922 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
926 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
930 -no-*-*|-plugin-*-*|-qt-*-*)
931 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
932 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
936 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
939 #Qt style options that pass an argument
940 -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)
941 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
945 #Qt style complex options in one command
946 -enable-*|-disable-*)
947 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
948 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
950 #Qt Builtin/System style options
951 -no-*|-system-*|-qt-*)
952 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
953 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
955 #Options that cannot be generalized
962 # this option may or may not be followed by an argument
963 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
972 # this option may or may not be followed by an argument
973 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
981 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
982 # this option may or may not be followed by an argument
983 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1002 if [ "$1" = "-D" ]; then
1006 VAL=`echo $1 | sed 's,-D,,'`
1011 # this option may or may not be followed by an argument
1012 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1021 if [ "$1" = "-I" ]; then
1025 VAL=`echo $1 | sed 's,-I,,'`
1030 if [ "$1" = "-L" ]; then
1034 VAL=`echo $1 | sed 's,-L,,'`
1039 if [ "$1" = "-R" ]; then
1043 VAL=`echo $1 | sed 's,-R,,'`
1048 if [ "$1" = "-l" ]; then
1052 VAL=`echo $1 | sed 's,-l,,'`
1057 if [ "$1" = "-F" ]; then
1061 VAL=`echo $1 | sed 's,-F,,'`
1066 if [ "$1" = "-fw" ]; then
1070 VAL=`echo $1 | sed 's,-fw,,'`
1077 #General options, including Qt style yes options
1079 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1086 if [ "$UNKNOWN_ARG" = "yes" ]; then
1087 echo "$1: unknown argument"
1098 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1099 CFG_ACCESSIBILITY="$VAL"
1108 CFG_USE_GNUMAKE="$VAL"
1111 CFG_MYSQL_CONFIG="$VAL"
1114 QT_INSTALL_PREFIX="$VAL"
1117 QT_HOST_PREFIX="$VAL"
1126 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1127 CFG_PKGCONFIG="$VAL"
1133 CFG_PKGCONFIG="force"
1136 QT_INSTALL_DOCS="$VAL"
1139 QT_INSTALL_HEADERS="$VAL"
1142 QT_INSTALL_PLUGINS="$VAL"
1145 QT_INSTALL_IMPORTS="$VAL"
1148 QT_INSTALL_DATA="$VAL"
1151 QT_INSTALL_LIBS="$VAL"
1160 QT_INSTALL_TRANSLATIONS="$VAL"
1162 sysconfdir|settingsdir)
1163 QT_INSTALL_SETTINGS="$VAL"
1166 QT_INSTALL_EXAMPLES="$VAL"
1169 QT_INSTALL_TESTS="$VAL"
1178 CFG_GCC_SYSROOT="$VAL"
1181 QT_INSTALL_BINS="$VAL"
1184 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1191 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1192 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1193 [ "$VAL" = "es2" ]; then
1200 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1207 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1210 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1213 if [ "$BUILD_ON_MAC" = "yes" ]; then
1220 OPT_OBSOLETE_HOST_ARG=yes
1223 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1224 CFG_MAC_HARFBUZZ="$VAL"
1231 if [ "$BUILD_ON_MAC" = "yes" ]; then
1232 CFG_FRAMEWORK="$VAL"
1238 if [ "$VAL" = "yes" ]; then
1240 QMakeVar add QMAKE_CFLAGS -pg
1241 QMakeVar add QMAKE_CXXFLAGS -pg
1242 QMakeVar add QMAKE_LFLAGS -pg
1243 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1249 if [ "$VAL" = "yes" ]; then
1250 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1255 # keep compatibility with old platform names
1261 PLATFORM=hpux-acc-o64
1264 PLATFORM=hpux-acc-64
1267 PLATFORM=hpux-acc-64
1279 PLATFORM=reliant-cds-64
1282 PLATFORM=solaris-cc-64
1285 PLATFORM=unixware-cc
1288 PLATFORM=unixware-g++
1291 PLATFORM=unixware-cc
1294 PLATFORM=unixware-g++
1300 i386) NATIVE_64_ARCH="x86_64" ;;
1301 powerpc) NATIVE_64_ARCH="ppc64" ;;
1302 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1304 if [ ! -z "$NATIVE_64_ARCH" ]; then
1305 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1312 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1315 XPLATFORM=`resolveDeviceMkspec $VAL`
1316 [ "$XPLATFORM" = "undefined" ] && exit 101
1319 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1320 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1321 DeviceVar set $DEV_VAR $DEV_VAL
1324 QT_QPA_DEFAULT_PLATFORM="$VAL"
1327 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1328 CFG_DEBUG_RELEASE="$VAL"
1334 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1335 CFG_RELEASE_QMAKE="$VAL"
1341 if [ "$VAL" = "yes" ]; then
1343 elif [ "$VAL" = "no" ]; then
1350 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1351 CFG_PREFIX_INSTALL="$VAL"
1359 developer-build|commercial|opensource)
1360 # These switches have been dealt with already
1363 if [ "$VAL" = "yes" ]; then
1365 elif [ "$VAL" = "no" ]; then
1372 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1373 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1379 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1380 if [ "$VAL" = "no" ]; then
1381 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1382 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1383 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1389 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1396 if [ "$VAL" = "no" ]; then
1403 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1411 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1418 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1425 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1432 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1439 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1446 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1453 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1460 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1461 CFG_PRECOMPILE="$VAL"
1466 separate-debug-info)
1467 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1468 CFG_SEPARATE_DEBUG_INFO="$VAL"
1469 elif [ "$VAL" = "nocopy" ] ; then
1470 CFG_SEPARATE_DEBUG_INFO="yes"
1471 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1477 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1478 CFG_REDUCE_EXPORTS="$VAL"
1484 if [ "$VAL" = "no" ]; then
1491 if [ "$VAL" = "no" ]; then
1498 if [ "$VAL" = "no" ]; then
1505 if [ "$VAL" = "no" ]; then
1512 if [ "$VAL" = "no" ]; then
1519 if [ "$VAL" = "no" ]; then
1526 if [ "$VAL" = "no" ]; then
1536 if [ "$VAL" = "no" ]; then
1543 if [ "$VAL" = "no" ]; then
1550 if [ "$VAL" = "no" ]; then
1551 CFG_MIPS_DSPR2="$VAL"
1557 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1558 CFG_REDUCE_RELOCATIONS="$VAL"
1564 [ "$VAL" = "qt" ] && VAL=yes
1565 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1570 # No longer supported:
1571 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1574 if [ "$VAL" = "system" ]; then
1581 [ "$VAL" = "yes" ] && VAL=qt
1582 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1589 [ "$VAL" = "yes" ] && VAL=qt
1590 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1597 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1604 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1611 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1618 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1625 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1632 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1633 CFG_FONTCONFIG="$VAL"
1639 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1646 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1653 CFG_OBSOLETE_WAYLAND=yes
1656 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1663 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1670 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1677 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1684 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1691 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1698 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1705 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1712 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1719 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1720 CFG_GSTREAMER="$VAL"
1726 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1727 CFG_QGTKSTYLE="$VAL"
1733 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1736 if [ "$VAL" = "no" ]; then
1744 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1746 elif [ "$VAL" = "no" ]; then
1753 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1754 QPA_PLATFORM_GUARD="$VAL"
1760 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1762 elif [ "$VAL" = "runtime" ]; then
1769 if [ "$VAL" = "yes" ]; then
1776 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1783 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1784 CFG_LARGEFILE="$VAL"
1790 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1797 if [ "$VAL" = "yes" ]; then
1798 CFG_OPENSSL="linked"
1804 if [ "$VAL" = "yes" ]; then
1807 if [ "$VAL" = "no" ]; then
1815 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1816 CFG_JAVASCRIPTCORE_JIT="$VAL"
1822 if [ "$VAL" = "yes" ]; then
1823 OPT_CONFIRM_LICENSE="$VAL"
1829 if [ "$VAL" = "yes" ]; then
1835 sql-*|imageformat-*)
1836 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1837 # if autoconf style options were used, $VAL can be "yes" or "no"
1838 [ "$VAL" = "yes" ] && VAL=qt
1839 # now $VAL should be "no", "qt", or "plugin"... double-check
1840 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1843 # now $VAL is "no", "qt", or "plugin"
1845 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1846 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1848 # Grab the available values
1851 avail="$CFG_SQL_AVAILABLE"
1854 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1855 if [ "$OPT" != "plugin" ]; then
1856 # png is always built in
1862 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1866 # Check that that user's value is available.
1869 if [ "$VAL" = "$d" ]; then
1874 [ "$found" = yes ] || ERROR=yes
1876 if [ "$VAR" = "sql" ]; then
1877 # set the CFG_SQL_driver
1878 eval "CFG_SQL_$VAL=\$OPT"
1880 elif [ "$VAR" = "imageformat" ]; then
1881 [ "$OPT" = "qt" ] && OPT=yes
1882 VAL="`echo $VAL |tr a-z A-Z`"
1883 eval "CFG_$VAL=$OPT"
1887 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1888 if [ "$OPT" = "plugin" ]; then
1891 QMakeVar add "${VAR}s" "${VAL}"
1892 elif [ "$OPT" = "no" ]; then
1893 PLUG_VAR="${VAR}-plugin"
1895 QMakeVar del "${IN_VAR}s" "$VAL"
1896 QMakeVar del "${PLUG_VAR}s" "$VAL"
1898 if [ "$ERROR" = "yes" ]; then
1899 echo "$CURRENT_OPT: unknown argument"
1904 if [ "$VAL" = "yes" ]; then
1905 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1906 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1910 elif [ "$VAL" = "no" ]; then
1911 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1912 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1921 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1928 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1935 DEFINES="$DEFINES \"$VAL\""
1936 D_FLAGS="$D_FLAGS -D\"$VAL\""
1939 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1942 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1945 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1948 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1951 if [ "$BUILD_ON_MAC" = "yes" ]; then
1952 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1953 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1959 if [ "$BUILD_ON_MAC" = "yes" ]; then
1960 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1966 W_FLAGS="$W_FLAGS \"${VAL}\""
1978 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1979 CFG_AUDIO_BACKEND="$VAL"
1985 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1992 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1993 CFG_FORCE_ASSERTS="$VAL"
1999 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2006 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2016 if [ "$UNKNOWN_OPT" = "yes" ]; then
2017 echo "${CURRENT_OPT}: invalid command-line switch"
2023 # update QT_CONFIG to show our current predefined configuration
2024 case "$CFG_QCONFIG" in
2025 minimal|small|medium|large|full)
2026 # these are a sequence of increasing functionality
2027 for c in minimal small medium large full; do
2028 QT_CONFIG="$QT_CONFIG $c-config"
2029 [ "$CFG_QCONFIG" = $c ] && break
2033 # not known to be sufficient for anything
2034 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2035 echo >&2 "Error: configuration file not found:"
2036 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2038 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2043 #-------------------------------------------------------------------------------
2044 # build tree initialization
2045 #-------------------------------------------------------------------------------
2047 # where to find which..
2048 unixtests="$relpath/config.tests/unix"
2049 mactests="$relpath/config.tests/mac"
2050 WHICH="$unixtests/which.test"
2052 PERL=`$WHICH perl 2>/dev/null`
2054 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2056 for e in gawk nawk awk; do
2057 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2064 PERL="/usr/bin/perl"
2065 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2069 ### skip this if the user just needs help...
2070 if [ "$OPT_HELP" != "yes" ]; then
2072 # is this a shadow build?
2073 if [ "$OPT_SHADOW" = "maybe" ]; then
2075 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2076 if [ -h "$outpath" ]; then
2077 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2083 if [ "$OPT_SHADOW" = "yes" ]; then
2084 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2085 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2086 echo >&2 "Cannot proceed."
2089 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2092 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2094 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2095 echo "Qt can be built in release mode with separate debug information, so"
2096 echo "-debug-and-release is not necessary anymore"
2100 if [ "$CFG_SILENT" = "yes" ]; then
2101 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2104 # if the source tree is different from the build tree,
2105 # symlink or copy part of the sources
2106 if [ "$OPT_SHADOW" = "yes" ]; then
2107 echo "Preparing build tree..."
2109 if [ -z "$PERL" ]; then
2111 echo "You need perl in your PATH to make a shadow build."
2112 echo "Cannot proceed."
2116 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2118 # make a syncqt script that can be used in the shadow
2119 rm -f "$outpath/bin/syncqt"
2120 if [ -x "$relpath/bin/syncqt" ]; then
2121 mkdir -p "$outpath/bin"
2122 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2123 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2124 chmod 755 "$outpath/bin/syncqt"
2127 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2128 rm -f "$outpath/bin/$i"
2129 if [ -x "$relpath/bin/$i" ]; then
2130 mkdir -p "$outpath/bin"
2131 echo "#!/bin/sh" >"$outpath/bin/$i"
2132 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2133 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2134 chmod 755 "$outpath/bin/$i"
2138 # save a pre-existing mkspecs/modules dir
2139 test -d "$outpath/mkspecs/modules" && \
2140 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2141 # ditto for mkspecs/modules-inst
2142 test -d "$outpath/mkspecs/modules-inst" && \
2143 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2145 # symlink the mkspecs directory
2146 mkdir -p "$outpath/mkspecs"
2147 rm -rf "$outpath"/mkspecs/*
2148 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2149 rm -f "$outpath/mkspecs/default"
2153 rm -rf "$outpath/mkspecs/$1"
2154 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2155 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2158 # Special case for mkspecs/features directory.
2159 # To be able to place .prf files into a shadow build directory,
2160 # we're creating links for files only. The directory structure is reproduced.
2161 ShadowMkspecs features
2163 # The modules dir is special, too.
2164 if test -d "$outpath/mkspecs-modules"; then
2165 rm -rf "$outpath/mkspecs/modules"
2166 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2168 ShadowMkspecs modules
2171 # The modules-inst dir is not quite as special, but still.
2172 if test -d "$outpath/mkspecs-modules-inst"; then
2173 rm -rf "$outpath/mkspecs/modules-inst"
2174 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2177 # symlink the doc directory
2178 rm -rf "$outpath/doc"
2179 ln -s "$relpath/doc" "$outpath/doc"
2182 # symlink fonts to be able to run application from build directory
2183 if [ ! -d "${outpath}/lib/fonts" ]; then
2184 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2185 mkdir -p "${outpath}/lib"
2186 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2190 if [ "$OPT_FAST" = "auto" ]; then
2191 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2198 # find a make command
2199 if [ -z "$MAKE" ]; then
2201 for mk in gmake make; do
2202 if "$WHICH" $mk >/dev/null 2>&1; then
2207 if [ -z "$MAKE" ]; then
2208 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2209 echo >&2 "Cannot proceed."
2212 # export MAKE, we need it later in the config.tests
2218 #-------------------------------------------------------------------------------
2219 # auto-detect all that hasn't been specified in the arguments
2220 #-------------------------------------------------------------------------------
2222 if [ -z "$PLATFORM" ]; then
2224 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2226 OSX_VERSION=`uname -r | cut -d. -f1`
2227 # Select compiler. Use g++ unless we find a usable Clang version
2229 if [ "$OSX_VERSION" -ge 12 ]; then
2230 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2232 elif [ "$OSX_VERSION" -eq 11 ]; then
2233 # We're on Lion. Check if we have a supported Clang version
2234 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2237 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2244 #PLATFORM=aix-g++-64
2246 #PLATFORM=aix-xlc-64
2248 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2258 # PLATFORM=dynix-g++
2264 PLATFORM=freebsd-g++
2266 - Also available for FreeBSD: freebsd-icc
2270 PLATFORM=openbsd-g++
2281 #PLATFORM=irix-cc-64
2283 - Also available for IRIX: irix-g++ irix-cc-64
2287 case "$UNAME_MACHINE" in
2289 #PLATFORM=hpuxi-acc-32
2290 PLATFORM=hpuxi-acc-64
2292 - Also available for HP-UXi: hpuxi-acc-32
2298 #PLATFORM=hpux-acc-64
2300 #PLATFORM=hpux-acc-o64
2302 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2311 - Also available for Tru64: tru64-g++
2315 case "$UNAME_MACHINE" in
2317 PLATFORM=linux-g++-64
2324 - Also available for Linux: linux-kcc linux-icc linux-cxx
2328 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2329 PLATFORM="solaris-g++"
2331 #PLATFORM=solaris-g++
2333 #PLATFORM=solaris-cc64
2336 - Also available for Solaris: solaris-g++ solaris-cc-64
2339 ReliantUNIX-*:*|SINIX-*:*)
2340 PLATFORM=reliant-cds
2341 #PLATFORM=reliant-cds-64
2343 - Also available for Reliant UNIX: reliant-cds-64
2353 #PLATFORM=unixware-g++
2354 PLATFORM=unixware-cc
2356 - Also available for OpenUNIX: unixware-g++
2360 #PLATFORM=unixware-g++
2361 PLATFORM=unixware-cc
2363 - Also available for UnixWare: unixware-g++
2370 - Also available for SCO OpenServer: sco-g++
2374 PLATFORM=unixware-g++
2377 PLATFORM=unsupported/qnx-g++
2380 if [ "$OPT_HELP" != "yes" ]; then
2382 echo " The build script does not currently recognize all" >&2
2383 echo " platforms supported by Qt." >&2
2384 echo " Rerun this script with a -platform option listed to" >&2
2385 echo " set the system/compiler combination you use." >&2
2392 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2394 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2395 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2396 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2398 if [ -d "$PLATFORM" ]; then
2399 QMAKESPEC="$PLATFORM"
2401 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2403 if [ -d "$XPLATFORM" ]; then
2404 XQMAKESPEC="$XPLATFORM"
2406 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2408 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2409 QT_CROSS_COMPILE=yes
2410 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2411 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2414 if [ "$BUILD_ON_MAC" = "yes" ]; then
2415 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2417 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2418 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2419 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2420 echo " built with 'macx-g++'" >&2
2426 # check specified platforms are supported
2427 if [ '!' -d "$QMAKESPEC" ]; then
2429 echo " The specified system/compiler is not supported:"
2433 echo " Please see the README file for a complete list."
2437 if [ '!' -d "$XQMAKESPEC" ]; then
2439 echo " The specified system/compiler is not supported:"
2443 echo " Please see the README file for a complete list."
2447 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2449 echo " The specified system/compiler port is not complete:"
2451 echo " $XQMAKESPEC/qplatformdefs.h"
2453 echo " Please contact qt-info@nokia.com."
2458 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2459 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2460 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2461 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2462 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2466 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2467 case `basename "$XPLATFORM"` in
2470 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2472 echo "Please contact qt-info@nokia.com to upgrade your license to"
2473 echo "include this platform, or install the Qt Open Source Edition"
2474 echo "if you intend to develop free software."
2480 #-------------------------------------------------------------------------------
2481 # tests that don't need qmake (must be run before displaying help)
2482 #-------------------------------------------------------------------------------
2484 # detect build style
2485 if [ "$CFG_DEBUG" = "auto" ]; then
2486 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2487 CFG_DEBUG_RELEASE=yes
2489 elif [ "$CFG_DEV" = "yes" ]; then
2490 CFG_DEBUG_RELEASE=no
2493 CFG_DEBUG_RELEASE=no
2497 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2498 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2501 # pass on $CFG_SDK to the configure tests.
2502 if [ '!' -z "$CFG_SDK" ]; then
2503 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2506 # find the default framework value
2507 if [ "$BUILD_ON_MAC" = "yes" ]; then
2508 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2509 CFG_FRAMEWORK="$CFG_SHARED"
2510 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2512 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2520 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2522 TEST_COMPILER=$QMAKE_CONF_COMPILER
2523 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2524 if [ -z "$TEST_COMPILER" ]; then
2525 echo "ERROR: Cannot set the compiler for the configuration tests"
2531 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2532 if [ -n "$GCC_MACHINE_DUMP" ]; then
2533 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2536 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2537 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2541 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2543 # auto-detect precompiled header support
2544 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2545 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2552 # auto-detect support for separate debug info in objcopy
2553 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2554 TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2555 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2556 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2557 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2558 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2559 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2560 CFG_SEPARATE_DEBUG_INFO=no
2564 # binutils on HP-UX is buggy; default to no.
2565 CFG_SEPARATE_DEBUG_INFO=no
2568 CFG_SEPARATE_DEBUG_INFO=yes
2574 # auto-detect -fvisibility support
2575 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2576 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2577 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2578 echo "-reduce-exports was requested but this compiler does not support it"
2579 echo "Re-run configure with -v for more information"
2582 CFG_REDUCE_EXPORTS=no
2584 CFG_REDUCE_EXPORTS=yes
2588 # detect the availability of the -Bsymbolic-functions linker optimization
2589 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2590 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2591 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2592 echo "-reduce-relocations was requested but this compiler does not support it"
2593 echo "Re-run configure with -v for more information"
2596 CFG_REDUCE_RELOCATIONS=no
2598 CFG_REDUCE_RELOCATIONS=yes
2602 # auto-detect GNU make support
2603 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2607 # find the default framework value
2608 if [ "$BUILD_ON_MAC" = "yes" ]; then
2609 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2610 CFG_FRAMEWORK="$CFG_SHARED"
2611 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2613 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2621 #setup the build parts
2622 if [ -z "$CFG_BUILD_PARTS" ]; then
2623 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2625 # build tests by default, if a developer build
2626 if [ "$CFG_DEV" = "yes" ]; then
2627 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2630 # don't build tools by default when cross-compiling
2631 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2632 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2635 for nobuild in $CFG_NOBUILD_PARTS; do
2636 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2638 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2640 # echo "WARNING: libs is a required part of the build."
2642 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2645 #-------------------------------------------------------------------------------
2646 # post process QT_INSTALL_* variables
2647 #-------------------------------------------------------------------------------
2649 if [ -z "$QT_INSTALL_PREFIX" ]; then
2650 if [ "$CFG_DEV" = "yes" ]; then
2651 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2653 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2656 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2658 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2659 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2660 if [ "$BUILD_ON_MAC" = "yes" ]; then
2661 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2664 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2667 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2669 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2670 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2671 if [ "$BUILD_ON_MAC" = "yes" ]; then
2672 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2677 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2680 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2682 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2683 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2684 if [ "$BUILD_ON_MAC" = "yes" ]; then
2685 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2686 QT_INSTALL_LIBS="/Library/Frameworks"
2690 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2692 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2694 if [ -z "$QT_INSTALL_BINS" ]; then #default
2695 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2696 if [ "$BUILD_ON_MAC" = "yes" ]; then
2697 QT_INSTALL_BINS="/Developer/Applications/Qt"
2700 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2702 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2704 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2705 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2706 if [ "$BUILD_ON_MAC" = "yes" ]; then
2707 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2710 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2712 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2714 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2715 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2716 if [ "$BUILD_ON_MAC" = "yes" ]; then
2717 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2720 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2722 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2724 if [ -z "$QT_INSTALL_DATA" ]; then #default
2725 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2727 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2729 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2730 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2732 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2734 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2735 if [ "$BUILD_ON_MAC" = "yes" ]; then
2736 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2738 QT_INSTALL_SETTINGS=/etc/xdg
2741 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2743 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2744 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2745 if [ "$BUILD_ON_MAC" = "yes" ]; then
2746 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2749 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2751 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2754 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2755 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2756 if [ "$BUILD_ON_MAC" = "yes" ]; then
2757 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2760 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2762 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2764 #------- host paths --------
2766 if [ -z "$QT_HOST_PREFIX" ]; then
2767 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2770 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2774 if [ -z "$QT_HOST_BINS" ]; then #default
2776 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2777 if [ "$BUILD_ON_MAC" = "yes" ]; then
2778 QT_HOST_BINS="/Developer/Applications/Qt"
2781 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2783 QT_HOST_BINS="$QT_INSTALL_BINS"
2786 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2788 if [ -z "$QT_HOST_DATA" ]; then #default
2790 QT_HOST_DATA="$QT_HOST_PREFIX"
2792 QT_HOST_DATA="$QT_INSTALL_DATA"
2795 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2798 #-------------------------------------------------------------------------------
2799 # help - interactive parts of the script _after_ this section please
2800 #-------------------------------------------------------------------------------
2802 # next, emit a usage message if something failed.
2803 if [ "$OPT_HELP" = "yes" ]; then
2804 [ "x$ERROR" = "xyes" ] && echo
2805 if [ "$CFG_NIS" = "no" ]; then
2812 if [ "$CFG_CUPS" = "no" ]; then
2819 if [ "$CFG_ICONV" = "no" ]; then
2826 if [ "$CFG_LARGEFILE" = "no" ]; then
2833 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2841 if [ "$CFG_XCB" = "no" ]; then
2849 if [ "$CFG_EGLFS" = "no" ]; then
2857 if [ "$CFG_DIRECTFB" = "no" ]; then
2865 if [ "$CFG_LINUXFB" = "no" ]; then
2873 if [ "$CFG_KMS" = "no" ]; then
2881 if [ "$CFG_XINPUT2" = "no" ]; then
2889 if [ "$CFG_DBUS" = "no" ]; then
2897 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2905 if [ "$CFG_GLIB" = "no" ]; then
2914 Usage: $relconf [options]
2916 Installation options:
2918 These are optional, but you may specify install directories.
2920 -prefix <dir> ...... This will install everything relative to <dir>
2921 (default $QT_INSTALL_PREFIX)
2923 -hostprefix [dir] .. Tools and libraries needed when developing
2924 applications are installed in [dir]. If [dir] is
2925 not given, the current build directory will be used.
2928 * -prefix-install .... Force a sandboxed "local" installation of
2929 Qt. This will install into
2930 $QT_INSTALL_PREFIX, if this option is
2931 disabled then some platforms will attempt a
2932 "system" install by placing default values to
2933 be placed in a system location other than
2936 You may use these to separate different parts of the install:
2938 -bindir <dir> ......... Executables will be installed to <dir>
2939 (default PREFIX/bin)
2940 -libdir <dir> ......... Libraries will be installed to <dir>
2941 (default PREFIX/lib)
2942 -docdir <dir> ......... Documentation will be installed to <dir>
2943 (default PREFIX/doc)
2944 -headerdir <dir> ...... Headers will be installed to <dir>
2945 (default PREFIX/include)
2946 -plugindir <dir> ...... Plugins will be installed to <dir>
2947 (default PREFIX/plugins)
2948 -importdir <dir> ...... Imports for QML will be installed to <dir>
2949 (default PREFIX/imports)
2950 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2952 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2953 (default PREFIX/translations)
2954 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2955 (default PREFIX/etc/settings)
2956 -examplesdir <dir> .... Examples will be installed to <dir>
2957 (default PREFIX/examples)
2958 -testsdir <dir> ....... Tests will be installed to <dir>
2959 (default PREFIX/tests)
2961 -hostbindir <dir> .. Host executables will be installed to <dir>
2962 (default HOSTPREFIX/bin)
2963 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2964 (default HOSTPREFIX)
2968 The defaults (*) are usually acceptable. A plus (+) denotes a default value
2969 that needs to be evaluated. If the evaluation succeeds, the feature is
2970 included. Here is a short explanation of each option:
2972 * -release ........... Compile and link Qt with debugging turned off.
2973 -debug ............. Compile and link Qt with debugging turned on.
2974 -debug-and-release . Compile and link two versions of Qt, with and without
2975 debugging turned on (Mac only).
2977 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2979 -opensource ........ Compile and link the Open-Source Edition of Qt.
2980 -commercial ........ Compile and link the Commercial Edition of Qt.
2982 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
2983 + -c++11 ............. Compile Qt with C++11 support enabled.
2985 * -shared ............ Create and use shared Qt libraries.
2986 -static ............ Create and use static Qt libraries.
2988 * -no-fast ........... Configure Qt normally by generating Makefiles for all
2990 -fast .............. Configure Qt quickly by generating Makefiles only for
2991 library and subdirectory targets. All other Makefiles
2992 are created as wrappers, which will in turn run qmake.
2994 -no-largefile ...... Disables large file support.
2995 + -largefile ......... Enables Qt to access files larger than 4 GB.
2997 -no-accessibility .. Do not compile Accessibility support.
2998 * -accessibility ..... Compile Accessibility support.
3000 -no-sql-<driver> ... Disable SQL <driver> entirely.
3001 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3003 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3006 Possible values for <driver>:
3007 [ $CFG_SQL_AVAILABLE ]
3009 -system-sqlite ..... Use sqlite from the operating system.
3011 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3012 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3014 -no-qml-debug ...... Do not build the in-process QML debugging support.
3015 + -qml-debug ......... Build the QML debugging support.
3017 -platform target ... The operating system and compiler you are building
3020 See the README file for a list of supported
3021 operating systems and compilers.
3023 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3024 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3025 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3026 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3027 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3028 -no-avx ............ Do not compile with use of AVX instructions.
3029 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3030 -no-neon ........... Do not compile with use of NEON instructions.
3031 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3032 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3034 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3035 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3037 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3039 -D <string> ........ Add an explicit define to the preprocessor.
3040 -I <string> ........ Add an explicit include path.
3041 -L <string> ........ Add an explicit library path.
3043 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3044 configure determines whether to use pkg-config or not with
3045 some heuristics such as checking the environment variables.
3046 -no-pkg-config ..... Disable use of pkg-config.
3047 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3048 detection heuristic).
3050 -help, -h .......... Display this information.
3052 Third Party Libraries:
3054 -qt-zlib ........... Use the zlib bundled with Qt.
3055 + -system-zlib ....... Use zlib from the operating system.
3056 See http://www.gzip.org/zlib
3058 -no-gif ............ Do not compile GIF reading support.
3060 -no-libpng ......... Do not compile PNG support.
3061 -qt-libpng ......... Use the libpng bundled with Qt.
3062 + -system-libpng ..... Use libpng from the operating system.
3063 See http://www.libpng.org/pub/png
3065 -no-libjpeg ........ Do not compile JPEG support.
3066 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3067 + -system-libjpeg .... Use libjpeg from the operating system.
3068 See http://www.ijg.org
3070 -no-openssl ........ Do not compile support for OpenSSL.
3071 + -openssl ........... Enable run-time OpenSSL support.
3072 -openssl-linked .... Enabled linked OpenSSL support.
3074 -qt-pcre ........... Use the PCRE library bundled with Qt.
3075 + -system-pcre ....... Use the PCRE library from the operating system.
3079 -make <part> ....... Add part to the list of parts to be built at make time.
3080 ($QT_DEFAULT_BUILD_PARTS)
3081 -nomake <part> ..... Exclude part from the list of parts to be built.
3083 -R <string> ........ Add an explicit runtime library path to the Qt
3085 -l <string> ........ Add an explicit library.
3087 -no-rpath .......... Do not use the library install path as a runtime
3089 + -rpath ............. Link Qt libraries and executables using the library
3090 install path as a runtime library path. Equivalent
3091 to -R install_libpath
3093 -continue .......... Continue as far as possible if an error occurs.
3095 -verbose, -v ....... Print verbose information about each step of the
3098 -silent ............ Reduce the build output so that warnings and errors
3099 can be seen more easily.
3101 * -no-optimized-qmake ... Do not build qmake optimized.
3102 -optimized-qmake ...... Build qmake optimized.
3104 -no-gui ............ Don't build the Qt GUI library
3106 $NSN -no-nis ............ Do not compile NIS support.
3107 $NSY -nis ............... Compile NIS support.
3109 $CUN -no-cups ........... Do not compile CUPS support.
3110 $CUY -cups .............. Compile CUPS support.
3111 Requires cups/cups.h and libcups.so.2.
3113 $CIN -no-iconv .......... Do not compile support for iconv(3).
3114 $CIY -iconv ............. Compile support for iconv(3).
3116 $PHN -no-pch ............ Do not use precompiled header support.
3117 $PHY -pch ............... Use precompiled header support.
3119 $DBN -no-dbus ........... Do not compile the QtDBus module.
3120 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3121 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3123 -reduce-relocations ..... Reduce relocations in the libraries through extra
3124 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3125 experimental; needs GNU ld >= 2.18).
3127 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3129 -device <name> ............... Cross-compile for device <name> (experimental)
3130 -device-option <key=value> ... Add device specific options for the device mkspec
3133 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3134 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3136 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3137 $XCBY -xcb ............... Compile Xcb support.
3139 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3140 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3142 $DFBN -no-directfb ....... Do not compile DirectFB support.
3143 $DFBY -directfb .......... Compile DirectFB support.
3145 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3146 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3148 $KMSN -no-kms ............ Do not compile KMS support.
3149 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3151 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3153 -xplatform target ... The target platform when cross-compiling.
3155 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3156 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3158 -no-feature-<feature> Do not compile in <feature>.
3159 -feature-<feature> .. Compile in <feature>. The available features
3160 are described in src/corelib/global/qfeatures.txt
3162 -no-freetype ........ Do not compile in Freetype2 support.
3163 -qt-freetype ........ Use the libfreetype bundled with Qt.
3164 * -system-freetype .... Use libfreetype from the operating system.
3165 See http://www.freetype.org/
3167 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3168 default ($CFG_QCONFIG).
3170 -no-opengl .......... Do not support OpenGL.
3171 -opengl <api> ....... Enable OpenGL support
3172 With no parameter, this will attempt to auto-detect
3173 OpenGL ES 2, or regular desktop OpenGL.
3174 Use es2 for <api> to override auto-detection.
3176 $GBN -no-glib ........... Do not compile Glib support.
3177 $GBY -glib .............. Compile Glib support.
3180 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3183 $X2N -no-xinput2......... Do not compile XInput2 support.
3184 $X2Y -xinput2............ Compile XInput2 support.
3190 if [ "$BUILD_ON_MAC" = "yes" ]; then
3195 -Fstring ........... Add an explicit framework path.
3196 -fw string ......... Add an explicit framework.
3198 * -framework ......... Build Qt as a series of frameworks and
3199 link tools against those frameworks.
3200 -no-framework ...... Do not build Qt as a series of frameworks.
3202 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3203 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3205 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3206 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3207 QT_ENABLE_HARFBUZZ environment variable.
3212 [ "x$ERROR" = "xyes" ] && exit 1
3217 # -----------------------------------------------------------------------------
3218 # LICENSING, INTERACTIVE PART
3219 # -----------------------------------------------------------------------------
3222 echo "This is the Qt ${EditionString} Edition."
3225 if [ "$Edition" = "OpenSource" ]; then
3227 echo "You are licensed to use this software under the terms of"
3228 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3229 if [ -f "$relpath/LICENSE.GPL3" ]; then
3230 echo "You are also licensed to use this software under the terms of"
3231 echo "the GNU General Public License (GPL) versions 3."
3237 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3238 echo "You have already accepted the terms of the $LicenseType license."
3241 if [ -f "$relpath/LICENSE.GPL3" ]; then
3242 echo "Type '3' to view the GNU General Public License version 3."
3244 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3245 echo "Type 'yes' to accept this license offer."
3246 echo "Type 'no' to decline this license offer."
3248 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3252 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3254 elif [ "$acceptance" = "no" ]; then
3255 echo "You are not licensed to use this software."
3258 elif [ "$acceptance" = "3" ]; then
3259 more "$relpath/LICENSE.GPL3"
3260 elif [ "$acceptance" = "L" ]; then
3261 more "$relpath/LICENSE.LGPL"
3264 elif [ "$Edition" = "Preview" ]; then
3265 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3268 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3269 echo "You have already accepted the terms of the $LicenseType license."
3272 echo "You are licensed to use this software under the terms of"
3273 echo "the $TheLicense"
3275 echo "Type '?' to read the Preview License."
3276 echo "Type 'yes' to accept this license offer."
3277 echo "Type 'no' to decline this license offer."
3279 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3283 if [ "$acceptance" = "yes" ]; then
3285 elif [ "$acceptance" = "no" ] ;then
3286 echo "You are not licensed to use this software."
3289 elif [ "$acceptance" = "?" ]; then
3290 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3293 elif [ "$Edition" != "OpenSource" ]; then
3294 if [ -n "$ExpiryDate" ]; then
3295 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3296 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3297 Today=`date +%Y%m%d`
3298 if [ "$Today" -gt "$ExpiryDate" ]; then
3299 case "$LicenseType" in
3300 Commercial|Academic|Educational)
3301 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3303 echo "NOTICE NOTICE NOTICE NOTICE"
3305 echo " Your support and upgrade period has expired."
3307 echo " You are no longer licensed to use this version of Qt."
3308 echo " Please contact qt-info@nokia.com to renew your support"
3309 echo " and upgrades for this license."
3311 echo "NOTICE NOTICE NOTICE NOTICE"
3316 echo "WARNING WARNING WARNING WARNING"
3318 echo " Your support and upgrade period has expired."
3320 echo " You may continue to use your last licensed release"
3321 echo " of Qt under the terms of your existing license"
3322 echo " agreement. But you are not entitled to technical"
3323 echo " support, nor are you entitled to use any more recent"
3324 echo " Qt releases."
3326 echo " Please contact qt-info@nokia.com to renew your"
3327 echo " support and upgrades for this license."
3329 echo "WARNING WARNING WARNING WARNING"
3336 echo "NOTICE NOTICE NOTICE NOTICE"
3338 echo " Your Evaluation license has expired."
3340 echo " You are no longer licensed to use this software. Please"
3341 echo " contact qt-info@nokia.com to purchase license, or install"
3342 echo " the Qt Open Source Edition if you intend to develop free"
3345 echo "NOTICE NOTICE NOTICE NOTICE"
3352 TheLicense=`head -n 1 "$outpath/LICENSE"`
3354 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3355 echo "You have already accepted the terms of the $TheLicense."
3358 echo "You are licensed to use this software under the terms of"
3359 echo "the $TheLicense."
3361 echo "Type '?' to view the $TheLicense."
3362 echo "Type 'yes' to accept this license offer."
3363 echo "Type 'no' to decline this license offer."
3365 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3369 if [ "$acceptance" = "yes" ]; then
3371 elif [ "$acceptance" = "no" ]; then
3372 echo "You are not licensed to use this software."
3375 else [ "$acceptance" = "?" ]
3376 more "$outpath/LICENSE"
3381 # this should be moved somewhere else
3384 AIX_VERSION=`uname -v`
3385 if [ "$AIX_VERSION" -lt "5" ]; then
3386 QMakeVar add QMAKE_LIBS_X11 -lbind
3393 #-------------------------------------------------------------------------------
3394 # generate qconfig.cpp
3395 #-------------------------------------------------------------------------------
3396 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3398 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3400 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3401 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3403 /* Installation date */
3404 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3406 /* Installation Info */
3407 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3408 "qt_prfxpath=$QT_INSTALL_PREFIX",
3409 "qt_docspath=$QT_INSTALL_DOCS",
3410 "qt_hdrspath=$QT_INSTALL_HEADERS",
3411 "qt_libspath=$QT_INSTALL_LIBS",
3412 "qt_binspath=$QT_INSTALL_BINS",
3413 "qt_plugpath=$QT_INSTALL_PLUGINS",
3414 "qt_impspath=$QT_INSTALL_IMPORTS",
3415 "qt_datapath=$QT_INSTALL_DATA",
3416 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3417 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3418 "qt_tstspath=$QT_INSTALL_TESTS",
3419 #ifdef QT_BUILD_QMAKE
3420 "qt_ssrtpath=$CFG_SYSROOT",
3421 "qt_hpfxpath=$QT_HOST_PREFIX",
3422 "qt_hbinpath=$QT_HOST_BINS",
3423 "qt_hdatpath=$QT_HOST_DATA",
3426 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3429 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3431 /* strlen( "qt_lcnsxxxx" ) == 12 */
3432 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3433 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3435 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3438 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3439 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3440 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3442 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3443 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3444 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3447 # -----------------------------------------------------------------------------
3448 if [ "$LicenseType" = "Evaluation" ]; then
3449 EVALKEY=qt_qevalkey=$LicenseKeyExt
3450 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3451 EVALKEY=qt_qevalkey=
3454 if [ -n "$EVALKEY" ]; then
3455 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3456 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3457 /* Evaluation license key */
3458 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3460 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3464 # -----------------------------------------------------------------------------
3466 # -----------------------------------------------------------------------------
3469 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3471 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3472 if [ "$OPT_SHADOW" = "yes" ]; then
3473 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3474 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3475 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3479 # $1: input variable name (awk regexp)
3480 # $2: optional output variable name
3481 # $3: optional value transformation (sed command)
3482 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3483 # is where the resulting variable is written to
3484 setBootstrapVariable()
3486 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3490 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3491 echo "Creating qmake. Please wait..."
3494 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3495 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3496 if [ -f "$QCONFIG_H" ]; then
3497 OLD_QCONFIG_H=$QCONFIG_H
3498 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3501 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3502 # when building qmake, we use #defines for the install paths,
3503 # however they are real functions in the library
3504 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3505 mkdir -p "$outpath/src/corelib/global"
3506 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3507 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3510 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3512 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3513 rm -rf mkspecs/default mkspecs/default-host
3514 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3515 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3516 mkdir -p "$outpath/qmake" || exit
3518 for mkfile in GNUmakefile Makefile; do
3521 in_mkfile="${mkfile}.in"
3522 if [ "$mkfile" = "Makefile" ]; then
3523 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3524 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3526 in_mkfile="${mkfile}.unix"
3528 in_mkfile="$relpath/qmake/$in_mkfile"
3529 mkfile="$outpath/qmake/$mkfile"
3530 if [ -f "$mkfile" ]; then
3531 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3534 [ -f "$in_mkfile" ] || continue
3536 echo "########################################################################" > "$mkfile"
3537 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3538 echo "########################################################################" >> "$mkfile"
3541 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3542 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3543 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3545 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3546 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3549 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3550 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3551 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3552 setBootstrapVariable QMAKE_CFLAGS
3553 setBootstrapVariable QMAKE_CXXFLAGS
3554 setBootstrapVariable QMAKE_LFLAGS
3556 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3557 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3558 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3560 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3561 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3562 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3563 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3564 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3565 elif [ "$CFG_DEBUG" = "yes" ]; then
3566 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3567 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3568 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3569 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3572 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3573 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3574 for rpath in $RPATH_FLAGS; do
3575 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3578 if [ "$BUILD_ON_MAC" = "yes" ]; then
3579 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3580 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3581 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3582 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3583 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3584 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3585 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3586 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3587 if [ '!' -z "$CFG_SDK" ]; then
3588 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3589 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3590 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3591 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3592 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3595 if [ '!' -z "$D_FLAGS" ]; then
3596 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3598 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3599 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3600 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3601 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3603 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3604 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3605 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3606 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3607 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3608 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3609 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3610 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3611 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3612 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3614 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3615 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3616 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3617 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3622 QMAKE_BUILD_ERROR=no
3623 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3624 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3625 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3626 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3629 #-------------------------------------------------------------------------------
3630 # create a qt.conf for the Qt build tree itself
3631 #-------------------------------------------------------------------------------
3633 QTCONFFILE="$outpath/bin/qt.conf"
3634 cat > "$QTCONFFILE" <<EOF
3639 #-------------------------------------------------------------------------------
3641 #-------------------------------------------------------------------------------
3642 if [ -z "$PKG_CONFIG" ]; then
3643 # See if PKG_CONFIG is set in the mkspec:
3644 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3646 if [ -z "$PKG_CONFIG" ]; then
3647 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3650 if [ "$CFG_PKGCONFIG" = "no" ]; then
3652 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3654 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3655 echo >&2 "a correctly setup pkg-config environment!"
3657 elif [ -n "$PKG_CONFIG" ]; then
3658 # found a pkg-config
3659 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3660 # when xcompiling, check environment to see if it's actually usable
3661 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3662 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3663 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3664 if [ -n "$GCC_MACHINE_DUMP" ]; then
3665 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3667 export PKG_CONFIG_LIBDIR
3668 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3669 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3670 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3671 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3672 echo >&2 "Set this variable to the directory that contains target .pc files"
3673 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3674 echo >&2 "use -force-pkg-config to override this test."
3678 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3681 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3682 if [ -n "$CFG_SYSROOT" ]; then
3683 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3684 export PKG_CONFIG_SYSROOT_DIR
3685 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3686 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3687 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3688 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3689 echo >&2 "or use -force-pkg-config to override this test."
3693 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3697 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3698 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3702 if [ -z "$PKG_CONFIG" ]; then
3703 QT_CONFIG="$QT_CONFIG no-pkg-config"
3706 #-------------------------------------------------------------------------------
3707 # write out device config before we run the test.
3708 #-------------------------------------------------------------------------------
3709 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3710 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3711 rm -f "$DEVICE_VARS_FILE"
3713 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3714 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3717 #-------------------------------------------------------------------------------
3718 # tests that need qmake
3719 #-------------------------------------------------------------------------------
3721 #-------------------------------------------------------------------------------
3722 # determine the target and host architectures
3723 #-------------------------------------------------------------------------------
3725 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3726 OUTFILE=$outpath/arch.result
3727 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_CONFIG_TEST_COMMANDLINE
3728 if [ $? -eq 0 ]; then
3729 eval `cat "$OUTFILE"`
3732 echo "Could not determine the target architecture!"
3733 echo "Turn on verbose messaging (-v) to see the final report."
3735 rm -f "$OUTFILE" 2>/dev/null
3736 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3738 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3739 # Do the same test again, using the host compiler
3740 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_CONFIG_TEST_COMMANDLINE
3741 if [ $? -eq 0 ]; then
3742 eval `cat "$OUTFILE"`
3745 echo "Could not determine the host architecture!"
3746 echo "Turn on verbose messaging (-v) to see the final report."
3748 rm -f "$OUTFILE" 2>/dev/null
3749 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3751 # not cross compiling, host == target
3752 CFG_HOST_ARCH="$CFG_ARCH"
3753 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3757 if [ "$OPT_VERBOSE" = "yes" ]; then
3758 echo "System architecture: '$CFG_ARCH'"
3759 echo "Host architecture: '$CFG_HOST_ARCH'"
3762 #-------------------------------------------------------------------------------
3763 # functionality tests
3764 #-------------------------------------------------------------------------------
3766 # Detect C++11 support
3767 if [ "$CFG_CXX11" != "no" ]; then
3768 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
3770 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3771 echo "C++11 support cannot be enabled due to functionality tests!"
3772 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3773 echo " If you believe this message is in error you may use the continue"
3774 echo " switch (-continue) to $0 to continue."
3781 # detect availability of float math.h functions
3782 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
3783 CFG_USE_FLOATMATH=yes
3785 CFG_USE_FLOATMATH=no
3788 # detect sse2 support
3789 if [ "${CFG_SSE2}" = "auto" ]; then
3790 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
3797 # detect sse3 support
3798 if [ "${CFG_SSE3}" = "auto" ]; then
3799 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
3806 # detect ssse3 support
3807 if [ "${CFG_SSSE3}" = "auto" ]; then
3808 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
3815 # detect sse4.1 support
3816 if [ "${CFG_SSE4_1}" = "auto" ]; then
3817 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
3824 # detect sse4.2 support
3825 if [ "${CFG_SSE4_2}" = "auto" ]; then
3826 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
3833 # detect avx support
3834 if [ "${CFG_AVX}" = "auto" ]; then
3835 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
3836 case "$XQMAKESPEC" in
3838 # Some clang versions produce internal compiler errors compiling Qt AVX code
3839 case `$TEST_COMPILER --version` in
3840 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3842 if [ "$OPT_VERBOSE" = "yes" ]; then
3843 echo 'AVX support disabled for blacklisted clang compiler'
3860 # detect avx2 support
3861 if [ "${CFG_AVX}" = "no" ]; then
3864 if [ "${CFG_AVX2}" = "auto" ]; then
3865 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
3872 # check iWMMXt support
3873 if [ "$CFG_IWMMXT" = "yes" ]; then
3874 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
3875 if [ $? != "0" ]; then
3876 echo "The iWMMXt functionality test failed!"
3877 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3882 # detect neon support
3883 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3884 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
3889 elif [ "$CFG_ARCH" != "arm" ]; then
3893 # detect mips_dsp support
3894 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3900 # detect mips_dspr2 support
3901 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3907 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3910 if [ "$CFG_ZLIB" = "no" ]; then
3911 # Note: Qt no longer support builds without zlib
3912 # So we force a "no" to be "auto" here.
3913 # If you REALLY really need no zlib support, you can still disable
3914 # it by doing the following:
3915 # add "no-zlib" to mkspecs/qconfig.pri
3916 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3918 # There's no guarantee that Qt will build under those conditions
3923 if [ "$CFG_ZLIB" = "auto" ]; then
3924 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
3931 if [ "$CFG_LARGEFILE" = "auto" ]; then
3932 #Large files should be enabled for all Linux systems
3936 if [ "$CFG_GUI" = "no" ]; then
3937 QPA_PLATFORM_GUARD=no
3940 # detect how jpeg should be built
3941 if [ "$CFG_JPEG" = "auto" ]; then
3942 if [ "$CFG_SHARED" = "yes" ]; then
3949 if [ "$CFG_LIBJPEG" = "auto" ]; then
3950 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
3957 # detect how gif should be built
3958 if [ "$CFG_GIF" = "auto" ]; then
3959 if [ "$CFG_SHARED" = "yes" ]; then
3967 if [ "$CFG_LIBPNG" = "auto" ]; then
3968 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
3975 # detect accessibility
3976 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3977 CFG_ACCESSIBILITY=yes
3980 if [ "$CFG_EGLFS" = "yes" ]; then
3981 if [ "$CFG_EGL" = "no" ]; then
3982 echo "The EGLFS plugin requires EGL support and cannot be built"
3985 if [ "$CFG_OPENGL" != "es2" ]; then
3986 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
3993 if [ "$CFG_KMS" = "yes" ]; then
3994 if [ "$CFG_EGL" = "no" ]; then
3995 echo "The KMS plugin requires EGL support and cannot be built"
3998 if [ "$CFG_OPENGL" != "es2" ]; then
3999 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4004 # auto-detect SQL-modules support
4005 for _SQLDR in $CFG_SQL_AVAILABLE; do
4008 if [ "$CFG_SQL_mysql" != "no" ]; then
4009 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4010 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4011 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4012 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4013 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4014 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4015 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4017 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4018 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4019 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4020 echo " You need MySql 4 or higher."
4021 echo " If you believe this message is in error you may use the continue"
4022 echo " switch (-continue) to $0 to continue."
4027 QT_LFLAGS_MYSQL_R=""
4031 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
4032 QMakeVar add CONFIG use_libmysqlclient_r
4033 if [ "$CFG_SQL_mysql" = "auto" ]; then
4034 CFG_SQL_mysql=plugin
4036 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4037 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
4038 if [ "$CFG_SQL_mysql" = "auto" ]; then
4039 CFG_SQL_mysql=plugin
4042 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4043 echo "MySQL support cannot be enabled due to functionality tests!"
4044 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4045 echo " If you believe this message is in error you may use the continue"
4046 echo " switch (-continue) to $0 to continue."
4051 QT_LFLAGS_MYSQL_R=""
4059 if [ "$CFG_SQL_psql" != "no" ]; then
4060 # Be careful not to use native pg_config when cross building.
4061 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4062 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4063 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4065 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4066 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4067 # But, respect PSQL_LIBS if set
4068 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4069 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
4070 if [ "$CFG_SQL_psql" = "auto" ]; then
4074 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4075 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4076 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4077 echo " If you believe this message is in error you may use the continue"
4078 echo " switch (-continue) to $0 to continue."
4089 if [ "$CFG_SQL_odbc" != "no" ]; then
4090 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
4091 if [ "$CFG_SQL_odbc" = "auto" ]; then
4095 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
4096 QT_LFLAGS_ODBC="-liodbc"
4097 if [ "$CFG_SQL_odbc" = "auto" ]; then
4101 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4102 echo "ODBC support cannot be enabled due to functionality tests!"
4103 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4104 echo " If you believe this message is in error you may use the continue"
4105 echo " switch (-continue) to $0 to continue."
4115 if [ "$CFG_SQL_oci" != "no" ]; then
4116 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
4117 if [ "$CFG_SQL_oci" = "auto" ]; then
4121 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4122 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4123 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4124 echo " If you believe this message is in error you may use the continue"
4125 echo " switch (-continue) to $0 to continue."
4134 if [ "$CFG_SQL_tds" != "no" ]; then
4135 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4136 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4137 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
4138 if [ "$CFG_SQL_tds" = "auto" ]; then
4142 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4143 echo "TDS support cannot be enabled due to functionality tests!"
4144 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4145 echo " If you believe this message is in error you may use the continue"
4146 echo " switch (-continue) to $0 to continue."
4155 if [ "$CFG_SQL_db2" != "no" ]; then
4156 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
4157 if [ "$CFG_SQL_db2" = "auto" ]; then
4161 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4162 echo "ODBC support cannot be enabled due to functionality tests!"
4163 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4164 echo " If you believe this message is in error you may use the continue"
4165 echo " switch (-continue) to $0 to continue."
4174 if [ "$CFG_SQL_ibase" != "no" ]; then
4175 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
4176 if [ "$CFG_SQL_ibase" = "auto" ]; then
4177 CFG_SQL_ibase=plugin
4180 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4181 echo "InterBase support cannot be enabled due to functionality tests!"
4182 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4183 echo " If you believe this message is in error you may use the continue"
4184 echo " switch (-continue) to $0 to continue."
4193 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4194 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
4195 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4196 CFG_SQL_sqlite2=plugin
4199 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4200 echo "SQLite2 support cannot be enabled due to functionality tests!"
4201 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4202 echo " If you believe this message is in error you may use the continue"
4203 echo " switch (-continue) to $0 to continue."
4212 if [ "$CFG_SQL_sqlite" != "no" ]; then
4213 SQLITE_AUTODETECT_FAILED="no"
4214 if [ "$CFG_SQLITE" = "system" ]; then
4215 if [ -n "$PKG_CONFIG" ]; then
4216 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4217 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4220 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4222 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
4223 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4224 CFG_SQL_sqlite=plugin
4226 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4228 SQLITE_AUTODETECT_FAILED="yes"
4231 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4232 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4233 CFG_SQL_sqlite=plugin
4236 SQLITE_AUTODETECT_FAILED="yes"
4240 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4241 echo "SQLite support cannot be enabled due to functionality tests!"
4242 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4243 echo " If you believe this message is in error you may use the continue"
4244 echo " switch (-continue) to $0 to continue."
4250 if [ "$OPT_VERBOSE" = "yes" ]; then
4251 echo "unknown SQL driver: $_SQLDR"
4257 # auto-detect NIS support
4258 if [ "$CFG_NIS" != "no" ]; then
4259 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
4262 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4263 echo "NIS support cannot be enabled due to functionality tests!"
4264 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4265 echo " If you believe this message is in error you may use the continue"
4266 echo " switch (-continue) to $0 to continue."
4274 # auto-detect CUPS support
4275 if [ "$CFG_CUPS" != "no" ]; then
4276 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
4279 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4280 echo "Cups support cannot be enabled due to functionality tests!"
4281 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4282 echo " If you believe this message is in error you may use the continue"
4283 echo " switch (-continue) to $0 to continue."
4291 # auto-detect iconv(3) support
4292 if [ "$CFG_ICONV" != "no" ]; then
4293 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4295 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
4297 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
4299 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
4302 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4303 echo "Iconv support cannot be enabled due to functionality tests!"
4304 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4305 echo " If you believe this message is in error you may use the continue"
4306 echo " switch (-continue) to $0 to continue."
4314 # auto-detect libdbus-1 support
4315 if [ "$CFG_DBUS" != "no" ]; then
4316 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4317 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4318 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4320 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
4321 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4322 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4323 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4325 if [ "$CFG_DBUS" = "auto" ]; then
4327 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4328 # CFG_DBUS is "yes" or "linked" here
4330 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4331 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4332 echo " If you believe this message is in error you may use the continue"
4333 echo " switch (-continue) to $0 to continue."
4339 # auto-detect Glib support
4340 if [ "$CFG_GLIB" != "no" ]; then
4341 if [ -n "$PKG_CONFIG" ]; then
4342 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4343 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4345 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
4347 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4348 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4350 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4351 echo "Glib support cannot be enabled due to functionality tests!"
4352 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4353 echo " If you believe this message is in error you may use the continue"
4354 echo " switch (-continue) to $0 to continue."
4362 # auto-detect GTK style support
4363 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4364 if [ -n "$PKG_CONFIG" ]; then
4365 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4366 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4368 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4370 QT_CONFIG="$QT_CONFIG gtkstyle"
4371 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4372 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4374 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4375 echo "Gtk theme support cannot be enabled due to functionality tests!"
4376 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4377 echo " If you believe this message is in error you may use the continue"
4378 echo " switch (-continue) to $0 to continue."
4384 elif [ "$CFG_GLIB" = "no" ]; then
4389 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4390 if [ -n "$PKG_CONFIG" ]; then
4391 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4392 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4394 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
4396 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4397 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4399 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4400 echo "Gstreamer support cannot be enabled due to functionality tests!"
4401 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4402 echo " If you believe this message is in error you may use the continue"
4403 echo " switch (-continue) to $0 to continue."
4409 elif [ "$CFG_GLIB" = "no" ]; then
4413 # auto-detect libicu support
4414 if [ "$CFG_ICU" != "no" ]; then
4415 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
4416 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4418 if [ "$CFG_ICU" = "auto" ]; then
4420 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4423 echo "The ICU library support cannot be enabled."
4424 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4425 echo " If you believe this message is in error you may use the continue"
4426 echo " switch (-continue) to $0 to continue."
4432 # Auto-detect PulseAudio support
4433 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4434 if [ -n "$PKG_CONFIG" ]; then
4435 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4436 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4438 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
4440 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4441 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4443 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4444 echo "PulseAudio support cannot be enabled due to functionality tests!"
4445 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4446 echo " If you believe this message is in error you may use the continue"
4447 echo " switch (-continue) to $0 to continue."
4456 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4457 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4458 if [ "$CFG_GUI" = "no" ]; then
4459 if [ "$CFG_OPENGL" = "auto" ]; then
4462 if [ "$CFG_OPENGL" != "no" ]; then
4463 echo "OpenGL enabled, but GUI disabled."
4464 echo " You might need to either enable the GUI or disable OpenGL"
4468 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4469 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
4471 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
4474 if [ "$CFG_OPENGL" = "yes" ]; then
4475 echo "All the OpenGL functionality tests failed!"
4476 echo " You might need to modify the include and library search paths by editing"
4477 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4478 echo " ${XQMAKESPEC}."
4485 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4486 if [ "$CFG_OPENGL" = "desktop" ]; then
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 elif [ "$CFG_OPENGL" = "es2" ]; then
4498 "$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
4499 if [ $? != "0" ]; then
4500 echo "The OpenGL ES 2.0 functionality test failed!"
4501 echo " You might need to modify the include and library search paths by editing"
4502 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4503 echo " ${XQMAKESPEC}."
4506 elif [ "$CFG_OPENGL" = "desktop" ]; then
4507 # Desktop OpenGL support
4508 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4509 if [ $? != "0" ]; then
4510 echo "The OpenGL functionality test failed!"
4511 echo " You might need to modify the include and library search paths by editing"
4512 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4513 echo " ${XQMAKESPEC}."
4518 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4519 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4520 if [ $? != "0" ]; then
4521 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4528 fi # X11/MINGW OpenGL
4530 if [ "$BUILD_ON_MAC" = "yes" ]; then
4531 if [ "$CFG_COREWLAN" = "auto" ]; then
4532 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
4540 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4541 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4542 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
4544 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
4547 if [ "$CFG_OPENGL" = "yes" ]; then
4548 echo "All the OpenGL functionality tests failed!"
4549 echo " You might need to modify the include and library search paths by editing"
4550 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4551 echo " ${XQMAKESPEC}."
4556 elif [ "$CFG_OPENGL" = "es2" ]; then
4558 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4559 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4560 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4561 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4562 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4563 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4564 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4565 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4568 "$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
4569 if [ $? != "0" ]; then
4570 echo "The OpenGL ES 2.0 functionality test failed!"
4571 echo " You might need to modify the include and library search paths by editing"
4572 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4573 echo " ${XQMAKESPEC}."
4576 elif [ "$CFG_OPENGL" = "desktop" ]; then
4577 # Desktop OpenGL support
4578 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4579 if [ $? != "0" ]; then
4580 echo "The OpenGL functionality test failed!"
4581 echo " You might need to modify the include and library search paths by editing"
4582 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4583 echo " ${XQMAKESPEC}."
4588 # auto-detect FontConfig support
4589 if [ "$CFG_FONTCONFIG" != "no" ]; then
4590 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4591 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4592 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4594 QT_CFLAGS_FONTCONFIG=
4595 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4597 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
4598 QT_CONFIG="$QT_CONFIG fontconfig"
4599 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4600 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4602 CFG_LIBFREETYPE=system
4609 # Save these for a check later
4610 ORIG_CFG_XCB="$CFG_XCB"
4611 ORIG_CFG_EGLFS="$CFG_EGLFS"
4612 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4613 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4614 ORIG_CFG_KMS="$CFG_KMS"
4616 if [ "$CFG_LIBUDEV" != "no" ]; then
4617 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4618 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4619 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4620 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4621 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4623 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
4625 QT_CONFIG="$QT_CONFIG libudev"
4626 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4627 echo "The libudev functionality test failed!"
4631 QMakeVar add DEFINES QT_NO_LIBUDEV
4635 if [ "$CFG_EVDEV" != "no" ]; then
4636 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
4638 QT_CONFIG="$QT_CONFIG evdev"
4639 elif [ "$CFG_EVDEV" = "yes" ]; then
4640 echo "The evdev functionality test failed!"
4644 QMakeVar add DEFINES QT_NO_EVDEV
4648 # Check we actually have X11 :-)
4649 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
4650 QT_CONFIG="$QT_CONFIG xlib"
4653 # auto-detect Xrender support
4654 if [ "$CFG_XRENDER" != "no" ]; then
4655 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
4657 QT_CONFIG="$QT_CONFIG xrender"
4659 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4660 echo "Xrender support cannot be enabled due to functionality tests!"
4661 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4662 echo " If you believe this message is in error you may use the continue"
4663 echo " switch (-continue) to $0 to continue."
4671 if [ "$CFG_XCB" != "no" ]; then
4672 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4673 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4674 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4676 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
4678 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
4679 QT_CONFIG="$QT_CONFIG xcb-render"
4682 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
4684 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4687 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
4688 QT_CONFIG="$QT_CONFIG xcb-xlib"
4691 # auto-detect XInput2 support. Needed by xcb too.
4692 if [ "$CFG_XINPUT2" != "no" ]; then
4693 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
4697 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4698 echo "XInput2 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."
4709 if [ "$CFG_XCB" = "yes" ]; then
4710 echo "The XCB test failed!"
4711 echo " You might need to install dependency packages."
4712 echo " See src/plugins/platforms/xcb/README."
4716 QMakeVar add DEFINES QT_NO_XCB
4720 if [ "$CFG_DIRECTFB" != "no" ]; then
4721 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4722 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4723 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4724 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
4726 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4727 echo " DirectFB support cannot be enabled due to functionality tests!"
4728 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4729 echo " If you believe this message is in error you may use the continue"
4730 echo " switch (-continue) to $0 to continue."
4740 if [ "$CFG_LINUXFB" != "no" ]; then
4741 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/linuxfb" "LinuxFB" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4743 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4744 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4745 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4746 echo " If you believe this message is in error you may use the continue"
4747 echo " switch (-continue) to $0 to continue."
4754 if [ "$CFG_KMS" != "no" ]; then
4755 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/kms" "KMS" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4757 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4758 echo " KMS support cannot be enabled due to functionality tests!"
4759 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4760 echo " If you believe this message is in error you may use the continue"
4761 echo " switch (-continue) to $0 to continue."
4768 # Detect libxkbcommon
4769 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4770 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4771 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4772 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4773 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4775 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4779 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4780 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4781 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4782 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4783 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4784 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4785 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4786 fi # detect EGL support
4787 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
4789 elif [ "$CFG_EGL" = "yes" ]; then
4790 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4791 echo " You might need to modify the include and library search paths by editing"
4792 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4797 elif [ "$CFG_OPENGL" = "desktop" ]; then
4798 if [ "$CFG_EGL" = "yes" ]; then
4799 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4800 echo "Either disable EGL support or enable OpenGL ES support."
4806 if [ "$CFG_EGLFS" != "no" ]; then
4807 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4808 CFG_EGLFS="$CFG_EGL"
4814 if [ "$CFG_KMS" = "yes" ]; then
4815 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4822 # Determine the default QPA platform
4823 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4825 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4826 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4827 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4828 QT_QPA_DEFAULT_PLATFORM="windows"
4829 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4830 QT_QPA_DEFAULT_PLATFORM="cocoa"
4831 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4832 QT_QPA_DEFAULT_PLATFORM="qnx"
4834 QT_QPA_DEFAULT_PLATFORM="xcb"
4839 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4840 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4841 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4842 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4844 if [ "$CFG_DIRECTFB" = "yes" ]; then
4845 QT_CONFIG="$QT_CONFIG directfb"
4846 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4847 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4849 if [ "$CFG_LINUXFB" = "yes" ]; then
4850 QT_CONFIG="$QT_CONFIG linuxfb"
4852 if [ "$CFG_KMS" = "yes" ]; then
4853 QT_CONFIG="$QT_CONFIG kms"
4856 if [ "$BUILD_ON_MAC" = "yes" ]; then
4857 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
4858 QT_CONFIG="$QT_CONFIG coreservices"
4860 QMakeVar add DEFINES QT_NO_CORESERVICES
4864 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4865 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4866 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4867 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4868 echo "No QPA platform plugin enabled!"
4869 echo " If you really want to build without a QPA platform plugin you must pass"
4870 echo " -no-qpa-platform-guard to configure. Doing this will"
4871 echo " produce a Qt that can not run GUI applications."
4872 echo " The dependencies needed for xcb to build are listed in"
4873 echo " src/plugins/platforms/xcb/README"
4880 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4881 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4882 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
4883 CFG_LIBFREETYPE=system
4889 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS &&
4890 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4891 echo "STL functionality check failed! Cannot build Qt with this STL library."
4892 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4897 # detect POSIX clock_gettime()
4898 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4899 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
4900 CFG_CLOCK_GETTIME=yes
4902 CFG_CLOCK_GETTIME=no
4906 # detect POSIX monotonic clocks
4907 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4908 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
4909 CFG_CLOCK_MONOTONIC=yes
4911 CFG_CLOCK_MONOTONIC=no
4913 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4914 CFG_CLOCK_MONOTONIC=no
4918 if [ "$CFG_MREMAP" = "auto" ]; then
4919 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
4926 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4927 if [ "$CFG_GETADDRINFO" != "no" ]; then
4928 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
4931 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4932 echo "getaddrinfo support cannot be enabled due to functionality tests!"
4933 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4934 echo " If you believe this message is in error you may use the continue"
4935 echo " switch (-continue) to $0 to continue."
4943 # find if the platform provides inotify
4944 if [ "$CFG_INOTIFY" != "no" ]; then
4945 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
4948 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4949 echo "inotify support cannot be enabled due to functionality tests!"
4950 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4951 echo " If you believe this message is in error you may use the continue"
4952 echo " switch (-continue) to $0 to continue."
4960 # find if the platform provides if_nametoindex (ipv6 interface name support)
4961 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4962 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
4965 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4966 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4967 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4968 echo " If you believe this message is in error you may use the continue"
4969 echo " switch (-continue) to $0 to continue."
4977 # find if the platform provides getifaddrs (network interface enumeration)
4978 if [ "$CFG_GETIFADDRS" != "no" ]; then
4979 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
4982 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4983 echo "getifaddrs support cannot be enabled due to functionality tests!"
4984 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4985 echo " If you believe this message is in error you may use the continue"
4986 echo " switch (-continue) to $0 to continue."
4995 if [ "$CFG_OPENSSL" != "no" ]; then
4996 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
4997 if [ "$CFG_OPENSSL" = "auto" ]; then
5001 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5002 echo "OpenSSL support cannot be enabled due to functionality tests!"
5003 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5004 echo " If you believe this message is in error you may use the continue"
5005 echo " switch (-continue) to $0 to continue."
5014 if [ "$CFG_PCRE" != "qt" ]; then
5015 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
5018 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5019 echo "PCRE support cannot be enabled due to functionality tests!"
5020 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5021 echo " If you believe this message is in error you may use the continue"
5022 echo " switch (-continue) to $0 to continue."
5030 # detect OpenVG support
5031 if [ "$CFG_OPENVG" != "no" ]; then
5032 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
5033 if [ "$CFG_OPENVG" = "auto" ]; then
5036 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
5037 if [ "$CFG_OPENVG" = "auto" ]; then
5040 CFG_OPENVG_ON_OPENGL=yes
5041 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
5042 if [ "$CFG_OPENVG" = "auto" ]; then
5045 CFG_OPENVG_LC_INCLUDES=yes
5046 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
5047 if [ "$CFG_OPENVG" = "auto" ]; then
5050 CFG_OPENVG_LC_INCLUDES=yes
5051 CFG_OPENVG_ON_OPENGL=yes
5053 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5054 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5055 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5056 echo " If you believe this message is in error you may use the continue"
5057 echo " switch (-continue) to $0 to continue."
5063 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
5064 CFG_OPENVG_SHIVA=yes
5068 if [ "$CFG_ALSA" = "auto" ]; then
5069 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
5076 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5077 if [ "$CFG_ARCH" = "arm" ]; then
5078 "$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
5079 if [ $? != "0" ]; then
5080 CFG_JAVASCRIPTCORE_JIT=no
5083 case "$XPLATFORM" in
5085 CFG_JAVASCRIPTCORE_JIT=no
5091 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5092 QMakeVar set JAVASCRIPTCORE_JIT yes
5093 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5094 QMakeVar set JAVASCRIPTCORE_JIT no
5097 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5098 CFG_AUDIO_BACKEND=yes
5101 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5102 echo "Warning: largefile support cannot be disabled for win32."
5106 #-------------------------------------------------------------------------------
5107 # ask for all that hasn't been auto-detected or specified in the arguments
5108 #-------------------------------------------------------------------------------
5110 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5112 # disable accessibility
5113 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5114 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5116 QT_CONFIG="$QT_CONFIG accessibility"
5120 if [ "$CFG_EGL" = "yes" ]; then
5121 QT_CONFIG="$QT_CONFIG egl"
5123 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5127 if [ "$CFG_EGLFS" = "yes" ]; then
5128 QT_CONFIG="$QT_CONFIG eglfs"
5130 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5134 if [ "$CFG_OPENVG" = "no" ]; then
5135 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5137 QT_CONFIG="$QT_CONFIG openvg"
5138 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5139 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5141 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5142 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5144 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5145 QT_CONFIG="$QT_CONFIG shivavg"
5146 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5151 if [ "$CFG_OPENGL" = "no" ]; then
5152 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5154 QT_CONFIG="$QT_CONFIG opengl"
5157 if [ "$CFG_OPENGL" = "es2" ]; then
5158 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5161 if [ "$CFG_OPENGL" = "es2" ]; then
5162 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5163 QT_CONFIG="$QT_CONFIG opengles2"
5166 # build up the variables for output
5167 if [ "$CFG_DEBUG" = "yes" ]; then
5168 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5169 elif [ "$CFG_DEBUG" = "no" ]; then
5170 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5172 if [ "$CFG_SHARED" = "yes" ]; then
5173 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5174 QT_CONFIG="$QT_CONFIG shared"
5175 elif [ "$CFG_SHARED" = "no" ]; then
5176 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5177 QT_CONFIG="$QT_CONFIG static"
5180 #FIXME: qpa is implicit this should all be removed
5181 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5182 QT_CONFIG="$QT_CONFIG qpa"
5183 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5184 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5186 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5187 # Do not set this here for Windows. Let qmake do it so
5188 # debug and release precompiled headers are kept separate.
5189 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5191 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5192 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5193 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5194 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5195 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5196 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5198 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5199 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5201 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5202 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5203 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5204 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5205 QMakeVar add QMAKE_CFLAGS -g
5206 QMakeVar add QMAKE_CXXFLAGS -g
5207 QT_CONFIG="$QT_CONFIG separate_debug_info"
5209 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5210 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5212 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5213 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5214 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5215 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5216 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5217 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5218 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5219 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5220 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5221 if [ "$CFG_ARCH" = "mips" ]; then
5222 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5223 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5225 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5226 QT_CONFIG="$QT_CONFIG clock-gettime"
5228 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5229 QT_CONFIG="$QT_CONFIG clock-monotonic"
5231 if [ "$CFG_MREMAP" = "yes" ]; then
5232 QT_CONFIG="$QT_CONFIG mremap"
5234 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5235 QT_CONFIG="$QT_CONFIG getaddrinfo"
5237 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5238 QT_CONFIG="$QT_CONFIG ipv6ifname"
5240 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5241 QT_CONFIG="$QT_CONFIG getifaddrs"
5243 if [ "$CFG_INOTIFY" = "yes" ]; then
5244 QT_CONFIG="$QT_CONFIG inotify"
5246 if [ "$CFG_LIBJPEG" = "no" ]; then
5248 elif [ "$CFG_LIBJPEG" = "system" ]; then
5249 QT_CONFIG="$QT_CONFIG system-jpeg"
5251 if [ "$CFG_JPEG" = "no" ]; then
5252 QT_CONFIG="$QT_CONFIG no-jpeg"
5253 elif [ "$CFG_JPEG" = "yes" ]; then
5254 QT_CONFIG="$QT_CONFIG jpeg"
5256 if [ "$CFG_LIBPNG" = "no" ]; then
5259 if [ "$CFG_LIBPNG" = "system" ]; then
5260 QT_CONFIG="$QT_CONFIG system-png"
5262 if [ "$CFG_PNG" = "no" ]; then
5263 QT_CONFIG="$QT_CONFIG no-png"
5264 elif [ "$CFG_PNG" = "yes" ]; then
5265 QT_CONFIG="$QT_CONFIG png"
5267 if [ "$CFG_GIF" = "no" ]; then
5268 QT_CONFIG="$QT_CONFIG no-gif"
5269 elif [ "$CFG_GIF" = "yes" ]; then
5270 QT_CONFIG="$QT_CONFIG gif"
5272 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5273 QT_CONFIG="$QT_CONFIG no-freetype"
5274 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5275 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5276 QT_CONFIG="$QT_CONFIG system-freetype"
5278 QT_CONFIG="$QT_CONFIG freetype"
5280 if [ "$CFG_GUI" = "auto" ]; then
5283 if [ "$CFG_GUI" = "no" ]; then
5284 QT_CONFIG="$QT_CONFIG no-gui"
5287 if [ "$CFG_WIDGETS" = "no" ]; then
5288 QT_CONFIG="$QT_CONFIG no-widgets"
5289 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5292 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5293 #On Mac we implicitly link against libz, so we
5294 #never use the 3rdparty stuff.
5295 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5297 if [ "$CFG_ZLIB" = "yes" ]; then
5298 QT_CONFIG="$QT_CONFIG zlib"
5299 elif [ "$CFG_ZLIB" = "system" ]; then
5300 QT_CONFIG="$QT_CONFIG system-zlib"
5303 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5304 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5305 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5306 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5307 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5308 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5309 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5310 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5311 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5312 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5313 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5314 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5315 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5316 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5318 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5319 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5320 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5322 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5323 if [ "$CFG_RPATH" = "yes" ]; then
5324 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5325 # set the default rpath to the library installation directory
5326 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5328 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5329 if [ -n "$RPATH_FLAGS" ]; then
5331 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5335 elif [ "$CFG_RPATH" = "yes" ]; then
5336 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5340 if [ "$CFG_RPATH" = "yes" ]; then
5341 # set the default rpath to the library installation directory
5342 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5344 if [ -n "$RPATH_FLAGS" ]; then
5345 # add the user defined rpaths
5346 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5350 if [ '!' -z "$I_FLAGS" ]; then
5351 # add the user define include paths
5352 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5353 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5356 if [ '!' -z "$W_FLAGS" ]; then
5357 # add the user defined warning flags
5358 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5359 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5360 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5363 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5364 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5365 # Follow default behavior of configure.exe by overriding with "rtti".
5366 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5369 if [ "$CFG_ALSA" = "yes" ]; then
5370 QT_CONFIG="$QT_CONFIG alsa"
5373 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5374 QT_CONFIG="$QT_CONFIG pulseaudio"
5377 if [ "$CFG_COREWLAN" = "yes" ]; then
5378 QT_CONFIG="$QT_CONFIG corewlan"
5381 if [ "$CFG_ICU" = "yes" ]; then
5382 QT_CONFIG="$QT_CONFIG icu"
5385 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5386 QT_CONFIG="$QT_CONFIG force_asserts"
5389 if [ "$CFG_PCRE" = "qt" ]; then
5390 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5394 # Some Qt modules are too advanced in C++ for some old compilers
5395 # Detect here the platforms where they are known to work.
5397 # See Qt documentation for more information on which features are
5398 # supported and on which compilers.
5400 canBuildQtConcurrent="yes"
5401 canUseV8Snapshot="yes"
5403 case "$XPLATFORM" in
5405 # PA-RISC's assembly is too limited
5406 # gcc 3.4 on that platform can't build QtXmlPatterns
5407 # the assembly it generates cannot be compiled
5409 # Check gcc's version
5410 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5414 canBuildQtXmlPatterns="no"
5418 canBuildQtXmlPatterns="no"
5422 unsupported/vxworks-*-g++*)
5425 unsupported/vxworks-*-dcc*)
5427 canBuildQtXmlPatterns="no"
5430 # Check gcc's version
5431 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5439 canBuildQtXmlPatterns="no"
5444 # Check the compiler version
5445 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5448 canBuildQtXmlPatterns="no"
5449 canBuildQtConcurrent="no"
5453 canBuildQtConcurrent="no"
5459 canBuildQtXmlPatterns="no"
5460 canBuildQtConcurrent="no"
5466 # Get the xlC version
5467 cat > xlcver.c <<EOF
5471 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5476 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5477 xlcver=`./xlcver 2>/dev/null`
5480 if [ "$OPT_VERBOSE" = "yes" ]; then
5481 if [ -n "$xlcver" ]; then
5482 echo Found IBM xlC version: $xlcver.
5484 echo Could not determine IBM xlC version, assuming oldest supported.
5491 canBuildQtXmlPatterns="no"
5492 canBuildQtConcurrent="no"
5496 canBuildQtConcurrent="no"
5502 canBuildQtConcurrent="no"
5506 if [ "$CFG_GUI" = "no" ]; then
5507 # WebKit requires QtGui
5511 if [ "$CFG_SHARED" = "no" ]; then
5513 echo "WARNING: Using static linking will disable the WebKit module."
5518 CFG_CONCURRENT="yes"
5519 if [ "$canBuildQtConcurrent" = "no" ]; then
5520 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5523 QT_CONFIG="$QT_CONFIG concurrent"
5527 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5528 QT_CONFIG="$QT_CONFIG audio-backend"
5532 if [ "$CFG_WEBKIT" = "debug" ]; then
5533 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5537 QT_CONFIG="$QT_CONFIG v8"
5538 # Detect snapshot support
5539 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5540 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5543 *) canUseV8Snapshot="no"
5547 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5548 # QEMU crashes when building inside Scratchbox with an ARM target
5549 canUseV8Snapshot="no"
5552 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5553 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5555 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5556 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5559 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5560 QT_CONFIG="$QT_CONFIG v8snapshot"
5564 if [ "$CFG_QML_DEBUG" = "no" ]; then
5565 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5568 case "$QMAKE_CONF_COMPILER" in
5571 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5573 case "$COMPILER_VERSION" in
5575 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5576 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5577 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5580 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5581 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5582 QT_GCC_PATCH_VERSION=0
5592 #-------------------------------------------------------------------------------
5593 # part of configuration information goes into qconfig.h
5594 #-------------------------------------------------------------------------------
5596 case "$CFG_QCONFIG" in
5598 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5601 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5602 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5603 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5604 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5605 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5606 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5608 echo "#endif" >>"$tmpconfig"
5612 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5616 # define QT_EDITION $QT_EDITION
5620 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5621 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5623 if [ "$CFG_SHARED" = "no" ]; then
5624 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5625 /* Qt was configured for a static build */
5626 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5633 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5634 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5637 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5638 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5641 if [ "$BUILD_ON_MAC" = "yes" ]; then
5642 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5643 #if defined(__LP64__)
5644 # define QT_POINTER_SIZE 8
5646 # define QT_POINTER_SIZE 4
5650 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5651 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5654 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5655 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5656 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5660 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5662 if [ "$CFG_DEV" = "yes" ]; then
5663 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5666 # Add QPA to config.h
5667 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5669 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5670 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5673 # Add turned on SQL drivers
5674 for DRIVER in $CFG_SQL_AVAILABLE; do
5675 eval "VAL=\$CFG_SQL_$DRIVER"
5678 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5679 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5680 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5683 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5689 QMakeVar set sql-drivers "$SQL_DRIVERS"
5690 QMakeVar set sql-plugins "$SQL_PLUGINS"
5692 # Add other configuration options to the qconfig.h file
5693 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5694 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5695 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5696 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5697 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5699 # X11/Unix/Mac only configs
5700 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5701 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5702 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5703 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5704 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5705 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5706 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5707 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5708 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5709 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5710 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5711 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5712 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5713 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5715 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5716 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5717 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5718 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5719 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5720 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5721 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5722 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5723 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5724 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5725 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5726 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5727 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5729 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5730 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5731 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5732 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5733 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5734 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5735 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5736 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5738 # sort QCONFIG_FLAGS for neatness if we can
5739 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5740 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5742 if [ -n "$QCONFIG_FLAGS" ]; then
5743 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5744 #ifndef QT_BOOTSTRAPPED
5747 for cfg in $QCONFIG_FLAGS; do
5748 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5749 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5750 # figure out define logic, so we can output the correct
5751 # ifdefs to override the global defines in a project
5753 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5754 # QT_NO_option can be forcefully turned on by QT_option
5755 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5756 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5757 # QT_option can be forcefully turned off by QT_NO_option
5758 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5761 if [ -z $cfgdNeg ]; then
5762 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5769 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5770 #if defined($cfgd) && defined($cfgdNeg)
5772 #elif !defined($cfgd) && !defined($cfgdNeg)
5779 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5780 #endif // QT_BOOTSTRAPPED
5785 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5786 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5787 #define QT_VISIBILITY_AVAILABLE
5792 if [ -n "$QT_LIBINFIX" ]; then
5793 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5794 #define QT_LIBINFIX "$QT_LIBINFIX"
5799 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5801 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5802 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5803 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5805 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5806 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5807 chmod -w "$outpath/src/corelib/global/qconfig.h"
5808 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5809 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5813 #-------------------------------------------------------------------------------
5814 # save configuration into qconfig.pri
5815 #-------------------------------------------------------------------------------
5816 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5817 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5818 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5819 if [ "$CFG_DEBUG" = "yes" ]; then
5820 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5821 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5822 QT_CONFIG="$QT_CONFIG release"
5824 QT_CONFIG="$QT_CONFIG debug"
5825 elif [ "$CFG_DEBUG" = "no" ]; then
5826 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5827 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5828 QT_CONFIG="$QT_CONFIG debug"
5830 QT_CONFIG="$QT_CONFIG release"
5832 if [ "$CFG_FRAMEWORK" = "no" ]; then
5833 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5835 QT_CONFIG="$QT_CONFIG qt_framework"
5836 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5838 if [ "$CFG_DEV" = "yes" ]; then
5839 QT_CONFIG="$QT_CONFIG private_tests"
5842 cat >>"$QTCONFIG.tmp" <<EOF
5844 CONFIG += $QTCONFIG_CONFIG
5846 QT_HOST_ARCH = $CFG_HOST_ARCH
5847 QT_CPU_FEATURES = $CFG_CPUFEATURES
5848 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5849 QT_EDITION = $Edition
5850 QT_CONFIG += $QT_CONFIG
5853 QT_VERSION = $QT_VERSION
5854 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5855 QT_MINOR_VERSION = $QT_MINOR_VERSION
5856 QT_PATCH_VERSION = $QT_PATCH_VERSION
5859 QT_LIBINFIX = $QT_LIBINFIX
5860 QT_NAMESPACE = $QT_NAMESPACE
5864 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5865 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5866 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5867 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5868 echo >> "$QTCONFIG.tmp"
5871 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes"]; then
5872 echo "# sysroot" >>"$QTCONFIG.tmp"
5873 echo "!host_build {" >>"$QTCONFIG.tmp"
5874 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5875 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5876 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5877 echo "}" >> "$QTCONFIG.tmp"
5878 echo >> "$QTCONFIG.tmp"
5880 if [ -n "$RPATH_FLAGS" ]; then
5881 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5883 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5884 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5885 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5886 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5889 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5890 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5891 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5894 # replace qconfig.pri if it differs from the newly created temp file
5895 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5896 rm -f "$QTCONFIG.tmp"
5898 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5901 #-------------------------------------------------------------------------------
5902 # save configuration into qmodule.pri
5903 #-------------------------------------------------------------------------------
5904 QTMODULE="$outpath/mkspecs/qmodule.pri"
5906 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5907 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
5909 if [ -n "$QT_CFLAGS_PSQL" ]; then
5910 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5912 if [ -n "$QT_LFLAGS_PSQL" ]; then
5913 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5915 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5916 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5918 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5919 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5921 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5922 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5924 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5925 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5927 if [ -n "$QT_LFLAGS_ODBC" ]; then
5928 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5930 if [ -n "$QT_LFLAGS_TDS" ]; then
5931 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5934 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5935 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5938 #dump in the OPENSSL_LIBS info
5939 if [ '!' -z "$OPENSSL_LIBS" ]; then
5940 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5941 elif [ "$CFG_OPENSSL" = "linked" ]; then
5942 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5945 #dump in the SDK info
5946 if [ '!' -z "$CFG_SDK" ]; then
5947 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5951 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5952 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5954 # replace qmodule.pri if it differs from the newly created temp file
5955 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5956 rm -f "$QTMODULE.tmp"
5958 mv -f "$QTMODULE.tmp" "$QTMODULE"
5961 #-------------------------------------------------------------------------------
5962 # save configuration into .qmake.cache
5963 #-------------------------------------------------------------------------------
5965 CACHEFILE="$outpath/.qmake.cache"
5966 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5967 cat >>"$CACHEFILE.tmp" <<EOF
5969 QT_SOURCE_TREE = \$\$quote($relpath)
5970 QT_BUILD_TREE = \$\$quote($outpath)
5972 include(\$\$PWD/mkspecs/qmodule.pri)
5973 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5977 # replace .qmake.cache if it differs from the newly created temp file
5978 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5979 rm -f "$CACHEFILE.tmp"
5981 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5984 #-------------------------------------------------------------------------------
5985 # give feedback on configuration
5986 #-------------------------------------------------------------------------------
5987 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
5990 if [ "$XPLATFORM" = "$PLATFORM" ]; then
5991 echo "Build type: $PLATFORM"
5993 echo "Building on: $PLATFORM"
5994 echo "Building for: $XPLATFORM"
5997 # the missing space before $CFG_FEATURES is intentional
5998 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
5999 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6001 if [ -n "$PLATFORM_NOTES" ]; then
6002 echo "Platform notes:"
6003 echo "$PLATFORM_NOTES"
6008 if [ "$OPT_VERBOSE" = "yes" ]; then
6009 echo $ECHO_N "qmake vars .......... $ECHO_C"
6010 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6011 echo "qmake switches ......... $QMAKE_SWITCHES"
6014 echo "Build .................. $CFG_BUILD_PARTS"
6015 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6016 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6017 echo "Debug .................. yes (combined)"
6018 if [ "$CFG_DEBUG" = "yes" ]; then
6019 echo "Default Link ........... debug"
6021 echo "Default Link ........... release"
6024 echo "Debug .................. $CFG_DEBUG"
6026 echo "C++11 support .......... $CFG_CXX11"
6027 if [ -n "$PKG_CONFIG" ]; then
6028 echo "pkg-config ............. yes"
6030 echo "pkg-config ............. no"
6032 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6033 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6034 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6035 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6036 echo "QtGui module ........... $CFG_GUI"
6037 echo "QtWidgets module ....... $CFG_WIDGETS"
6038 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6039 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6041 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6043 echo "QML debugging .......... $CFG_QML_DEBUG"
6044 echo "PCH support ............ $CFG_PRECOMPILE"
6045 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6046 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6047 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6048 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6049 elif [ "$CFG_ARCH" = "arm" ]; then
6050 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6051 echo "NEON support ........... ${CFG_NEON}"
6053 if [ "$CFG_ARCH" = "mips" ]; then
6054 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6056 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6057 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6058 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6059 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6060 echo "NIS support ............ $CFG_NIS"
6061 echo "CUPS support ........... $CFG_CUPS"
6062 echo "Iconv support .......... $CFG_ICONV"
6063 echo "Glib support ........... $CFG_GLIB"
6064 echo "GStreamer support ...... $CFG_GSTREAMER"
6065 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6066 echo "Large File support ..... $CFG_LARGEFILE"
6067 echo "GIF support ............ $CFG_GIF"
6068 if [ "$CFG_JPEG" = "no" ]; then
6069 echo "JPEG support ........... $CFG_JPEG"
6071 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6073 if [ "$CFG_PNG" = "no" ]; then
6074 echo "PNG support ............ $CFG_PNG"
6076 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6078 echo "zlib support ........... $CFG_ZLIB"
6079 echo "Session management ..... $CFG_SM"
6080 echo "libudev support ........ $CFG_LIBUDEV"
6082 if [ "$CFG_OPENGL" = "desktop" ]; then
6083 echo "OpenGL support ......... yes (Desktop OpenGL)"
6084 elif [ "$CFG_OPENGL" = "es2" ]; then
6085 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6087 echo "OpenGL support ......... no"
6090 if [ "$CFG_OPENVG" ]; then
6091 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6092 echo "OpenVG support ......... ShivaVG"
6094 echo "OpenVG support ......... $CFG_OPENVG"
6098 echo "XShape support ......... $CFG_XSHAPE"
6099 echo "XVideo support ......... $CFG_XVIDEO"
6100 echo "XSync support .......... $CFG_XSYNC"
6101 echo "Xinerama support ....... $CFG_XINERAMA"
6102 echo "Xcursor support ........ $CFG_XCURSOR"
6103 echo "Xfixes support ......... $CFG_XFIXES"
6104 echo "Xrandr support ......... $CFG_XRANDR"
6105 echo "Xi support ............. $CFG_XINPUT"
6106 echo "Xi2 support ............ $CFG_XINPUT2"
6107 echo "MIT-SHM support ........ $CFG_MITSHM"
6108 echo "FontConfig support ..... $CFG_FONTCONFIG"
6109 echo "XKB Support ............ $CFG_XKB"
6110 echo "immodule support ....... $CFG_IM"
6111 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6113 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6114 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6115 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6116 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6117 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6118 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6119 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6120 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6121 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6124 if [ "$CFG_OPENSSL" = "yes" ]; then
6125 OPENSSL_LINKAGE="(run-time)"
6126 elif [ "$CFG_OPENSSL" = "linked" ]; then
6127 OPENSSL_LINKAGE="(linked)"
6129 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6130 echo "Alsa support ........... $CFG_ALSA"
6131 if [ "$BUILD_ON_MAC" = "yes" ]; then
6132 echo "CoreWlan support ....... $CFG_COREWLAN"
6134 echo "libICU support ......... $CFG_ICU"
6135 echo "PCRE support ........... $CFG_PCRE"
6136 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6137 echo "Xcb support ............ limited (old version)"
6139 echo "Xcb support ............ $CFG_XCB"
6141 echo "Xrender support ........ $CFG_XRENDER"
6142 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6143 echo "XInput2 support ........ $CFG_XINPUT2"
6145 echo "EGLFS support .......... $CFG_EGLFS"
6146 echo "DirectFB support ....... $CFG_DIRECTFB"
6147 echo "LinuxFB support ........ $CFG_LINUXFB"
6148 echo "KMS support ............ $CFG_KMS"
6151 # complain about not being able to use dynamic plugins if we are using a static build
6152 if [ "$CFG_SHARED" = "no" ]; then
6154 echo "WARNING: Using static linking will disable the use of dynamically"
6155 echo "loaded plugins. Make sure to import all needed static plugins,"
6156 echo "or compile needed modules into the library."
6159 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6161 echo "NOTE: When linking against OpenSSL, you can override the default"
6162 echo "library names through OPENSSL_LIBS."
6164 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6168 exec 1>&3 3>&- # restore stdout
6169 cat $outpath/config.summary # display config feedback to user
6171 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6173 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6174 echo "if you want a pure debug build."
6179 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6184 #-------------------------------------------------------------------------------
6185 # build makefiles based on the configuration
6186 #-------------------------------------------------------------------------------
6188 if [ "$CFG_NOPROCESS" != "yes" ]; then
6189 echo "Creating makefiles. Please wait..."
6190 "$outpath/bin/qmake" -r ${OPT_FAST+CONFIG+=fast} "$relpath"
6193 if [ "$OPT_FAST" = "yes" ]; then
6195 for part in $CFG_BUILD_PARTS; do
6197 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6200 if [ "x$PART_ROOTS" != "x" ]; then
6202 echo "Creating stub makefiles. Please wait..."
6203 QMAKE="$outpath/bin/qmake"
6204 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6205 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6207 test -f "$outpath/$d/Makefile" && continue
6208 echo " for $relpath/$p"
6210 mkdir -p "$outpath/$d" || exit
6211 cat > "$outpath/$d/Makefile" <<EOF || exit
6212 # $outpath/$d/Makefile: generated by configure
6214 # WARNING: This makefile will be replaced with a real makefile.
6215 # All changes made to this file will be lost.
6220 all clean install qmake first Makefile: FORCE
6221 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6231 #-------------------------------------------------------------------------------
6232 # check for platforms that we don't yet know about
6233 #-------------------------------------------------------------------------------
6234 if [ "$CFG_ARCH" = "unknown" ]; then
6237 NOTICE: configure was unable to determine the architecture
6238 for the $XQMAKESPEC target.
6240 Qt will not use a specialized implementation for any atomic
6241 operations. Instead a generic implemention based on either GCC
6242 intrinsics or C++11 std::atomic<T> will be used (when
6243 available). The generic implementations are generally as fast
6244 as and always as safe as a specialized implementation.
6246 If no generic implementation is available, Qt will use a
6247 fallback UNIX implementation which uses a single
6248 pthread_mutex_t to protect all atomic operations. This
6249 implementation is the slow (but safe) fallback implementation
6250 for architectures Qt does not yet support.
6254 #-------------------------------------------------------------------------------
6255 # check if the user passed the -no-zlib option, which is no longer supported
6256 #-------------------------------------------------------------------------------
6257 if [ -n "$ZLIB_FORCED" ]; then
6258 which_zlib="supplied"
6259 if [ "$CFG_ZLIB" = "system" ]; then
6265 NOTICE: The -no-zlib option was supplied but is no longer
6268 Qt now requires zlib support in all builds, so the -no-zlib
6269 option was ignored. Qt will be built using the $which_zlib
6274 #-------------------------------------------------------------------------------
6275 # check if the user passed the obsoleted -wayland or -no-wayland flag
6276 #-------------------------------------------------------------------------------
6277 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6280 NOTICE: The -wayland and -no-wayland flags are now obsolete
6282 All configuring of QtWayland plugin and QtCompositor happens in the module
6286 #-------------------------------------------------------------------------------
6287 # check if the user passed the obsoleted -arch or -host-arch options
6288 #-------------------------------------------------------------------------------
6289 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6292 NOTICE: The -arch and -host-arch options are obsolete.
6294 Qt now detects the target and host architectures based on compiler
6295 output. Qt will be built using $CFG_ARCH for the target architecture
6296 and $CFG_HOST_ARCH for the host architecture (note that these two
6297 will be the same unless you are cross-compiling).
6301 #-------------------------------------------------------------------------------
6302 # finally save the executed command to another script
6303 #-------------------------------------------------------------------------------
6304 if [ `basename $0` != "config.status" ]; then
6305 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6307 # add the system variables
6308 for varname in $SYSTEM_VARIABLES; do
6310 'if [ -n "\$'${varname}'" ]; then
6311 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6316 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6318 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6319 echo "#!/bin/sh" > "$outpath/config.status"
6320 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6321 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6322 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6323 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6324 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6325 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6326 echo "else" >> "$outpath/config.status"
6327 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6328 echo "fi" >> "$outpath/config.status"
6329 chmod +x "$outpath/config.status"
6332 if [ -n "$RPATH_MESSAGE" ]; then
6334 echo "$RPATH_MESSAGE"
6337 MAKE=`basename "$MAKE"`
6339 echo Qt is now configured for building. Just run \'$MAKE\'.
6340 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6341 echo Once everything is built, Qt is installed.
6342 echo You should not run \'$MAKE install\'.
6344 echo Once everything is built, you must run \'$MAKE install\'.
6345 echo Qt will be installed into $QT_INSTALL_PREFIX
6348 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.