2 #############################################################################
4 ## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## GNU Lesser General Public License Usage
11 ## This file may be used under the terms of the GNU Lesser General Public
12 ## License version 2.1 as published by the Free Software Foundation and
13 ## appearing in the file LICENSE.LGPL included in the packaging of this
14 ## file. Please review the following information to ensure the GNU Lesser
15 ## General Public License version 2.1 requirements will be met:
16 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 ## In addition, as a special exception, Nokia gives you certain additional
19 ## rights. These rights are described in the Nokia Qt LGPL Exception
20 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 ## GNU General Public License Usage
23 ## Alternatively, this file may be used under the terms of the GNU General
24 ## Public License version 3.0 as published by the Free Software Foundation
25 ## and appearing in the file LICENSE.GPL included in the packaging of this
26 ## file. Please review the following information to ensure the GNU General
27 ## Public License version 3.0 requirements will be met:
28 ## http://www.gnu.org/copyleft/gpl.html.
31 ## Alternatively, this file may be used in accordance with the terms and
32 ## conditions contained in a signed written agreement between you and Nokia.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 # relies on $TEST_COMPILER being set correctly
228 compilerSupportsFlag()
230 cat >conftest.cpp <<EOF
231 int main() { return 0; }
233 "$TEST_COMPILER" "$@" -o conftest.o conftest.cpp
235 rm -f conftest.cpp conftest.o
239 # relies on $TEST_COMPILER being set correctly
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag "$lflags" >/dev/null 2>&1
251 #-------------------------------------------------------------------------------
253 #-------------------------------------------------------------------------------
261 echo >&2 "BUG: wrong command to QMakeVar: $1"
265 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
268 resolveDeviceMkspec()
270 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
271 match_count=$(echo "$result" | wc -w)
272 if [ "$match_count" -gt 1 ]; then
273 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
274 tabbed_result=$(echo "$result" | sed "s,^, ,")
275 echo >&2 "$tabbed_result"
277 elif [ "$match_count" -eq 0 ]; then
278 echo >&2 "Error: No device matching '$1'"
285 #-------------------------------------------------------------------------------
286 # operating system detection
287 #-------------------------------------------------------------------------------
289 # need that throughout the script
290 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
291 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
292 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
293 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
295 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
296 if echo '\c' | grep '\c' >/dev/null; then
302 #-------------------------------------------------------------------------------
303 # window system detection
304 #-------------------------------------------------------------------------------
308 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
313 #-----------------------------------------------------------------------------
314 # Qt version detection
315 #-----------------------------------------------------------------------------
316 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
320 if [ -n "$QT_VERSION" ]; then
321 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
322 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
323 if [ -n "$MAJOR" ]; then
324 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
325 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
326 QT_MAJOR_VERSION="$MAJOR"
327 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
328 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
331 if [ -z "$QT_MAJOR_VERSION" ]; then
332 echo "Cannot process version from qglobal.h: $QT_VERSION"
333 echo "Cannot proceed."
337 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
338 if [ -z "$QT_PACKAGEDATE" ]; then
339 echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
340 echo "Cannot proceed"
344 #-------------------------------------------------------------------------------
346 #-------------------------------------------------------------------------------
350 EditionString=Commercial
354 # parse the arguments, setting things to "yes" or "no"
355 while [ "$#" -gt 0 ]; do
359 #Autoconf style options
361 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
365 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
369 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
370 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
373 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
376 -h|help|--help|-help)
377 if [ "$VAL" = "yes" ]; then
379 COMMERCIAL_USER="no" #doesn't matter we will display the help
382 COMMERCIAL_USER="no" #doesn't matter we will display the help
386 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
390 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
397 if [ "$UNKNOWN_ARG" = "yes" ]; then
409 COMMERCIAL_USER="yes"
423 if [ "$COMMERCIAL_USER" = "ask" ]; then
425 echo "Which edition of Qt do you want to use ?"
427 echo "Type 'c' if you want to use the Commercial Edition."
428 echo "Type 'o' if you want to use the Open Source Edition."
432 if [ "$commercial" = "c" ]; then
433 COMMERCIAL_USER="yes"
435 elif [ "$commercial" = "o" ]; then
442 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
443 # Commercial preview release
444 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
447 QT_EDITION="QT_EDITION_DESKTOP"
448 LicenseType="Technology Preview"
449 elif [ $COMMERCIAL_USER = "yes" ]; then
450 # one of commercial editions
451 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
453 # read in the license file
454 if [ -f "$LICENSE_FILE" ]; then
455 . "$LICENSE_FILE" >/dev/null 2>&1
456 if [ -z "$LicenseKeyExt" ]; then
458 echo "You are using an old license file."
460 echo "Please install the license file supplied by Nokia,"
461 echo "or install the Qt Open Source Edition if you intend to"
462 echo "develop free software."
465 if [ -z "$Licensee" ]; then
467 echo "Invalid license key. Please check the license key."
471 if [ -z "$LicenseKeyExt" ]; then
473 echo $ECHO_N "Please enter your license key: $ECHO_C"
475 Licensee="Unknown user"
480 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
481 && LicenseValid="yes" \
483 if [ "$LicenseValid" != "yes" ]; then
485 echo "Invalid license key. Please check the license key."
488 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
489 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
490 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
491 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
493 # determine which edition we are licensed to use
494 case "$LicenseTypeCode" in
496 LicenseType="Commercial"
500 QT_EDITION="QT_EDITION_UNIVERSAL"
503 Edition="FullFramework"
504 EditionString="Full Framework"
505 QT_EDITION="QT_EDITION_DESKTOP"
508 Edition="GUIFramework"
509 EditionString="GUI Framework"
510 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
515 LicenseType="Evaluation"
516 QMakeVar add DEFINES QT_EVAL
520 QT_EDITION="QT_EDITION_EVALUATION"
525 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
527 echo "Invalid license key. Please check the license key."
531 # verify that we are licensed to use Qt on this platform
533 case "$PlatformCode" in
536 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
540 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
543 ### EMBEDDED_QPA logic missing ###
544 case "$PlatformCode,$PLATFORM_MAC" in
545 X9,* | XC,* | XU,* | XW,* | XM,*)
547 LICENSE_EXTENSION="-ALLOS"
549 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
550 # Qt for Embedded Linux
551 LICENSE_EXTENSION="-EMBEDDED"
553 6M,* | N7,* | N9,* | NX,*)
555 LICENSE_EXTENSION="-EMBEDDED"
557 FM,* | LM,yes | ZM,no)
559 LICENSE_EXTENSION="-DESKTOP"
563 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
565 echo "You are not licensed for the $Platform platform."
567 echo "Please contact qt-info@nokia.com to upgrade your license to"
568 echo "include the $Platform platform, or install the Qt Open Source Edition"
569 echo "if you intend to develop free software."
574 if test -r "$relpath/.LICENSE"; then
575 # Generic, non-final license
577 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
582 *TECHNOLOGY?PREVIEW*)
589 echo >&2 "Invalid license files; cannot continue"
594 EditionString="$Edition"
595 QT_EDITION="QT_EDITION_DESKTOP"
598 case "$LicenseFeatureCode" in
601 case "$LicenseType" in
603 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
606 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
612 case "$LicenseType" in
614 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
617 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
623 echo "Invalid license key. Please check the license key."
627 case "$LicenseFeatureCode" in
635 if [ '!' -f "$outpath/LICENSE" ]; then
636 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
637 echo "this software has disappeared."
639 echo "Sorry, you are not licensed to use this software."
640 echo "Try re-installing."
644 elif [ $COMMERCIAL_USER = "no" ]; then
645 # Open Source edition - may only be used under the terms of the GPL or LGPL.
646 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
647 Licensee="Open Source"
649 EditionString="Open Source"
650 QT_EDITION="QT_EDITION_OPENSOURCE"
653 #-------------------------------------------------------------------------------
654 # initalize variables
655 #-------------------------------------------------------------------------------
657 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
658 for varname in $SYSTEM_VARIABLES; do
659 qmakevarname="${varname}"
660 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
661 if [ "${varname}" = "LDFLAGS" ]; then
662 qmakevarname="LFLAGS"
663 elif [ "${varname}" = "LD" ]; then
667 'if [ -n "\$'${varname}'" ]; then
668 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
672 # Use CC/CXX to run config.tests
673 mkdir -p "$outpath/config.tests"
674 rm -f "$outpath/config.tests/.qmake.cache"
675 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
677 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
679 # QTDIR may be set and point to an old or system-wide Qt installation
682 # the minimum version of libdbus-1 that we require:
683 MIN_DBUS_1_VERSION=0.93
685 # initalize internal variables
686 CFG_CONFIGURE_EXIT_ON_ERROR=yes
688 CFG_GUI=auto # (yes|no|auto)
714 CFG_OPENVG_LC_INCLUDES=no
715 CFG_OPENVG_SHIVA=auto
716 CFG_OPENVG_ON_OPENGL=auto
722 QT_DEFAULT_BUILD_PARTS="libs examples"
726 CFG_AUDIO_BACKEND=auto
729 CFG_JAVASCRIPTCORE_JIT=auto
732 # Target architecture
735 # Host architecture, same as CFG_ARCH when not cross-compiling
737 CFG_HOST_CPUFEATURES=
738 # Set when the -arch or -host-arch arguments are used
739 OPT_OBSOLETE_HOST_ARG=no
751 CFG_OBSOLETE_WAYLAND=no
763 CFG_SEPARATE_DEBUG_INFO=no
764 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
765 CFG_REDUCE_EXPORTS=auto
773 CFG_REDUCE_RELOCATIONS=auto
774 CFG_ACCESSIBILITY=auto
779 CFG_CLOCK_GETTIME=auto
780 CFG_CLOCK_MONOTONIC=auto
788 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
790 CFG_PREFIX_INSTALL=yes
800 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
801 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
806 OPT_CONFIRM_LICENSE=no
819 QPA_PLATFORM_GUARD=yes
822 # initalize variables used for installation
831 QT_INSTALL_TRANSLATIONS=
840 #flags for SQL drivers
848 QT_LFLAGS_ODBC="-lodbc"
851 # flags for libdbus-1
855 # flags for Glib (X11 only)
859 # flags for GStreamer (X11 only)
863 # default qpa platform
864 QT_QPA_DEFAULT_PLATFORM=
866 #-------------------------------------------------------------------------------
867 # check SQL drivers available in this package
868 #-------------------------------------------------------------------------------
870 # opensource version removes some drivers, so force them to be off
876 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
877 for a in "$relpath/src/plugins/sqldrivers/"*; do
879 base_a=`basename "$a"`
880 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
881 eval "CFG_SQL_${base_a}=auto"
886 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
887 if [ -d "$relpath/src/plugins/imageformats" ]; then
888 for a in "$relpath/src/plugins/imageformats/"*; do
890 base_a=`basename "$a"`
891 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
896 #-------------------------------------------------------------------------------
897 # parse command line arguments
898 #-------------------------------------------------------------------------------
900 # parse the arguments, setting things to "yes" or "no"
901 while [ "$#" -gt 0 ]; do
905 #Autoconf style options
907 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
911 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
915 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
916 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
919 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
923 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
927 -no-*-*|-plugin-*-*|-qt-*-*)
928 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
929 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
933 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
936 #Qt style options that pass an argument
937 -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa|-qconfig)
938 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
942 #Qt style complex options in one command
943 -enable-*|-disable-*)
944 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
945 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
947 #Qt Builtin/System style options
948 -no-*|-system-*|-qt-*)
949 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
950 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
952 #Options that cannot be generalized
959 # this option may or may not be followed by an argument
960 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
969 # this option may or may not be followed by an argument
970 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
978 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
979 # this option may or may not be followed by an argument
980 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
999 if [ "$1" = "-D" ]; then
1003 VAL=`echo $1 | sed 's,-D,,'`
1008 # this option may or may not be followed by an argument
1009 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1018 if [ "$1" = "-I" ]; then
1022 VAL=`echo $1 | sed 's,-I,,'`
1027 if [ "$1" = "-L" ]; then
1031 VAL=`echo $1 | sed 's,-L,,'`
1036 if [ "$1" = "-R" ]; then
1040 VAL=`echo $1 | sed 's,-R,,'`
1045 if [ "$1" = "-l" ]; then
1049 VAL=`echo $1 | sed 's,-l,,'`
1054 if [ "$1" = "-F" ]; then
1058 VAL=`echo $1 | sed 's,-F,,'`
1063 if [ "$1" = "-fw" ]; then
1067 VAL=`echo $1 | sed 's,-fw,,'`
1074 #General options, including Qt style yes options
1076 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1083 if [ "$UNKNOWN_ARG" = "yes" ]; then
1084 echo "$1: unknown argument"
1095 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1096 CFG_ACCESSIBILITY="$VAL"
1105 CFG_USE_GNUMAKE="$VAL"
1108 CFG_MYSQL_CONFIG="$VAL"
1111 QT_INSTALL_PREFIX="$VAL"
1114 QT_HOST_PREFIX="$VAL"
1123 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1124 CFG_PKGCONFIG="$VAL"
1130 CFG_PKGCONFIG="force"
1133 QT_INSTALL_DOCS="$VAL"
1136 QT_INSTALL_HEADERS="$VAL"
1139 QT_INSTALL_PLUGINS="$VAL"
1142 QT_INSTALL_IMPORTS="$VAL"
1145 QT_INSTALL_DATA="$VAL"
1148 QT_INSTALL_LIBS="$VAL"
1157 QT_INSTALL_TRANSLATIONS="$VAL"
1159 sysconfdir|settingsdir)
1160 QT_INSTALL_SETTINGS="$VAL"
1163 QT_INSTALL_EXAMPLES="$VAL"
1166 QT_INSTALL_TESTS="$VAL"
1175 QT_INSTALL_BINS="$VAL"
1178 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1185 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1186 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1187 [ "$VAL" = "es2" ]; then
1194 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1201 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1204 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1207 if [ "$BUILD_ON_MAC" = "yes" ]; then
1214 OPT_OBSOLETE_HOST_ARG=yes
1217 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1218 CFG_MAC_HARFBUZZ="$VAL"
1225 if [ "$BUILD_ON_MAC" = "yes" ]; then
1226 CFG_FRAMEWORK="$VAL"
1232 if [ "$VAL" = "yes" ]; then
1234 QMakeVar add QMAKE_CFLAGS -pg
1235 QMakeVar add QMAKE_CXXFLAGS -pg
1236 QMakeVar add QMAKE_LFLAGS -pg
1237 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1243 if [ "$VAL" = "yes" ]; then
1244 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1249 # keep compatibility with old platform names
1255 PLATFORM=hpux-acc-o64
1258 PLATFORM=hpux-acc-64
1261 PLATFORM=hpux-acc-64
1273 PLATFORM=reliant-cds-64
1276 PLATFORM=solaris-cc-64
1279 PLATFORM=unixware-cc
1282 PLATFORM=unixware-g++
1285 PLATFORM=unixware-cc
1288 PLATFORM=unixware-g++
1294 i386) NATIVE_64_ARCH="x86_64" ;;
1295 powerpc) NATIVE_64_ARCH="ppc64" ;;
1296 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1298 if [ ! -z "$NATIVE_64_ARCH" ]; then
1299 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1306 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1309 XPLATFORM=`resolveDeviceMkspec $VAL`
1310 [ "$XPLATFORM" = "undefined" ] && exit 101
1313 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1314 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1315 DeviceVar set $DEV_VAR $DEV_VAL
1318 QT_QPA_DEFAULT_PLATFORM="$VAL"
1321 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1322 CFG_DEBUG_RELEASE="$VAL"
1328 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1329 CFG_RELEASE_QMAKE="$VAL"
1335 if [ "$VAL" = "yes" ]; then
1337 elif [ "$VAL" = "no" ]; then
1344 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1345 CFG_PREFIX_INSTALL="$VAL"
1353 developer-build|commercial|opensource)
1354 # These switches have been dealt with already
1357 if [ "$VAL" = "yes" ]; then
1359 elif [ "$VAL" = "no" ]; then
1366 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1367 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1373 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1374 if [ "$VAL" = "no" ]; then
1375 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1376 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1377 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1383 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1390 if [ "$VAL" = "no" ]; then
1397 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1405 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1412 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1419 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1426 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1433 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1440 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1447 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1454 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1455 CFG_PRECOMPILE="$VAL"
1460 separate-debug-info)
1461 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1462 CFG_SEPARATE_DEBUG_INFO="$VAL"
1463 elif [ "$VAL" = "nocopy" ] ; then
1464 CFG_SEPARATE_DEBUG_INFO="yes"
1465 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1471 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1472 CFG_REDUCE_EXPORTS="$VAL"
1478 if [ "$VAL" = "no" ]; then
1485 if [ "$VAL" = "no" ]; then
1492 if [ "$VAL" = "no" ]; then
1499 if [ "$VAL" = "no" ]; then
1506 if [ "$VAL" = "no" ]; then
1513 if [ "$VAL" = "no" ]; then
1520 if [ "$VAL" = "no" ]; then
1530 if [ "$VAL" = "no" ]; then
1537 if [ "$VAL" = "no" ]; then
1544 if [ "$VAL" = "no" ]; then
1545 CFG_MIPS_DSPR2="$VAL"
1551 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1552 CFG_REDUCE_RELOCATIONS="$VAL"
1558 [ "$VAL" = "qt" ] && VAL=yes
1559 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1564 # No longer supported:
1565 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1568 if [ "$VAL" = "system" ]; then
1575 [ "$VAL" = "yes" ] && VAL=qt
1576 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1583 [ "$VAL" = "yes" ] && VAL=qt
1584 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1591 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1598 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1605 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1612 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1619 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1626 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1627 CFG_FONTCONFIG="$VAL"
1633 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1640 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1647 CFG_OBSOLETE_WAYLAND=yes
1650 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1657 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1664 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1671 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1678 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1685 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1692 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1699 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1700 CFG_GSTREAMER="$VAL"
1706 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1707 CFG_QGTKSTYLE="$VAL"
1713 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1716 if [ "$VAL" = "no" ]; then
1724 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1726 elif [ "$VAL" = "no" ]; then
1733 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1734 QPA_PLATFORM_GUARD="$VAL"
1740 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1742 elif [ "$VAL" = "runtime" ]; then
1749 if [ "$VAL" = "yes" ]; then
1756 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1763 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1764 CFG_LARGEFILE="$VAL"
1770 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1777 if [ "$VAL" = "yes" ]; then
1778 CFG_OPENSSL="linked"
1784 if [ "$VAL" = "yes" ]; then
1787 if [ "$VAL" = "no" ]; then
1795 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1796 CFG_JAVASCRIPTCORE_JIT="$VAL"
1802 if [ "$VAL" = "yes" ]; then
1803 OPT_CONFIRM_LICENSE="$VAL"
1809 if [ "$VAL" = "yes" ]; then
1815 sql-*|imageformat-*)
1816 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1817 # if autoconf style options were used, $VAL can be "yes" or "no"
1818 [ "$VAL" = "yes" ] && VAL=qt
1819 # now $VAL should be "no", "qt", or "plugin"... double-check
1820 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1823 # now $VAL is "no", "qt", or "plugin"
1825 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1826 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1828 # Grab the available values
1831 avail="$CFG_SQL_AVAILABLE"
1834 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1835 if [ "$OPT" != "plugin" ]; then
1836 # png is always built in
1842 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1846 # Check that that user's value is available.
1849 if [ "$VAL" = "$d" ]; then
1854 [ "$found" = yes ] || ERROR=yes
1856 if [ "$VAR" = "sql" ]; then
1857 # set the CFG_SQL_driver
1858 eval "CFG_SQL_$VAL=\$OPT"
1860 elif [ "$VAR" = "imageformat" ]; then
1861 [ "$OPT" = "qt" ] && OPT=yes
1862 VAL="`echo $VAL |tr a-z A-Z`"
1863 eval "CFG_$VAL=$OPT"
1867 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1868 if [ "$OPT" = "plugin" ]; then
1871 QMakeVar add "${VAR}s" "${VAL}"
1872 elif [ "$OPT" = "no" ]; then
1873 PLUG_VAR="${VAR}-plugin"
1875 QMakeVar del "${IN_VAR}s" "$VAL"
1876 QMakeVar del "${PLUG_VAR}s" "$VAL"
1878 if [ "$ERROR" = "yes" ]; then
1879 echo "$CURRENT_OPT: unknown argument"
1884 if [ "$VAL" = "yes" ]; then
1885 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1886 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1890 elif [ "$VAL" = "no" ]; then
1891 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1892 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1901 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1908 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1915 DEFINES="$DEFINES \"$VAL\""
1916 D_FLAGS="$D_FLAGS -D\"$VAL\""
1919 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1922 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1925 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1928 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1931 if [ "$BUILD_ON_MAC" = "yes" ]; then
1932 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1933 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1939 if [ "$BUILD_ON_MAC" = "yes" ]; then
1940 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1946 W_FLAGS="$W_FLAGS \"${VAL}\""
1952 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1953 CFG_PHONON_BACKEND="$VAL"
1965 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1966 CFG_AUDIO_BACKEND="$VAL"
1972 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1979 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1980 CFG_FORCE_ASSERTS="$VAL"
1986 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
1993 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2003 if [ "$UNKNOWN_OPT" = "yes" ]; then
2004 echo "${CURRENT_OPT}: invalid command-line switch"
2010 # update QT_CONFIG to show our current predefined configuration
2011 case "$CFG_QCONFIG" in
2012 minimal|small|medium|large|full)
2013 # these are a sequence of increasing functionality
2014 for c in minimal small medium large full; do
2015 QT_CONFIG="$QT_CONFIG $c-config"
2016 [ "$CFG_QCONFIG" = $c ] && break
2020 # not known to be sufficient for anything
2021 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2022 echo >&2 "Error: configuration file not found:"
2023 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2025 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2030 #-------------------------------------------------------------------------------
2031 # build tree initialization
2032 #-------------------------------------------------------------------------------
2034 # where to find which..
2035 unixtests="$relpath/config.tests/unix"
2036 mactests="$relpath/config.tests/mac"
2037 WHICH="$unixtests/which.test"
2039 PERL=`$WHICH perl 2>/dev/null`
2041 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2043 for e in gawk nawk awk; do
2044 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2051 PERL="/usr/bin/perl"
2052 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2056 ### skip this if the user just needs help...
2057 if [ "$OPT_HELP" != "yes" ]; then
2059 # is this a shadow build?
2060 if [ "$OPT_SHADOW" = "maybe" ]; then
2062 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2063 if [ -h "$outpath" ]; then
2064 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2070 if [ "$OPT_SHADOW" = "yes" ]; then
2071 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2072 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2073 echo >&2 "Cannot proceed."
2076 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2079 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2081 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2082 echo "Qt can be built in release mode with separate debug information, so"
2083 echo "-debug-and-release is not necessary anymore"
2087 if [ "$CFG_SILENT" = "yes" ]; then
2088 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2091 # if the source tree is different from the build tree,
2092 # symlink or copy part of the sources
2093 if [ "$OPT_SHADOW" = "yes" ]; then
2094 echo "Preparing build tree..."
2096 if [ -z "$PERL" ]; then
2098 echo "You need perl in your PATH to make a shadow build."
2099 echo "Cannot proceed."
2103 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2105 # make a syncqt script that can be used in the shadow
2106 rm -f "$outpath/bin/syncqt"
2107 if [ -x "$relpath/bin/syncqt" ]; then
2108 mkdir -p "$outpath/bin"
2109 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2110 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2111 chmod 755 "$outpath/bin/syncqt"
2114 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2115 rm -f "$outpath/bin/$i"
2116 if [ -x "$relpath/bin/$i" ]; then
2117 mkdir -p "$outpath/bin"
2118 echo "#!/bin/sh" >"$outpath/bin/$i"
2119 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2120 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2121 chmod 755 "$outpath/bin/$i"
2125 # save a pre-existing mkspecs/modules dir
2126 test -d "$outpath/mkspecs/modules" && \
2127 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2128 # ditto for mkspecs/modules-inst
2129 test -d "$outpath/mkspecs/modules-inst" && \
2130 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2132 # symlink the mkspecs directory
2133 mkdir -p "$outpath/mkspecs"
2134 rm -rf "$outpath"/mkspecs/*
2135 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2136 rm -f "$outpath/mkspecs/default"
2140 rm -rf "$outpath/mkspecs/$1"
2141 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2142 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2145 # Special case for mkspecs/features directory.
2146 # To be able to place .prf files into a shadow build directory,
2147 # we're creating links for files only. The directory structure is reproduced.
2148 ShadowMkspecs features
2150 # The modules dir is special, too.
2151 if test -d "$outpath/mkspecs-modules"; then
2152 rm -rf "$outpath/mkspecs/modules"
2153 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2155 ShadowMkspecs modules
2158 # The modules-inst dir is not quite as special, but still.
2159 if test -d "$outpath/mkspecs-modules-inst"; then
2160 rm -rf "$outpath/mkspecs/modules-inst"
2161 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2164 # symlink the doc directory
2165 rm -rf "$outpath/doc"
2166 ln -s "$relpath/doc" "$outpath/doc"
2169 # symlink fonts to be able to run application from build directory
2170 if [ ! -d "${outpath}/lib/fonts" ]; then
2171 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2172 mkdir -p "${outpath}/lib"
2173 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2177 if [ "$OPT_FAST" = "auto" ]; then
2178 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2185 # find a make command
2186 if [ -z "$MAKE" ]; then
2188 for mk in gmake make; do
2189 if "$WHICH" $mk >/dev/null 2>&1; then
2194 if [ -z "$MAKE" ]; then
2195 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2196 echo >&2 "Cannot proceed."
2199 # export MAKE, we need it later in the config.tests
2205 #-------------------------------------------------------------------------------
2206 # auto-detect all that hasn't been specified in the arguments
2207 #-------------------------------------------------------------------------------
2209 if [ -z "$PLATFORM" ]; then
2211 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2213 OSX_VERSION=`uname -r | cut -d. -f1`
2214 # Select compiler. Use g++ unless we find a usable Clang version
2216 if [ "$OSX_VERSION" -ge 12 ]; then
2217 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2219 elif [ "$OSX_VERSION" -eq 11 ]; then
2220 # We're on Lion. Check if we have a supported Clang version
2221 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2224 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2231 #PLATFORM=aix-g++-64
2233 #PLATFORM=aix-xlc-64
2235 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2245 # PLATFORM=dynix-g++
2251 PLATFORM=freebsd-g++
2253 - Also available for FreeBSD: freebsd-icc
2257 PLATFORM=openbsd-g++
2268 #PLATFORM=irix-cc-64
2270 - Also available for IRIX: irix-g++ irix-cc-64
2274 case "$UNAME_MACHINE" in
2276 #PLATFORM=hpuxi-acc-32
2277 PLATFORM=hpuxi-acc-64
2279 - Also available for HP-UXi: hpuxi-acc-32
2285 #PLATFORM=hpux-acc-64
2287 #PLATFORM=hpux-acc-o64
2289 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2298 - Also available for Tru64: tru64-g++
2302 case "$UNAME_MACHINE" in
2304 PLATFORM=linux-g++-64
2311 - Also available for Linux: linux-kcc linux-icc linux-cxx
2315 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2316 PLATFORM="solaris-g++"
2318 #PLATFORM=solaris-g++
2320 #PLATFORM=solaris-cc64
2323 - Also available for Solaris: solaris-g++ solaris-cc-64
2326 ReliantUNIX-*:*|SINIX-*:*)
2327 PLATFORM=reliant-cds
2328 #PLATFORM=reliant-cds-64
2330 - Also available for Reliant UNIX: reliant-cds-64
2340 #PLATFORM=unixware-g++
2341 PLATFORM=unixware-cc
2343 - Also available for OpenUNIX: unixware-g++
2347 #PLATFORM=unixware-g++
2348 PLATFORM=unixware-cc
2350 - Also available for UnixWare: unixware-g++
2357 - Also available for SCO OpenServer: sco-g++
2361 PLATFORM=unixware-g++
2364 PLATFORM=unsupported/qnx-g++
2367 if [ "$OPT_HELP" != "yes" ]; then
2369 echo " The build script does not currently recognize all" >&2
2370 echo " platforms supported by Qt." >&2
2371 echo " Rerun this script with a -platform option listed to" >&2
2372 echo " set the system/compiler combination you use." >&2
2379 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2381 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2382 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2383 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2385 if [ -d "$PLATFORM" ]; then
2386 QMAKESPEC="$PLATFORM"
2388 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2390 if [ -d "$XPLATFORM" ]; then
2391 XQMAKESPEC="$XPLATFORM"
2393 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2395 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2396 QT_CROSS_COMPILE=yes
2397 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2398 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2401 if [ "$BUILD_ON_MAC" = "yes" ]; then
2402 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2404 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2405 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2406 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2407 echo " built with 'macx-g++'" >&2
2413 # check specified platforms are supported
2414 if [ '!' -d "$QMAKESPEC" ]; then
2416 echo " The specified system/compiler is not supported:"
2420 echo " Please see the README file for a complete list."
2424 if [ '!' -d "$XQMAKESPEC" ]; then
2426 echo " The specified system/compiler is not supported:"
2430 echo " Please see the README file for a complete list."
2434 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2436 echo " The specified system/compiler port is not complete:"
2438 echo " $XQMAKESPEC/qplatformdefs.h"
2440 echo " Please contact qt-info@nokia.com."
2445 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2446 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2447 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2448 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2449 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2453 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2454 case `basename "$XPLATFORM"` in
2457 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2459 echo "Please contact qt-info@nokia.com to upgrade your license to"
2460 echo "include this platform, or install the Qt Open Source Edition"
2461 echo "if you intend to develop free software."
2467 #-------------------------------------------------------------------------------
2468 # tests that don't need qmake (must be run before displaying help)
2469 #-------------------------------------------------------------------------------
2471 # detect build style
2472 if [ "$CFG_DEBUG" = "auto" ]; then
2473 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2474 CFG_DEBUG_RELEASE=yes
2476 elif [ "$CFG_DEV" = "yes" ]; then
2477 CFG_DEBUG_RELEASE=no
2480 CFG_DEBUG_RELEASE=no
2484 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2485 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2488 # pass on $CFG_SDK to the configure tests.
2489 if [ '!' -z "$CFG_SDK" ]; then
2490 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2493 # find the default framework value
2494 if [ "$BUILD_ON_MAC" = "yes" ]; then
2495 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2496 CFG_FRAMEWORK="$CFG_SHARED"
2497 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2499 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2507 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2509 TEST_COMPILER=$QMAKE_CONF_COMPILER
2510 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2511 if [ -z "$TEST_COMPILER" ]; then
2512 echo "ERROR: Cannot set the compiler for the configuration tests"
2518 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2519 if [ -n "$GCC_MACHINE_DUMP" ]; then
2520 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2523 if [ -n "$CFG_SYSROOT" ]; then
2524 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2528 export SYSROOT_FLAG # used by config.tests/unix/compile.test
2530 # auto-detect precompiled header support
2531 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2532 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2539 # auto-detect support for separate debug info in objcopy
2540 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2541 TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2542 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2543 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2544 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2545 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2546 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2547 CFG_SEPARATE_DEBUG_INFO=no
2551 # binutils on HP-UX is buggy; default to no.
2552 CFG_SEPARATE_DEBUG_INFO=no
2555 CFG_SEPARATE_DEBUG_INFO=yes
2561 # auto-detect -fvisibility support
2562 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2563 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2564 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2565 echo "-reduce-exports was requested but this compiler does not support it"
2566 echo "Re-run configure with -v for more information"
2569 CFG_REDUCE_EXPORTS=no
2571 CFG_REDUCE_EXPORTS=yes
2575 # detect the availability of the -Bsymbolic-functions linker optimization
2576 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2577 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2578 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2579 echo "-reduce-relocations was requested but this compiler does not support it"
2580 echo "Re-run configure with -v for more information"
2583 CFG_REDUCE_RELOCATIONS=no
2585 CFG_REDUCE_RELOCATIONS=yes
2589 # auto-detect GNU make support
2590 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2594 # find the default framework value
2595 if [ "$BUILD_ON_MAC" = "yes" ]; then
2596 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2597 CFG_FRAMEWORK="$CFG_SHARED"
2598 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2600 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2608 #setup the build parts
2609 if [ -z "$CFG_BUILD_PARTS" ]; then
2610 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2612 # build tests by default, if a developer build
2613 if [ "$CFG_DEV" = "yes" ]; then
2614 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2617 # don't build tools by default when cross-compiling
2618 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2619 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2622 for nobuild in $CFG_NOBUILD_PARTS; do
2623 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2625 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2627 # echo "WARNING: libs is a required part of the build."
2629 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2632 #-------------------------------------------------------------------------------
2633 # post process QT_INSTALL_* variables
2634 #-------------------------------------------------------------------------------
2636 if [ -z "$QT_INSTALL_PREFIX" ]; then
2637 if [ "$CFG_DEV" = "yes" ]; then
2638 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2640 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2643 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2645 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2646 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2647 if [ "$BUILD_ON_MAC" = "yes" ]; then
2648 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2651 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2654 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2656 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2657 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2658 if [ "$BUILD_ON_MAC" = "yes" ]; then
2659 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2664 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2667 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2669 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2670 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2671 if [ "$BUILD_ON_MAC" = "yes" ]; then
2672 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2673 QT_INSTALL_LIBS="/Libraries/Frameworks"
2677 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2679 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2681 if [ -z "$QT_INSTALL_BINS" ]; then #default
2682 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2683 if [ "$BUILD_ON_MAC" = "yes" ]; then
2684 QT_INSTALL_BINS="/Developer/Applications/Qt"
2687 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2689 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2691 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2692 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2693 if [ "$BUILD_ON_MAC" = "yes" ]; then
2694 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2697 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2699 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2701 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2702 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2703 if [ "$BUILD_ON_MAC" = "yes" ]; then
2704 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2707 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2709 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2711 if [ -z "$QT_INSTALL_DATA" ]; then #default
2712 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2714 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2716 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2717 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2719 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2721 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2722 if [ "$BUILD_ON_MAC" = "yes" ]; then
2723 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2725 QT_INSTALL_SETTINGS=/etc/xdg
2728 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2730 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2731 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2732 if [ "$BUILD_ON_MAC" = "yes" ]; then
2733 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2736 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2738 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2741 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2742 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2743 if [ "$BUILD_ON_MAC" = "yes" ]; then
2744 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2747 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2749 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2751 #------- host paths --------
2753 if [ -z "$QT_HOST_PREFIX" ]; then
2754 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2757 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2761 if [ -z "$QT_HOST_BINS" ]; then #default
2763 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2764 if [ "$BUILD_ON_MAC" = "yes" ]; then
2765 QT_HOST_BINS="/Developer/Applications/Qt"
2768 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2770 QT_HOST_BINS="$QT_INSTALL_BINS"
2773 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2775 if [ -z "$QT_HOST_DATA" ]; then #default
2777 QT_HOST_DATA="$QT_HOST_PREFIX"
2779 QT_HOST_DATA="$QT_INSTALL_DATA"
2782 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2785 #-------------------------------------------------------------------------------
2786 # help - interactive parts of the script _after_ this section please
2787 #-------------------------------------------------------------------------------
2789 # next, emit a usage message if something failed.
2790 if [ "$OPT_HELP" = "yes" ]; then
2791 [ "x$ERROR" = "xyes" ] && echo
2792 if [ "$CFG_NIS" = "no" ]; then
2799 if [ "$CFG_CUPS" = "no" ]; then
2806 if [ "$CFG_ICONV" = "no" ]; then
2813 if [ "$CFG_LARGEFILE" = "no" ]; then
2820 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2828 if [ "$CFG_XCB" = "no" ]; then
2836 if [ "$CFG_EGLFS" = "no" ]; then
2844 if [ "$CFG_DIRECTFB" = "no" ]; then
2851 if [ "$CFG_XINPUT2" = "no" ]; then
2859 if [ "$CFG_DBUS" = "no" ]; then
2867 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2875 if [ "$CFG_GLIB" = "no" ]; then
2884 Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
2885 [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
2886 [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>] [-testsdir <dir>]
2887 [-release] [-debug] [-debug-and-release] [-c++11] [-no-c++11]
2888 [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
2889 [-largefile] [-no-accessibility] [-accessibility] [-no-sql-<driver>] [-sql-<driver>]
2890 [-plugin-sql-<driver>] [-system-sqlite]
2891 [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
2892 [-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng] [-qt-libpng] [-system-libpng]
2893 [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
2894 [-nomake <part>] [-R <string>] [-l <string>] [-no-rpath] [-rpath] [-continue]
2895 [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
2896 [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
2897 [-no-separate-debug-info] [-no-sse2]
2898 [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
2899 [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info]
2900 [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
2901 [-no-audio-backend] [-audio-backend]
2902 [-no-javascript-jit] [-javascript-jit] [-no-qml-debug] [-qml-debug]
2903 [-no-optimized-qmake] [-optimized-qmake]
2904 [-no-openssl] [-openssl] [-openssl-linked]
2905 [-no-gtkstyle] [-gtkstyle]
2906 [-qt-pcre] [-system-pcre]
2907 [-device <name>] [-device-option <key=value>]
2908 [additional platform specific options (see below)]
2911 Installation options:
2913 These are optional, but you may specify install directories.
2915 -prefix <dir> ...... This will install everything relative to <dir>
2916 (default $QT_INSTALL_PREFIX)
2918 -hostprefix [dir] .. Tools and libraries needed when developing
2919 applications are installed in [dir]. If [dir] is
2920 not given, the current build directory will be used.
2923 * -prefix-install .... Force a sandboxed "local" installation of
2924 Qt. This will install into
2925 $QT_INSTALL_PREFIX, if this option is
2926 disabled then some platforms will attempt a
2927 "system" install by placing default values to
2928 be placed in a system location other than
2931 You may use these to separate different parts of the install:
2933 -bindir <dir> ......... Executables will be installed to <dir>
2934 (default PREFIX/bin)
2935 -libdir <dir> ......... Libraries will be installed to <dir>
2936 (default PREFIX/lib)
2937 -docdir <dir> ......... Documentation will be installed to <dir>
2938 (default PREFIX/doc)
2939 -headerdir <dir> ...... Headers will be installed to <dir>
2940 (default PREFIX/include)
2941 -plugindir <dir> ...... Plugins will be installed to <dir>
2942 (default PREFIX/plugins)
2943 -importdir <dir> ...... Imports for QML will be installed to <dir>
2944 (default PREFIX/imports)
2945 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2947 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2948 (default PREFIX/translations)
2949 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2950 (default PREFIX/etc/settings)
2951 -examplesdir <dir> .... Examples will be installed to <dir>
2952 (default PREFIX/examples)
2953 -testsdir <dir> ....... Tests will be installed to <dir>
2954 (default PREFIX/tests)
2956 -hostbindir <dir> .. Host executables will be installed to <dir>
2957 (default HOSTPREFIX/bin)
2958 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2959 (default HOSTPREFIX)
2963 The defaults (*) are usually acceptable. A plus (+) denotes a default value
2964 that needs to be evaluated. If the evaluation succeeds, the feature is
2965 included. Here is a short explanation of each option:
2967 * -release ........... Compile and link Qt with debugging turned off.
2968 -debug ............. Compile and link Qt with debugging turned on.
2969 -debug-and-release . Compile and link two versions of Qt, with and without
2970 debugging turned on (Mac only).
2972 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2974 -opensource ........ Compile and link the Open-Source Edition of Qt.
2975 -commercial ........ Compile and link the Commercial Edition of Qt.
2977 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
2978 + -c++11 ............. Compile Qt with C++11 support enabled.
2980 * -shared ............ Create and use shared Qt libraries.
2981 -static ............ Create and use static Qt libraries.
2983 * -no-fast ........... Configure Qt normally by generating Makefiles for all
2985 -fast .............. Configure Qt quickly by generating Makefiles only for
2986 library and subdirectory targets. All other Makefiles
2987 are created as wrappers, which will in turn run qmake.
2989 -no-largefile ...... Disables large file support.
2990 + -largefile ......... Enables Qt to access files larger than 4 GB.
2992 -no-accessibility .. Do not compile Accessibility support.
2993 * -accessibility ..... Compile Accessibility support.
2995 -no-sql-<driver> ... Disable SQL <driver> entirely.
2996 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
2998 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3001 Possible values for <driver>:
3002 [ $CFG_SQL_AVAILABLE ]
3004 -system-sqlite ..... Use sqlite from the operating system.
3006 -no-phonon-backend.. Do not build the platform phonon plugin.
3007 + -phonon-backend..... Build the platform phonon plugin.
3009 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3010 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3012 -no-qml-debug ...... Do not build the in-process QML debugging support.
3013 + -qml-debug ......... Build the QML debugging support.
3015 -platform target ... The operating system and compiler you are building
3018 See the README file for a list of supported
3019 operating systems and compilers.
3021 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3022 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3023 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3024 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3025 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3026 -no-avx ............ Do not compile with use of AVX instructions.
3027 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3028 -no-neon ........... Do not compile with use of NEON instructions.
3029 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3030 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3032 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3033 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3035 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3037 -D <string> ........ Add an explicit define to the preprocessor.
3038 -I <string> ........ Add an explicit include path.
3039 -L <string> ........ Add an explicit library path.
3041 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3042 configure determines whether to use pkg-config or not with
3043 some heuristics such as checking the environment variables.
3044 -no-pkg-config ..... Disable use of pkg-config.
3045 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3046 detection heuristic).
3048 -help, -h .......... Display this information.
3050 Third Party Libraries:
3052 -qt-zlib ........... Use the zlib bundled with Qt.
3053 + -system-zlib ....... Use zlib from the operating system.
3054 See http://www.gzip.org/zlib
3056 -no-gif ............ Do not compile GIF reading support.
3058 -no-libpng ......... Do not compile PNG support.
3059 -qt-libpng ......... Use the libpng bundled with Qt.
3060 + -system-libpng ..... Use libpng from the operating system.
3061 See http://www.libpng.org/pub/png
3063 -no-libjpeg ........ Do not compile JPEG support.
3064 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3065 + -system-libjpeg .... Use libjpeg from the operating system.
3066 See http://www.ijg.org
3068 -no-openssl ........ Do not compile support for OpenSSL.
3069 + -openssl ........... Enable run-time OpenSSL support.
3070 -openssl-linked .... Enabled linked OpenSSL support.
3072 -qt-pcre ........... Use the PCRE library bundled with Qt.
3073 + -system-pcre ....... Use the PCRE library from the operating system.
3077 -make <part> ....... Add part to the list of parts to be built at make time.
3078 ($QT_DEFAULT_BUILD_PARTS)
3079 -nomake <part> ..... Exclude part from the list of parts to be built.
3081 -R <string> ........ Add an explicit runtime library path to the Qt
3083 -l <string> ........ Add an explicit library.
3085 -no-rpath .......... Do not use the library install path as a runtime
3087 + -rpath ............. Link Qt libraries and executables using the library
3088 install path as a runtime library path. Equivalent
3089 to -R install_libpath
3091 -continue .......... Continue as far as possible if an error occurs.
3093 -verbose, -v ....... Print verbose information about each step of the
3096 -silent ............ Reduce the build output so that warnings and errors
3097 can be seen more easily.
3099 * -no-optimized-qmake ... Do not build qmake optimized.
3100 -optimized-qmake ...... Build qmake optimized.
3102 -no-gui ............ Don't build the Qt GUI library
3104 $NSN -no-nis ............ Do not compile NIS support.
3105 $NSY -nis ............... Compile NIS support.
3107 $CUN -no-cups ........... Do not compile CUPS support.
3108 $CUY -cups .............. Compile CUPS support.
3109 Requires cups/cups.h and libcups.so.2.
3111 $CIN -no-iconv .......... Do not compile support for iconv(3).
3112 $CIY -iconv ............. Compile support for iconv(3).
3114 $PHN -no-pch ............ Do not use precompiled header support.
3115 $PHY -pch ............... Use precompiled header support.
3117 $DBN -no-dbus ........... Do not compile the QtDBus module.
3118 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3119 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3121 -reduce-relocations ..... Reduce relocations in the libraries through extra
3122 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3123 experimental; needs GNU ld >= 2.18).
3125 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3127 -device <name> ............... Cross-compile for device <name> (experimental)
3128 -device-option <key=value> ... Add device specific options for the device mkspec
3131 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3132 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3134 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3135 $XCBY -xcb ............... Compile Xcb support.
3137 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3138 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3140 $DFBN -no-directfb ....... Do not compile DirectFB support.
3141 $DFBY -directfb .......... Compile DirectFB support.
3143 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3145 -xplatform target ... The target platform when cross-compiling.
3147 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot.
3149 -no-feature-<feature> Do not compile in <feature>.
3150 -feature-<feature> .. Compile in <feature>. The available features
3151 are described in src/corelib/global/qfeatures.txt
3153 -no-freetype ........ Do not compile in Freetype2 support.
3154 -qt-freetype ........ Use the libfreetype bundled with Qt.
3155 * -system-freetype .... Use libfreetype from the operating system.
3156 See http://www.freetype.org/
3158 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3159 default ($CFG_QCONFIG).
3161 -no-opengl .......... Do not support OpenGL.
3162 -opengl <api> ....... Enable OpenGL support
3163 With no parameter, this will attempt to auto-detect
3164 OpenGL ES 2, or regular desktop OpenGL.
3165 Use es2 for <api> to override auto-detection.
3167 $GBN -no-glib ........... Do not compile Glib support.
3168 $GBY -glib .............. Compile Glib support.
3171 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3174 $X2N -no-xinput2......... Do not compile XInput2 support.
3175 $X2Y -xinput2............ Compile XInput2 support.
3181 if [ "$BUILD_ON_MAC" = "yes" ]; then
3186 -Fstring ........... Add an explicit framework path.
3187 -fw string ......... Add an explicit framework.
3189 * -framework ......... Build Qt as a series of frameworks and
3190 link tools against those frameworks.
3191 -no-framework ...... Do not build Qt as a series of frameworks.
3193 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3194 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3196 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3197 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3198 QT_ENABLE_HARFBUZZ environment variable.
3203 [ "x$ERROR" = "xyes" ] && exit 1
3208 # -----------------------------------------------------------------------------
3209 # LICENSING, INTERACTIVE PART
3210 # -----------------------------------------------------------------------------
3213 echo "This is the Qt ${EditionString} Edition."
3216 if [ "$Edition" = "OpenSource" ]; then
3218 echo "You are licensed to use this software under the terms of"
3219 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3220 if [ -f "$relpath/LICENSE.GPL3" ]; then
3221 echo "You are also licensed to use this software under the terms of"
3222 echo "the GNU General Public License (GPL) versions 3."
3228 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3229 echo "You have already accepted the terms of the $LicenseType license."
3232 if [ -f "$relpath/LICENSE.GPL3" ]; then
3233 echo "Type '3' to view the GNU General Public License version 3."
3235 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3236 echo "Type 'yes' to accept this license offer."
3237 echo "Type 'no' to decline this license offer."
3239 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3243 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3245 elif [ "$acceptance" = "no" ]; then
3246 echo "You are not licensed to use this software."
3249 elif [ "$acceptance" = "3" ]; then
3250 more "$relpath/LICENSE.GPL3"
3251 elif [ "$acceptance" = "L" ]; then
3252 more "$relpath/LICENSE.LGPL"
3255 elif [ "$Edition" = "Preview" ]; then
3256 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3259 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3260 echo "You have already accepted the terms of the $LicenseType license."
3263 echo "You are licensed to use this software under the terms of"
3264 echo "the $TheLicense"
3266 echo "Type '?' to read the Preview License."
3267 echo "Type 'yes' to accept this license offer."
3268 echo "Type 'no' to decline this license offer."
3270 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3274 if [ "$acceptance" = "yes" ]; then
3276 elif [ "$acceptance" = "no" ] ;then
3277 echo "You are not licensed to use this software."
3280 elif [ "$acceptance" = "?" ]; then
3281 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3284 elif [ "$Edition" != "OpenSource" ]; then
3285 if [ -n "$ExpiryDate" ]; then
3286 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3287 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3288 Today=`date +%Y%m%d`
3289 if [ "$Today" -gt "$ExpiryDate" ]; then
3290 case "$LicenseType" in
3291 Commercial|Academic|Educational)
3292 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3294 echo "NOTICE NOTICE NOTICE NOTICE"
3296 echo " Your support and upgrade period has expired."
3298 echo " You are no longer licensed to use this version of Qt."
3299 echo " Please contact qt-info@nokia.com to renew your support"
3300 echo " and upgrades for this license."
3302 echo "NOTICE NOTICE NOTICE NOTICE"
3307 echo "WARNING WARNING WARNING WARNING"
3309 echo " Your support and upgrade period has expired."
3311 echo " You may continue to use your last licensed release"
3312 echo " of Qt under the terms of your existing license"
3313 echo " agreement. But you are not entitled to technical"
3314 echo " support, nor are you entitled to use any more recent"
3315 echo " Qt releases."
3317 echo " Please contact qt-info@nokia.com to renew your"
3318 echo " support and upgrades for this license."
3320 echo "WARNING WARNING WARNING WARNING"
3327 echo "NOTICE NOTICE NOTICE NOTICE"
3329 echo " Your Evaluation license has expired."
3331 echo " You are no longer licensed to use this software. Please"
3332 echo " contact qt-info@nokia.com to purchase license, or install"
3333 echo " the Qt Open Source Edition if you intend to develop free"
3336 echo "NOTICE NOTICE NOTICE NOTICE"
3343 TheLicense=`head -n 1 "$outpath/LICENSE"`
3345 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3346 echo "You have already accepted the terms of the $TheLicense."
3349 echo "You are licensed to use this software under the terms of"
3350 echo "the $TheLicense."
3352 echo "Type '?' to view the $TheLicense."
3353 echo "Type 'yes' to accept this license offer."
3354 echo "Type 'no' to decline this license offer."
3356 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3360 if [ "$acceptance" = "yes" ]; then
3362 elif [ "$acceptance" = "no" ]; then
3363 echo "You are not licensed to use this software."
3366 else [ "$acceptance" = "?" ]
3367 more "$outpath/LICENSE"
3372 # this should be moved somewhere else
3375 AIX_VERSION=`uname -v`
3376 if [ "$AIX_VERSION" -lt "5" ]; then
3377 QMakeVar add QMAKE_LIBS_X11 -lbind
3384 #-------------------------------------------------------------------------------
3385 # generate qconfig.cpp
3386 #-------------------------------------------------------------------------------
3387 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3389 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3391 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3392 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3394 /* Installation date */
3395 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3397 /* Installation Info */
3398 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3399 "qt_prfxpath=$QT_INSTALL_PREFIX",
3400 "qt_docspath=$QT_INSTALL_DOCS",
3401 "qt_hdrspath=$QT_INSTALL_HEADERS",
3402 "qt_libspath=$QT_INSTALL_LIBS",
3403 "qt_binspath=$QT_INSTALL_BINS",
3404 "qt_plugpath=$QT_INSTALL_PLUGINS",
3405 "qt_impspath=$QT_INSTALL_IMPORTS",
3406 "qt_datapath=$QT_INSTALL_DATA",
3407 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3408 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3409 "qt_tstspath=$QT_INSTALL_TESTS",
3410 #ifdef QT_BUILD_QMAKE
3411 "qt_ssrtpath=$CFG_SYSROOT",
3412 "qt_hpfxpath=$QT_HOST_PREFIX",
3413 "qt_hbinpath=$QT_HOST_BINS",
3414 "qt_hdatpath=$QT_HOST_DATA",
3417 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3420 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3422 /* strlen( "qt_lcnsxxxx" ) == 12 */
3423 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3424 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3426 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3429 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3430 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3431 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3433 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3434 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3435 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3438 # -----------------------------------------------------------------------------
3439 if [ "$LicenseType" = "Evaluation" ]; then
3440 EVALKEY=qt_qevalkey=$LicenseKeyExt
3441 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3442 EVALKEY=qt_qevalkey=
3445 if [ -n "$EVALKEY" ]; then
3446 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3447 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3448 /* Evaluation license key */
3449 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3451 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3455 # -----------------------------------------------------------------------------
3457 # -----------------------------------------------------------------------------
3460 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3462 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3463 if [ "$OPT_SHADOW" = "yes" ]; then
3464 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3465 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3466 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3470 # $1: input variable name (awk regexp)
3471 # $2: optional output variable name
3472 # $3: optional value transformation (sed command)
3473 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3474 # is where the resulting variable is written to
3475 setBootstrapVariable()
3477 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3481 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3482 echo "Creating qmake. Please wait..."
3485 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3486 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3487 if [ -f "$QCONFIG_H" ]; then
3488 OLD_QCONFIG_H=$QCONFIG_H
3489 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3492 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3493 # when building qmake, we use #defines for the install paths,
3494 # however they are real functions in the library
3495 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3496 mkdir -p "$outpath/src/corelib/global"
3497 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3498 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3501 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3503 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3504 rm -rf mkspecs/default mkspecs/default-host
3505 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3506 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3507 mkdir -p "$outpath/qmake" || exit
3509 for mkfile in GNUmakefile Makefile; do
3512 in_mkfile="${mkfile}.in"
3513 if [ "$mkfile" = "Makefile" ]; then
3514 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3515 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3517 in_mkfile="${mkfile}.unix"
3519 in_mkfile="$relpath/qmake/$in_mkfile"
3520 mkfile="$outpath/qmake/$mkfile"
3521 if [ -f "$mkfile" ]; then
3522 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3525 [ -f "$in_mkfile" ] || continue
3527 echo "########################################################################" > "$mkfile"
3528 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3529 echo "########################################################################" >> "$mkfile"
3532 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3533 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3534 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3536 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3537 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3540 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3541 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3542 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3543 setBootstrapVariable QMAKE_CFLAGS
3544 setBootstrapVariable QMAKE_CXXFLAGS
3545 setBootstrapVariable QMAKE_LFLAGS
3547 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3548 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3549 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3551 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3552 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3553 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3554 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3555 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3556 elif [ "$CFG_DEBUG" = "yes" ]; then
3557 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3558 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3559 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3560 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3563 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3564 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3565 for rpath in $RPATH_FLAGS; do
3566 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3569 if [ "$BUILD_ON_MAC" = "yes" ]; then
3570 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3571 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3572 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3573 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3574 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3575 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3576 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3577 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3578 if [ '!' -z "$CFG_SDK" ]; then
3579 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3580 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3581 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3582 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3583 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3586 if [ '!' -z "$D_FLAGS" ]; then
3587 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3589 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3590 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3591 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3592 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3594 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3595 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3596 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3597 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3598 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3599 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3600 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3601 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3602 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3603 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3605 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3606 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3607 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3608 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3613 QMAKE_BUILD_ERROR=no
3614 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3615 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3616 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3617 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3620 #-------------------------------------------------------------------------------
3621 # create a qt.conf for the Qt build tree itself
3622 #-------------------------------------------------------------------------------
3624 QTCONFFILE="$outpath/bin/qt.conf"
3625 cat > "$QTCONFFILE" <<EOF
3630 #-------------------------------------------------------------------------------
3632 #-------------------------------------------------------------------------------
3633 if [ -z "$PKG_CONFIG" ]; then
3634 # See if PKG_CONFIG is set in the mkspec:
3635 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3637 if [ -z "$PKG_CONFIG" ]; then
3638 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3641 if [ "$CFG_PKGCONFIG" = "no" ]; then
3643 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3645 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3646 echo >&2 "a correctly setup pkg-config environment!"
3648 elif [ -n "$PKG_CONFIG" ]; then
3649 # found a pkg-config
3650 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3651 # when xcompiling, check environment to see if it's actually usable
3652 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3653 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3654 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3655 if [ -n "$GCC_MACHINE_DUMP" ]; then
3656 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3658 export PKG_CONFIG_LIBDIR
3659 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3660 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3661 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3662 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3663 echo >&2 "Set this variable to the directory that contains target .pc files"
3664 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3665 echo >&2 "use -force-pkg-config to override this test."
3669 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3672 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3673 if [ -n "$CFG_SYSROOT" ]; then
3674 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3675 export PKG_CONFIG_SYSROOT_DIR
3676 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3677 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3678 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3679 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3680 echo >&2 "or use -force-pkg-config to override this test."
3684 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3688 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3689 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3693 if [ -z "$PKG_CONFIG" ]; then
3694 QT_CONFIG="$QT_CONFIG no-pkg-config"
3697 #-------------------------------------------------------------------------------
3698 # write out device config before we run the test.
3699 #-------------------------------------------------------------------------------
3700 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3701 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3702 rm -f "$DEVICE_VARS_FILE"
3704 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3705 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3708 #-------------------------------------------------------------------------------
3709 # tests that need qmake
3710 #-------------------------------------------------------------------------------
3712 #-------------------------------------------------------------------------------
3713 # determine the target and host architectures
3714 #-------------------------------------------------------------------------------
3716 # Use config.tests/arch/arch.pro to has the compiler tell us what the target architecture is
3717 OUTFILE=$outpath/arch.result
3718 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG"
3719 if [ $? -eq 0 ]; then
3720 eval `cat "$OUTFILE"`
3723 echo "Could not determine the target architecture!"
3724 echo "Turn on verbose messaging (-v) to see the final report."
3726 rm -f "$OUTFILE" 2>/dev/null
3727 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3729 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3730 # Do the same test again, using the host compiler
3731 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST"
3732 if [ $? -eq 0 ]; then
3733 eval `cat "$OUTFILE"`
3736 echo "Could not determine the host architecture!"
3737 echo "Turn on verbose messaging (-v) to see the final report."
3739 rm -f "$OUTFILE" 2>/dev/null
3740 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3742 # not cross compiling, host == target
3743 CFG_HOST_ARCH="$CFG_ARCH"
3744 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3748 if [ "$OPT_VERBOSE" = "yes" ]; then
3749 echo "System architecture: '$CFG_ARCH'"
3750 echo "Host architecture: '$CFG_HOST_ARCH'"
3753 #-------------------------------------------------------------------------------
3754 # functionality tests
3755 #-------------------------------------------------------------------------------
3757 # Detect C++11 support
3758 if [ "$CFG_CXX11" != "no" ]; then
3759 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
3761 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3762 echo "C++11 support cannot be enabled due to functionality tests!"
3763 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3764 echo " If you believe this message is in error you may use the continue"
3765 echo " switch (-continue) to $0 to continue."
3772 # detect availability of float math.h functions
3773 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
3774 CFG_USE_FLOATMATH=yes
3776 CFG_USE_FLOATMATH=no
3779 # detect sse2 support
3780 if [ "${CFG_SSE2}" = "auto" ]; then
3781 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
3788 # detect sse3 support
3789 if [ "${CFG_SSE3}" = "auto" ]; then
3790 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
3797 # detect ssse3 support
3798 if [ "${CFG_SSSE3}" = "auto" ]; then
3799 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
3806 # detect sse4.1 support
3807 if [ "${CFG_SSE4_1}" = "auto" ]; then
3808 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
3815 # detect sse4.2 support
3816 if [ "${CFG_SSE4_2}" = "auto" ]; then
3817 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
3824 # detect avx support
3825 if [ "${CFG_AVX}" = "auto" ]; then
3826 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
3827 case "$XQMAKESPEC" in
3829 # Some clang versions produce internal compiler errors compiling Qt AVX code
3830 case `$TEST_COMPILER --version` in
3831 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3833 if [ "$OPT_VERBOSE" = "yes" ]; then
3834 echo 'AVX support disabled for blacklisted clang compiler'
3851 # detect avx2 support
3852 if [ "${CFG_AVX}" = "no" ]; then
3855 if [ "${CFG_AVX2}" = "auto" ]; then
3856 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
3863 # check iWMMXt support
3864 if [ "$CFG_IWMMXT" = "yes" ]; then
3865 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
3866 if [ $? != "0" ]; then
3867 echo "The iWMMXt functionality test failed!"
3868 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3873 # detect neon support
3874 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3875 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
3880 elif [ "$CFG_ARCH" != "arm" ]; then
3884 # detect mips_dsp support
3885 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3891 # detect mips_dspr2 support
3892 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3898 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3901 if [ "$CFG_ZLIB" = "no" ]; then
3902 # Note: Qt no longer support builds without zlib
3903 # So we force a "no" to be "auto" here.
3904 # If you REALLY really need no zlib support, you can still disable
3905 # it by doing the following:
3906 # add "no-zlib" to mkspecs/qconfig.pri
3907 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3909 # There's no guarantee that Qt will build under those conditions
3914 if [ "$CFG_ZLIB" = "auto" ]; then
3915 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
3922 if [ "$CFG_LARGEFILE" = "auto" ]; then
3923 #Large files should be enabled for all Linux systems
3927 if [ "$CFG_GUI" = "no" ]; then
3928 QPA_PLATFORM_GUARD=no
3931 # detect how jpeg should be built
3932 if [ "$CFG_JPEG" = "auto" ]; then
3933 if [ "$CFG_SHARED" = "yes" ]; then
3940 if [ "$CFG_LIBJPEG" = "auto" ]; then
3941 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
3948 # detect how gif should be built
3949 if [ "$CFG_GIF" = "auto" ]; then
3950 if [ "$CFG_SHARED" = "yes" ]; then
3958 if [ "$CFG_LIBPNG" = "auto" ]; then
3959 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
3966 # detect accessibility
3967 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3968 CFG_ACCESSIBILITY=yes
3971 if [ "$CFG_EGLFS" = "yes" ]; then
3972 if [ "$CFG_EGL" = "no" ]; then
3973 echo "The EGLFS plugin requires EGL support and cannot be built"
3976 if [ "$CFG_OPENGL" != "es2" ]; then
3977 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
3984 # auto-detect SQL-modules support
3985 for _SQLDR in $CFG_SQL_AVAILABLE; do
3988 if [ "$CFG_SQL_mysql" != "no" ]; then
3989 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
3990 if [ -x "$CFG_MYSQL_CONFIG" ]; then
3991 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
3992 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
3993 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
3994 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
3995 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
3997 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
3998 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3999 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4000 echo " You need MySql 4 or higher."
4001 echo " If you believe this message is in error you may use the continue"
4002 echo " switch (-continue) to $0 to continue."
4007 QT_LFLAGS_MYSQL_R=""
4011 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
4012 QMakeVar add CONFIG use_libmysqlclient_r
4013 if [ "$CFG_SQL_mysql" = "auto" ]; then
4014 CFG_SQL_mysql=plugin
4016 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4017 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
4018 if [ "$CFG_SQL_mysql" = "auto" ]; then
4019 CFG_SQL_mysql=plugin
4022 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4023 echo "MySQL support cannot be enabled due to functionality tests!"
4024 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4025 echo " If you believe this message is in error you may use the continue"
4026 echo " switch (-continue) to $0 to continue."
4031 QT_LFLAGS_MYSQL_R=""
4039 if [ "$CFG_SQL_psql" != "no" ]; then
4040 # Be careful not to use native pg_config when cross building.
4041 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4042 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4043 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4045 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4046 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4047 # But, respect PSQL_LIBS if set
4048 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4049 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
4050 if [ "$CFG_SQL_psql" = "auto" ]; then
4054 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4055 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4056 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4057 echo " If you believe this message is in error you may use the continue"
4058 echo " switch (-continue) to $0 to continue."
4069 if [ "$CFG_SQL_odbc" != "no" ]; then
4070 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
4071 if [ "$CFG_SQL_odbc" = "auto" ]; then
4075 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
4076 QT_LFLAGS_ODBC="-liodbc"
4077 if [ "$CFG_SQL_odbc" = "auto" ]; then
4081 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4082 echo "ODBC 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."
4095 if [ "$CFG_SQL_oci" != "no" ]; then
4096 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
4097 if [ "$CFG_SQL_oci" = "auto" ]; then
4101 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4102 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4103 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4104 echo " If you believe this message is in error you may use the continue"
4105 echo " switch (-continue) to $0 to continue."
4114 if [ "$CFG_SQL_tds" != "no" ]; then
4115 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4116 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4117 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
4118 if [ "$CFG_SQL_tds" = "auto" ]; then
4122 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4123 echo "TDS support cannot be enabled due to functionality tests!"
4124 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4125 echo " If you believe this message is in error you may use the continue"
4126 echo " switch (-continue) to $0 to continue."
4135 if [ "$CFG_SQL_db2" != "no" ]; then
4136 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
4137 if [ "$CFG_SQL_db2" = "auto" ]; then
4141 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4142 echo "ODBC support cannot be enabled due to functionality tests!"
4143 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4144 echo " If you believe this message is in error you may use the continue"
4145 echo " switch (-continue) to $0 to continue."
4154 if [ "$CFG_SQL_ibase" != "no" ]; then
4155 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
4156 if [ "$CFG_SQL_ibase" = "auto" ]; then
4157 CFG_SQL_ibase=plugin
4160 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4161 echo "InterBase support cannot be enabled due to functionality tests!"
4162 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4163 echo " If you believe this message is in error you may use the continue"
4164 echo " switch (-continue) to $0 to continue."
4173 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4174 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
4175 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4176 CFG_SQL_sqlite2=plugin
4179 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4180 echo "SQLite2 support cannot be enabled due to functionality tests!"
4181 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4182 echo " If you believe this message is in error you may use the continue"
4183 echo " switch (-continue) to $0 to continue."
4192 if [ "$CFG_SQL_sqlite" != "no" ]; then
4193 SQLITE_AUTODETECT_FAILED="no"
4194 if [ "$CFG_SQLITE" = "system" ]; then
4195 if [ -n "$PKG_CONFIG" ]; then
4196 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4197 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4199 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
4200 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4201 CFG_SQL_sqlite=plugin
4203 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4205 SQLITE_AUTODETECT_FAILED="yes"
4208 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4209 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4210 CFG_SQL_sqlite=plugin
4213 SQLITE_AUTODETECT_FAILED="yes"
4217 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4218 echo "SQLite support cannot be enabled due to functionality tests!"
4219 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4220 echo " If you believe this message is in error you may use the continue"
4221 echo " switch (-continue) to $0 to continue."
4227 if [ "$OPT_VERBOSE" = "yes" ]; then
4228 echo "unknown SQL driver: $_SQLDR"
4234 # auto-detect NIS support
4235 if [ "$CFG_NIS" != "no" ]; then
4236 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
4239 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4240 echo "NIS support cannot be enabled due to functionality tests!"
4241 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4242 echo " If you believe this message is in error you may use the continue"
4243 echo " switch (-continue) to $0 to continue."
4251 # auto-detect CUPS support
4252 if [ "$CFG_CUPS" != "no" ]; then
4253 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
4256 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4257 echo "Cups support cannot be enabled due to functionality tests!"
4258 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4259 echo " If you believe this message is in error you may use the continue"
4260 echo " switch (-continue) to $0 to continue."
4268 # auto-detect iconv(3) support
4269 if [ "$CFG_ICONV" != "no" ]; then
4270 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4272 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
4274 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
4276 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
4279 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4280 echo "Iconv support cannot be enabled due to functionality tests!"
4281 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4282 echo " If you believe this message is in error you may use the continue"
4283 echo " switch (-continue) to $0 to continue."
4291 # auto-detect libdbus-1 support
4292 if [ "$CFG_DBUS" != "no" ]; then
4293 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4294 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4295 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4297 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
4298 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4299 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4300 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4302 if [ "$CFG_DBUS" = "auto" ]; then
4304 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4305 # CFG_DBUS is "yes" or "linked" here
4307 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4308 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4309 echo " If you believe this message is in error you may use the continue"
4310 echo " switch (-continue) to $0 to continue."
4316 # auto-detect Glib support
4317 if [ "$CFG_GLIB" != "no" ]; then
4318 if [ -n "$PKG_CONFIG" ]; then
4319 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4320 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4322 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
4324 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4325 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4327 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4328 echo "Glib support cannot be enabled due to functionality tests!"
4329 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4330 echo " If you believe this message is in error you may use the continue"
4331 echo " switch (-continue) to $0 to continue."
4339 # auto-detect GTK style support
4340 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4341 if [ -n "$PKG_CONFIG" ]; then
4342 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4343 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4345 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4347 QT_CONFIG="$QT_CONFIG gtkstyle"
4348 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4349 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4351 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4352 echo "Gtk theme support cannot be enabled due to functionality tests!"
4353 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4354 echo " If you believe this message is in error you may use the continue"
4355 echo " switch (-continue) to $0 to continue."
4361 elif [ "$CFG_GLIB" = "no" ]; then
4366 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4367 if [ -n "$PKG_CONFIG" ]; then
4368 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4369 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4371 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
4373 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4374 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4376 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4377 echo "Gstreamer support cannot be enabled due to functionality tests!"
4378 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4379 echo " If you believe this message is in error you may use the continue"
4380 echo " switch (-continue) to $0 to continue."
4386 elif [ "$CFG_GLIB" = "no" ]; then
4390 # auto-detect libicu support
4391 if [ "$CFG_ICU" != "no" ]; then
4392 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
4393 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4395 if [ "$CFG_ICU" = "auto" ]; then
4397 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4400 echo "The ICU library support cannot be enabled."
4401 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4402 echo " If you believe this message is in error you may use the continue"
4403 echo " switch (-continue) to $0 to continue."
4409 # Auto-detect PulseAudio support
4410 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4411 if [ -n "$PKG_CONFIG" ]; then
4412 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4413 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4415 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
4417 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4418 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4420 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4421 echo "PulseAudio support cannot be enabled due to functionality tests!"
4422 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4423 echo " If you believe this message is in error you may use the continue"
4424 echo " switch (-continue) to $0 to continue."
4433 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4434 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4435 if [ "$CFG_GUI" = "no" ]; then
4436 if [ "$CFG_OPENGL" = "auto" ]; then
4439 if [ "$CFG_OPENGL" != "no" ]; then
4440 echo "OpenGL enabled, but GUI disabled."
4441 echo " You might need to either enable the GUI or disable OpenGL"
4445 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4446 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
4448 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
4451 if [ "$CFG_OPENGL" = "yes" ]; then
4452 echo "All the OpenGL functionality tests failed!"
4453 echo " You might need to modify the include and library search paths by editing"
4454 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4455 echo " ${XQMAKESPEC}."
4462 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4463 if [ "$CFG_OPENGL" = "desktop" ]; then
4464 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4465 if [ $? != "0" ]; then
4466 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4473 elif [ "$CFG_OPENGL" = "es2" ]; then
4475 "$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
4476 if [ $? != "0" ]; then
4477 echo "The OpenGL ES 2.0 functionality test failed!"
4478 echo " You might need to modify the include and library search paths by editing"
4479 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4480 echo " ${XQMAKESPEC}."
4483 elif [ "$CFG_OPENGL" = "desktop" ]; then
4484 # Desktop OpenGL support
4485 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4486 if [ $? != "0" ]; then
4487 echo "The OpenGL functionality test failed!"
4488 echo " You might need to modify the include and library search paths by editing"
4489 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4490 echo " ${XQMAKESPEC}."
4495 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4496 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4497 if [ $? != "0" ]; then
4498 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4505 fi # X11/MINGW OpenGL
4507 if [ "$BUILD_ON_MAC" = "yes" ]; then
4508 if [ "$CFG_PHONON" != "no" ]; then
4509 # Always enable Phonon (unless it was explicitly disabled)
4513 if [ "$CFG_COREWLAN" = "auto" ]; then
4514 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
4522 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4523 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4524 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
4526 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
4529 if [ "$CFG_OPENGL" = "yes" ]; then
4530 echo "All the OpenGL functionality tests failed!"
4531 echo " You might need to modify the include and library search paths by editing"
4532 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4533 echo " ${XQMAKESPEC}."
4538 elif [ "$CFG_OPENGL" = "es2" ]; then
4540 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4541 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4542 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4543 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4544 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4545 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4546 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4547 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4550 "$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
4551 if [ $? != "0" ]; then
4552 echo "The OpenGL ES 2.0 functionality test failed!"
4553 echo " You might need to modify the include and library search paths by editing"
4554 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4555 echo " ${XQMAKESPEC}."
4558 elif [ "$CFG_OPENGL" = "desktop" ]; then
4559 # Desktop OpenGL support
4560 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4561 if [ $? != "0" ]; then
4562 echo "The OpenGL functionality test failed!"
4563 echo " You might need to modify the include and library search paths by editing"
4564 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4565 echo " ${XQMAKESPEC}."
4570 # auto-detect FontConfig support
4571 if [ "$CFG_FONTCONFIG" != "no" ]; then
4572 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4573 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4574 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4576 QT_CFLAGS_FONTCONFIG=
4577 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4579 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
4580 QT_CONFIG="$QT_CONFIG fontconfig"
4581 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4582 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4584 CFG_LIBFREETYPE=system
4591 # Save these for a check later
4592 ORIG_CFG_XCB="$CFG_XCB"
4593 ORIG_CFG_EGLFS="$CFG_EGLFS"
4594 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4596 if [ "$CFG_LIBUDEV" != "no" ]; then
4597 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4598 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4599 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4600 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4601 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4603 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
4605 QT_CONFIG="$QT_CONFIG libudev"
4606 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4607 echo "The libudev functionality test failed!"
4611 QMakeVar add DEFINES QT_NO_LIBUDEV
4615 if [ "$CFG_EVDEV" != "no" ]; then
4616 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
4618 QT_CONFIG="$QT_CONFIG evdev"
4619 elif [ "$CFG_EVDEV" = "yes" ]; then
4620 echo "The evdev functionality test failed!"
4624 QMakeVar add DEFINES QT_NO_EVDEV
4628 # Check we actually have X11 :-)
4629 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
4630 QT_CONFIG="$QT_CONFIG xlib"
4633 # auto-detect Xrender support
4634 if [ "$CFG_XRENDER" != "no" ]; then
4635 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
4637 QT_CONFIG="$QT_CONFIG xrender"
4639 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4640 echo "Xrender support cannot be enabled due to functionality tests!"
4641 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4642 echo " If you believe this message is in error you may use the continue"
4643 echo " switch (-continue) to $0 to continue."
4651 if [ "$CFG_XCB" != "no" ]; then
4652 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4653 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4654 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4656 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
4658 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
4659 QT_CONFIG="$QT_CONFIG xcb-render"
4662 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
4664 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4667 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
4668 QT_CONFIG="$QT_CONFIG xcb-xlib"
4671 # auto-detect XInput2 support. Needed by xcb too.
4672 if [ "$CFG_XINPUT2" != "no" ]; then
4673 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
4677 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4678 echo "XInput2 support cannot be enabled due to functionality tests!"
4679 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4680 echo " If you believe this message is in error you may use the continue"
4681 echo " switch (-continue) to $0 to continue."
4689 if [ "$CFG_XCB" = "yes" ]; then
4690 echo "The XCB test failed!"
4691 echo " You might need to install dependency packages."
4692 echo " See src/plugins/platforms/xcb/README."
4696 QMakeVar add DEFINES QT_NO_XCB
4700 if [ "$CFG_DIRECTFB" != "no" ]; then
4701 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4702 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4703 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4704 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
4706 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4707 echo " DirectFB support cannot be enabled due to functionality tests!"
4708 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4709 echo " If you believe this message is in error you may use the continue"
4710 echo " switch (-continue) to $0 to continue."
4720 # Detect libxkbcommon
4721 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4722 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4723 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4724 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4725 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4727 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4731 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4732 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4733 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4734 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4735 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4736 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4737 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4738 fi # detect EGL support
4739 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
4741 elif [ "$CFG_EGL" = "yes" ]; then
4742 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4743 echo " You might need to modify the include and library search paths by editing"
4744 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4749 elif [ "$CFG_OPENGL" = "desktop" ]; then
4750 if [ "$CFG_EGL" = "yes" ]; then
4751 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4752 echo "Either disable EGL support or enable OpenGL ES support."
4758 if [ "$CFG_EGLFS" != "no" ]; then
4759 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4760 CFG_EGLFS="$CFG_EGL"
4766 # Determine the default QPA platform
4767 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4769 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4770 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4771 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4772 QT_QPA_DEFAULT_PLATFORM="windows"
4773 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4774 QT_QPA_DEFAULT_PLATFORM="cocoa"
4775 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4776 QT_QPA_DEFAULT_PLATFORM="qnx"
4778 QT_QPA_DEFAULT_PLATFORM="xcb"
4783 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4784 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4785 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4786 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4788 if [ "$CFG_DIRECTFB" = "yes" ]; then
4789 QT_CONFIG="$QT_CONFIG directfb"
4790 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4791 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4794 if [ "$BUILD_ON_MAC" = "yes" ]; then
4795 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
4796 QT_CONFIG="$QT_CONFIG coreservices"
4798 QMakeVar add DEFINES QT_NO_CORESERVICES
4802 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4803 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ]; then
4804 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4805 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] ); then
4806 echo "No QPA platform plugin enabled!"
4807 echo " If you really want to build without a QPA platform plugin you must pass"
4808 echo " -no-qpa-platform-guard to configure. Doing this will"
4809 echo " produce a Qt that can not run GUI applications."
4810 echo " The dependencies needed for xcb to build are listed in"
4811 echo " src/plugins/platforms/xcb/README"
4817 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
4820 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4821 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4822 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
4823 CFG_LIBFREETYPE=system
4829 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS &&
4830 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4831 echo "STL functionality check failed! Cannot build Qt with this STL library."
4832 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4837 # detect POSIX clock_gettime()
4838 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4839 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
4840 CFG_CLOCK_GETTIME=yes
4842 CFG_CLOCK_GETTIME=no
4846 # detect POSIX monotonic clocks
4847 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4848 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
4849 CFG_CLOCK_MONOTONIC=yes
4851 CFG_CLOCK_MONOTONIC=no
4853 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4854 CFG_CLOCK_MONOTONIC=no
4858 if [ "$CFG_MREMAP" = "auto" ]; then
4859 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
4866 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4867 if [ "$CFG_GETADDRINFO" != "no" ]; then
4868 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
4871 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4872 echo "getaddrinfo support cannot be enabled due to functionality tests!"
4873 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4874 echo " If you believe this message is in error you may use the continue"
4875 echo " switch (-continue) to $0 to continue."
4883 # find if the platform provides inotify
4884 if [ "$CFG_INOTIFY" != "no" ]; then
4885 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
4888 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4889 echo "inotify support cannot be enabled due to functionality tests!"
4890 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4891 echo " If you believe this message is in error you may use the continue"
4892 echo " switch (-continue) to $0 to continue."
4900 # find if the platform provides if_nametoindex (ipv6 interface name support)
4901 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4902 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
4905 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4906 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4907 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4908 echo " If you believe this message is in error you may use the continue"
4909 echo " switch (-continue) to $0 to continue."
4917 # find if the platform provides getifaddrs (network interface enumeration)
4918 if [ "$CFG_GETIFADDRS" != "no" ]; then
4919 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
4922 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4923 echo "getifaddrs support cannot be enabled due to functionality tests!"
4924 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4925 echo " If you believe this message is in error you may use the continue"
4926 echo " switch (-continue) to $0 to continue."
4935 if [ "$CFG_OPENSSL" != "no" ]; then
4936 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
4937 if [ "$CFG_OPENSSL" = "auto" ]; then
4941 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4942 echo "OpenSSL support cannot be enabled due to functionality tests!"
4943 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4944 echo " If you believe this message is in error you may use the continue"
4945 echo " switch (-continue) to $0 to continue."
4954 if [ "$CFG_PCRE" != "qt" ]; then
4955 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
4958 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4959 echo "PCRE support cannot be enabled due to functionality tests!"
4960 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4961 echo " If you believe this message is in error you may use the continue"
4962 echo " switch (-continue) to $0 to continue."
4970 # detect OpenVG support
4971 if [ "$CFG_OPENVG" != "no" ]; then
4972 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
4973 if [ "$CFG_OPENVG" = "auto" ]; then
4976 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
4977 if [ "$CFG_OPENVG" = "auto" ]; then
4980 CFG_OPENVG_ON_OPENGL=yes
4981 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
4982 if [ "$CFG_OPENVG" = "auto" ]; then
4985 CFG_OPENVG_LC_INCLUDES=yes
4986 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
4987 if [ "$CFG_OPENVG" = "auto" ]; then
4990 CFG_OPENVG_LC_INCLUDES=yes
4991 CFG_OPENVG_ON_OPENGL=yes
4993 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4994 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
4995 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4996 echo " If you believe this message is in error you may use the continue"
4997 echo " switch (-continue) to $0 to continue."
5003 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
5004 CFG_OPENVG_SHIVA=yes
5008 if [ "$CFG_ALSA" = "auto" ]; then
5009 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
5016 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5017 if [ "$CFG_ARCH" = "arm" ]; then
5018 "$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
5019 if [ $? != "0" ]; then
5020 CFG_JAVASCRIPTCORE_JIT=no
5023 case "$XPLATFORM" in
5025 CFG_JAVASCRIPTCORE_JIT=no
5031 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5032 QMakeVar set JAVASCRIPTCORE_JIT yes
5033 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5034 QMakeVar set JAVASCRIPTCORE_JIT no
5037 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5038 CFG_AUDIO_BACKEND=yes
5041 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5042 echo "Warning: largefile support cannot be disabled for win32."
5046 #-------------------------------------------------------------------------------
5047 # ask for all that hasn't been auto-detected or specified in the arguments
5048 #-------------------------------------------------------------------------------
5050 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5053 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
5054 QT_CONFIG="$QT_CONFIG phonon-backend"
5057 # disable accessibility
5058 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5059 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5061 QT_CONFIG="$QT_CONFIG accessibility"
5065 if [ "$CFG_EGL" = "yes" ]; then
5066 QT_CONFIG="$QT_CONFIG egl"
5068 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5072 if [ "$CFG_EGLFS" = "yes" ]; then
5073 QT_CONFIG="$QT_CONFIG eglfs"
5075 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5079 if [ "$CFG_OPENVG" = "no" ]; then
5080 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5082 QT_CONFIG="$QT_CONFIG openvg"
5083 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5084 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5086 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5087 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5089 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5090 QT_CONFIG="$QT_CONFIG shivavg"
5091 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5096 if [ "$CFG_OPENGL" = "no" ]; then
5097 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5099 QT_CONFIG="$QT_CONFIG opengl"
5102 if [ "$CFG_OPENGL" = "es2" ]; then
5103 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5106 if [ "$CFG_OPENGL" = "es2" ]; then
5107 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5108 QT_CONFIG="$QT_CONFIG opengles2"
5111 # build up the variables for output
5112 if [ "$CFG_DEBUG" = "yes" ]; then
5113 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5114 elif [ "$CFG_DEBUG" = "no" ]; then
5115 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5117 if [ "$CFG_SHARED" = "yes" ]; then
5118 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5119 QT_CONFIG="$QT_CONFIG shared"
5120 elif [ "$CFG_SHARED" = "no" ]; then
5121 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5122 QT_CONFIG="$QT_CONFIG static"
5125 #FIXME: qpa is implicit this should all be removed
5126 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5127 QT_CONFIG="$QT_CONFIG qpa"
5128 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5129 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5131 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5132 # Do not set this here for Windows. Let qmake do it so
5133 # debug and release precompiled headers are kept separate.
5134 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5136 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5137 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5138 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5139 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5140 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5141 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5143 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5144 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5146 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5147 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5148 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5149 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5150 QMakeVar add QMAKE_CFLAGS -g
5151 QMakeVar add QMAKE_CXXFLAGS -g
5152 QT_CONFIG="$QT_CONFIG separate_debug_info"
5154 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5155 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5157 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5158 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5159 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5160 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5161 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5162 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5163 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5164 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5165 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5166 if [ "$CFG_ARCH" = "mips" ]; then
5167 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5168 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5170 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5171 QT_CONFIG="$QT_CONFIG clock-gettime"
5173 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5174 QT_CONFIG="$QT_CONFIG clock-monotonic"
5176 if [ "$CFG_MREMAP" = "yes" ]; then
5177 QT_CONFIG="$QT_CONFIG mremap"
5179 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5180 QT_CONFIG="$QT_CONFIG getaddrinfo"
5182 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5183 QT_CONFIG="$QT_CONFIG ipv6ifname"
5185 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5186 QT_CONFIG="$QT_CONFIG getifaddrs"
5188 if [ "$CFG_INOTIFY" = "yes" ]; then
5189 QT_CONFIG="$QT_CONFIG inotify"
5191 if [ "$CFG_LIBJPEG" = "no" ]; then
5193 elif [ "$CFG_LIBJPEG" = "system" ]; then
5194 QT_CONFIG="$QT_CONFIG system-jpeg"
5196 if [ "$CFG_JPEG" = "no" ]; then
5197 QT_CONFIG="$QT_CONFIG no-jpeg"
5198 elif [ "$CFG_JPEG" = "yes" ]; then
5199 QT_CONFIG="$QT_CONFIG jpeg"
5201 if [ "$CFG_LIBPNG" = "no" ]; then
5204 if [ "$CFG_LIBPNG" = "system" ]; then
5205 QT_CONFIG="$QT_CONFIG system-png"
5207 if [ "$CFG_PNG" = "no" ]; then
5208 QT_CONFIG="$QT_CONFIG no-png"
5209 elif [ "$CFG_PNG" = "yes" ]; then
5210 QT_CONFIG="$QT_CONFIG png"
5212 if [ "$CFG_GIF" = "no" ]; then
5213 QT_CONFIG="$QT_CONFIG no-gif"
5214 elif [ "$CFG_GIF" = "yes" ]; then
5215 QT_CONFIG="$QT_CONFIG gif"
5217 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5218 QT_CONFIG="$QT_CONFIG no-freetype"
5219 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5220 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5221 QT_CONFIG="$QT_CONFIG system-freetype"
5223 QT_CONFIG="$QT_CONFIG freetype"
5225 if [ "$CFG_GUI" = "auto" ]; then
5228 if [ "$CFG_GUI" = "no" ]; then
5229 QT_CONFIG="$QT_CONFIG no-gui"
5232 if [ "$CFG_WIDGETS" = "no" ]; then
5233 QT_CONFIG="$QT_CONFIG no-widgets"
5234 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5237 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5238 #On Mac we implicitly link against libz, so we
5239 #never use the 3rdparty stuff.
5240 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5242 if [ "$CFG_ZLIB" = "yes" ]; then
5243 QT_CONFIG="$QT_CONFIG zlib"
5244 elif [ "$CFG_ZLIB" = "system" ]; then
5245 QT_CONFIG="$QT_CONFIG system-zlib"
5248 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5249 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5250 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5251 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5252 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5253 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5254 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5255 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5256 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5257 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5258 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5259 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5260 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5261 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5263 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5264 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5265 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5267 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5268 if [ "$CFG_RPATH" = "yes" ]; then
5269 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5270 # set the default rpath to the library installation directory
5271 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5273 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5274 if [ -n "$RPATH_FLAGS" ]; then
5276 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5280 elif [ "$CFG_RPATH" = "yes" ]; then
5281 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5285 if [ "$CFG_RPATH" = "yes" ]; then
5286 # set the default rpath to the library installation directory
5287 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5289 if [ -n "$RPATH_FLAGS" ]; then
5290 # add the user defined rpaths
5291 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5295 if [ '!' -z "$I_FLAGS" ]; then
5296 # add the user define include paths
5297 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5298 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5301 if [ '!' -z "$W_FLAGS" ]; then
5302 # add the user defined warning flags
5303 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5304 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5305 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5308 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5309 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5310 # Follow default behavior of configure.exe by overriding with "rtti".
5311 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5314 if [ "$CFG_ALSA" = "yes" ]; then
5315 QT_CONFIG="$QT_CONFIG alsa"
5318 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5319 QT_CONFIG="$QT_CONFIG pulseaudio"
5322 if [ "$CFG_COREWLAN" = "yes" ]; then
5323 QT_CONFIG="$QT_CONFIG corewlan"
5326 if [ "$CFG_ICU" = "yes" ]; then
5327 QT_CONFIG="$QT_CONFIG icu"
5330 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5331 QT_CONFIG="$QT_CONFIG force_asserts"
5334 if [ "$CFG_PCRE" = "qt" ]; then
5335 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5339 # Some Qt modules are too advanced in C++ for some old compilers
5340 # Detect here the platforms where they are known to work.
5342 # See Qt documentation for more information on which features are
5343 # supported and on which compilers.
5345 canBuildQtConcurrent="yes"
5346 canUseV8Snapshot="yes"
5348 case "$XPLATFORM" in
5350 # PA-RISC's assembly is too limited
5351 # gcc 3.4 on that platform can't build QtXmlPatterns
5352 # the assembly it generates cannot be compiled
5354 # Check gcc's version
5355 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5359 canBuildQtXmlPatterns="no"
5363 canBuildQtXmlPatterns="no"
5367 unsupported/vxworks-*-g++*)
5370 unsupported/vxworks-*-dcc*)
5372 canBuildQtXmlPatterns="no"
5375 # Check gcc's version
5376 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5384 canBuildQtXmlPatterns="no"
5389 # Check the compiler version
5390 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5393 canBuildQtXmlPatterns="no"
5394 canBuildQtConcurrent="no"
5398 canBuildQtConcurrent="no"
5404 canBuildQtXmlPatterns="no"
5405 canBuildQtConcurrent="no"
5411 # Get the xlC version
5412 cat > xlcver.c <<EOF
5416 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5421 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5422 xlcver=`./xlcver 2>/dev/null`
5425 if [ "$OPT_VERBOSE" = "yes" ]; then
5426 if [ -n "$xlcver" ]; then
5427 echo Found IBM xlC version: $xlcver.
5429 echo Could not determine IBM xlC version, assuming oldest supported.
5436 canBuildQtXmlPatterns="no"
5437 canBuildQtConcurrent="no"
5441 canBuildQtConcurrent="no"
5447 canBuildQtConcurrent="no"
5451 if [ "$CFG_GUI" = "no" ]; then
5452 # WebKit requires QtGui
5456 if [ "$CFG_SHARED" = "no" ]; then
5458 echo "WARNING: Using static linking will disable the WebKit module."
5463 CFG_CONCURRENT="yes"
5464 if [ "$canBuildQtConcurrent" = "no" ]; then
5465 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5468 QT_CONFIG="$QT_CONFIG concurrent"
5472 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5473 QT_CONFIG="$QT_CONFIG audio-backend"
5477 if [ "$CFG_WEBKIT" = "debug" ]; then
5478 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5482 QT_CONFIG="$QT_CONFIG v8"
5483 # Detect snapshot support
5484 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5485 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5488 *) canUseV8Snapshot="no"
5492 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5493 # QEMU crashes when building inside Scratchbox with an ARM target
5494 canUseV8Snapshot="no"
5497 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5498 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5500 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5501 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5504 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5505 QT_CONFIG="$QT_CONFIG v8snapshot"
5509 if [ "$CFG_QML_DEBUG" = "no" ]; then
5510 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5513 case "$QMAKE_CONF_COMPILER" in
5516 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5518 case "$COMPILER_VERSION" in
5520 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5521 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5522 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5525 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5526 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5527 QT_GCC_PATCH_VERSION=0
5537 #-------------------------------------------------------------------------------
5538 # part of configuration information goes into qconfig.h
5539 #-------------------------------------------------------------------------------
5541 case "$CFG_QCONFIG" in
5543 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5546 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5547 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5548 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5549 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5550 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5551 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5553 echo "#endif" >>"$tmpconfig"
5557 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5561 # define QT_EDITION $QT_EDITION
5565 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5566 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5568 if [ "$CFG_SHARED" = "no" ]; then
5569 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5570 /* Qt was configured for a static build */
5571 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5578 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5579 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5582 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5583 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5586 if [ "$BUILD_ON_MAC" = "yes" ]; then
5587 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5588 #if defined(__LP64__)
5589 # define QT_POINTER_SIZE 8
5591 # define QT_POINTER_SIZE 4
5595 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5596 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5599 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5600 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5601 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5605 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5607 if [ "$CFG_DEV" = "yes" ]; then
5608 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5611 # Add QPA to config.h
5612 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
5614 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5615 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5618 # Add turned on SQL drivers
5619 for DRIVER in $CFG_SQL_AVAILABLE; do
5620 eval "VAL=\$CFG_SQL_$DRIVER"
5623 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5624 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5625 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5628 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5634 QMakeVar set sql-drivers "$SQL_DRIVERS"
5635 QMakeVar set sql-plugins "$SQL_PLUGINS"
5637 # Add other configuration options to the qconfig.h file
5638 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5639 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5640 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5641 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5642 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5644 # X11/Unix/Mac only configs
5645 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5646 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5647 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5648 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5649 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5650 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5651 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5652 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5653 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5654 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5655 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5656 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5657 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5658 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5660 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5661 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5662 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5663 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5664 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5665 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5666 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5667 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5668 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5669 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5670 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5671 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5672 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5674 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5675 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5676 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5677 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5678 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5679 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5680 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5681 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5683 # sort QCONFIG_FLAGS for neatness if we can
5684 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5685 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5687 if [ -n "$QCONFIG_FLAGS" ]; then
5688 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5689 #ifndef QT_BOOTSTRAPPED
5692 for cfg in $QCONFIG_FLAGS; do
5693 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5694 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5695 # figure out define logic, so we can output the correct
5696 # ifdefs to override the global defines in a project
5698 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5699 # QT_NO_option can be forcefully turned on by QT_option
5700 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5701 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5702 # QT_option can be forcefully turned off by QT_NO_option
5703 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5706 if [ -z $cfgdNeg ]; then
5707 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5714 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5715 #if defined($cfgd) && defined($cfgdNeg)
5717 #elif !defined($cfgd) && !defined($cfgdNeg)
5724 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5725 #endif // QT_BOOTSTRAPPED
5730 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5731 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5732 #define QT_VISIBILITY_AVAILABLE
5737 if [ -n "$QT_LIBINFIX" ]; then
5738 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5739 #define QT_LIBINFIX "$QT_LIBINFIX"
5744 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5746 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5747 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5748 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5750 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5751 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5752 chmod -w "$outpath/src/corelib/global/qconfig.h"
5753 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5754 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5758 #-------------------------------------------------------------------------------
5759 # save configuration into qconfig.pri
5760 #-------------------------------------------------------------------------------
5761 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5762 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5763 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5764 if [ "$CFG_DEBUG" = "yes" ]; then
5765 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5766 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5767 QT_CONFIG="$QT_CONFIG release"
5769 QT_CONFIG="$QT_CONFIG debug"
5770 elif [ "$CFG_DEBUG" = "no" ]; then
5771 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5772 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5773 QT_CONFIG="$QT_CONFIG debug"
5775 QT_CONFIG="$QT_CONFIG release"
5777 if [ "$CFG_FRAMEWORK" = "no" ]; then
5778 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5780 QT_CONFIG="$QT_CONFIG qt_framework"
5781 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5783 if [ "$CFG_DEV" = "yes" ]; then
5784 QT_CONFIG="$QT_CONFIG private_tests"
5787 cat >>"$QTCONFIG.tmp" <<EOF
5789 CONFIG += $QTCONFIG_CONFIG
5791 QT_HOST_ARCH = $CFG_HOST_ARCH
5792 QT_CPU_FEATURES = $CFG_CPUFEATURES
5793 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5794 QT_EDITION = $Edition
5795 QT_CONFIG += $QT_CONFIG
5798 QT_VERSION = $QT_VERSION
5799 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5800 QT_MINOR_VERSION = $QT_MINOR_VERSION
5801 QT_PATCH_VERSION = $QT_PATCH_VERSION
5804 QT_LIBINFIX = $QT_LIBINFIX
5805 QT_NAMESPACE = $QT_NAMESPACE
5809 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5810 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5811 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5812 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5813 echo >> "$QTCONFIG.tmp"
5816 if [ -n "$CFG_SYSROOT" ]; then
5817 echo "# sysroot" >>"$QTCONFIG.tmp"
5818 echo "!host_build {" >>"$QTCONFIG.tmp"
5819 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5820 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5821 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5822 echo "}" >> "$QTCONFIG.tmp"
5823 echo >> "$QTCONFIG.tmp"
5825 if [ -n "$RPATH_FLAGS" ]; then
5826 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5828 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5829 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5830 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5831 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5834 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5835 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5836 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5839 # replace qconfig.pri if it differs from the newly created temp file
5840 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5841 rm -f "$QTCONFIG.tmp"
5843 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5846 #-------------------------------------------------------------------------------
5847 # save configuration into qmodule.pri
5848 #-------------------------------------------------------------------------------
5849 QTMODULE="$outpath/mkspecs/qmodule.pri"
5851 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5852 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
5854 # Ensure we can link to uninistalled libraries
5855 if [ "$BUILD_ON_MAC" != "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
5856 echo "QMAKE_LFLAGS = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
5858 if [ -n "$QT_CFLAGS_PSQL" ]; then
5859 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5861 if [ -n "$QT_LFLAGS_PSQL" ]; then
5862 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5864 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5865 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5867 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5868 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5870 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5871 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5873 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5874 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5876 if [ -n "$QT_LFLAGS_ODBC" ]; then
5877 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5879 if [ -n "$QT_LFLAGS_TDS" ]; then
5880 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5883 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5884 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5887 #dump in the OPENSSL_LIBS info
5888 if [ '!' -z "$OPENSSL_LIBS" ]; then
5889 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5890 elif [ "$CFG_OPENSSL" = "linked" ]; then
5891 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5894 #dump in the SDK info
5895 if [ '!' -z "$CFG_SDK" ]; then
5896 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5900 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5901 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5903 # replace qmodule.pri if it differs from the newly created temp file
5904 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5905 rm -f "$QTMODULE.tmp"
5907 mv -f "$QTMODULE.tmp" "$QTMODULE"
5910 #-------------------------------------------------------------------------------
5911 # save configuration into .qmake.cache
5912 #-------------------------------------------------------------------------------
5914 CACHEFILE="$outpath/.qmake.cache"
5915 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5916 cat >>"$CACHEFILE.tmp" <<EOF
5918 QT_SOURCE_TREE = \$\$quote($relpath)
5919 QT_BUILD_TREE = \$\$quote($outpath)
5921 include(\$\$PWD/mkspecs/qmodule.pri)
5922 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5926 # replace .qmake.cache if it differs from the newly created temp file
5927 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5928 rm -f "$CACHEFILE.tmp"
5930 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5933 #-------------------------------------------------------------------------------
5934 # give feedback on configuration
5935 #-------------------------------------------------------------------------------
5936 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
5939 if [ "$XPLATFORM" = "$PLATFORM" ]; then
5940 echo "Build type: $PLATFORM"
5942 echo "Building on: $PLATFORM"
5943 echo "Building for: $XPLATFORM"
5946 # the missing space before $CFG_FEATURES is intentional
5947 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
5948 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
5950 if [ -n "$PLATFORM_NOTES" ]; then
5951 echo "Platform notes:"
5952 echo "$PLATFORM_NOTES"
5957 if [ "$OPT_VERBOSE" = "yes" ]; then
5958 echo $ECHO_N "qmake vars .......... $ECHO_C"
5959 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
5960 echo "qmake switches ......... $QMAKE_SWITCHES"
5963 echo "Build .................. $CFG_BUILD_PARTS"
5964 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
5965 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5966 echo "Debug .................. yes (combined)"
5967 if [ "$CFG_DEBUG" = "yes" ]; then
5968 echo "Default Link ........... debug"
5970 echo "Default Link ........... release"
5973 echo "Debug .................. $CFG_DEBUG"
5975 echo "C++11 support .......... $CFG_CXX11"
5976 if [ -n "$PKG_CONFIG" ]; then
5977 echo "pkg-config ............. yes"
5979 echo "pkg-config ............. no"
5981 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
5982 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
5983 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
5984 echo "QtConcurrent code ...... $CFG_CONCURRENT"
5985 echo "QtGui module ........... $CFG_GUI"
5986 echo "QtWidgets module ....... $CFG_WIDGETS"
5987 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5988 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
5990 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
5992 echo "QML debugging .......... $CFG_QML_DEBUG"
5993 echo "PCH support ............ $CFG_PRECOMPILE"
5994 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
5995 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
5996 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
5997 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
5998 elif [ "$CFG_ARCH" = "arm" ]; then
5999 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6000 echo "NEON support ........... ${CFG_NEON}"
6002 if [ "$CFG_ARCH" = "mips" ]; then
6003 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6005 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6006 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6007 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6008 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6009 echo "NIS support ............ $CFG_NIS"
6010 echo "CUPS support ........... $CFG_CUPS"
6011 echo "Iconv support .......... $CFG_ICONV"
6012 echo "Glib support ........... $CFG_GLIB"
6013 echo "GStreamer support ...... $CFG_GSTREAMER"
6014 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6015 echo "Large File support ..... $CFG_LARGEFILE"
6016 echo "GIF support ............ $CFG_GIF"
6017 if [ "$CFG_JPEG" = "no" ]; then
6018 echo "JPEG support ........... $CFG_JPEG"
6020 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6022 if [ "$CFG_PNG" = "no" ]; then
6023 echo "PNG support ............ $CFG_PNG"
6025 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6027 echo "zlib support ........... $CFG_ZLIB"
6028 echo "Session management ..... $CFG_SM"
6029 echo "libudev support ........ $CFG_LIBUDEV"
6031 if [ "$CFG_OPENGL" = "desktop" ]; then
6032 echo "OpenGL support ......... yes (Desktop OpenGL)"
6033 elif [ "$CFG_OPENGL" = "es2" ]; then
6034 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6036 echo "OpenGL support ......... no"
6039 if [ "$CFG_OPENVG" ]; then
6040 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6041 echo "OpenVG support ......... ShivaVG"
6043 echo "OpenVG support ......... $CFG_OPENVG"
6047 echo "XShape support ......... $CFG_XSHAPE"
6048 echo "XVideo support ......... $CFG_XVIDEO"
6049 echo "XSync support .......... $CFG_XSYNC"
6050 echo "Xinerama support ....... $CFG_XINERAMA"
6051 echo "Xcursor support ........ $CFG_XCURSOR"
6052 echo "Xfixes support ......... $CFG_XFIXES"
6053 echo "Xrandr support ......... $CFG_XRANDR"
6054 echo "Xi support ............. $CFG_XINPUT"
6055 echo "Xi2 support ............ $CFG_XINPUT2"
6056 echo "MIT-SHM support ........ $CFG_MITSHM"
6057 echo "FontConfig support ..... $CFG_FONTCONFIG"
6058 echo "XKB Support ............ $CFG_XKB"
6059 echo "immodule support ....... $CFG_IM"
6060 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6062 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6063 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6064 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6065 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6066 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6067 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6068 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6069 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6070 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6073 if [ "$CFG_OPENSSL" = "yes" ]; then
6074 OPENSSL_LINKAGE="(run-time)"
6075 elif [ "$CFG_OPENSSL" = "linked" ]; then
6076 OPENSSL_LINKAGE="(linked)"
6078 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6079 echo "Alsa support ........... $CFG_ALSA"
6080 if [ "$BUILD_ON_MAC" = "yes" ]; then
6081 echo "CoreWlan support ....... $CFG_COREWLAN"
6083 echo "libICU support ......... $CFG_ICU"
6084 echo "PCRE support ........... $CFG_PCRE"
6085 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6086 echo "Xcb support ............ limited (old version)"
6088 echo "Xcb support ............ $CFG_XCB"
6090 echo "Xrender support ........ $CFG_XRENDER"
6091 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6092 echo "XInput2 support ........ $CFG_XINPUT2"
6094 echo "EGLFS support .......... $CFG_EGLFS"
6095 echo "DirectFB support ....... $CFG_DIRECTFB"
6098 # complain about not being able to use dynamic plugins if we are using a static build
6099 if [ "$CFG_SHARED" = "no" ]; then
6101 echo "WARNING: Using static linking will disable the use of dynamically"
6102 echo "loaded plugins. Make sure to import all needed static plugins,"
6103 echo "or compile needed modules into the library."
6106 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6108 echo "NOTE: When linking against OpenSSL, you can override the default"
6109 echo "library names through OPENSSL_LIBS."
6111 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6115 exec 1>&3 3>&- # restore stdout
6116 cat $outpath/config.summary # display config feedback to user
6118 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6120 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6121 echo "if you want a pure debug build."
6126 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6131 #-------------------------------------------------------------------------------
6132 # build makefiles based on the configuration
6133 #-------------------------------------------------------------------------------
6135 if [ "$CFG_NOPROCESS" != "yes" ]; then
6136 echo "Creating makefiles. Please wait..."
6137 "$outpath/bin/qmake" -r ${OPT_FAST+CONFIG+=fast} "$relpath"
6140 if [ "$OPT_FAST" = "yes" ]; then
6142 for part in $CFG_BUILD_PARTS; do
6144 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6147 if [ "x$PART_ROOTS" != "x" ]; then
6149 echo "Creating stub makefiles. Please wait..."
6150 QMAKE="$outpath/bin/qmake"
6151 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6152 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6154 test -f "$outpath/$d/Makefile" && continue
6155 echo " for $relpath/$p"
6157 mkdir -p "$outpath/$d" || exit
6158 cat > "$outpath/$d/Makefile" <<EOF || exit
6159 # $outpath/$d/Makefile: generated by configure
6161 # WARNING: This makefile will be replaced with a real makefile.
6162 # All changes made to this file will be lost.
6167 all clean install qmake first Makefile: FORCE
6168 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6178 #-------------------------------------------------------------------------------
6179 # check for platforms that we don't yet know about
6180 #-------------------------------------------------------------------------------
6181 if [ "$CFG_ARCH" = "unknown" ]; then
6184 NOTICE: configure was unable to determine the architecture
6185 for the $XQMAKESPEC target.
6187 Qt will not use a specialized implementation for any atomic
6188 operations. Instead a generic implemention based on either GCC
6189 intrinsics or C++11 std::atomic<T> will be used (when
6190 available). The generic implementations are generally as fast
6191 as and always as safe as a specialized implementation.
6193 If no generic implementation is available, Qt will use a
6194 fallback UNIX implementation which uses a single
6195 pthread_mutex_t to protect all atomic operations. This
6196 implementation is the slow (but safe) fallback implementation
6197 for architectures Qt does not yet support.
6201 #-------------------------------------------------------------------------------
6202 # check if the user passed the -no-zlib option, which is no longer supported
6203 #-------------------------------------------------------------------------------
6204 if [ -n "$ZLIB_FORCED" ]; then
6205 which_zlib="supplied"
6206 if [ "$CFG_ZLIB" = "system" ]; then
6212 NOTICE: The -no-zlib option was supplied but is no longer
6215 Qt now requires zlib support in all builds, so the -no-zlib
6216 option was ignored. Qt will be built using the $which_zlib
6221 #-------------------------------------------------------------------------------
6222 # check if the user passed the obsoleted -wayland or -no-wayland flag
6223 #-------------------------------------------------------------------------------
6224 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6227 NOTICE: The -wayland and -no-wayland flags are now obsolete
6229 All configuring of QtWayland plugin and QtCompositor happens in the module
6233 #-------------------------------------------------------------------------------
6234 # check if the user passed the obsoleted -arch or -host-arch options
6235 #-------------------------------------------------------------------------------
6236 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6239 NOTICE: The -arch and -host-arch options are obsolete.
6241 Qt now detects the target and host architectures based on compiler
6242 output. Qt will be built using $CFG_ARCH for the target architecture
6243 and $CFG_HOST_ARCH for the host architecture (note that these two
6244 will be the same unless you are cross-compiling).
6248 #-------------------------------------------------------------------------------
6249 # finally save the executed command to another script
6250 #-------------------------------------------------------------------------------
6251 if [ `basename $0` != "config.status" ]; then
6252 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6254 # add the system variables
6255 for varname in $SYSTEM_VARIABLES; do
6257 'if [ -n "\$'${varname}'" ]; then
6258 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6263 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6265 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6266 echo "#!/bin/sh" > "$outpath/config.status"
6267 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6268 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6269 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6270 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6271 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6272 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6273 echo "else" >> "$outpath/config.status"
6274 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6275 echo "fi" >> "$outpath/config.status"
6276 chmod +x "$outpath/config.status"
6279 if [ -n "$RPATH_MESSAGE" ]; then
6281 echo "$RPATH_MESSAGE"
6284 MAKE=`basename "$MAKE"`
6286 echo Qt is now configured for building. Just run \'$MAKE\'.
6287 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6288 echo Once everything is built, Qt is installed.
6289 echo You should not run \'$MAKE install\'.
6291 echo Once everything is built, you must run \'$MAKE install\'.
6292 echo Qt will be installed into $QT_INSTALL_PREFIX
6295 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.