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}\""
1981 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1982 CFG_AUDIO_BACKEND="$VAL"
1988 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1995 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1996 CFG_FORCE_ASSERTS="$VAL"
2002 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2009 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2019 if [ "$UNKNOWN_OPT" = "yes" ]; then
2020 echo "${CURRENT_OPT}: invalid command-line switch"
2026 # update QT_CONFIG to show our current predefined configuration
2027 case "$CFG_QCONFIG" in
2028 minimal|small|medium|large|full)
2029 # these are a sequence of increasing functionality
2030 for c in minimal small medium large full; do
2031 QT_CONFIG="$QT_CONFIG $c-config"
2032 [ "$CFG_QCONFIG" = $c ] && break
2036 # not known to be sufficient for anything
2037 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2038 echo >&2 "Error: configuration file not found:"
2039 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2041 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2046 #-------------------------------------------------------------------------------
2047 # build tree initialization
2048 #-------------------------------------------------------------------------------
2050 # where to find which..
2051 unixtests="$relpath/config.tests/unix"
2052 mactests="$relpath/config.tests/mac"
2053 WHICH="$unixtests/which.test"
2055 PERL=`$WHICH perl 2>/dev/null`
2057 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2059 for e in gawk nawk awk; do
2060 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2067 PERL="/usr/bin/perl"
2068 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2072 ### skip this if the user just needs help...
2073 if [ "$OPT_HELP" != "yes" ]; then
2075 # is this a shadow build?
2076 if [ "$OPT_SHADOW" = "maybe" ]; then
2078 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2079 if [ -h "$outpath" ]; then
2080 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2086 if [ "$OPT_SHADOW" = "yes" ]; then
2087 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2088 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2089 echo >&2 "Cannot proceed."
2092 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2095 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2097 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2098 echo "Qt can be built in release mode with separate debug information, so"
2099 echo "-debug-and-release is not necessary anymore"
2103 if [ "$CFG_SILENT" = "yes" ]; then
2104 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2107 # if the source tree is different from the build tree,
2108 # symlink or copy part of the sources
2109 if [ "$OPT_SHADOW" = "yes" ]; then
2110 echo "Preparing build tree..."
2112 if [ -z "$PERL" ]; then
2114 echo "You need perl in your PATH to make a shadow build."
2115 echo "Cannot proceed."
2119 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2121 # make a syncqt script that can be used in the shadow
2122 rm -f "$outpath/bin/syncqt"
2123 if [ -x "$relpath/bin/syncqt" ]; then
2124 mkdir -p "$outpath/bin"
2125 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2126 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2127 chmod 755 "$outpath/bin/syncqt"
2130 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2131 rm -f "$outpath/bin/$i"
2132 if [ -x "$relpath/bin/$i" ]; then
2133 mkdir -p "$outpath/bin"
2134 echo "#!/bin/sh" >"$outpath/bin/$i"
2135 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2136 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2137 chmod 755 "$outpath/bin/$i"
2141 # save a pre-existing mkspecs/modules dir
2142 test -d "$outpath/mkspecs/modules" && \
2143 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2144 # ditto for mkspecs/modules-inst
2145 test -d "$outpath/mkspecs/modules-inst" && \
2146 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2148 # symlink the mkspecs directory
2149 mkdir -p "$outpath/mkspecs"
2150 rm -rf "$outpath"/mkspecs/*
2151 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2152 rm -f "$outpath/mkspecs/default"
2156 rm -rf "$outpath/mkspecs/$1"
2157 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2158 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2161 # Special case for mkspecs/features directory.
2162 # To be able to place .prf files into a shadow build directory,
2163 # we're creating links for files only. The directory structure is reproduced.
2164 ShadowMkspecs features
2166 # The modules dir is special, too.
2167 if test -d "$outpath/mkspecs-modules"; then
2168 rm -rf "$outpath/mkspecs/modules"
2169 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2171 ShadowMkspecs modules
2174 # The modules-inst dir is not quite as special, but still.
2175 if test -d "$outpath/mkspecs-modules-inst"; then
2176 rm -rf "$outpath/mkspecs/modules-inst"
2177 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2180 # symlink the doc directory
2181 rm -rf "$outpath/doc"
2182 ln -s "$relpath/doc" "$outpath/doc"
2185 # symlink fonts to be able to run application from build directory
2186 if [ ! -d "${outpath}/lib/fonts" ]; then
2187 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2188 mkdir -p "${outpath}/lib"
2189 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2193 if [ "$OPT_FAST" = "auto" ]; then
2194 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2201 # find a make command
2202 if [ -z "$MAKE" ]; then
2204 for mk in gmake make; do
2205 if "$WHICH" $mk >/dev/null 2>&1; then
2210 if [ -z "$MAKE" ]; then
2211 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2212 echo >&2 "Cannot proceed."
2215 # export MAKE, we need it later in the config.tests
2221 #-------------------------------------------------------------------------------
2222 # auto-detect all that hasn't been specified in the arguments
2223 #-------------------------------------------------------------------------------
2225 if [ -z "$PLATFORM" ]; then
2227 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2229 OSX_VERSION=`uname -r | cut -d. -f1`
2230 # Select compiler. Use g++ unless we find a usable Clang version
2232 if [ "$OSX_VERSION" -ge 12 ]; then
2233 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2235 elif [ "$OSX_VERSION" -eq 11 ]; then
2236 # We're on Lion. Check if we have a supported Clang version
2237 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2240 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2247 #PLATFORM=aix-g++-64
2249 #PLATFORM=aix-xlc-64
2251 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2261 # PLATFORM=dynix-g++
2267 PLATFORM=freebsd-g++
2269 - Also available for FreeBSD: freebsd-icc
2273 PLATFORM=openbsd-g++
2284 #PLATFORM=irix-cc-64
2286 - Also available for IRIX: irix-g++ irix-cc-64
2290 case "$UNAME_MACHINE" in
2292 #PLATFORM=hpuxi-acc-32
2293 PLATFORM=hpuxi-acc-64
2295 - Also available for HP-UXi: hpuxi-acc-32
2301 #PLATFORM=hpux-acc-64
2303 #PLATFORM=hpux-acc-o64
2305 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2314 - Also available for Tru64: tru64-g++
2318 case "$UNAME_MACHINE" in
2320 PLATFORM=linux-g++-64
2327 - Also available for Linux: linux-kcc linux-icc linux-cxx
2331 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2332 PLATFORM="solaris-g++"
2334 #PLATFORM=solaris-g++
2336 #PLATFORM=solaris-cc64
2339 - Also available for Solaris: solaris-g++ solaris-cc-64
2342 ReliantUNIX-*:*|SINIX-*:*)
2343 PLATFORM=reliant-cds
2344 #PLATFORM=reliant-cds-64
2346 - Also available for Reliant UNIX: reliant-cds-64
2356 #PLATFORM=unixware-g++
2357 PLATFORM=unixware-cc
2359 - Also available for OpenUNIX: unixware-g++
2363 #PLATFORM=unixware-g++
2364 PLATFORM=unixware-cc
2366 - Also available for UnixWare: unixware-g++
2373 - Also available for SCO OpenServer: sco-g++
2377 PLATFORM=unixware-g++
2380 PLATFORM=unsupported/qnx-g++
2383 if [ "$OPT_HELP" != "yes" ]; then
2385 echo " The build script does not currently recognize all" >&2
2386 echo " platforms supported by Qt." >&2
2387 echo " Rerun this script with a -platform option listed to" >&2
2388 echo " set the system/compiler combination you use." >&2
2395 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2397 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2398 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2399 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2401 if [ -d "$PLATFORM" ]; then
2402 QMAKESPEC="$PLATFORM"
2404 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2406 if [ -d "$XPLATFORM" ]; then
2407 XQMAKESPEC="$XPLATFORM"
2409 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2411 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2412 QT_CROSS_COMPILE=yes
2413 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2414 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2417 if [ "$BUILD_ON_MAC" = "yes" ]; then
2418 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2420 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2421 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2422 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2423 echo " built with 'macx-g++'" >&2
2429 # check specified platforms are supported
2430 if [ '!' -d "$QMAKESPEC" ]; then
2432 echo " The specified system/compiler is not supported:"
2436 echo " Please see the README file for a complete list."
2440 if [ '!' -d "$XQMAKESPEC" ]; then
2442 echo " The specified system/compiler is not supported:"
2446 echo " Please see the README file for a complete list."
2450 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2452 echo " The specified system/compiler port is not complete:"
2454 echo " $XQMAKESPEC/qplatformdefs.h"
2456 echo " Please contact qt-info@nokia.com."
2461 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2462 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2463 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2464 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2465 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2469 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2470 case `basename "$XPLATFORM"` in
2473 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2475 echo "Please contact qt-info@nokia.com to upgrade your license to"
2476 echo "include this platform, or install the Qt Open Source Edition"
2477 echo "if you intend to develop free software."
2483 #-------------------------------------------------------------------------------
2484 # tests that don't need qmake (must be run before displaying help)
2485 #-------------------------------------------------------------------------------
2487 # detect build style
2488 if [ "$CFG_DEBUG" = "auto" ]; then
2489 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2490 CFG_DEBUG_RELEASE=yes
2492 elif [ "$CFG_DEV" = "yes" ]; then
2493 CFG_DEBUG_RELEASE=no
2496 CFG_DEBUG_RELEASE=no
2500 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2501 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2504 # pass on $CFG_SDK to the configure tests.
2505 if [ '!' -z "$CFG_SDK" ]; then
2506 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2509 # find the default framework value
2510 if [ "$BUILD_ON_MAC" = "yes" ]; then
2511 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2512 CFG_FRAMEWORK="$CFG_SHARED"
2513 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2515 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2523 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2525 TEST_COMPILER=$QMAKE_CONF_COMPILER
2526 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2527 if [ -z "$TEST_COMPILER" ]; then
2528 echo "ERROR: Cannot set the compiler for the configuration tests"
2534 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2535 if [ -n "$GCC_MACHINE_DUMP" ]; then
2536 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2539 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2540 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2544 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2546 # auto-detect precompiled header support
2547 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2548 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2555 # auto-detect support for separate debug info in objcopy
2556 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2557 TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2558 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2559 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2560 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2561 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2562 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2563 CFG_SEPARATE_DEBUG_INFO=no
2567 # binutils on HP-UX is buggy; default to no.
2568 CFG_SEPARATE_DEBUG_INFO=no
2571 CFG_SEPARATE_DEBUG_INFO=yes
2577 # auto-detect -fvisibility support
2578 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2579 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2580 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2581 echo "-reduce-exports was requested but this compiler does not support it"
2582 echo "Re-run configure with -v for more information"
2585 CFG_REDUCE_EXPORTS=no
2587 CFG_REDUCE_EXPORTS=yes
2591 # detect the availability of the -Bsymbolic-functions linker optimization
2592 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2593 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2594 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2595 echo "-reduce-relocations was requested but this compiler does not support it"
2596 echo "Re-run configure with -v for more information"
2599 CFG_REDUCE_RELOCATIONS=no
2601 CFG_REDUCE_RELOCATIONS=yes
2605 # auto-detect GNU make support
2606 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2610 # find the default framework value
2611 if [ "$BUILD_ON_MAC" = "yes" ]; then
2612 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2613 CFG_FRAMEWORK="$CFG_SHARED"
2614 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2616 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2624 #setup the build parts
2625 if [ -z "$CFG_BUILD_PARTS" ]; then
2626 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2628 # build tests by default, if a developer build
2629 if [ "$CFG_DEV" = "yes" ]; then
2630 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2633 # don't build tools by default when cross-compiling
2634 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2635 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2638 for nobuild in $CFG_NOBUILD_PARTS; do
2639 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2641 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2643 # echo "WARNING: libs is a required part of the build."
2645 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2648 #-------------------------------------------------------------------------------
2649 # post process QT_INSTALL_* variables
2650 #-------------------------------------------------------------------------------
2652 if [ -z "$QT_INSTALL_PREFIX" ]; then
2653 if [ "$CFG_DEV" = "yes" ]; then
2654 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2656 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2659 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2661 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2662 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2663 if [ "$BUILD_ON_MAC" = "yes" ]; then
2664 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2667 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2670 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2672 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2673 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2674 if [ "$BUILD_ON_MAC" = "yes" ]; then
2675 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2680 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2683 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2685 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2686 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2687 if [ "$BUILD_ON_MAC" = "yes" ]; then
2688 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2689 QT_INSTALL_LIBS="/Library/Frameworks"
2693 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2695 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2697 if [ -z "$QT_INSTALL_BINS" ]; then #default
2698 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2699 if [ "$BUILD_ON_MAC" = "yes" ]; then
2700 QT_INSTALL_BINS="/Developer/Applications/Qt"
2703 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2705 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2707 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2708 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2709 if [ "$BUILD_ON_MAC" = "yes" ]; then
2710 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2713 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2715 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2717 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2718 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2719 if [ "$BUILD_ON_MAC" = "yes" ]; then
2720 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2723 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2725 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2727 if [ -z "$QT_INSTALL_DATA" ]; then #default
2728 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2730 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2732 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2733 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2735 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2737 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2738 if [ "$BUILD_ON_MAC" = "yes" ]; then
2739 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2741 QT_INSTALL_SETTINGS=/etc/xdg
2744 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2746 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2747 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2748 if [ "$BUILD_ON_MAC" = "yes" ]; then
2749 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2752 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2754 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2757 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2758 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2759 if [ "$BUILD_ON_MAC" = "yes" ]; then
2760 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2763 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2765 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2767 #------- host paths --------
2769 if [ -z "$QT_HOST_PREFIX" ]; then
2770 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2773 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2777 if [ -z "$QT_HOST_BINS" ]; then #default
2779 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2780 if [ "$BUILD_ON_MAC" = "yes" ]; then
2781 QT_HOST_BINS="/Developer/Applications/Qt"
2784 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2786 QT_HOST_BINS="$QT_INSTALL_BINS"
2789 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2791 if [ -z "$QT_HOST_DATA" ]; then #default
2793 QT_HOST_DATA="$QT_HOST_PREFIX"
2795 QT_HOST_DATA="$QT_INSTALL_DATA"
2798 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2801 #-------------------------------------------------------------------------------
2802 # help - interactive parts of the script _after_ this section please
2803 #-------------------------------------------------------------------------------
2805 # next, emit a usage message if something failed.
2806 if [ "$OPT_HELP" = "yes" ]; then
2807 [ "x$ERROR" = "xyes" ] && echo
2808 if [ "$CFG_NIS" = "no" ]; then
2815 if [ "$CFG_CUPS" = "no" ]; then
2822 if [ "$CFG_ICONV" = "no" ]; then
2829 if [ "$CFG_LARGEFILE" = "no" ]; then
2836 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2844 if [ "$CFG_XCB" = "no" ]; then
2852 if [ "$CFG_EGLFS" = "no" ]; then
2860 if [ "$CFG_DIRECTFB" = "no" ]; then
2868 if [ "$CFG_LINUXFB" = "no" ]; then
2876 if [ "$CFG_KMS" = "no" ]; then
2884 if [ "$CFG_XINPUT2" = "no" ]; then
2892 if [ "$CFG_DBUS" = "no" ]; then
2900 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2908 if [ "$CFG_GLIB" = "no" ]; then
2917 Usage: $relconf [options]
2919 Installation options:
2921 These are optional, but you may specify install directories.
2923 -prefix <dir> ...... This will install everything relative to <dir>
2924 (default $QT_INSTALL_PREFIX)
2926 -hostprefix [dir] .. Tools and libraries needed when developing
2927 applications are installed in [dir]. If [dir] is
2928 not given, the current build directory will be used.
2931 * -prefix-install .... Force a sandboxed "local" installation of
2932 Qt. This will install into
2933 $QT_INSTALL_PREFIX, if this option is
2934 disabled then some platforms will attempt a
2935 "system" install by placing default values to
2936 be placed in a system location other than
2939 You may use these to separate different parts of the install:
2941 -bindir <dir> ......... Executables will be installed to <dir>
2942 (default PREFIX/bin)
2943 -libdir <dir> ......... Libraries will be installed to <dir>
2944 (default PREFIX/lib)
2945 -docdir <dir> ......... Documentation will be installed to <dir>
2946 (default PREFIX/doc)
2947 -headerdir <dir> ...... Headers will be installed to <dir>
2948 (default PREFIX/include)
2949 -plugindir <dir> ...... Plugins will be installed to <dir>
2950 (default PREFIX/plugins)
2951 -importdir <dir> ...... Imports for QML will be installed to <dir>
2952 (default PREFIX/imports)
2953 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2955 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2956 (default PREFIX/translations)
2957 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2958 (default PREFIX/etc/settings)
2959 -examplesdir <dir> .... Examples will be installed to <dir>
2960 (default PREFIX/examples)
2961 -testsdir <dir> ....... Tests will be installed to <dir>
2962 (default PREFIX/tests)
2964 -hostbindir <dir> .. Host executables will be installed to <dir>
2965 (default HOSTPREFIX/bin)
2966 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2967 (default HOSTPREFIX)
2971 The defaults (*) are usually acceptable. A plus (+) denotes a default value
2972 that needs to be evaluated. If the evaluation succeeds, the feature is
2973 included. Here is a short explanation of each option:
2975 * -release ........... Compile and link Qt with debugging turned off.
2976 -debug ............. Compile and link Qt with debugging turned on.
2977 -debug-and-release . Compile and link two versions of Qt, with and without
2978 debugging turned on (Mac only).
2980 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2982 -opensource ........ Compile and link the Open-Source Edition of Qt.
2983 -commercial ........ Compile and link the Commercial Edition of Qt.
2985 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
2986 + -c++11 ............. Compile Qt with C++11 support enabled.
2988 * -shared ............ Create and use shared Qt libraries.
2989 -static ............ Create and use static Qt libraries.
2991 * -process ........... Generate only a top-level Makefile.
2992 -fully-process ..... Generate Makefiles for the entire Qt tree.
2993 -dont-process ...... Do not generate any Makefiles.
2995 * -no-fast ........... Configure Qt normally by generating Makefiles for all
2997 -fast .............. Configure Qt quickly by generating Makefiles only for
2998 library and subdirectory targets. All other Makefiles
2999 are created as wrappers, which will in turn run qmake.
3001 -no-largefile ...... Disables large file support.
3002 + -largefile ......... Enables Qt to access files larger than 4 GB.
3004 -no-accessibility .. Do not compile Accessibility support.
3005 * -accessibility ..... Compile Accessibility support.
3007 -no-sql-<driver> ... Disable SQL <driver> entirely.
3008 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3010 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3013 Possible values for <driver>:
3014 [ $CFG_SQL_AVAILABLE ]
3016 -system-sqlite ..... Use sqlite from the operating system.
3018 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3019 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3021 -no-qml-debug ...... Do not build the in-process QML debugging support.
3022 + -qml-debug ......... Build the QML debugging support.
3024 -platform target ... The operating system and compiler you are building
3027 See the README file for a list of supported
3028 operating systems and compilers.
3030 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3031 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3032 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3033 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3034 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3035 -no-avx ............ Do not compile with use of AVX instructions.
3036 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3037 -no-neon ........... Do not compile with use of NEON instructions.
3038 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3039 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3041 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3042 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3044 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3046 -D <string> ........ Add an explicit define to the preprocessor.
3047 -I <string> ........ Add an explicit include path.
3048 -L <string> ........ Add an explicit library path.
3050 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3051 configure determines whether to use pkg-config or not with
3052 some heuristics such as checking the environment variables.
3053 -no-pkg-config ..... Disable use of pkg-config.
3054 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3055 detection heuristic).
3057 -help, -h .......... Display this information.
3059 Third Party Libraries:
3061 -qt-zlib ........... Use the zlib bundled with Qt.
3062 + -system-zlib ....... Use zlib from the operating system.
3063 See http://www.gzip.org/zlib
3065 -no-gif ............ Do not compile GIF reading support.
3067 -no-libpng ......... Do not compile PNG support.
3068 -qt-libpng ......... Use the libpng bundled with Qt.
3069 + -system-libpng ..... Use libpng from the operating system.
3070 See http://www.libpng.org/pub/png
3072 -no-libjpeg ........ Do not compile JPEG support.
3073 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3074 + -system-libjpeg .... Use libjpeg from the operating system.
3075 See http://www.ijg.org
3077 -no-openssl ........ Do not compile support for OpenSSL.
3078 + -openssl ........... Enable run-time OpenSSL support.
3079 -openssl-linked .... Enabled linked OpenSSL support.
3081 -qt-pcre ........... Use the PCRE library bundled with Qt.
3082 + -system-pcre ....... Use the PCRE library from the operating system.
3086 -make <part> ....... Add part to the list of parts to be built at make time.
3087 ($QT_DEFAULT_BUILD_PARTS)
3088 -nomake <part> ..... Exclude part from the list of parts to be built.
3090 -R <string> ........ Add an explicit runtime library path to the Qt
3092 -l <string> ........ Add an explicit library.
3094 -no-rpath .......... Do not use the library install path as a runtime
3096 + -rpath ............. Link Qt libraries and executables using the library
3097 install path as a runtime library path. Equivalent
3098 to -R install_libpath
3100 -continue .......... Continue as far as possible if an error occurs.
3102 -verbose, -v ....... Print verbose information about each step of the
3105 -silent ............ Reduce the build output so that warnings and errors
3106 can be seen more easily.
3108 * -no-optimized-qmake ... Do not build qmake optimized.
3109 -optimized-qmake ...... Build qmake optimized.
3111 -no-gui ............ Don't build the Qt GUI library
3113 $NSN -no-nis ............ Do not compile NIS support.
3114 $NSY -nis ............... Compile NIS support.
3116 $CUN -no-cups ........... Do not compile CUPS support.
3117 $CUY -cups .............. Compile CUPS support.
3118 Requires cups/cups.h and libcups.so.2.
3120 $CIN -no-iconv .......... Do not compile support for iconv(3).
3121 $CIY -iconv ............. Compile support for iconv(3).
3123 $PHN -no-pch ............ Do not use precompiled header support.
3124 $PHY -pch ............... Use precompiled header support.
3126 $DBN -no-dbus ........... Do not compile the QtDBus module.
3127 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3128 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3130 -reduce-relocations ..... Reduce relocations in the libraries through extra
3131 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3132 experimental; needs GNU ld >= 2.18).
3134 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3136 -device <name> ............... Cross-compile for device <name> (experimental)
3137 -device-option <key=value> ... Add device specific options for the device mkspec
3140 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3141 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3143 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3144 $XCBY -xcb ............... Compile Xcb support.
3146 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3147 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3149 $DFBN -no-directfb ....... Do not compile DirectFB support.
3150 $DFBY -directfb .......... Compile DirectFB support.
3152 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3153 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3155 $KMSN -no-kms ............ Do not compile KMS support.
3156 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3158 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3160 -xplatform target ... The target platform when cross-compiling.
3162 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3163 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3165 -no-feature-<feature> Do not compile in <feature>.
3166 -feature-<feature> .. Compile in <feature>. The available features
3167 are described in src/corelib/global/qfeatures.txt
3169 -no-freetype ........ Do not compile in Freetype2 support.
3170 -qt-freetype ........ Use the libfreetype bundled with Qt.
3171 * -system-freetype .... Use libfreetype from the operating system.
3172 See http://www.freetype.org/
3174 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3175 default ($CFG_QCONFIG).
3177 -no-opengl .......... Do not support OpenGL.
3178 -opengl <api> ....... Enable OpenGL support
3179 With no parameter, this will attempt to auto-detect
3180 OpenGL ES 2, or regular desktop OpenGL.
3181 Use es2 for <api> to override auto-detection.
3183 $GBN -no-glib ........... Do not compile Glib support.
3184 $GBY -glib .............. Compile Glib support.
3187 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3190 $X2N -no-xinput2......... Do not compile XInput2 support.
3191 $X2Y -xinput2............ Compile XInput2 support.
3197 if [ "$BUILD_ON_MAC" = "yes" ]; then
3202 -Fstring ........... Add an explicit framework path.
3203 -fw string ......... Add an explicit framework.
3205 * -framework ......... Build Qt as a series of frameworks and
3206 link tools against those frameworks.
3207 -no-framework ...... Do not build Qt as a series of frameworks.
3209 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3210 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3212 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3213 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3214 QT_ENABLE_HARFBUZZ environment variable.
3219 [ "x$ERROR" = "xyes" ] && exit 1
3224 # -----------------------------------------------------------------------------
3225 # LICENSING, INTERACTIVE PART
3226 # -----------------------------------------------------------------------------
3229 echo "This is the Qt ${EditionString} Edition."
3232 if [ "$Edition" = "OpenSource" ]; then
3234 echo "You are licensed to use this software under the terms of"
3235 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3236 if [ -f "$relpath/LICENSE.GPL3" ]; then
3237 echo "You are also licensed to use this software under the terms of"
3238 echo "the GNU General Public License (GPL) versions 3."
3244 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3245 echo "You have already accepted the terms of the $LicenseType license."
3248 if [ -f "$relpath/LICENSE.GPL3" ]; then
3249 echo "Type '3' to view the GNU General Public License version 3."
3251 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3252 echo "Type 'yes' to accept this license offer."
3253 echo "Type 'no' to decline this license offer."
3255 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3259 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3261 elif [ "$acceptance" = "no" ]; then
3262 echo "You are not licensed to use this software."
3265 elif [ "$acceptance" = "3" ]; then
3266 more "$relpath/LICENSE.GPL3"
3267 elif [ "$acceptance" = "L" ]; then
3268 more "$relpath/LICENSE.LGPL"
3271 elif [ "$Edition" = "Preview" ]; then
3272 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3275 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3276 echo "You have already accepted the terms of the $LicenseType license."
3279 echo "You are licensed to use this software under the terms of"
3280 echo "the $TheLicense"
3282 echo "Type '?' to read the Preview License."
3283 echo "Type 'yes' to accept this license offer."
3284 echo "Type 'no' to decline this license offer."
3286 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3290 if [ "$acceptance" = "yes" ]; then
3292 elif [ "$acceptance" = "no" ] ;then
3293 echo "You are not licensed to use this software."
3296 elif [ "$acceptance" = "?" ]; then
3297 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3300 elif [ "$Edition" != "OpenSource" ]; then
3301 if [ -n "$ExpiryDate" ]; then
3302 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3303 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3304 Today=`date +%Y%m%d`
3305 if [ "$Today" -gt "$ExpiryDate" ]; then
3306 case "$LicenseType" in
3307 Commercial|Academic|Educational)
3308 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3310 echo "NOTICE NOTICE NOTICE NOTICE"
3312 echo " Your support and upgrade period has expired."
3314 echo " You are no longer licensed to use this version of Qt."
3315 echo " Please contact qt-info@nokia.com to renew your support"
3316 echo " and upgrades for this license."
3318 echo "NOTICE NOTICE NOTICE NOTICE"
3323 echo "WARNING WARNING WARNING WARNING"
3325 echo " Your support and upgrade period has expired."
3327 echo " You may continue to use your last licensed release"
3328 echo " of Qt under the terms of your existing license"
3329 echo " agreement. But you are not entitled to technical"
3330 echo " support, nor are you entitled to use any more recent"
3331 echo " Qt releases."
3333 echo " Please contact qt-info@nokia.com to renew your"
3334 echo " support and upgrades for this license."
3336 echo "WARNING WARNING WARNING WARNING"
3343 echo "NOTICE NOTICE NOTICE NOTICE"
3345 echo " Your Evaluation license has expired."
3347 echo " You are no longer licensed to use this software. Please"
3348 echo " contact qt-info@nokia.com to purchase license, or install"
3349 echo " the Qt Open Source Edition if you intend to develop free"
3352 echo "NOTICE NOTICE NOTICE NOTICE"
3359 TheLicense=`head -n 1 "$outpath/LICENSE"`
3361 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3362 echo "You have already accepted the terms of the $TheLicense."
3365 echo "You are licensed to use this software under the terms of"
3366 echo "the $TheLicense."
3368 echo "Type '?' to view the $TheLicense."
3369 echo "Type 'yes' to accept this license offer."
3370 echo "Type 'no' to decline this license offer."
3372 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3376 if [ "$acceptance" = "yes" ]; then
3378 elif [ "$acceptance" = "no" ]; then
3379 echo "You are not licensed to use this software."
3382 else [ "$acceptance" = "?" ]
3383 more "$outpath/LICENSE"
3388 # this should be moved somewhere else
3391 AIX_VERSION=`uname -v`
3392 if [ "$AIX_VERSION" -lt "5" ]; then
3393 QMakeVar add QMAKE_LIBS_X11 -lbind
3400 #-------------------------------------------------------------------------------
3401 # generate qconfig.cpp
3402 #-------------------------------------------------------------------------------
3403 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3405 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3407 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3408 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3410 /* Installation date */
3411 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3413 /* Installation Info */
3414 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3415 "qt_prfxpath=$QT_INSTALL_PREFIX",
3416 "qt_docspath=$QT_INSTALL_DOCS",
3417 "qt_hdrspath=$QT_INSTALL_HEADERS",
3418 "qt_libspath=$QT_INSTALL_LIBS",
3419 "qt_binspath=$QT_INSTALL_BINS",
3420 "qt_plugpath=$QT_INSTALL_PLUGINS",
3421 "qt_impspath=$QT_INSTALL_IMPORTS",
3422 "qt_datapath=$QT_INSTALL_DATA",
3423 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3424 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3425 "qt_tstspath=$QT_INSTALL_TESTS",
3426 #ifdef QT_BUILD_QMAKE
3427 "qt_ssrtpath=$CFG_SYSROOT",
3428 "qt_hpfxpath=$QT_HOST_PREFIX",
3429 "qt_hbinpath=$QT_HOST_BINS",
3430 "qt_hdatpath=$QT_HOST_DATA",
3433 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3436 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3438 /* strlen( "qt_lcnsxxxx" ) == 12 */
3439 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3440 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3442 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3445 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3446 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3447 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3449 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3450 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3451 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3454 # -----------------------------------------------------------------------------
3455 if [ "$LicenseType" = "Evaluation" ]; then
3456 EVALKEY=qt_qevalkey=$LicenseKeyExt
3457 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3458 EVALKEY=qt_qevalkey=
3461 if [ -n "$EVALKEY" ]; then
3462 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3463 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3464 /* Evaluation license key */
3465 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3467 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3471 # -----------------------------------------------------------------------------
3473 # -----------------------------------------------------------------------------
3476 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3478 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3479 if [ "$OPT_SHADOW" = "yes" ]; then
3480 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3481 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3482 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3486 # $1: input variable name (awk regexp)
3487 # $2: optional output variable name
3488 # $3: optional value transformation (sed command)
3489 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3490 # is where the resulting variable is written to
3491 setBootstrapVariable()
3493 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3497 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3498 echo "Creating qmake. Please wait..."
3501 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3502 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3503 if [ -f "$QCONFIG_H" ]; then
3504 OLD_QCONFIG_H=$QCONFIG_H
3505 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3508 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3509 # when building qmake, we use #defines for the install paths,
3510 # however they are real functions in the library
3511 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3512 mkdir -p "$outpath/src/corelib/global"
3513 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3514 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3517 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3519 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3520 rm -rf mkspecs/default mkspecs/default-host
3521 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3522 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3523 mkdir -p "$outpath/qmake" || exit
3525 for mkfile in GNUmakefile Makefile; do
3528 in_mkfile="${mkfile}.in"
3529 if [ "$mkfile" = "Makefile" ]; then
3530 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3531 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3533 in_mkfile="${mkfile}.unix"
3535 in_mkfile="$relpath/qmake/$in_mkfile"
3536 mkfile="$outpath/qmake/$mkfile"
3537 if [ -f "$mkfile" ]; then
3538 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3541 [ -f "$in_mkfile" ] || continue
3543 echo "########################################################################" > "$mkfile"
3544 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3545 echo "########################################################################" >> "$mkfile"
3548 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3549 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3550 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3552 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3553 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3556 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3557 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3558 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3559 setBootstrapVariable QMAKE_CFLAGS
3560 setBootstrapVariable QMAKE_CXXFLAGS
3561 setBootstrapVariable QMAKE_LFLAGS
3563 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3564 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3565 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3567 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3568 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3569 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3570 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3571 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3572 elif [ "$CFG_DEBUG" = "yes" ]; then
3573 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3574 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3575 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3576 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3579 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3580 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3581 for rpath in $RPATH_FLAGS; do
3582 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3585 if [ "$BUILD_ON_MAC" = "yes" ]; then
3586 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3587 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3588 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3589 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3590 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3591 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3592 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3593 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3594 if [ '!' -z "$CFG_SDK" ]; then
3595 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3596 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3597 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3598 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3599 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3602 if [ '!' -z "$D_FLAGS" ]; then
3603 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3605 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3606 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3607 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3608 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3610 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3611 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3612 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3613 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3614 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3615 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3616 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3617 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3618 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3619 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3621 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3622 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3623 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3624 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3629 QMAKE_BUILD_ERROR=no
3630 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3631 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3632 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3633 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3636 #-------------------------------------------------------------------------------
3637 # create a qt.conf for the Qt build tree itself
3638 #-------------------------------------------------------------------------------
3640 QTCONFFILE="$outpath/bin/qt.conf"
3641 cat > "$QTCONFFILE" <<EOF
3646 #-------------------------------------------------------------------------------
3648 #-------------------------------------------------------------------------------
3649 if [ -z "$PKG_CONFIG" ]; then
3650 # See if PKG_CONFIG is set in the mkspec:
3651 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3653 if [ -z "$PKG_CONFIG" ]; then
3654 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3657 if [ "$CFG_PKGCONFIG" = "no" ]; then
3659 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3661 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3662 echo >&2 "a correctly setup pkg-config environment!"
3664 elif [ -n "$PKG_CONFIG" ]; then
3665 # found a pkg-config
3666 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3667 # when xcompiling, check environment to see if it's actually usable
3668 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3669 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3670 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3671 if [ -n "$GCC_MACHINE_DUMP" ]; then
3672 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3674 export PKG_CONFIG_LIBDIR
3675 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3676 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3677 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3678 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3679 echo >&2 "Set this variable to the directory that contains target .pc files"
3680 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3681 echo >&2 "use -force-pkg-config to override this test."
3685 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3688 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3689 if [ -n "$CFG_SYSROOT" ]; then
3690 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3691 export PKG_CONFIG_SYSROOT_DIR
3692 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3693 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3694 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3695 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3696 echo >&2 "or use -force-pkg-config to override this test."
3700 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3704 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3705 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3709 if [ -z "$PKG_CONFIG" ]; then
3710 QT_CONFIG="$QT_CONFIG no-pkg-config"
3713 #-------------------------------------------------------------------------------
3714 # write out device config before we run the test.
3715 #-------------------------------------------------------------------------------
3716 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3717 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3718 rm -f "$DEVICE_VARS_FILE"
3720 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3721 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3724 #-------------------------------------------------------------------------------
3725 # tests that need qmake
3726 #-------------------------------------------------------------------------------
3728 #-------------------------------------------------------------------------------
3729 # determine the target and host architectures
3730 #-------------------------------------------------------------------------------
3732 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3733 OUTFILE=$outpath/arch.result
3734 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_CONFIG_TEST_COMMANDLINE
3735 if [ $? -eq 0 ]; then
3736 eval `cat "$OUTFILE"`
3739 echo "Could not determine the target architecture!"
3740 echo "Turn on verbose messaging (-v) to see the final report."
3742 rm -f "$OUTFILE" 2>/dev/null
3743 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3745 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3746 # Do the same test again, using the host compiler
3747 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_CONFIG_TEST_COMMANDLINE
3748 if [ $? -eq 0 ]; then
3749 eval `cat "$OUTFILE"`
3752 echo "Could not determine the host architecture!"
3753 echo "Turn on verbose messaging (-v) to see the final report."
3755 rm -f "$OUTFILE" 2>/dev/null
3756 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3758 # not cross compiling, host == target
3759 CFG_HOST_ARCH="$CFG_ARCH"
3760 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3764 if [ "$OPT_VERBOSE" = "yes" ]; then
3765 echo "System architecture: '$CFG_ARCH'"
3766 echo "Host architecture: '$CFG_HOST_ARCH'"
3769 #-------------------------------------------------------------------------------
3770 # functionality tests
3771 #-------------------------------------------------------------------------------
3773 # Detect C++11 support
3774 if [ "$CFG_CXX11" != "no" ]; then
3775 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
3777 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3778 echo "C++11 support cannot be enabled due to functionality tests!"
3779 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3780 echo " If you believe this message is in error you may use the continue"
3781 echo " switch (-continue) to $0 to continue."
3788 # detect availability of float math.h functions
3789 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
3790 CFG_USE_FLOATMATH=yes
3792 CFG_USE_FLOATMATH=no
3795 # detect sse2 support
3796 if [ "${CFG_SSE2}" = "auto" ]; then
3797 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
3804 # detect sse3 support
3805 if [ "${CFG_SSE3}" = "auto" ]; then
3806 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
3813 # detect ssse3 support
3814 if [ "${CFG_SSSE3}" = "auto" ]; then
3815 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
3822 # detect sse4.1 support
3823 if [ "${CFG_SSE4_1}" = "auto" ]; then
3824 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
3831 # detect sse4.2 support
3832 if [ "${CFG_SSE4_2}" = "auto" ]; then
3833 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
3840 # detect avx support
3841 if [ "${CFG_AVX}" = "auto" ]; then
3842 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
3843 case "$XQMAKESPEC" in
3845 # Some clang versions produce internal compiler errors compiling Qt AVX code
3846 case `$TEST_COMPILER --version` in
3847 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3849 if [ "$OPT_VERBOSE" = "yes" ]; then
3850 echo 'AVX support disabled for blacklisted clang compiler'
3867 # detect avx2 support
3868 if [ "${CFG_AVX}" = "no" ]; then
3871 if [ "${CFG_AVX2}" = "auto" ]; then
3872 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
3879 # check iWMMXt support
3880 if [ "$CFG_IWMMXT" = "yes" ]; then
3881 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
3882 if [ $? != "0" ]; then
3883 echo "The iWMMXt functionality test failed!"
3884 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3889 # detect neon support
3890 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3891 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
3896 elif [ "$CFG_ARCH" != "arm" ]; then
3900 # detect mips_dsp support
3901 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3907 # detect mips_dspr2 support
3908 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3914 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3917 if [ "$CFG_ZLIB" = "no" ]; then
3918 # Note: Qt no longer support builds without zlib
3919 # So we force a "no" to be "auto" here.
3920 # If you REALLY really need no zlib support, you can still disable
3921 # it by doing the following:
3922 # add "no-zlib" to mkspecs/qconfig.pri
3923 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3925 # There's no guarantee that Qt will build under those conditions
3930 if [ "$CFG_ZLIB" = "auto" ]; then
3931 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
3938 if [ "$CFG_LARGEFILE" = "auto" ]; then
3939 #Large files should be enabled for all Linux systems
3943 if [ "$CFG_GUI" = "no" ]; then
3944 QPA_PLATFORM_GUARD=no
3947 # detect how jpeg should be built
3948 if [ "$CFG_JPEG" = "auto" ]; then
3949 if [ "$CFG_SHARED" = "yes" ]; then
3956 if [ "$CFG_LIBJPEG" = "auto" ]; then
3957 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
3964 # detect how gif should be built
3965 if [ "$CFG_GIF" = "auto" ]; then
3966 if [ "$CFG_SHARED" = "yes" ]; then
3974 if [ "$CFG_LIBPNG" = "auto" ]; then
3975 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
3982 # detect accessibility
3983 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3984 CFG_ACCESSIBILITY=yes
3987 if [ "$CFG_EGLFS" = "yes" ]; then
3988 if [ "$CFG_EGL" = "no" ]; then
3989 echo "The EGLFS plugin requires EGL support and cannot be built"
3992 if [ "$CFG_OPENGL" != "es2" ]; then
3993 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4000 if [ "$CFG_KMS" = "yes" ]; then
4001 if [ "$CFG_EGL" = "no" ]; then
4002 echo "The KMS plugin requires EGL support and cannot be built"
4005 if [ "$CFG_OPENGL" != "es2" ]; then
4006 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4011 # auto-detect SQL-modules support
4012 for _SQLDR in $CFG_SQL_AVAILABLE; do
4015 if [ "$CFG_SQL_mysql" != "no" ]; then
4016 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4017 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4018 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4019 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4020 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4021 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4022 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4024 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4025 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4026 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4027 echo " You need MySql 4 or higher."
4028 echo " If you believe this message is in error you may use the continue"
4029 echo " switch (-continue) to $0 to continue."
4034 QT_LFLAGS_MYSQL_R=""
4038 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
4039 QMakeVar add CONFIG use_libmysqlclient_r
4040 if [ "$CFG_SQL_mysql" = "auto" ]; then
4041 CFG_SQL_mysql=plugin
4043 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4044 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
4045 if [ "$CFG_SQL_mysql" = "auto" ]; then
4046 CFG_SQL_mysql=plugin
4049 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4050 echo "MySQL support cannot be enabled due to functionality tests!"
4051 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4052 echo " If you believe this message is in error you may use the continue"
4053 echo " switch (-continue) to $0 to continue."
4058 QT_LFLAGS_MYSQL_R=""
4066 if [ "$CFG_SQL_psql" != "no" ]; then
4067 # Be careful not to use native pg_config when cross building.
4068 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4069 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4070 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4072 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4073 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4074 # But, respect PSQL_LIBS if set
4075 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4076 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
4077 if [ "$CFG_SQL_psql" = "auto" ]; then
4081 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4082 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4083 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4084 echo " If you believe this message is in error you may use the continue"
4085 echo " switch (-continue) to $0 to continue."
4096 if [ "$CFG_SQL_odbc" != "no" ]; then
4097 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
4098 if [ "$CFG_SQL_odbc" = "auto" ]; then
4102 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
4103 QT_LFLAGS_ODBC="-liodbc"
4104 if [ "$CFG_SQL_odbc" = "auto" ]; then
4108 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4109 echo "ODBC support cannot be enabled due to functionality tests!"
4110 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4111 echo " If you believe this message is in error you may use the continue"
4112 echo " switch (-continue) to $0 to continue."
4122 if [ "$CFG_SQL_oci" != "no" ]; then
4123 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
4124 if [ "$CFG_SQL_oci" = "auto" ]; then
4128 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4129 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4130 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4131 echo " If you believe this message is in error you may use the continue"
4132 echo " switch (-continue) to $0 to continue."
4141 if [ "$CFG_SQL_tds" != "no" ]; then
4142 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4143 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4144 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
4145 if [ "$CFG_SQL_tds" = "auto" ]; then
4149 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4150 echo "TDS support cannot be enabled due to functionality tests!"
4151 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4152 echo " If you believe this message is in error you may use the continue"
4153 echo " switch (-continue) to $0 to continue."
4162 if [ "$CFG_SQL_db2" != "no" ]; then
4163 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
4164 if [ "$CFG_SQL_db2" = "auto" ]; then
4168 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4169 echo "ODBC support cannot be enabled due to functionality tests!"
4170 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4171 echo " If you believe this message is in error you may use the continue"
4172 echo " switch (-continue) to $0 to continue."
4181 if [ "$CFG_SQL_ibase" != "no" ]; then
4182 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
4183 if [ "$CFG_SQL_ibase" = "auto" ]; then
4184 CFG_SQL_ibase=plugin
4187 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4188 echo "InterBase support cannot be enabled due to functionality tests!"
4189 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4190 echo " If you believe this message is in error you may use the continue"
4191 echo " switch (-continue) to $0 to continue."
4200 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4201 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
4202 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4203 CFG_SQL_sqlite2=plugin
4206 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4207 echo "SQLite2 support cannot be enabled due to functionality tests!"
4208 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4209 echo " If you believe this message is in error you may use the continue"
4210 echo " switch (-continue) to $0 to continue."
4219 if [ "$CFG_SQL_sqlite" != "no" ]; then
4220 SQLITE_AUTODETECT_FAILED="no"
4221 if [ "$CFG_SQLITE" = "system" ]; then
4222 if [ -n "$PKG_CONFIG" ]; then
4223 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4224 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4227 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4229 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
4230 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4231 CFG_SQL_sqlite=plugin
4233 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4235 SQLITE_AUTODETECT_FAILED="yes"
4238 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4239 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4240 CFG_SQL_sqlite=plugin
4243 SQLITE_AUTODETECT_FAILED="yes"
4247 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4248 echo "SQLite support cannot be enabled due to functionality tests!"
4249 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4250 echo " If you believe this message is in error you may use the continue"
4251 echo " switch (-continue) to $0 to continue."
4257 if [ "$OPT_VERBOSE" = "yes" ]; then
4258 echo "unknown SQL driver: $_SQLDR"
4264 # auto-detect NIS support
4265 if [ "$CFG_NIS" != "no" ]; then
4266 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
4269 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4270 echo "NIS support cannot be enabled due to functionality tests!"
4271 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4272 echo " If you believe this message is in error you may use the continue"
4273 echo " switch (-continue) to $0 to continue."
4281 # auto-detect CUPS support
4282 if [ "$CFG_CUPS" != "no" ]; then
4283 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
4286 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4287 echo "Cups support cannot be enabled due to functionality tests!"
4288 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4289 echo " If you believe this message is in error you may use the continue"
4290 echo " switch (-continue) to $0 to continue."
4298 # auto-detect iconv(3) support
4299 if [ "$CFG_ICONV" != "no" ]; then
4300 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4302 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
4304 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
4306 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
4309 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4310 echo "Iconv support cannot be enabled due to functionality tests!"
4311 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4312 echo " If you believe this message is in error you may use the continue"
4313 echo " switch (-continue) to $0 to continue."
4321 # auto-detect libdbus-1 support
4322 if [ "$CFG_DBUS" != "no" ]; then
4323 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4324 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4325 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4327 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
4328 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4329 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4330 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4332 if [ "$CFG_DBUS" = "auto" ]; then
4334 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4335 # CFG_DBUS is "yes" or "linked" here
4337 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4338 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4339 echo " If you believe this message is in error you may use the continue"
4340 echo " switch (-continue) to $0 to continue."
4346 # auto-detect Glib support
4347 if [ "$CFG_GLIB" != "no" ]; then
4348 if [ -n "$PKG_CONFIG" ]; then
4349 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4350 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4352 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
4354 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4355 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4357 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4358 echo "Glib support cannot be enabled due to functionality tests!"
4359 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4360 echo " If you believe this message is in error you may use the continue"
4361 echo " switch (-continue) to $0 to continue."
4369 # auto-detect GTK style support
4370 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4371 if [ -n "$PKG_CONFIG" ]; then
4372 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4373 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4375 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4377 QT_CONFIG="$QT_CONFIG gtkstyle"
4378 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4379 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4381 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4382 echo "Gtk theme support cannot be enabled due to functionality tests!"
4383 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4384 echo " If you believe this message is in error you may use the continue"
4385 echo " switch (-continue) to $0 to continue."
4391 elif [ "$CFG_GLIB" = "no" ]; then
4396 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4397 if [ -n "$PKG_CONFIG" ]; then
4398 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4399 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4401 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
4403 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4404 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4406 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4407 echo "Gstreamer support cannot be enabled due to functionality tests!"
4408 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4409 echo " If you believe this message is in error you may use the continue"
4410 echo " switch (-continue) to $0 to continue."
4416 elif [ "$CFG_GLIB" = "no" ]; then
4420 # auto-detect libicu support
4421 if [ "$CFG_ICU" != "no" ]; then
4422 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
4423 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4425 if [ "$CFG_ICU" = "auto" ]; then
4427 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4430 echo "The ICU library support cannot be enabled."
4431 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4432 echo " If you believe this message is in error you may use the continue"
4433 echo " switch (-continue) to $0 to continue."
4439 # Auto-detect PulseAudio support
4440 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4441 if [ -n "$PKG_CONFIG" ]; then
4442 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4443 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4445 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
4447 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4448 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4450 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4451 echo "PulseAudio support cannot be enabled due to functionality tests!"
4452 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4453 echo " If you believe this message is in error you may use the continue"
4454 echo " switch (-continue) to $0 to continue."
4463 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4464 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4465 if [ "$CFG_GUI" = "no" ]; then
4466 if [ "$CFG_OPENGL" = "auto" ]; then
4469 if [ "$CFG_OPENGL" != "no" ]; then
4470 echo "OpenGL enabled, but GUI disabled."
4471 echo " You might need to either enable the GUI or disable OpenGL"
4475 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4476 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
4478 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
4481 if [ "$CFG_OPENGL" = "yes" ]; then
4482 echo "All the OpenGL functionality tests failed!"
4483 echo " You might need to modify the include and library search paths by editing"
4484 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4485 echo " ${XQMAKESPEC}."
4492 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4493 if [ "$CFG_OPENGL" = "desktop" ]; then
4494 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4495 if [ $? != "0" ]; then
4496 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4503 elif [ "$CFG_OPENGL" = "es2" ]; then
4505 "$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
4506 if [ $? != "0" ]; then
4507 echo "The OpenGL ES 2.0 functionality test failed!"
4508 echo " You might need to modify the include and library search paths by editing"
4509 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4510 echo " ${XQMAKESPEC}."
4513 elif [ "$CFG_OPENGL" = "desktop" ]; then
4514 # Desktop OpenGL support
4515 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4516 if [ $? != "0" ]; then
4517 echo "The OpenGL functionality test failed!"
4518 echo " You might need to modify the include and library search paths by editing"
4519 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4520 echo " ${XQMAKESPEC}."
4525 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4526 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4527 if [ $? != "0" ]; then
4528 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4535 fi # X11/MINGW OpenGL
4537 if [ "$BUILD_ON_MAC" = "yes" ]; then
4538 if [ "$CFG_COREWLAN" = "auto" ]; then
4539 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
4547 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4548 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4549 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
4551 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
4554 if [ "$CFG_OPENGL" = "yes" ]; then
4555 echo "All the OpenGL functionality tests failed!"
4556 echo " You might need to modify the include and library search paths by editing"
4557 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4558 echo " ${XQMAKESPEC}."
4563 elif [ "$CFG_OPENGL" = "es2" ]; then
4565 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4566 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4567 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4568 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4569 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4570 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4571 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4572 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4575 "$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
4576 if [ $? != "0" ]; then
4577 echo "The OpenGL ES 2.0 functionality test failed!"
4578 echo " You might need to modify the include and library search paths by editing"
4579 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4580 echo " ${XQMAKESPEC}."
4583 elif [ "$CFG_OPENGL" = "desktop" ]; then
4584 # Desktop OpenGL support
4585 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4586 if [ $? != "0" ]; then
4587 echo "The OpenGL functionality test failed!"
4588 echo " You might need to modify the include and library search paths by editing"
4589 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4590 echo " ${XQMAKESPEC}."
4595 # auto-detect FontConfig support
4596 if [ "$CFG_FONTCONFIG" != "no" ]; then
4597 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4598 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4599 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4601 QT_CFLAGS_FONTCONFIG=
4602 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4604 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
4605 QT_CONFIG="$QT_CONFIG fontconfig"
4606 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4607 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4609 CFG_LIBFREETYPE=system
4616 # Save these for a check later
4617 ORIG_CFG_XCB="$CFG_XCB"
4618 ORIG_CFG_EGLFS="$CFG_EGLFS"
4619 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4620 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4621 ORIG_CFG_KMS="$CFG_KMS"
4623 if [ "$CFG_LIBUDEV" != "no" ]; then
4624 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4625 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4626 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4627 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4628 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4630 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
4632 QT_CONFIG="$QT_CONFIG libudev"
4633 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4634 echo "The libudev functionality test failed!"
4640 if [ "$CFG_LIBUDEV" = "no" ]; then
4641 QMakeVar add DEFINES QT_NO_LIBUDEV
4644 if [ "$CFG_EVDEV" != "no" ]; then
4645 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
4647 QT_CONFIG="$QT_CONFIG evdev"
4648 elif [ "$CFG_EVDEV" = "yes" ]; then
4649 echo "The evdev functionality test failed!"
4655 if [ "$CFG_EVDEV" = "no" ]; then
4656 QMakeVar add DEFINES QT_NO_EVDEV
4659 # Check we actually have X11 :-)
4660 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
4661 QT_CONFIG="$QT_CONFIG xlib"
4664 # auto-detect Xrender support
4665 if [ "$CFG_XRENDER" != "no" ]; then
4666 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
4668 QT_CONFIG="$QT_CONFIG xrender"
4670 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4671 echo "Xrender support cannot be enabled due to functionality tests!"
4672 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4673 echo " If you believe this message is in error you may use the continue"
4674 echo " switch (-continue) to $0 to continue."
4682 if [ "$CFG_XCB" != "no" ]; then
4683 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4684 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4685 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4687 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
4689 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
4690 QT_CONFIG="$QT_CONFIG xcb-render"
4693 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
4695 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4698 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
4699 QT_CONFIG="$QT_CONFIG xcb-xlib"
4702 # auto-detect XInput2 support. Needed by xcb too.
4703 if [ "$CFG_XINPUT2" != "no" ]; then
4704 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
4708 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4709 echo "XInput2 support cannot be enabled due to functionality tests!"
4710 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4711 echo " If you believe this message is in error you may use the continue"
4712 echo " switch (-continue) to $0 to continue."
4720 if [ "$CFG_XCB" = "yes" ]; then
4721 echo "The XCB test failed!"
4722 echo " You might need to install dependency packages."
4723 echo " See src/plugins/platforms/xcb/README."
4729 if [ "$CFG_XCB" = "no" ]; then
4730 QMakeVar add DEFINES QT_NO_XCB
4733 if [ "$CFG_DIRECTFB" != "no" ]; then
4734 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4735 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4736 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4737 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
4739 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4740 echo " DirectFB support cannot be enabled due to functionality tests!"
4741 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4742 echo " If you believe this message is in error you may use the continue"
4743 echo " switch (-continue) to $0 to continue."
4753 if [ "$CFG_LINUXFB" != "no" ]; then
4754 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
4756 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4757 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4758 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4759 echo " If you believe this message is in error you may use the continue"
4760 echo " switch (-continue) to $0 to continue."
4767 if [ "$CFG_KMS" != "no" ]; then
4768 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
4770 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4771 echo " KMS support cannot be enabled due to functionality tests!"
4772 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4773 echo " If you believe this message is in error you may use the continue"
4774 echo " switch (-continue) to $0 to continue."
4781 # Detect libxkbcommon
4782 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4783 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4784 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4785 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4786 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4788 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4792 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4793 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4794 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4795 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4796 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4797 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4798 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4799 fi # detect EGL support
4800 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
4802 elif [ "$CFG_EGL" = "yes" ]; then
4803 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4804 echo " You might need to modify the include and library search paths by editing"
4805 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4810 elif [ "$CFG_OPENGL" = "desktop" ]; then
4811 if [ "$CFG_EGL" = "yes" ]; then
4812 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4813 echo "Either disable EGL support or enable OpenGL ES support."
4819 if [ "$CFG_EGLFS" != "no" ]; then
4820 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4821 CFG_EGLFS="$CFG_EGL"
4827 if [ "$CFG_KMS" = "yes" ]; then
4828 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4835 # Determine the default QPA platform
4836 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4838 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4839 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4840 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4841 QT_QPA_DEFAULT_PLATFORM="windows"
4842 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4843 QT_QPA_DEFAULT_PLATFORM="cocoa"
4844 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4845 QT_QPA_DEFAULT_PLATFORM="qnx"
4847 QT_QPA_DEFAULT_PLATFORM="xcb"
4852 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4853 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4854 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4855 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4857 if [ "$CFG_DIRECTFB" = "yes" ]; then
4858 QT_CONFIG="$QT_CONFIG directfb"
4859 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4860 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4862 if [ "$CFG_LINUXFB" = "yes" ]; then
4863 QT_CONFIG="$QT_CONFIG linuxfb"
4865 if [ "$CFG_KMS" = "yes" ]; then
4866 QT_CONFIG="$QT_CONFIG kms"
4869 if [ "$BUILD_ON_MAC" = "yes" ]; then
4870 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
4871 QT_CONFIG="$QT_CONFIG coreservices"
4873 QMakeVar add DEFINES QT_NO_CORESERVICES
4877 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4878 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4879 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4880 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4881 echo "No QPA platform plugin enabled!"
4882 echo " If you really want to build without a QPA platform plugin you must pass"
4883 echo " -no-qpa-platform-guard to configure. Doing this will"
4884 echo " produce a Qt that can not run GUI applications."
4885 echo " The dependencies needed for xcb to build are listed in"
4886 echo " src/plugins/platforms/xcb/README"
4893 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4894 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4895 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
4896 CFG_LIBFREETYPE=system
4902 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS &&
4903 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4904 echo "STL functionality check failed! Cannot build Qt with this STL library."
4905 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4910 # detect POSIX clock_gettime()
4911 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4912 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
4913 CFG_CLOCK_GETTIME=yes
4915 CFG_CLOCK_GETTIME=no
4919 # detect POSIX monotonic clocks
4920 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4921 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
4922 CFG_CLOCK_MONOTONIC=yes
4924 CFG_CLOCK_MONOTONIC=no
4926 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4927 CFG_CLOCK_MONOTONIC=no
4931 if [ "$CFG_MREMAP" = "auto" ]; then
4932 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
4939 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4940 if [ "$CFG_GETADDRINFO" != "no" ]; then
4941 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
4944 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4945 echo "getaddrinfo support cannot be enabled due to functionality tests!"
4946 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4947 echo " If you believe this message is in error you may use the continue"
4948 echo " switch (-continue) to $0 to continue."
4956 # find if the platform provides inotify
4957 if [ "$CFG_INOTIFY" != "no" ]; then
4958 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
4961 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4962 echo "inotify support cannot be enabled due to functionality tests!"
4963 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4964 echo " If you believe this message is in error you may use the continue"
4965 echo " switch (-continue) to $0 to continue."
4973 # find if the platform provides if_nametoindex (ipv6 interface name support)
4974 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4975 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
4978 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4979 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4980 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4981 echo " If you believe this message is in error you may use the continue"
4982 echo " switch (-continue) to $0 to continue."
4990 # find if the platform provides getifaddrs (network interface enumeration)
4991 if [ "$CFG_GETIFADDRS" != "no" ]; then
4992 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
4995 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4996 echo "getifaddrs support cannot be enabled due to functionality tests!"
4997 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4998 echo " If you believe this message is in error you may use the continue"
4999 echo " switch (-continue) to $0 to continue."
5008 if [ "$CFG_OPENSSL" != "no" ]; then
5009 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
5010 if [ "$CFG_OPENSSL" = "auto" ]; then
5014 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5015 echo "OpenSSL support cannot be enabled due to functionality tests!"
5016 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5017 echo " If you believe this message is in error you may use the continue"
5018 echo " switch (-continue) to $0 to continue."
5027 if [ "$CFG_PCRE" != "qt" ]; then
5028 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
5031 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5032 echo "PCRE support cannot be enabled due to functionality tests!"
5033 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5034 echo " If you believe this message is in error you may use the continue"
5035 echo " switch (-continue) to $0 to continue."
5043 # detect OpenVG support
5044 if [ "$CFG_OPENVG" != "no" ]; then
5045 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
5046 if [ "$CFG_OPENVG" = "auto" ]; then
5049 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
5050 if [ "$CFG_OPENVG" = "auto" ]; then
5053 CFG_OPENVG_ON_OPENGL=yes
5054 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
5055 if [ "$CFG_OPENVG" = "auto" ]; then
5058 CFG_OPENVG_LC_INCLUDES=yes
5059 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
5060 if [ "$CFG_OPENVG" = "auto" ]; then
5063 CFG_OPENVG_LC_INCLUDES=yes
5064 CFG_OPENVG_ON_OPENGL=yes
5066 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5067 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5068 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5069 echo " If you believe this message is in error you may use the continue"
5070 echo " switch (-continue) to $0 to continue."
5076 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
5077 CFG_OPENVG_SHIVA=yes
5081 if [ "$CFG_ALSA" = "auto" ]; then
5082 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
5089 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5090 if [ "$CFG_ARCH" = "arm" ]; then
5091 "$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
5092 if [ $? != "0" ]; then
5093 CFG_JAVASCRIPTCORE_JIT=no
5096 case "$XPLATFORM" in
5098 CFG_JAVASCRIPTCORE_JIT=no
5104 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5105 QMakeVar set JAVASCRIPTCORE_JIT yes
5106 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5107 QMakeVar set JAVASCRIPTCORE_JIT no
5110 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5111 CFG_AUDIO_BACKEND=yes
5114 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5115 echo "Warning: largefile support cannot be disabled for win32."
5119 #-------------------------------------------------------------------------------
5120 # ask for all that hasn't been auto-detected or specified in the arguments
5121 #-------------------------------------------------------------------------------
5123 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5125 # disable accessibility
5126 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5127 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5129 QT_CONFIG="$QT_CONFIG accessibility"
5133 if [ "$CFG_EGL" = "yes" ]; then
5134 QT_CONFIG="$QT_CONFIG egl"
5136 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5140 if [ "$CFG_EGLFS" = "yes" ]; then
5141 QT_CONFIG="$QT_CONFIG eglfs"
5143 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5147 if [ "$CFG_OPENVG" = "no" ]; then
5148 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5150 QT_CONFIG="$QT_CONFIG openvg"
5151 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5152 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5154 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5155 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5157 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5158 QT_CONFIG="$QT_CONFIG shivavg"
5159 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5164 if [ "$CFG_OPENGL" = "no" ]; then
5165 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5167 QT_CONFIG="$QT_CONFIG opengl"
5170 if [ "$CFG_OPENGL" = "es2" ]; then
5171 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5174 if [ "$CFG_OPENGL" = "es2" ]; then
5175 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5176 QT_CONFIG="$QT_CONFIG opengles2"
5179 # build up the variables for output
5180 if [ "$CFG_DEBUG" = "yes" ]; then
5181 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5182 elif [ "$CFG_DEBUG" = "no" ]; then
5183 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5185 if [ "$CFG_SHARED" = "yes" ]; then
5186 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5187 QT_CONFIG="$QT_CONFIG shared"
5188 elif [ "$CFG_SHARED" = "no" ]; then
5189 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5190 QT_CONFIG="$QT_CONFIG static"
5193 #FIXME: qpa is implicit this should all be removed
5194 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5195 QT_CONFIG="$QT_CONFIG qpa"
5196 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5197 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5199 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5200 # Do not set this here for Windows. Let qmake do it so
5201 # debug and release precompiled headers are kept separate.
5202 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5204 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5205 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5206 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5207 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5208 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5209 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5211 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5212 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5214 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5215 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5216 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5217 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5218 QMakeVar add QMAKE_CFLAGS -g
5219 QMakeVar add QMAKE_CXXFLAGS -g
5220 QT_CONFIG="$QT_CONFIG separate_debug_info"
5222 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5223 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5225 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5226 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5227 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5228 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5229 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5230 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5231 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5232 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5233 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5234 if [ "$CFG_ARCH" = "mips" ]; then
5235 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5236 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5238 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5239 QT_CONFIG="$QT_CONFIG clock-gettime"
5241 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5242 QT_CONFIG="$QT_CONFIG clock-monotonic"
5244 if [ "$CFG_MREMAP" = "yes" ]; then
5245 QT_CONFIG="$QT_CONFIG mremap"
5247 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5248 QT_CONFIG="$QT_CONFIG getaddrinfo"
5250 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5251 QT_CONFIG="$QT_CONFIG ipv6ifname"
5253 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5254 QT_CONFIG="$QT_CONFIG getifaddrs"
5256 if [ "$CFG_INOTIFY" = "yes" ]; then
5257 QT_CONFIG="$QT_CONFIG inotify"
5259 if [ "$CFG_LIBJPEG" = "no" ]; then
5261 elif [ "$CFG_LIBJPEG" = "system" ]; then
5262 QT_CONFIG="$QT_CONFIG system-jpeg"
5264 if [ "$CFG_JPEG" = "no" ]; then
5265 QT_CONFIG="$QT_CONFIG no-jpeg"
5266 elif [ "$CFG_JPEG" = "yes" ]; then
5267 QT_CONFIG="$QT_CONFIG jpeg"
5269 if [ "$CFG_LIBPNG" = "no" ]; then
5272 if [ "$CFG_LIBPNG" = "system" ]; then
5273 QT_CONFIG="$QT_CONFIG system-png"
5275 if [ "$CFG_PNG" = "no" ]; then
5276 QT_CONFIG="$QT_CONFIG no-png"
5277 elif [ "$CFG_PNG" = "yes" ]; then
5278 QT_CONFIG="$QT_CONFIG png"
5280 if [ "$CFG_GIF" = "no" ]; then
5281 QT_CONFIG="$QT_CONFIG no-gif"
5282 elif [ "$CFG_GIF" = "yes" ]; then
5283 QT_CONFIG="$QT_CONFIG gif"
5285 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5286 QT_CONFIG="$QT_CONFIG no-freetype"
5287 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5288 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5289 QT_CONFIG="$QT_CONFIG system-freetype"
5291 QT_CONFIG="$QT_CONFIG freetype"
5293 if [ "$CFG_GUI" = "auto" ]; then
5296 if [ "$CFG_GUI" = "no" ]; then
5297 QT_CONFIG="$QT_CONFIG no-gui"
5300 if [ "$CFG_WIDGETS" = "no" ]; then
5301 QT_CONFIG="$QT_CONFIG no-widgets"
5302 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5305 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5306 #On Mac we implicitly link against libz, so we
5307 #never use the 3rdparty stuff.
5308 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5310 if [ "$CFG_ZLIB" = "yes" ]; then
5311 QT_CONFIG="$QT_CONFIG zlib"
5312 elif [ "$CFG_ZLIB" = "system" ]; then
5313 QT_CONFIG="$QT_CONFIG system-zlib"
5316 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5317 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5318 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5319 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5320 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5321 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5322 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5323 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5324 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5325 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5326 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5327 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5328 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5329 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5331 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5332 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5333 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5335 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5336 if [ "$CFG_RPATH" = "yes" ]; then
5337 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5338 # set the default rpath to the library installation directory
5339 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5341 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5342 if [ -n "$RPATH_FLAGS" ]; then
5344 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5348 elif [ "$CFG_RPATH" = "yes" ]; then
5349 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5353 if [ "$CFG_RPATH" = "yes" ]; then
5354 # set the default rpath to the library installation directory
5355 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5357 if [ -n "$RPATH_FLAGS" ]; then
5358 # add the user defined rpaths
5359 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5363 if [ '!' -z "$I_FLAGS" ]; then
5364 # add the user define include paths
5365 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5366 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5369 if [ '!' -z "$W_FLAGS" ]; then
5370 # add the user defined warning flags
5371 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5372 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5373 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5376 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5377 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5378 # Follow default behavior of configure.exe by overriding with "rtti".
5379 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5382 if [ "$CFG_ALSA" = "yes" ]; then
5383 QT_CONFIG="$QT_CONFIG alsa"
5386 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5387 QT_CONFIG="$QT_CONFIG pulseaudio"
5390 if [ "$CFG_COREWLAN" = "yes" ]; then
5391 QT_CONFIG="$QT_CONFIG corewlan"
5394 if [ "$CFG_ICU" = "yes" ]; then
5395 QT_CONFIG="$QT_CONFIG icu"
5398 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5399 QT_CONFIG="$QT_CONFIG force_asserts"
5402 if [ "$CFG_PCRE" = "qt" ]; then
5403 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5407 # Some Qt modules are too advanced in C++ for some old compilers
5408 # Detect here the platforms where they are known to work.
5410 # See Qt documentation for more information on which features are
5411 # supported and on which compilers.
5413 canBuildQtConcurrent="yes"
5414 canUseV8Snapshot="yes"
5416 case "$XPLATFORM" in
5418 # PA-RISC's assembly is too limited
5419 # gcc 3.4 on that platform can't build QtXmlPatterns
5420 # the assembly it generates cannot be compiled
5422 # Check gcc's version
5423 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5427 canBuildQtXmlPatterns="no"
5431 canBuildQtXmlPatterns="no"
5435 unsupported/vxworks-*-g++*)
5438 unsupported/vxworks-*-dcc*)
5440 canBuildQtXmlPatterns="no"
5443 # Check gcc's version
5444 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5452 canBuildQtXmlPatterns="no"
5457 # Check the compiler version
5458 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5461 canBuildQtXmlPatterns="no"
5462 canBuildQtConcurrent="no"
5466 canBuildQtConcurrent="no"
5472 canBuildQtXmlPatterns="no"
5473 canBuildQtConcurrent="no"
5479 # Get the xlC version
5480 cat > xlcver.c <<EOF
5484 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5489 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5490 xlcver=`./xlcver 2>/dev/null`
5493 if [ "$OPT_VERBOSE" = "yes" ]; then
5494 if [ -n "$xlcver" ]; then
5495 echo Found IBM xlC version: $xlcver.
5497 echo Could not determine IBM xlC version, assuming oldest supported.
5504 canBuildQtXmlPatterns="no"
5505 canBuildQtConcurrent="no"
5509 canBuildQtConcurrent="no"
5515 canBuildQtConcurrent="no"
5519 if [ "$CFG_GUI" = "no" ]; then
5520 # WebKit requires QtGui
5524 if [ "$CFG_SHARED" = "no" ]; then
5526 echo "WARNING: Using static linking will disable the WebKit module."
5531 CFG_CONCURRENT="yes"
5532 if [ "$canBuildQtConcurrent" = "no" ]; then
5533 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5536 QT_CONFIG="$QT_CONFIG concurrent"
5540 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5541 QT_CONFIG="$QT_CONFIG audio-backend"
5545 if [ "$CFG_WEBKIT" = "debug" ]; then
5546 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5550 QT_CONFIG="$QT_CONFIG v8"
5551 # Detect snapshot support
5552 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5553 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5556 *) canUseV8Snapshot="no"
5560 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5561 # QEMU crashes when building inside Scratchbox with an ARM target
5562 canUseV8Snapshot="no"
5565 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5566 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5568 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5569 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5572 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5573 QT_CONFIG="$QT_CONFIG v8snapshot"
5577 if [ "$CFG_QML_DEBUG" = "no" ]; then
5578 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5581 case "$QMAKE_CONF_COMPILER" in
5584 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5586 case "$COMPILER_VERSION" in
5588 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5589 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5590 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5593 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5594 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5595 QT_GCC_PATCH_VERSION=0
5605 #-------------------------------------------------------------------------------
5606 # part of configuration information goes into qconfig.h
5607 #-------------------------------------------------------------------------------
5609 case "$CFG_QCONFIG" in
5611 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5614 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5615 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5616 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5617 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5618 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5619 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5621 echo "#endif" >>"$tmpconfig"
5625 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5629 # define QT_EDITION $QT_EDITION
5633 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5634 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5636 if [ "$CFG_SHARED" = "no" ]; then
5637 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5638 /* Qt was configured for a static build */
5639 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5646 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5647 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5650 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5651 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5654 if [ "$BUILD_ON_MAC" = "yes" ]; then
5655 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5656 #if defined(__LP64__)
5657 # define QT_POINTER_SIZE 8
5659 # define QT_POINTER_SIZE 4
5663 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5664 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5667 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5668 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5669 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5673 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5675 if [ "$CFG_DEV" = "yes" ]; then
5676 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5679 # Add QPA to config.h
5680 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5682 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5683 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5686 # Add turned on SQL drivers
5687 for DRIVER in $CFG_SQL_AVAILABLE; do
5688 eval "VAL=\$CFG_SQL_$DRIVER"
5691 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5692 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5693 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5696 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5702 QMakeVar set sql-drivers "$SQL_DRIVERS"
5703 QMakeVar set sql-plugins "$SQL_PLUGINS"
5705 # Add other configuration options to the qconfig.h file
5706 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5707 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5708 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5709 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5710 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5712 # X11/Unix/Mac only configs
5713 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5714 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5715 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5716 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5717 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5718 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5719 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5720 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5721 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5722 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5723 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5724 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5725 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5726 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5728 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5729 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5730 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5731 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5732 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5733 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5734 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5735 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5736 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5737 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5738 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5739 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5740 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5742 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5743 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5744 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5745 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5746 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5747 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5748 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5749 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5751 # sort QCONFIG_FLAGS for neatness if we can
5752 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5753 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5755 if [ -n "$QCONFIG_FLAGS" ]; then
5756 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5757 #ifndef QT_BOOTSTRAPPED
5760 for cfg in $QCONFIG_FLAGS; do
5761 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5762 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5763 # figure out define logic, so we can output the correct
5764 # ifdefs to override the global defines in a project
5766 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5767 # QT_NO_option can be forcefully turned on by QT_option
5768 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5769 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5770 # QT_option can be forcefully turned off by QT_NO_option
5771 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5774 if [ -z $cfgdNeg ]; then
5775 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5782 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5783 #if defined($cfgd) && defined($cfgdNeg)
5785 #elif !defined($cfgd) && !defined($cfgdNeg)
5792 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5793 #endif // QT_BOOTSTRAPPED
5798 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5799 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5800 #define QT_VISIBILITY_AVAILABLE
5805 if [ -n "$QT_LIBINFIX" ]; then
5806 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5807 #define QT_LIBINFIX "$QT_LIBINFIX"
5812 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5814 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5815 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5816 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5818 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5819 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5820 chmod -w "$outpath/src/corelib/global/qconfig.h"
5821 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5822 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5826 #-------------------------------------------------------------------------------
5827 # save configuration into qconfig.pri
5828 #-------------------------------------------------------------------------------
5829 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5830 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5831 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5832 if [ "$CFG_DEBUG" = "yes" ]; then
5833 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5834 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5835 QT_CONFIG="$QT_CONFIG release"
5837 QT_CONFIG="$QT_CONFIG debug"
5838 elif [ "$CFG_DEBUG" = "no" ]; then
5839 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5840 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5841 QT_CONFIG="$QT_CONFIG debug"
5843 QT_CONFIG="$QT_CONFIG release"
5845 if [ "$CFG_FRAMEWORK" = "no" ]; then
5846 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5848 QT_CONFIG="$QT_CONFIG qt_framework"
5849 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5851 if [ "$CFG_DEV" = "yes" ]; then
5852 QT_CONFIG="$QT_CONFIG private_tests"
5855 cat >>"$QTCONFIG.tmp" <<EOF
5857 CONFIG += $QTCONFIG_CONFIG
5859 QT_HOST_ARCH = $CFG_HOST_ARCH
5860 QT_CPU_FEATURES = $CFG_CPUFEATURES
5861 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5862 QT_EDITION = $Edition
5863 QT_CONFIG += $QT_CONFIG
5866 QT_VERSION = $QT_VERSION
5867 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5868 QT_MINOR_VERSION = $QT_MINOR_VERSION
5869 QT_PATCH_VERSION = $QT_PATCH_VERSION
5872 QT_LIBINFIX = $QT_LIBINFIX
5873 QT_NAMESPACE = $QT_NAMESPACE
5877 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5878 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5879 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5880 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5881 echo >> "$QTCONFIG.tmp"
5884 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5885 echo "# sysroot" >>"$QTCONFIG.tmp"
5886 echo "!host_build {" >>"$QTCONFIG.tmp"
5887 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5888 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5889 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5890 echo "}" >> "$QTCONFIG.tmp"
5891 echo >> "$QTCONFIG.tmp"
5893 if [ -n "$RPATH_FLAGS" ]; then
5894 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5896 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5897 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5898 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5899 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5902 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5903 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5904 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5907 # replace qconfig.pri if it differs from the newly created temp file
5908 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5909 rm -f "$QTCONFIG.tmp"
5911 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5914 #-------------------------------------------------------------------------------
5915 # save configuration into qmodule.pri
5916 #-------------------------------------------------------------------------------
5917 QTMODULE="$outpath/mkspecs/qmodule.pri"
5919 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5920 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
5922 if [ -n "$QT_CFLAGS_PSQL" ]; then
5923 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5925 if [ -n "$QT_LFLAGS_PSQL" ]; then
5926 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5928 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5929 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5931 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5932 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5934 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5935 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5937 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5938 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5940 if [ -n "$QT_LFLAGS_ODBC" ]; then
5941 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5943 if [ -n "$QT_LFLAGS_TDS" ]; then
5944 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5947 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5948 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5951 #dump in the OPENSSL_LIBS info
5952 if [ '!' -z "$OPENSSL_LIBS" ]; then
5953 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5954 elif [ "$CFG_OPENSSL" = "linked" ]; then
5955 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5958 #dump in the SDK info
5959 if [ '!' -z "$CFG_SDK" ]; then
5960 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5964 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5965 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5967 # replace qmodule.pri if it differs from the newly created temp file
5968 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5969 rm -f "$QTMODULE.tmp"
5971 mv -f "$QTMODULE.tmp" "$QTMODULE"
5974 #-------------------------------------------------------------------------------
5975 # save configuration into .qmake.cache
5976 #-------------------------------------------------------------------------------
5978 CACHEFILE="$outpath/.qmake.cache"
5979 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5980 cat >>"$CACHEFILE.tmp" <<EOF
5982 QT_SOURCE_TREE = \$\$quote($relpath)
5983 QT_BUILD_TREE = \$\$quote($outpath)
5985 include(\$\$PWD/mkspecs/qmodule.pri)
5986 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5990 # replace .qmake.cache if it differs from the newly created temp file
5991 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5992 rm -f "$CACHEFILE.tmp"
5994 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5997 #-------------------------------------------------------------------------------
5998 # give feedback on configuration
5999 #-------------------------------------------------------------------------------
6000 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6003 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6004 echo "Build type: $PLATFORM"
6006 echo "Building on: $PLATFORM"
6007 echo "Building for: $XPLATFORM"
6010 # the missing space before $CFG_FEATURES is intentional
6011 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6012 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6014 if [ -n "$PLATFORM_NOTES" ]; then
6015 echo "Platform notes:"
6016 echo "$PLATFORM_NOTES"
6021 if [ "$OPT_VERBOSE" = "yes" ]; then
6022 echo $ECHO_N "qmake vars .......... $ECHO_C"
6023 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6024 echo "qmake switches ......... $QMAKE_SWITCHES"
6027 echo "Build .................. $CFG_BUILD_PARTS"
6028 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6029 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6030 echo "Debug .................. yes (combined)"
6031 if [ "$CFG_DEBUG" = "yes" ]; then
6032 echo "Default Link ........... debug"
6034 echo "Default Link ........... release"
6037 echo "Debug .................. $CFG_DEBUG"
6039 echo "C++11 support .......... $CFG_CXX11"
6040 if [ -n "$PKG_CONFIG" ]; then
6041 echo "pkg-config ............. yes"
6043 echo "pkg-config ............. no"
6045 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6046 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6047 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6048 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6049 echo "QtGui module ........... $CFG_GUI"
6050 echo "QtWidgets module ....... $CFG_WIDGETS"
6051 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6052 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6054 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6056 echo "QML debugging .......... $CFG_QML_DEBUG"
6057 echo "PCH support ............ $CFG_PRECOMPILE"
6058 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6059 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6060 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6061 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6062 elif [ "$CFG_ARCH" = "arm" ]; then
6063 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6064 echo "NEON support ........... ${CFG_NEON}"
6066 if [ "$CFG_ARCH" = "mips" ]; then
6067 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6069 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6070 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6071 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6072 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6073 echo "NIS support ............ $CFG_NIS"
6074 echo "CUPS support ........... $CFG_CUPS"
6075 echo "Iconv support .......... $CFG_ICONV"
6076 echo "Glib support ........... $CFG_GLIB"
6077 echo "GStreamer support ...... $CFG_GSTREAMER"
6078 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6079 echo "Large File support ..... $CFG_LARGEFILE"
6080 echo "GIF support ............ $CFG_GIF"
6081 if [ "$CFG_JPEG" = "no" ]; then
6082 echo "JPEG support ........... $CFG_JPEG"
6084 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6086 if [ "$CFG_PNG" = "no" ]; then
6087 echo "PNG support ............ $CFG_PNG"
6089 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6091 echo "zlib support ........... $CFG_ZLIB"
6092 echo "Session management ..... $CFG_SM"
6093 echo "libudev support ........ $CFG_LIBUDEV"
6095 if [ "$CFG_OPENGL" = "desktop" ]; then
6096 echo "OpenGL support ......... yes (Desktop OpenGL)"
6097 elif [ "$CFG_OPENGL" = "es2" ]; then
6098 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6100 echo "OpenGL support ......... no"
6103 if [ "$CFG_OPENVG" ]; then
6104 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6105 echo "OpenVG support ......... ShivaVG"
6107 echo "OpenVG support ......... $CFG_OPENVG"
6111 echo "XShape support ......... $CFG_XSHAPE"
6112 echo "XVideo support ......... $CFG_XVIDEO"
6113 echo "XSync support .......... $CFG_XSYNC"
6114 echo "Xinerama support ....... $CFG_XINERAMA"
6115 echo "Xcursor support ........ $CFG_XCURSOR"
6116 echo "Xfixes support ......... $CFG_XFIXES"
6117 echo "Xrandr support ......... $CFG_XRANDR"
6118 echo "Xi support ............. $CFG_XINPUT"
6119 echo "Xi2 support ............ $CFG_XINPUT2"
6120 echo "MIT-SHM support ........ $CFG_MITSHM"
6121 echo "FontConfig support ..... $CFG_FONTCONFIG"
6122 echo "XKB Support ............ $CFG_XKB"
6123 echo "immodule support ....... $CFG_IM"
6124 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6126 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6127 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6128 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6129 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6130 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6131 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6132 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6133 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6134 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6137 if [ "$CFG_OPENSSL" = "yes" ]; then
6138 OPENSSL_LINKAGE="(run-time)"
6139 elif [ "$CFG_OPENSSL" = "linked" ]; then
6140 OPENSSL_LINKAGE="(linked)"
6142 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6143 echo "Alsa support ........... $CFG_ALSA"
6144 if [ "$BUILD_ON_MAC" = "yes" ]; then
6145 echo "CoreWlan support ....... $CFG_COREWLAN"
6147 echo "libICU support ......... $CFG_ICU"
6148 echo "PCRE support ........... $CFG_PCRE"
6149 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6150 echo "Xcb support ............ limited (old version)"
6152 echo "Xcb support ............ $CFG_XCB"
6154 echo "Xrender support ........ $CFG_XRENDER"
6155 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6156 echo "XInput2 support ........ $CFG_XINPUT2"
6158 echo "EGLFS support .......... $CFG_EGLFS"
6159 echo "DirectFB support ....... $CFG_DIRECTFB"
6160 echo "LinuxFB support ........ $CFG_LINUXFB"
6161 echo "KMS support ............ $CFG_KMS"
6164 # complain about not being able to use dynamic plugins if we are using a static build
6165 if [ "$CFG_SHARED" = "no" ]; then
6167 echo "WARNING: Using static linking will disable the use of dynamically"
6168 echo "loaded plugins. Make sure to import all needed static plugins,"
6169 echo "or compile needed modules into the library."
6172 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6174 echo "NOTE: When linking against OpenSSL, you can override the default"
6175 echo "library names through OPENSSL_LIBS."
6177 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6181 exec 1>&3 3>&- # restore stdout
6182 cat $outpath/config.summary # display config feedback to user
6184 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6186 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6187 echo "if you want a pure debug build."
6192 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6197 #-------------------------------------------------------------------------------
6198 # build makefiles based on the configuration
6199 #-------------------------------------------------------------------------------
6201 if [ "$CFG_PROCESS" != "no" ]; then
6203 if [ "$CFG_PROCESS" = "full" ]; then
6204 echo "Creating makefiles. Please wait..."
6205 "$outpath/bin/qmake" -r "$relpath"
6208 "$outpath/bin/qmake" "$relpath"
6211 if [ "$OPT_FAST" = "yes" ]; then
6213 for part in $CFG_BUILD_PARTS; do
6215 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6218 if [ "x$PART_ROOTS" != "x" ]; then
6220 echo "Creating stub makefiles. Please wait..."
6221 QMAKE="$outpath/bin/qmake"
6222 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6223 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6225 test -f "$outpath/$d/Makefile" && continue
6226 echo " for $relpath/$p"
6228 mkdir -p "$outpath/$d" || exit
6229 cat > "$outpath/$d/Makefile" <<EOF || exit
6230 # $outpath/$d/Makefile: generated by configure
6232 # WARNING: This makefile will be replaced with a real makefile.
6233 # All changes made to this file will be lost.
6238 all clean install qmake first Makefile: FORCE
6239 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6249 #-------------------------------------------------------------------------------
6250 # check for platforms that we don't yet know about
6251 #-------------------------------------------------------------------------------
6252 if [ "$CFG_ARCH" = "unknown" ]; then
6255 NOTICE: configure was unable to determine the architecture
6256 for the $XQMAKESPEC target.
6258 Qt will not use a specialized implementation for any atomic
6259 operations. Instead a generic implemention based on either GCC
6260 intrinsics or C++11 std::atomic<T> will be used (when
6261 available). The generic implementations are generally as fast
6262 as and always as safe as a specialized implementation.
6264 If no generic implementation is available, Qt will use a
6265 fallback UNIX implementation which uses a single
6266 pthread_mutex_t to protect all atomic operations. This
6267 implementation is the slow (but safe) fallback implementation
6268 for architectures Qt does not yet support.
6272 #-------------------------------------------------------------------------------
6273 # check if the user passed the -no-zlib option, which is no longer supported
6274 #-------------------------------------------------------------------------------
6275 if [ -n "$ZLIB_FORCED" ]; then
6276 which_zlib="supplied"
6277 if [ "$CFG_ZLIB" = "system" ]; then
6283 NOTICE: The -no-zlib option was supplied but is no longer
6286 Qt now requires zlib support in all builds, so the -no-zlib
6287 option was ignored. Qt will be built using the $which_zlib
6292 #-------------------------------------------------------------------------------
6293 # check if the user passed the obsoleted -wayland or -no-wayland flag
6294 #-------------------------------------------------------------------------------
6295 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6298 NOTICE: The -wayland and -no-wayland flags are now obsolete
6300 All configuring of QtWayland plugin and QtCompositor happens in the module
6304 #-------------------------------------------------------------------------------
6305 # check if the user passed the obsoleted -arch or -host-arch options
6306 #-------------------------------------------------------------------------------
6307 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6310 NOTICE: The -arch and -host-arch options are obsolete.
6312 Qt now detects the target and host architectures based on compiler
6313 output. Qt will be built using $CFG_ARCH for the target architecture
6314 and $CFG_HOST_ARCH for the host architecture (note that these two
6315 will be the same unless you are cross-compiling).
6319 #-------------------------------------------------------------------------------
6320 # finally save the executed command to another script
6321 #-------------------------------------------------------------------------------
6322 if [ `basename $0` != "config.status" ]; then
6323 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6325 # add the system variables
6326 for varname in $SYSTEM_VARIABLES; do
6328 'if [ -n "\$'${varname}'" ]; then
6329 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6334 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6336 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6337 echo "#!/bin/sh" > "$outpath/config.status"
6338 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6339 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6340 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6341 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6342 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6343 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6344 echo "else" >> "$outpath/config.status"
6345 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6346 echo "fi" >> "$outpath/config.status"
6347 chmod +x "$outpath/config.status"
6350 if [ -n "$RPATH_MESSAGE" ]; then
6352 echo "$RPATH_MESSAGE"
6355 MAKE=`basename "$MAKE"`
6357 echo Qt is now configured for building. Just run \'$MAKE\'.
6358 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6359 echo Once everything is built, Qt is installed.
6360 echo You should not run \'$MAKE install\'.
6362 echo Once everything is built, you must run \'$MAKE install\'.
6363 echo Qt will be installed into $QT_INSTALL_PREFIX
6366 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.