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)
694 CFG_FORCEDEBUGINFO=no
715 CFG_OPENVG_LC_INCLUDES=no
716 CFG_OPENVG_SHIVA=auto
717 CFG_OPENVG_ON_OPENGL=auto
723 QT_DEFAULT_BUILD_PARTS="libs tools examples"
727 CFG_AUDIO_BACKEND=auto
730 CFG_JAVASCRIPTCORE_JIT=auto
733 # Target architecture
736 # Host architecture, same as CFG_ARCH when not cross-compiling
738 CFG_HOST_CPUFEATURES=
739 # Set when the -arch or -host-arch arguments are used
740 OPT_OBSOLETE_HOST_ARG=no
754 CFG_OBSOLETE_WAYLAND=no
766 CFG_SEPARATE_DEBUG_INFO=no
767 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
768 CFG_REDUCE_EXPORTS=auto
776 CFG_REDUCE_RELOCATIONS=auto
777 CFG_ACCESSIBILITY=auto
782 CFG_CLOCK_GETTIME=auto
783 CFG_CLOCK_MONOTONIC=auto
791 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
793 CFG_PREFIX_INSTALL=yes
803 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
804 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
809 OPT_CONFIRM_LICENSE=no
822 QPA_PLATFORM_GUARD=yes
825 # initalize variables used for installation
834 QT_INSTALL_TRANSLATIONS=
839 CFG_GCC_SYSROOT="yes"
844 #flags for SQL drivers
852 QT_LFLAGS_ODBC="-lodbc"
855 # flags for libdbus-1
859 # flags for Glib (X11 only)
863 # flags for GStreamer (X11 only)
867 # default qpa platform
868 QT_QPA_DEFAULT_PLATFORM=
870 #-------------------------------------------------------------------------------
871 # check SQL drivers available in this package
872 #-------------------------------------------------------------------------------
874 # opensource version removes some drivers, so force them to be off
880 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
881 for a in "$relpath/src/plugins/sqldrivers/"*; do
883 base_a=`basename "$a"`
884 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
885 eval "CFG_SQL_${base_a}=auto"
890 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
891 if [ -d "$relpath/src/plugins/imageformats" ]; then
892 for a in "$relpath/src/plugins/imageformats/"*; do
894 base_a=`basename "$a"`
895 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
900 #-------------------------------------------------------------------------------
901 # parse command line arguments
902 #-------------------------------------------------------------------------------
904 # parse the arguments, setting things to "yes" or "no"
905 while [ "$#" -gt 0 ]; do
909 #Autoconf style options
911 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
915 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
919 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
920 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
923 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
927 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
931 -no-*-*|-plugin-*-*|-qt-*-*)
932 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
933 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
937 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
940 #Qt style options that pass an argument
941 -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)
942 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
946 #Qt style complex options in one command
947 -enable-*|-disable-*)
948 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
949 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
951 #Qt Builtin/System style options
952 -no-*|-system-*|-qt-*)
953 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
954 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
956 #Options that cannot be generalized
963 # this option may or may not be followed by an argument
964 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
973 # this option may or may not be followed by an argument
974 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
982 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
983 # this option may or may not be followed by an argument
984 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1003 if [ "$1" = "-D" ]; then
1007 VAL=`echo $1 | sed 's,-D,,'`
1012 # this option may or may not be followed by an argument
1013 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1022 if [ "$1" = "-I" ]; then
1026 VAL=`echo $1 | sed 's,-I,,'`
1031 if [ "$1" = "-L" ]; then
1035 VAL=`echo $1 | sed 's,-L,,'`
1040 if [ "$1" = "-R" ]; then
1044 VAL=`echo $1 | sed 's,-R,,'`
1049 if [ "$1" = "-l" ]; then
1053 VAL=`echo $1 | sed 's,-l,,'`
1058 if [ "$1" = "-F" ]; then
1062 VAL=`echo $1 | sed 's,-F,,'`
1067 if [ "$1" = "-fw" ]; then
1071 VAL=`echo $1 | sed 's,-fw,,'`
1078 #General options, including Qt style yes options
1080 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1087 if [ "$UNKNOWN_ARG" = "yes" ]; then
1088 echo "$1: unknown argument"
1099 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1100 CFG_ACCESSIBILITY="$VAL"
1109 CFG_USE_GNUMAKE="$VAL"
1112 CFG_MYSQL_CONFIG="$VAL"
1115 QT_INSTALL_PREFIX="$VAL"
1118 QT_HOST_PREFIX="$VAL"
1127 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1128 CFG_PKGCONFIG="$VAL"
1134 CFG_PKGCONFIG="force"
1137 QT_INSTALL_DOCS="$VAL"
1140 QT_INSTALL_HEADERS="$VAL"
1143 QT_INSTALL_PLUGINS="$VAL"
1146 QT_INSTALL_IMPORTS="$VAL"
1149 QT_INSTALL_DATA="$VAL"
1152 QT_INSTALL_LIBS="$VAL"
1161 QT_INSTALL_TRANSLATIONS="$VAL"
1163 sysconfdir|settingsdir)
1164 QT_INSTALL_SETTINGS="$VAL"
1167 QT_INSTALL_EXAMPLES="$VAL"
1170 QT_INSTALL_TESTS="$VAL"
1179 CFG_GCC_SYSROOT="$VAL"
1182 QT_INSTALL_BINS="$VAL"
1185 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1192 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1193 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1194 [ "$VAL" = "es2" ]; then
1201 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1208 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1211 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1214 if [ "$BUILD_ON_MAC" = "yes" ]; then
1221 OPT_OBSOLETE_HOST_ARG=yes
1224 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1225 CFG_MAC_HARFBUZZ="$VAL"
1232 if [ "$BUILD_ON_MAC" = "yes" ]; then
1233 CFG_FRAMEWORK="$VAL"
1239 if [ "$VAL" = "yes" ]; then
1241 QMakeVar add QMAKE_CFLAGS -pg
1242 QMakeVar add QMAKE_CXXFLAGS -pg
1243 QMakeVar add QMAKE_LFLAGS -pg
1244 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1250 if [ "$VAL" = "yes" ]; then
1251 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1256 # keep compatibility with old platform names
1262 PLATFORM=hpux-acc-o64
1265 PLATFORM=hpux-acc-64
1268 PLATFORM=hpux-acc-64
1280 PLATFORM=reliant-cds-64
1283 PLATFORM=solaris-cc-64
1286 PLATFORM=unixware-cc
1289 PLATFORM=unixware-g++
1292 PLATFORM=unixware-cc
1295 PLATFORM=unixware-g++
1301 i386) NATIVE_64_ARCH="x86_64" ;;
1302 powerpc) NATIVE_64_ARCH="ppc64" ;;
1303 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1305 if [ ! -z "$NATIVE_64_ARCH" ]; then
1306 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1313 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1316 XPLATFORM=`resolveDeviceMkspec $VAL`
1317 [ "$XPLATFORM" = "undefined" ] && exit 101
1320 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1321 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1322 DeviceVar set $DEV_VAR $DEV_VAL
1325 QT_QPA_DEFAULT_PLATFORM="$VAL"
1328 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1329 CFG_DEBUG_RELEASE="$VAL"
1335 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1336 CFG_RELEASE_QMAKE="$VAL"
1342 if [ "$VAL" = "yes" ]; then
1344 elif [ "$VAL" = "no" ]; then
1351 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1352 CFG_PREFIX_INSTALL="$VAL"
1361 CFG_FORCEDEBUGINFO="$VAL"
1363 developer-build|commercial|opensource)
1364 # These switches have been dealt with already
1367 if [ "$VAL" = "yes" ]; then
1369 elif [ "$VAL" = "no" ]; then
1376 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1377 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1383 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1384 if [ "$VAL" = "no" ]; then
1385 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1386 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1387 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1393 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1400 if [ "$VAL" = "no" ]; then
1407 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1415 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1422 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1429 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1436 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1443 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1450 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1457 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1464 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1465 CFG_PRECOMPILE="$VAL"
1470 separate-debug-info)
1471 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1472 CFG_SEPARATE_DEBUG_INFO="$VAL"
1473 elif [ "$VAL" = "nocopy" ] ; then
1474 CFG_SEPARATE_DEBUG_INFO="yes"
1475 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1481 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1482 CFG_REDUCE_EXPORTS="$VAL"
1488 if [ "$VAL" = "no" ]; then
1495 if [ "$VAL" = "no" ]; then
1502 if [ "$VAL" = "no" ]; then
1509 if [ "$VAL" = "no" ]; then
1516 if [ "$VAL" = "no" ]; then
1523 if [ "$VAL" = "no" ]; then
1530 if [ "$VAL" = "no" ]; then
1540 if [ "$VAL" = "no" ]; then
1547 if [ "$VAL" = "no" ]; then
1554 if [ "$VAL" = "no" ]; then
1555 CFG_MIPS_DSPR2="$VAL"
1561 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1562 CFG_REDUCE_RELOCATIONS="$VAL"
1568 [ "$VAL" = "qt" ] && VAL=yes
1569 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1574 # No longer supported:
1575 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1578 if [ "$VAL" = "system" ]; then
1585 [ "$VAL" = "yes" ] && VAL=qt
1586 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1593 [ "$VAL" = "yes" ] && VAL=qt
1594 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1601 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1608 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1615 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1622 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1629 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1636 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1637 CFG_FONTCONFIG="$VAL"
1643 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1650 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1657 CFG_OBSOLETE_WAYLAND=yes
1660 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1667 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1674 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1681 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1688 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1695 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1702 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1709 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1716 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1723 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1724 CFG_GSTREAMER="$VAL"
1730 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1731 CFG_QGTKSTYLE="$VAL"
1737 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1740 if [ "$VAL" = "no" ]; then
1748 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1750 elif [ "$VAL" = "no" ]; then
1757 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1758 QPA_PLATFORM_GUARD="$VAL"
1764 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1766 elif [ "$VAL" = "runtime" ]; then
1773 if [ "$VAL" = "yes" ]; then
1780 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1787 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1788 CFG_LARGEFILE="$VAL"
1794 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1801 if [ "$VAL" = "yes" ]; then
1802 CFG_OPENSSL="linked"
1808 if [ "$VAL" = "yes" ]; then
1811 if [ "$VAL" = "no" ]; then
1819 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1820 CFG_JAVASCRIPTCORE_JIT="$VAL"
1826 if [ "$VAL" = "yes" ]; then
1827 OPT_CONFIRM_LICENSE="$VAL"
1833 if [ "$VAL" = "yes" ]; then
1839 sql-*|imageformat-*)
1840 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1841 # if autoconf style options were used, $VAL can be "yes" or "no"
1842 [ "$VAL" = "yes" ] && VAL=qt
1843 # now $VAL should be "no", "qt", or "plugin"... double-check
1844 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1847 # now $VAL is "no", "qt", or "plugin"
1849 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1850 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1852 # Grab the available values
1855 avail="$CFG_SQL_AVAILABLE"
1858 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1859 if [ "$OPT" != "plugin" ]; then
1860 # png is always built in
1866 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1870 # Check that that user's value is available.
1873 if [ "$VAL" = "$d" ]; then
1878 [ "$found" = yes ] || ERROR=yes
1880 if [ "$VAR" = "sql" ]; then
1881 # set the CFG_SQL_driver
1882 eval "CFG_SQL_$VAL=\$OPT"
1884 elif [ "$VAR" = "imageformat" ]; then
1885 [ "$OPT" = "qt" ] && OPT=yes
1886 VAL="`echo $VAL |tr a-z A-Z`"
1887 eval "CFG_$VAL=$OPT"
1891 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1892 if [ "$OPT" = "plugin" ]; then
1895 QMakeVar add "${VAR}s" "${VAL}"
1896 elif [ "$OPT" = "no" ]; then
1897 PLUG_VAR="${VAR}-plugin"
1899 QMakeVar del "${IN_VAR}s" "$VAL"
1900 QMakeVar del "${PLUG_VAR}s" "$VAL"
1902 if [ "$ERROR" = "yes" ]; then
1903 echo "$CURRENT_OPT: unknown argument"
1908 if [ "$VAL" = "yes" ]; then
1909 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1910 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1914 elif [ "$VAL" = "no" ]; then
1915 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1916 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1925 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1932 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1939 DEFINES="$DEFINES \"$VAL\""
1940 D_FLAGS="$D_FLAGS -D\"$VAL\""
1943 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1946 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1949 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1952 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1955 if [ "$BUILD_ON_MAC" = "yes" ]; then
1956 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1957 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1963 if [ "$BUILD_ON_MAC" = "yes" ]; then
1964 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1970 W_FLAGS="$W_FLAGS \"${VAL}\""
1985 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1986 CFG_AUDIO_BACKEND="$VAL"
1992 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1999 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2000 CFG_FORCE_ASSERTS="$VAL"
2006 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2013 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2023 if [ "$UNKNOWN_OPT" = "yes" ]; then
2024 echo "${CURRENT_OPT}: invalid command-line switch"
2030 # update QT_CONFIG to show our current predefined configuration
2031 case "$CFG_QCONFIG" in
2032 minimal|small|medium|large|full)
2033 # these are a sequence of increasing functionality
2034 for c in minimal small medium large full; do
2035 QT_CONFIG="$QT_CONFIG $c-config"
2036 [ "$CFG_QCONFIG" = $c ] && break
2040 # not known to be sufficient for anything
2041 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2042 echo >&2 "Error: configuration file not found:"
2043 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2045 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2050 #-------------------------------------------------------------------------------
2051 # build tree initialization
2052 #-------------------------------------------------------------------------------
2054 # where to find which..
2055 unixtests="$relpath/config.tests/unix"
2056 mactests="$relpath/config.tests/mac"
2057 WHICH="$unixtests/which.test"
2059 PERL=`$WHICH perl 2>/dev/null`
2061 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2063 for e in gawk nawk awk; do
2064 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2071 PERL="/usr/bin/perl"
2072 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2076 ### skip this if the user just needs help...
2077 if [ "$OPT_HELP" != "yes" ]; then
2079 # is this a shadow build?
2080 if [ "$OPT_SHADOW" = "maybe" ]; then
2082 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2083 if [ -h "$outpath" ]; then
2084 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2090 if [ "$OPT_SHADOW" = "yes" ]; then
2091 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2092 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2093 echo >&2 "Cannot proceed."
2096 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2099 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2101 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2102 echo "Qt can be built in release mode with separate debug information, so"
2103 echo "-debug-and-release is not necessary anymore"
2107 if [ "$CFG_SILENT" = "yes" ]; then
2108 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2111 # if the source tree is different from the build tree,
2112 # symlink or copy part of the sources
2113 if [ "$OPT_SHADOW" = "yes" ]; then
2114 echo "Preparing build tree..."
2116 if [ -z "$PERL" ]; then
2118 echo "You need perl in your PATH to make a shadow build."
2119 echo "Cannot proceed."
2123 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2125 # make a syncqt script that can be used in the shadow
2126 rm -f "$outpath/bin/syncqt"
2127 if [ -x "$relpath/bin/syncqt" ]; then
2128 mkdir -p "$outpath/bin"
2129 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2130 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2131 chmod 755 "$outpath/bin/syncqt"
2134 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2135 rm -f "$outpath/bin/$i"
2136 if [ -x "$relpath/bin/$i" ]; then
2137 mkdir -p "$outpath/bin"
2138 echo "#!/bin/sh" >"$outpath/bin/$i"
2139 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2140 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2141 chmod 755 "$outpath/bin/$i"
2145 # save a pre-existing mkspecs/modules dir
2146 test -d "$outpath/mkspecs/modules" && \
2147 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2148 # ditto for mkspecs/modules-inst
2149 test -d "$outpath/mkspecs/modules-inst" && \
2150 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2152 # symlink the mkspecs directory
2153 mkdir -p "$outpath/mkspecs"
2154 rm -rf "$outpath"/mkspecs/*
2155 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2156 rm -f "$outpath/mkspecs/default"
2160 rm -rf "$outpath/mkspecs/$1"
2161 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2162 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2165 # Special case for mkspecs/features directory.
2166 # To be able to place .prf files into a shadow build directory,
2167 # we're creating links for files only. The directory structure is reproduced.
2168 ShadowMkspecs features
2170 # The modules dir is special, too.
2171 if test -d "$outpath/mkspecs-modules"; then
2172 rm -rf "$outpath/mkspecs/modules"
2173 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2175 ShadowMkspecs modules
2178 # The modules-inst dir is not quite as special, but still.
2179 if test -d "$outpath/mkspecs-modules-inst"; then
2180 rm -rf "$outpath/mkspecs/modules-inst"
2181 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2184 # symlink the doc directory
2185 rm -rf "$outpath/doc"
2186 ln -s "$relpath/doc" "$outpath/doc"
2189 # symlink fonts to be able to run application from build directory
2190 if [ ! -d "${outpath}/lib/fonts" ]; then
2191 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2192 mkdir -p "${outpath}/lib"
2193 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2197 if [ "$OPT_FAST" = "auto" ]; then
2198 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2205 # find a make command
2206 if [ -z "$MAKE" ]; then
2208 for mk in gmake make; do
2209 if "$WHICH" $mk >/dev/null 2>&1; then
2214 if [ -z "$MAKE" ]; then
2215 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2216 echo >&2 "Cannot proceed."
2219 # export MAKE, we need it later in the config.tests
2225 #-------------------------------------------------------------------------------
2226 # auto-detect all that hasn't been specified in the arguments
2227 #-------------------------------------------------------------------------------
2229 if [ -z "$PLATFORM" ]; then
2231 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2233 OSX_VERSION=`uname -r | cut -d. -f1`
2234 # Select compiler. Use g++ unless we find a usable Clang version
2236 if [ "$OSX_VERSION" -ge 12 ]; then
2237 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2239 elif [ "$OSX_VERSION" -eq 11 ]; then
2240 # We're on Lion. Check if we have a supported Clang version
2241 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2244 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2251 #PLATFORM=aix-g++-64
2253 #PLATFORM=aix-xlc-64
2255 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2265 # PLATFORM=dynix-g++
2271 PLATFORM=freebsd-g++
2273 - Also available for FreeBSD: freebsd-icc
2277 PLATFORM=openbsd-g++
2288 #PLATFORM=irix-cc-64
2290 - Also available for IRIX: irix-g++ irix-cc-64
2294 case "$UNAME_MACHINE" in
2296 #PLATFORM=hpuxi-acc-32
2297 PLATFORM=hpuxi-acc-64
2299 - Also available for HP-UXi: hpuxi-acc-32
2305 #PLATFORM=hpux-acc-64
2307 #PLATFORM=hpux-acc-o64
2309 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2318 - Also available for Tru64: tru64-g++
2322 case "$UNAME_MACHINE" in
2324 PLATFORM=linux-g++-64
2331 - Also available for Linux: linux-kcc linux-icc linux-cxx
2335 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2336 PLATFORM="solaris-g++"
2338 #PLATFORM=solaris-g++
2340 #PLATFORM=solaris-cc64
2343 - Also available for Solaris: solaris-g++ solaris-cc-64
2346 ReliantUNIX-*:*|SINIX-*:*)
2347 PLATFORM=reliant-cds
2348 #PLATFORM=reliant-cds-64
2350 - Also available for Reliant UNIX: reliant-cds-64
2360 #PLATFORM=unixware-g++
2361 PLATFORM=unixware-cc
2363 - Also available for OpenUNIX: unixware-g++
2367 #PLATFORM=unixware-g++
2368 PLATFORM=unixware-cc
2370 - Also available for UnixWare: unixware-g++
2377 - Also available for SCO OpenServer: sco-g++
2381 PLATFORM=unixware-g++
2384 PLATFORM=unsupported/qnx-g++
2387 if [ "$OPT_HELP" != "yes" ]; then
2389 echo " The build script does not currently recognize all" >&2
2390 echo " platforms supported by Qt." >&2
2391 echo " Rerun this script with a -platform option listed to" >&2
2392 echo " set the system/compiler combination you use." >&2
2399 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2401 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2402 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2403 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2405 if [ -d "$PLATFORM" ]; then
2406 QMAKESPEC="$PLATFORM"
2408 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2410 if [ -d "$XPLATFORM" ]; then
2411 XQMAKESPEC="$XPLATFORM"
2413 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2415 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2416 QT_CROSS_COMPILE=yes
2417 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2418 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2421 if [ "$BUILD_ON_MAC" = "yes" ]; then
2422 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2424 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2425 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2426 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2427 echo " built with 'macx-g++'" >&2
2433 # check specified platforms are supported
2434 if [ '!' -d "$QMAKESPEC" ]; then
2436 echo " The specified system/compiler is not supported:"
2440 echo " Please see the README file for a complete list."
2444 if [ '!' -d "$XQMAKESPEC" ]; then
2446 echo " The specified system/compiler is not supported:"
2450 echo " Please see the README file for a complete list."
2454 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2456 echo " The specified system/compiler port is not complete:"
2458 echo " $XQMAKESPEC/qplatformdefs.h"
2460 echo " Please contact qt-info@nokia.com."
2465 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2466 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2467 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2468 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2469 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2473 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2474 case `basename "$XPLATFORM"` in
2477 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2479 echo "Please contact qt-info@nokia.com to upgrade your license to"
2480 echo "include this platform, or install the Qt Open Source Edition"
2481 echo "if you intend to develop free software."
2487 #-------------------------------------------------------------------------------
2488 # tests that don't need qmake (must be run before displaying help)
2489 #-------------------------------------------------------------------------------
2491 # detect build style
2492 if [ "$CFG_DEBUG" = "auto" ]; then
2493 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2494 CFG_DEBUG_RELEASE=yes
2496 elif [ "$CFG_DEV" = "yes" ]; then
2497 CFG_DEBUG_RELEASE=no
2500 CFG_DEBUG_RELEASE=no
2504 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2505 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2508 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2509 QT_CONFIG="$QT_CONFIG force_debug_info"
2512 # pass on $CFG_SDK to the configure tests.
2513 if [ '!' -z "$CFG_SDK" ]; then
2514 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2517 # find the default framework value
2518 if [ "$BUILD_ON_MAC" = "yes" ]; then
2519 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2520 CFG_FRAMEWORK="$CFG_SHARED"
2521 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2523 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2531 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2533 TEST_COMPILER=$QMAKE_CONF_COMPILER
2534 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2535 if [ -z "$TEST_COMPILER" ]; then
2536 echo "ERROR: Cannot set the compiler for the configuration tests"
2542 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2543 if [ -n "$GCC_MACHINE_DUMP" ]; then
2544 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2547 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2548 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2552 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2554 # auto-detect precompiled header support
2555 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2556 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2563 # auto-detect support for separate debug info in objcopy
2564 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2565 TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2566 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2567 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2568 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2569 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2570 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2571 CFG_SEPARATE_DEBUG_INFO=no
2575 # binutils on HP-UX is buggy; default to no.
2576 CFG_SEPARATE_DEBUG_INFO=no
2579 CFG_SEPARATE_DEBUG_INFO=yes
2585 # auto-detect -fvisibility support
2586 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2587 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2588 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2589 echo "-reduce-exports was requested but this compiler does not support it"
2590 echo "Re-run configure with -v for more information"
2593 CFG_REDUCE_EXPORTS=no
2595 CFG_REDUCE_EXPORTS=yes
2599 # detect the availability of the -Bsymbolic-functions linker optimization
2600 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2601 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2602 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2603 echo "-reduce-relocations was requested but this compiler does not support it"
2604 echo "Re-run configure with -v for more information"
2607 CFG_REDUCE_RELOCATIONS=no
2609 CFG_REDUCE_RELOCATIONS=yes
2613 # auto-detect GNU make support
2614 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2618 # find the default framework value
2619 if [ "$BUILD_ON_MAC" = "yes" ]; then
2620 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2621 CFG_FRAMEWORK="$CFG_SHARED"
2622 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2624 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2632 #setup the build parts
2633 if [ -z "$CFG_BUILD_PARTS" ]; then
2634 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2636 # build tests by default, if a developer build
2637 if [ "$CFG_DEV" = "yes" ]; then
2638 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2641 # don't build tools by default when cross-compiling
2642 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2643 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2646 for nobuild in $CFG_NOBUILD_PARTS; do
2647 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2649 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2651 # echo "WARNING: libs is a required part of the build."
2653 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2656 #-------------------------------------------------------------------------------
2657 # post process QT_INSTALL_* variables
2658 #-------------------------------------------------------------------------------
2660 if [ -z "$QT_INSTALL_PREFIX" ]; then
2661 if [ "$CFG_DEV" = "yes" ]; then
2662 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2664 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2667 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2669 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2670 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2671 if [ "$BUILD_ON_MAC" = "yes" ]; then
2672 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2675 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2678 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2680 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2681 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2682 if [ "$BUILD_ON_MAC" = "yes" ]; then
2683 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2688 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2691 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2693 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2694 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2695 if [ "$BUILD_ON_MAC" = "yes" ]; then
2696 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2697 QT_INSTALL_LIBS="/Library/Frameworks"
2701 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2703 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2705 if [ -z "$QT_INSTALL_BINS" ]; then #default
2706 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2707 if [ "$BUILD_ON_MAC" = "yes" ]; then
2708 QT_INSTALL_BINS="/Developer/Applications/Qt"
2711 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2713 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2715 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2716 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2717 if [ "$BUILD_ON_MAC" = "yes" ]; then
2718 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2721 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2723 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2725 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2726 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2727 if [ "$BUILD_ON_MAC" = "yes" ]; then
2728 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2731 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2733 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2735 if [ -z "$QT_INSTALL_DATA" ]; then #default
2736 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2738 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2740 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2741 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2743 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2745 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2746 if [ "$BUILD_ON_MAC" = "yes" ]; then
2747 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2749 QT_INSTALL_SETTINGS=/etc/xdg
2752 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2754 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2755 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2756 if [ "$BUILD_ON_MAC" = "yes" ]; then
2757 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2760 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2762 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2765 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2766 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2767 if [ "$BUILD_ON_MAC" = "yes" ]; then
2768 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2771 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2773 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2775 #------- host paths --------
2777 if [ -z "$QT_HOST_PREFIX" ]; then
2778 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2781 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2785 if [ -z "$QT_HOST_BINS" ]; then #default
2787 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2788 if [ "$BUILD_ON_MAC" = "yes" ]; then
2789 QT_HOST_BINS="/Developer/Applications/Qt"
2792 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2794 QT_HOST_BINS="$QT_INSTALL_BINS"
2797 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2799 if [ -z "$QT_HOST_DATA" ]; then #default
2801 QT_HOST_DATA="$QT_HOST_PREFIX"
2803 QT_HOST_DATA="$QT_INSTALL_DATA"
2806 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2809 #-------------------------------------------------------------------------------
2810 # help - interactive parts of the script _after_ this section please
2811 #-------------------------------------------------------------------------------
2813 # next, emit a usage message if something failed.
2814 if [ "$OPT_HELP" = "yes" ]; then
2815 [ "x$ERROR" = "xyes" ] && echo
2816 if [ "$CFG_NIS" = "no" ]; then
2823 if [ "$CFG_CUPS" = "no" ]; then
2830 if [ "$CFG_ICONV" = "no" ]; then
2837 if [ "$CFG_LARGEFILE" = "no" ]; then
2844 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2852 if [ "$CFG_XCB" = "no" ]; then
2860 if [ "$CFG_EGLFS" = "no" ]; then
2868 if [ "$CFG_DIRECTFB" = "no" ]; then
2876 if [ "$CFG_LINUXFB" = "no" ]; then
2884 if [ "$CFG_KMS" = "no" ]; then
2892 if [ "$CFG_XINPUT2" = "no" ]; then
2900 if [ "$CFG_DBUS" = "no" ]; then
2908 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2916 if [ "$CFG_GLIB" = "no" ]; then
2925 Usage: $relconf [options]
2927 Installation options:
2929 These are optional, but you may specify install directories.
2931 -prefix <dir> ...... This will install everything relative to <dir>
2932 (default $QT_INSTALL_PREFIX)
2934 -hostprefix [dir] .. Tools and libraries needed when developing
2935 applications are installed in [dir]. If [dir] is
2936 not given, the current build directory will be used.
2939 * -prefix-install .... Force a sandboxed "local" installation of
2940 Qt. This will install into
2941 $QT_INSTALL_PREFIX, if this option is
2942 disabled then some platforms will attempt a
2943 "system" install by placing default values to
2944 be placed in a system location other than
2947 You may use these to separate different parts of the install:
2949 -bindir <dir> ......... Executables will be installed to <dir>
2950 (default PREFIX/bin)
2951 -libdir <dir> ......... Libraries will be installed to <dir>
2952 (default PREFIX/lib)
2953 -docdir <dir> ......... Documentation will be installed to <dir>
2954 (default PREFIX/doc)
2955 -headerdir <dir> ...... Headers will be installed to <dir>
2956 (default PREFIX/include)
2957 -plugindir <dir> ...... Plugins will be installed to <dir>
2958 (default PREFIX/plugins)
2959 -importdir <dir> ...... Imports for QML will be installed to <dir>
2960 (default PREFIX/imports)
2961 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2963 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2964 (default PREFIX/translations)
2965 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2966 (default PREFIX/etc/settings)
2967 -examplesdir <dir> .... Examples will be installed to <dir>
2968 (default PREFIX/examples)
2969 -testsdir <dir> ....... Tests will be installed to <dir>
2970 (default PREFIX/tests)
2972 -hostbindir <dir> .. Host executables will be installed to <dir>
2973 (default HOSTPREFIX/bin)
2974 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2975 (default HOSTPREFIX)
2979 The defaults (*) are usually acceptable. A plus (+) denotes a default value
2980 that needs to be evaluated. If the evaluation succeeds, the feature is
2981 included. Here is a short explanation of each option:
2983 * -release ........... Compile and link Qt with debugging turned off.
2984 -debug ............. Compile and link Qt with debugging turned on.
2985 -debug-and-release . Compile and link two versions of Qt, with and without
2986 debugging turned on (Mac only).
2988 -force-debug-info .. Create symbol files for release builds.
2990 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2992 -opensource ........ Compile and link the Open-Source Edition of Qt.
2993 -commercial ........ Compile and link the Commercial Edition of Qt.
2995 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
2996 + -c++11 ............. Compile Qt with C++11 support enabled.
2998 * -shared ............ Create and use shared Qt libraries.
2999 -static ............ Create and use static Qt libraries.
3001 * -process ........... Generate only a top-level Makefile.
3002 -fully-process ..... Generate Makefiles for the entire Qt tree.
3003 -dont-process ...... Do not generate any Makefiles.
3005 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3007 -fast .............. Configure Qt quickly by generating Makefiles only for
3008 library and subdirectory targets. All other Makefiles
3009 are created as wrappers, which will in turn run qmake.
3011 -no-largefile ...... Disables large file support.
3012 + -largefile ......... Enables Qt to access files larger than 4 GB.
3014 -no-accessibility .. Do not compile Accessibility support.
3015 * -accessibility ..... Compile Accessibility support.
3017 -no-sql-<driver> ... Disable SQL <driver> entirely.
3018 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3020 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3023 Possible values for <driver>:
3024 [ $CFG_SQL_AVAILABLE ]
3026 -system-sqlite ..... Use sqlite from the operating system.
3028 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3029 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3031 -no-qml-debug ...... Do not build the in-process QML debugging support.
3032 + -qml-debug ......... Build the QML debugging support.
3034 -platform target ... The operating system and compiler you are building
3037 See the README file for a list of supported
3038 operating systems and compilers.
3040 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3041 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3042 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3043 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3044 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3045 -no-avx ............ Do not compile with use of AVX instructions.
3046 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3047 -no-neon ........... Do not compile with use of NEON instructions.
3048 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3049 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3051 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3052 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3054 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3056 -D <string> ........ Add an explicit define to the preprocessor.
3057 -I <string> ........ Add an explicit include path.
3058 -L <string> ........ Add an explicit library path.
3060 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3061 configure determines whether to use pkg-config or not with
3062 some heuristics such as checking the environment variables.
3063 -no-pkg-config ..... Disable use of pkg-config.
3064 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3065 detection heuristic).
3067 -help, -h .......... Display this information.
3069 Third Party Libraries:
3071 -qt-zlib ........... Use the zlib bundled with Qt.
3072 + -system-zlib ....... Use zlib from the operating system.
3073 See http://www.gzip.org/zlib
3075 -no-gif ............ Do not compile GIF reading support.
3077 -no-libpng ......... Do not compile PNG support.
3078 -qt-libpng ......... Use the libpng bundled with Qt.
3079 + -system-libpng ..... Use libpng from the operating system.
3080 See http://www.libpng.org/pub/png
3082 -no-libjpeg ........ Do not compile JPEG support.
3083 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3084 + -system-libjpeg .... Use libjpeg from the operating system.
3085 See http://www.ijg.org
3087 -no-openssl ........ Do not compile support for OpenSSL.
3088 + -openssl ........... Enable run-time OpenSSL support.
3089 -openssl-linked .... Enabled linked OpenSSL support.
3091 -qt-pcre ........... Use the PCRE library bundled with Qt.
3092 + -system-pcre ....... Use the PCRE library from the operating system.
3096 -make <part> ....... Add part to the list of parts to be built at make time.
3097 ($QT_DEFAULT_BUILD_PARTS)
3098 -nomake <part> ..... Exclude part from the list of parts to be built.
3100 -R <string> ........ Add an explicit runtime library path to the Qt
3102 -l <string> ........ Add an explicit library.
3104 -no-rpath .......... Do not use the library install path as a runtime
3106 + -rpath ............. Link Qt libraries and executables using the library
3107 install path as a runtime library path. Equivalent
3108 to -R install_libpath
3110 -continue .......... Continue as far as possible if an error occurs.
3112 -verbose, -v ....... Print verbose information about each step of the
3115 -silent ............ Reduce the build output so that warnings and errors
3116 can be seen more easily.
3118 * -no-optimized-qmake ... Do not build qmake optimized.
3119 -optimized-qmake ...... Build qmake optimized.
3121 -no-gui ............ Don't build the Qt GUI library
3123 $NSN -no-nis ............ Do not compile NIS support.
3124 $NSY -nis ............... Compile NIS support.
3126 $CUN -no-cups ........... Do not compile CUPS support.
3127 $CUY -cups .............. Compile CUPS support.
3128 Requires cups/cups.h and libcups.so.2.
3130 $CIN -no-iconv .......... Do not compile support for iconv(3).
3131 $CIY -iconv ............. Compile support for iconv(3).
3133 $PHN -no-pch ............ Do not use precompiled header support.
3134 $PHY -pch ............... Use precompiled header support.
3136 $DBN -no-dbus ........... Do not compile the QtDBus module.
3137 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3138 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3140 -reduce-relocations ..... Reduce relocations in the libraries through extra
3141 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3142 experimental; needs GNU ld >= 2.18).
3144 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3146 -device <name> ............... Cross-compile for device <name> (experimental)
3147 -device-option <key=value> ... Add device specific options for the device mkspec
3150 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3151 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3153 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3154 $XCBY -xcb ............... Compile Xcb support.
3156 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3157 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3159 $DFBN -no-directfb ....... Do not compile DirectFB support.
3160 $DFBY -directfb .......... Compile DirectFB support.
3162 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3163 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3165 $KMSN -no-kms ............ Do not compile KMS support.
3166 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3168 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3170 -xplatform target ... The target platform when cross-compiling.
3172 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3173 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3175 -no-feature-<feature> Do not compile in <feature>.
3176 -feature-<feature> .. Compile in <feature>. The available features
3177 are described in src/corelib/global/qfeatures.txt
3179 -no-freetype ........ Do not compile in Freetype2 support.
3180 -qt-freetype ........ Use the libfreetype bundled with Qt.
3181 * -system-freetype .... Use libfreetype from the operating system.
3182 See http://www.freetype.org/
3184 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3185 default ($CFG_QCONFIG).
3187 -no-opengl .......... Do not support OpenGL.
3188 -opengl <api> ....... Enable OpenGL support
3189 With no parameter, this will attempt to auto-detect
3190 OpenGL ES 2, or regular desktop OpenGL.
3191 Use es2 for <api> to override auto-detection.
3193 $GBN -no-glib ........... Do not compile Glib support.
3194 $GBY -glib .............. Compile Glib support.
3197 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3200 $X2N -no-xinput2......... Do not compile XInput2 support.
3201 $X2Y -xinput2............ Compile XInput2 support.
3207 if [ "$BUILD_ON_MAC" = "yes" ]; then
3212 -Fstring ........... Add an explicit framework path.
3213 -fw string ......... Add an explicit framework.
3215 * -framework ......... Build Qt as a series of frameworks and
3216 link tools against those frameworks.
3217 -no-framework ...... Do not build Qt as a series of frameworks.
3219 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3220 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3222 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3223 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3224 QT_ENABLE_HARFBUZZ environment variable.
3229 [ "x$ERROR" = "xyes" ] && exit 1
3234 # -----------------------------------------------------------------------------
3235 # LICENSING, INTERACTIVE PART
3236 # -----------------------------------------------------------------------------
3239 echo "This is the Qt ${EditionString} Edition."
3242 if [ "$Edition" = "OpenSource" ]; then
3244 echo "You are licensed to use this software under the terms of"
3245 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3246 if [ -f "$relpath/LICENSE.GPL3" ]; then
3247 echo "You are also licensed to use this software under the terms of"
3248 echo "the GNU General Public License (GPL) versions 3."
3254 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3255 echo "You have already accepted the terms of the $LicenseType license."
3258 if [ -f "$relpath/LICENSE.GPL3" ]; then
3259 echo "Type '3' to view the GNU General Public License version 3."
3261 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3262 echo "Type 'yes' to accept this license offer."
3263 echo "Type 'no' to decline this license offer."
3265 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3269 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3271 elif [ "$acceptance" = "no" ]; then
3272 echo "You are not licensed to use this software."
3275 elif [ "$acceptance" = "3" ]; then
3276 more "$relpath/LICENSE.GPL3"
3277 elif [ "$acceptance" = "L" ]; then
3278 more "$relpath/LICENSE.LGPL"
3281 elif [ "$Edition" = "Preview" ]; then
3282 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3285 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3286 echo "You have already accepted the terms of the $LicenseType license."
3289 echo "You are licensed to use this software under the terms of"
3290 echo "the $TheLicense"
3292 echo "Type '?' to read the Preview License."
3293 echo "Type 'yes' to accept this license offer."
3294 echo "Type 'no' to decline this license offer."
3296 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3300 if [ "$acceptance" = "yes" ]; then
3302 elif [ "$acceptance" = "no" ] ;then
3303 echo "You are not licensed to use this software."
3306 elif [ "$acceptance" = "?" ]; then
3307 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3310 elif [ "$Edition" != "OpenSource" ]; then
3311 if [ -n "$ExpiryDate" ]; then
3312 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3313 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3314 Today=`date +%Y%m%d`
3315 if [ "$Today" -gt "$ExpiryDate" ]; then
3316 case "$LicenseType" in
3317 Commercial|Academic|Educational)
3318 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3320 echo "NOTICE NOTICE NOTICE NOTICE"
3322 echo " Your support and upgrade period has expired."
3324 echo " You are no longer licensed to use this version of Qt."
3325 echo " Please contact qt-info@nokia.com to renew your support"
3326 echo " and upgrades for this license."
3328 echo "NOTICE NOTICE NOTICE NOTICE"
3333 echo "WARNING WARNING WARNING WARNING"
3335 echo " Your support and upgrade period has expired."
3337 echo " You may continue to use your last licensed release"
3338 echo " of Qt under the terms of your existing license"
3339 echo " agreement. But you are not entitled to technical"
3340 echo " support, nor are you entitled to use any more recent"
3341 echo " Qt releases."
3343 echo " Please contact qt-info@nokia.com to renew your"
3344 echo " support and upgrades for this license."
3346 echo "WARNING WARNING WARNING WARNING"
3353 echo "NOTICE NOTICE NOTICE NOTICE"
3355 echo " Your Evaluation license has expired."
3357 echo " You are no longer licensed to use this software. Please"
3358 echo " contact qt-info@nokia.com to purchase license, or install"
3359 echo " the Qt Open Source Edition if you intend to develop free"
3362 echo "NOTICE NOTICE NOTICE NOTICE"
3369 TheLicense=`head -n 1 "$outpath/LICENSE"`
3371 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3372 echo "You have already accepted the terms of the $TheLicense."
3375 echo "You are licensed to use this software under the terms of"
3376 echo "the $TheLicense."
3378 echo "Type '?' to view the $TheLicense."
3379 echo "Type 'yes' to accept this license offer."
3380 echo "Type 'no' to decline this license offer."
3382 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3386 if [ "$acceptance" = "yes" ]; then
3388 elif [ "$acceptance" = "no" ]; then
3389 echo "You are not licensed to use this software."
3392 else [ "$acceptance" = "?" ]
3393 more "$outpath/LICENSE"
3398 # this should be moved somewhere else
3401 AIX_VERSION=`uname -v`
3402 if [ "$AIX_VERSION" -lt "5" ]; then
3403 QMakeVar add QMAKE_LIBS_X11 -lbind
3410 #-------------------------------------------------------------------------------
3411 # generate qconfig.cpp
3412 #-------------------------------------------------------------------------------
3413 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3415 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3417 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3418 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3420 /* Installation date */
3421 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3423 /* Installation Info */
3424 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3425 "qt_prfxpath=$QT_INSTALL_PREFIX",
3426 "qt_docspath=$QT_INSTALL_DOCS",
3427 "qt_hdrspath=$QT_INSTALL_HEADERS",
3428 "qt_libspath=$QT_INSTALL_LIBS",
3429 "qt_binspath=$QT_INSTALL_BINS",
3430 "qt_plugpath=$QT_INSTALL_PLUGINS",
3431 "qt_impspath=$QT_INSTALL_IMPORTS",
3432 "qt_datapath=$QT_INSTALL_DATA",
3433 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3434 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3435 "qt_tstspath=$QT_INSTALL_TESTS",
3436 #ifdef QT_BUILD_QMAKE
3437 "qt_ssrtpath=$CFG_SYSROOT",
3438 "qt_hpfxpath=$QT_HOST_PREFIX",
3439 "qt_hbinpath=$QT_HOST_BINS",
3440 "qt_hdatpath=$QT_HOST_DATA",
3443 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3446 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3448 /* strlen( "qt_lcnsxxxx" ) == 12 */
3449 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3450 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3452 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3455 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3456 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3457 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3459 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3460 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3461 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3464 # -----------------------------------------------------------------------------
3465 if [ "$LicenseType" = "Evaluation" ]; then
3466 EVALKEY=qt_qevalkey=$LicenseKeyExt
3467 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3468 EVALKEY=qt_qevalkey=
3471 if [ -n "$EVALKEY" ]; then
3472 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3473 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3474 /* Evaluation license key */
3475 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3477 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3481 # -----------------------------------------------------------------------------
3483 # -----------------------------------------------------------------------------
3486 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3488 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3489 if [ "$OPT_SHADOW" = "yes" ]; then
3490 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3491 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3492 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3496 # $1: input variable name (awk regexp)
3497 # $2: optional output variable name
3498 # $3: optional value transformation (sed command)
3499 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3500 # is where the resulting variable is written to
3501 setBootstrapVariable()
3503 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3507 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3508 echo "Creating qmake. Please wait..."
3511 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3512 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3513 if [ -f "$QCONFIG_H" ]; then
3514 OLD_QCONFIG_H=$QCONFIG_H
3515 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3518 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3519 # when building qmake, we use #defines for the install paths,
3520 # however they are real functions in the library
3521 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3522 mkdir -p "$outpath/src/corelib/global"
3523 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3524 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3527 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3529 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3530 rm -rf mkspecs/default mkspecs/default-host
3531 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3532 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3533 mkdir -p "$outpath/qmake" || exit
3535 for mkfile in GNUmakefile Makefile; do
3538 in_mkfile="${mkfile}.in"
3539 if [ "$mkfile" = "Makefile" ]; then
3540 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3541 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3543 in_mkfile="${mkfile}.unix"
3545 in_mkfile="$relpath/qmake/$in_mkfile"
3546 mkfile="$outpath/qmake/$mkfile"
3547 if [ -f "$mkfile" ]; then
3548 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3551 [ -f "$in_mkfile" ] || continue
3553 echo "########################################################################" > "$mkfile"
3554 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3555 echo "########################################################################" >> "$mkfile"
3558 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3559 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3560 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3562 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3563 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3566 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3567 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3568 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3569 setBootstrapVariable QMAKE_CFLAGS
3570 setBootstrapVariable QMAKE_CXXFLAGS
3571 setBootstrapVariable QMAKE_LFLAGS
3573 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3574 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3575 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3577 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3578 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3579 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3580 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3581 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3582 elif [ "$CFG_DEBUG" = "yes" ]; then
3583 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3584 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3585 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3586 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3589 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3590 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3591 for rpath in $RPATH_FLAGS; do
3592 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3595 if [ "$BUILD_ON_MAC" = "yes" ]; then
3596 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3597 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3598 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3599 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3600 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3601 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3602 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3603 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3604 if [ '!' -z "$CFG_SDK" ]; then
3605 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3606 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3607 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3608 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3609 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3612 if [ '!' -z "$D_FLAGS" ]; then
3613 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3615 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3616 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3617 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3618 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3620 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3621 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3622 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3623 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3624 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3625 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3626 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3627 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3628 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3629 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3631 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3632 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3633 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3634 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3639 QMAKE_BUILD_ERROR=no
3640 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3641 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3642 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3643 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3646 #-------------------------------------------------------------------------------
3647 # create a qt.conf for the Qt build tree itself
3648 #-------------------------------------------------------------------------------
3650 QTCONFFILE="$outpath/bin/qt.conf"
3651 cat > "$QTCONFFILE" <<EOF
3656 #-------------------------------------------------------------------------------
3658 #-------------------------------------------------------------------------------
3659 if [ -z "$PKG_CONFIG" ]; then
3660 # See if PKG_CONFIG is set in the mkspec:
3661 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3663 if [ -z "$PKG_CONFIG" ]; then
3664 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3667 if [ "$CFG_PKGCONFIG" = "no" ]; then
3669 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3671 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3672 echo >&2 "a correctly setup pkg-config environment!"
3674 elif [ -n "$PKG_CONFIG" ]; then
3675 # found a pkg-config
3676 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3677 # when xcompiling, check environment to see if it's actually usable
3678 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3679 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3680 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3681 if [ -n "$GCC_MACHINE_DUMP" ]; then
3682 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3684 export PKG_CONFIG_LIBDIR
3685 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3686 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3687 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3688 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3689 echo >&2 "Set this variable to the directory that contains target .pc files"
3690 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3691 echo >&2 "use -force-pkg-config to override this test."
3695 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3698 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3699 if [ -n "$CFG_SYSROOT" ]; then
3700 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3701 export PKG_CONFIG_SYSROOT_DIR
3702 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3703 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3704 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3705 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3706 echo >&2 "or use -force-pkg-config to override this test."
3710 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3714 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3715 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3719 if [ -z "$PKG_CONFIG" ]; then
3720 QT_CONFIG="$QT_CONFIG no-pkg-config"
3723 #-------------------------------------------------------------------------------
3724 # write out device config before we run the test.
3725 #-------------------------------------------------------------------------------
3726 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3727 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3728 rm -f "$DEVICE_VARS_FILE"
3730 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3731 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3734 #-------------------------------------------------------------------------------
3735 # tests that need qmake
3736 #-------------------------------------------------------------------------------
3738 #-------------------------------------------------------------------------------
3739 # determine the target and host architectures
3740 #-------------------------------------------------------------------------------
3742 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3743 OUTFILE=$outpath/arch.result
3744 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_CONFIG_TEST_COMMANDLINE
3745 if [ $? -eq 0 ]; then
3746 eval `cat "$OUTFILE"`
3749 echo "Could not determine the target architecture!"
3750 echo "Turn on verbose messaging (-v) to see the final report."
3752 rm -f "$OUTFILE" 2>/dev/null
3753 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3755 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3756 # Do the same test again, using the host compiler
3757 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_CONFIG_TEST_COMMANDLINE
3758 if [ $? -eq 0 ]; then
3759 eval `cat "$OUTFILE"`
3762 echo "Could not determine the host architecture!"
3763 echo "Turn on verbose messaging (-v) to see the final report."
3765 rm -f "$OUTFILE" 2>/dev/null
3766 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3768 # not cross compiling, host == target
3769 CFG_HOST_ARCH="$CFG_ARCH"
3770 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3774 if [ "$OPT_VERBOSE" = "yes" ]; then
3775 echo "System architecture: '$CFG_ARCH'"
3776 echo "Host architecture: '$CFG_HOST_ARCH'"
3779 #-------------------------------------------------------------------------------
3780 # functionality tests
3781 #-------------------------------------------------------------------------------
3783 # Detect C++11 support
3784 if [ "$CFG_CXX11" != "no" ]; then
3785 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
3787 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3788 echo "C++11 support cannot be enabled due to functionality tests!"
3789 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3790 echo " If you believe this message is in error you may use the continue"
3791 echo " switch (-continue) to $0 to continue."
3798 # detect availability of float math.h functions
3799 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
3800 CFG_USE_FLOATMATH=yes
3802 CFG_USE_FLOATMATH=no
3805 # detect sse2 support
3806 if [ "${CFG_SSE2}" = "auto" ]; then
3807 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
3814 # detect sse3 support
3815 if [ "${CFG_SSE3}" = "auto" ]; then
3816 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
3823 # detect ssse3 support
3824 if [ "${CFG_SSSE3}" = "auto" ]; then
3825 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
3832 # detect sse4.1 support
3833 if [ "${CFG_SSE4_1}" = "auto" ]; then
3834 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
3841 # detect sse4.2 support
3842 if [ "${CFG_SSE4_2}" = "auto" ]; then
3843 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
3850 # detect avx support
3851 if [ "${CFG_AVX}" = "auto" ]; then
3852 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
3853 case "$XQMAKESPEC" in
3855 # Some clang versions produce internal compiler errors compiling Qt AVX code
3856 case `$TEST_COMPILER --version` in
3857 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3859 if [ "$OPT_VERBOSE" = "yes" ]; then
3860 echo 'AVX support disabled for blacklisted clang compiler'
3877 # detect avx2 support
3878 if [ "${CFG_AVX}" = "no" ]; then
3881 if [ "${CFG_AVX2}" = "auto" ]; then
3882 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
3889 # check iWMMXt support
3890 if [ "$CFG_IWMMXT" = "yes" ]; then
3891 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
3892 if [ $? != "0" ]; then
3893 echo "The iWMMXt functionality test failed!"
3894 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3899 # detect neon support
3900 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3901 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
3906 elif [ "$CFG_ARCH" != "arm" ]; then
3910 # detect mips_dsp support
3911 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3917 # detect mips_dspr2 support
3918 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3924 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3927 if [ "$CFG_ZLIB" = "no" ]; then
3928 # Note: Qt no longer support builds without zlib
3929 # So we force a "no" to be "auto" here.
3930 # If you REALLY really need no zlib support, you can still disable
3931 # it by doing the following:
3932 # add "no-zlib" to mkspecs/qconfig.pri
3933 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3935 # There's no guarantee that Qt will build under those conditions
3940 if [ "$CFG_ZLIB" = "auto" ]; then
3941 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
3948 if [ "$CFG_LARGEFILE" = "auto" ]; then
3949 #Large files should be enabled for all Linux systems
3953 if [ "$CFG_GUI" = "no" ]; then
3954 QPA_PLATFORM_GUARD=no
3957 # detect how jpeg should be built
3958 if [ "$CFG_JPEG" = "auto" ]; then
3959 if [ "$CFG_SHARED" = "yes" ]; then
3966 if [ "$CFG_LIBJPEG" = "auto" ]; then
3967 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
3974 # detect how gif should be built
3975 if [ "$CFG_GIF" = "auto" ]; then
3976 if [ "$CFG_SHARED" = "yes" ]; then
3984 if [ "$CFG_LIBPNG" = "auto" ]; then
3985 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
3992 # detect accessibility
3993 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3994 CFG_ACCESSIBILITY=yes
3997 if [ "$CFG_EGLFS" = "yes" ]; then
3998 if [ "$CFG_EGL" = "no" ]; then
3999 echo "The EGLFS plugin requires EGL support and cannot be built"
4002 if [ "$CFG_OPENGL" != "es2" ]; then
4003 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4010 if [ "$CFG_KMS" = "yes" ]; then
4011 if [ "$CFG_EGL" = "no" ]; then
4012 echo "The KMS plugin requires EGL support and cannot be built"
4015 if [ "$CFG_OPENGL" != "es2" ]; then
4016 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4021 # auto-detect SQL-modules support
4022 for _SQLDR in $CFG_SQL_AVAILABLE; do
4025 if [ "$CFG_SQL_mysql" != "no" ]; then
4026 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4027 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4028 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4029 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4030 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4031 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4032 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4034 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4035 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4036 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4037 echo " You need MySql 4 or higher."
4038 echo " If you believe this message is in error you may use the continue"
4039 echo " switch (-continue) to $0 to continue."
4044 QT_LFLAGS_MYSQL_R=""
4048 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
4049 QMakeVar add CONFIG use_libmysqlclient_r
4050 if [ "$CFG_SQL_mysql" = "auto" ]; then
4051 CFG_SQL_mysql=plugin
4053 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4054 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
4055 if [ "$CFG_SQL_mysql" = "auto" ]; then
4056 CFG_SQL_mysql=plugin
4059 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4060 echo "MySQL support cannot be enabled due to functionality tests!"
4061 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4062 echo " If you believe this message is in error you may use the continue"
4063 echo " switch (-continue) to $0 to continue."
4068 QT_LFLAGS_MYSQL_R=""
4076 if [ "$CFG_SQL_psql" != "no" ]; then
4077 # Be careful not to use native pg_config when cross building.
4078 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4079 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4080 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4082 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4083 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4084 # But, respect PSQL_LIBS if set
4085 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4086 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
4087 if [ "$CFG_SQL_psql" = "auto" ]; then
4091 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4092 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4093 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4094 echo " If you believe this message is in error you may use the continue"
4095 echo " switch (-continue) to $0 to continue."
4106 if [ "$CFG_SQL_odbc" != "no" ]; then
4107 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
4108 if [ "$CFG_SQL_odbc" = "auto" ]; then
4112 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
4113 QT_LFLAGS_ODBC="-liodbc"
4114 if [ "$CFG_SQL_odbc" = "auto" ]; then
4118 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4119 echo "ODBC support cannot be enabled due to functionality tests!"
4120 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4121 echo " If you believe this message is in error you may use the continue"
4122 echo " switch (-continue) to $0 to continue."
4132 if [ "$CFG_SQL_oci" != "no" ]; then
4133 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
4134 if [ "$CFG_SQL_oci" = "auto" ]; then
4138 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4139 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4140 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4141 echo " If you believe this message is in error you may use the continue"
4142 echo " switch (-continue) to $0 to continue."
4151 if [ "$CFG_SQL_tds" != "no" ]; then
4152 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4153 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4154 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
4155 if [ "$CFG_SQL_tds" = "auto" ]; then
4159 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4160 echo "TDS support cannot be enabled due to functionality tests!"
4161 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4162 echo " If you believe this message is in error you may use the continue"
4163 echo " switch (-continue) to $0 to continue."
4172 if [ "$CFG_SQL_db2" != "no" ]; then
4173 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
4174 if [ "$CFG_SQL_db2" = "auto" ]; then
4178 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4179 echo "ODBC support cannot be enabled due to functionality tests!"
4180 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4181 echo " If you believe this message is in error you may use the continue"
4182 echo " switch (-continue) to $0 to continue."
4191 if [ "$CFG_SQL_ibase" != "no" ]; then
4192 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
4193 if [ "$CFG_SQL_ibase" = "auto" ]; then
4194 CFG_SQL_ibase=plugin
4197 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4198 echo "InterBase support cannot be enabled due to functionality tests!"
4199 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4200 echo " If you believe this message is in error you may use the continue"
4201 echo " switch (-continue) to $0 to continue."
4210 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4211 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
4212 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4213 CFG_SQL_sqlite2=plugin
4216 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4217 echo "SQLite2 support cannot be enabled due to functionality tests!"
4218 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4219 echo " If you believe this message is in error you may use the continue"
4220 echo " switch (-continue) to $0 to continue."
4229 if [ "$CFG_SQL_sqlite" != "no" ]; then
4230 SQLITE_AUTODETECT_FAILED="no"
4231 if [ "$CFG_SQLITE" = "system" ]; then
4232 if [ -n "$PKG_CONFIG" ]; then
4233 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4234 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4237 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4239 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
4240 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4241 CFG_SQL_sqlite=plugin
4243 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4245 SQLITE_AUTODETECT_FAILED="yes"
4248 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4249 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4250 CFG_SQL_sqlite=plugin
4253 SQLITE_AUTODETECT_FAILED="yes"
4257 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4258 echo "SQLite support cannot be enabled due to functionality tests!"
4259 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4260 echo " If you believe this message is in error you may use the continue"
4261 echo " switch (-continue) to $0 to continue."
4267 if [ "$OPT_VERBOSE" = "yes" ]; then
4268 echo "unknown SQL driver: $_SQLDR"
4274 # auto-detect NIS support
4275 if [ "$CFG_NIS" != "no" ]; then
4276 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
4279 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4280 echo "NIS 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 CUPS support
4292 if [ "$CFG_CUPS" != "no" ]; then
4293 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
4296 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4297 echo "Cups support cannot be enabled due to functionality tests!"
4298 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4299 echo " If you believe this message is in error you may use the continue"
4300 echo " switch (-continue) to $0 to continue."
4308 # auto-detect iconv(3) support
4309 if [ "$CFG_ICONV" != "no" ]; then
4310 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4312 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
4314 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
4316 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
4319 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4320 echo "Iconv support cannot be enabled due to functionality tests!"
4321 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4322 echo " If you believe this message is in error you may use the continue"
4323 echo " switch (-continue) to $0 to continue."
4331 # auto-detect libdbus-1 support
4332 if [ "$CFG_DBUS" != "no" ]; then
4333 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4334 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4335 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4337 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
4338 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4339 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4340 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4342 if [ "$CFG_DBUS" = "auto" ]; then
4344 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4345 # CFG_DBUS is "yes" or "linked" here
4347 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4348 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4349 echo " If you believe this message is in error you may use the continue"
4350 echo " switch (-continue) to $0 to continue."
4356 # auto-detect Glib support
4357 if [ "$CFG_GLIB" != "no" ]; then
4358 if [ -n "$PKG_CONFIG" ]; then
4359 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4360 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4362 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
4364 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4365 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4367 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4368 echo "Glib support cannot be enabled due to functionality tests!"
4369 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4370 echo " If you believe this message is in error you may use the continue"
4371 echo " switch (-continue) to $0 to continue."
4379 # auto-detect GTK style support
4380 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4381 if [ -n "$PKG_CONFIG" ]; then
4382 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4383 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4385 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4387 QT_CONFIG="$QT_CONFIG gtkstyle"
4388 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4389 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4391 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4392 echo "Gtk theme support cannot be enabled due to functionality tests!"
4393 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4394 echo " If you believe this message is in error you may use the continue"
4395 echo " switch (-continue) to $0 to continue."
4401 elif [ "$CFG_GLIB" = "no" ]; then
4406 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4407 if [ -n "$PKG_CONFIG" ]; then
4408 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4409 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4411 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
4413 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4414 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4416 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4417 echo "Gstreamer support cannot be enabled due to functionality tests!"
4418 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4419 echo " If you believe this message is in error you may use the continue"
4420 echo " switch (-continue) to $0 to continue."
4426 elif [ "$CFG_GLIB" = "no" ]; then
4430 # auto-detect libicu support
4431 if [ "$CFG_ICU" != "no" ]; then
4432 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
4433 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4435 if [ "$CFG_ICU" = "auto" ]; then
4437 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4440 echo "The ICU library support cannot be enabled."
4441 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4442 echo " If you believe this message is in error you may use the continue"
4443 echo " switch (-continue) to $0 to continue."
4449 # Auto-detect PulseAudio support
4450 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4451 if [ -n "$PKG_CONFIG" ]; then
4452 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4453 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4455 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
4457 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4458 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4460 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4461 echo "PulseAudio support cannot be enabled due to functionality tests!"
4462 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4463 echo " If you believe this message is in error you may use the continue"
4464 echo " switch (-continue) to $0 to continue."
4473 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4474 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4475 if [ "$CFG_GUI" = "no" ]; then
4476 if [ "$CFG_OPENGL" = "auto" ]; then
4479 if [ "$CFG_OPENGL" != "no" ]; then
4480 echo "OpenGL enabled, but GUI disabled."
4481 echo " You might need to either enable the GUI or disable OpenGL"
4485 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4486 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
4488 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
4491 if [ "$CFG_OPENGL" = "yes" ]; then
4492 echo "All the OpenGL functionality tests failed!"
4493 echo " You might need to modify the include and library search paths by editing"
4494 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4495 echo " ${XQMAKESPEC}."
4502 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4503 if [ "$CFG_OPENGL" = "desktop" ]; then
4504 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4505 if [ $? != "0" ]; then
4506 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4513 elif [ "$CFG_OPENGL" = "es2" ]; then
4515 "$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
4516 if [ $? != "0" ]; then
4517 echo "The OpenGL ES 2.0 functionality test failed!"
4518 echo " You might need to modify the include and library search paths by editing"
4519 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4520 echo " ${XQMAKESPEC}."
4523 elif [ "$CFG_OPENGL" = "desktop" ]; then
4524 # Desktop OpenGL support
4525 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4526 if [ $? != "0" ]; then
4527 echo "The OpenGL functionality test failed!"
4528 echo " You might need to modify the include and library search paths by editing"
4529 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4530 echo " ${XQMAKESPEC}."
4535 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4536 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4537 if [ $? != "0" ]; then
4538 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4545 fi # X11/MINGW OpenGL
4547 if [ "$BUILD_ON_MAC" = "yes" ]; then
4548 if [ "$CFG_COREWLAN" = "auto" ]; then
4549 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
4557 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4558 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4559 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
4561 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
4564 if [ "$CFG_OPENGL" = "yes" ]; then
4565 echo "All the OpenGL functionality tests failed!"
4566 echo " You might need to modify the include and library search paths by editing"
4567 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4568 echo " ${XQMAKESPEC}."
4573 elif [ "$CFG_OPENGL" = "es2" ]; then
4575 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4576 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4577 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4578 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4579 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4580 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4581 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4582 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4585 "$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
4586 if [ $? != "0" ]; then
4587 echo "The OpenGL ES 2.0 functionality test failed!"
4588 echo " You might need to modify the include and library search paths by editing"
4589 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4590 echo " ${XQMAKESPEC}."
4593 elif [ "$CFG_OPENGL" = "desktop" ]; then
4594 # Desktop OpenGL support
4595 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4596 if [ $? != "0" ]; then
4597 echo "The OpenGL functionality test failed!"
4598 echo " You might need to modify the include and library search paths by editing"
4599 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4600 echo " ${XQMAKESPEC}."
4605 # auto-detect FontConfig support
4606 if [ "$CFG_FONTCONFIG" != "no" ]; then
4607 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4608 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4609 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4611 QT_CFLAGS_FONTCONFIG=
4612 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4614 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
4615 QT_CONFIG="$QT_CONFIG fontconfig"
4616 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4617 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4619 CFG_LIBFREETYPE=system
4626 # Save these for a check later
4627 ORIG_CFG_XCB="$CFG_XCB"
4628 ORIG_CFG_EGLFS="$CFG_EGLFS"
4629 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4630 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4631 ORIG_CFG_KMS="$CFG_KMS"
4633 if [ "$CFG_LIBUDEV" != "no" ]; then
4634 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4635 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4636 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4637 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4638 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4640 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
4642 QT_CONFIG="$QT_CONFIG libudev"
4643 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4644 echo "The libudev functionality test failed!"
4650 if [ "$CFG_LIBUDEV" = "no" ]; then
4651 QMakeVar add DEFINES QT_NO_LIBUDEV
4654 if [ "$CFG_EVDEV" != "no" ]; then
4655 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
4657 QT_CONFIG="$QT_CONFIG evdev"
4658 elif [ "$CFG_EVDEV" = "yes" ]; then
4659 echo "The evdev functionality test failed!"
4665 if [ "$CFG_EVDEV" = "no" ]; then
4666 QMakeVar add DEFINES QT_NO_EVDEV
4669 # Check we actually have X11 :-)
4670 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
4671 QT_CONFIG="$QT_CONFIG xlib"
4674 # auto-detect Xrender support
4675 if [ "$CFG_XRENDER" != "no" ]; then
4676 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
4678 QT_CONFIG="$QT_CONFIG xrender"
4680 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4681 echo "Xrender support cannot be enabled due to functionality tests!"
4682 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4683 echo " If you believe this message is in error you may use the continue"
4684 echo " switch (-continue) to $0 to continue."
4692 if [ "$CFG_XCB" != "no" ]; then
4693 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4694 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4695 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4697 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
4699 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
4700 QT_CONFIG="$QT_CONFIG xcb-render"
4703 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
4705 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4708 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
4709 QT_CONFIG="$QT_CONFIG xcb-xlib"
4712 # auto-detect XInput2 support. Needed by xcb too.
4713 if [ "$CFG_XINPUT2" != "no" ]; then
4714 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
4718 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4719 echo "XInput2 support cannot be enabled due to functionality tests!"
4720 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4721 echo " If you believe this message is in error you may use the continue"
4722 echo " switch (-continue) to $0 to continue."
4730 if [ "$CFG_XCB" = "yes" ]; then
4731 echo "The XCB test failed!"
4732 echo " You might need to install dependency packages."
4733 echo " See src/plugins/platforms/xcb/README."
4739 if [ "$CFG_XCB" = "no" ]; then
4740 QMakeVar add DEFINES QT_NO_XCB
4743 if [ "$CFG_DIRECTFB" != "no" ]; then
4744 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4745 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4746 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4747 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
4749 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4750 echo " DirectFB support cannot be enabled due to functionality tests!"
4751 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4752 echo " If you believe this message is in error you may use the continue"
4753 echo " switch (-continue) to $0 to continue."
4763 if [ "$CFG_LINUXFB" != "no" ]; then
4764 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/linuxfb" "LinuxFB" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4766 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4767 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4768 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4769 echo " If you believe this message is in error you may use the continue"
4770 echo " switch (-continue) to $0 to continue."
4777 if [ "$CFG_KMS" != "no" ]; then
4778 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/qpa/kms" "KMS" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4780 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4781 echo " KMS support cannot be enabled due to functionality tests!"
4782 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4783 echo " If you believe this message is in error you may use the continue"
4784 echo " switch (-continue) to $0 to continue."
4791 # Detect libxkbcommon
4792 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4793 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4794 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4795 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4796 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4798 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4802 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4803 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4804 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4805 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4806 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4807 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4808 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4809 fi # detect EGL support
4810 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
4812 elif [ "$CFG_EGL" = "yes" ]; then
4813 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4814 echo " You might need to modify the include and library search paths by editing"
4815 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4820 elif [ "$CFG_OPENGL" = "desktop" ]; then
4821 if [ "$CFG_EGL" = "yes" ]; then
4822 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4823 echo "Either disable EGL support or enable OpenGL ES support."
4829 if [ "$CFG_EGLFS" != "no" ]; then
4830 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4831 CFG_EGLFS="$CFG_EGL"
4837 if [ "$CFG_KMS" = "yes" ]; then
4838 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4845 # Determine the default QPA platform
4846 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4848 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4849 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4850 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4851 QT_QPA_DEFAULT_PLATFORM="windows"
4852 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4853 QT_QPA_DEFAULT_PLATFORM="cocoa"
4854 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4855 QT_QPA_DEFAULT_PLATFORM="qnx"
4857 QT_QPA_DEFAULT_PLATFORM="xcb"
4862 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4863 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4864 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4865 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4867 if [ "$CFG_DIRECTFB" = "yes" ]; then
4868 QT_CONFIG="$QT_CONFIG directfb"
4869 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4870 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4872 if [ "$CFG_LINUXFB" = "yes" ]; then
4873 QT_CONFIG="$QT_CONFIG linuxfb"
4875 if [ "$CFG_KMS" = "yes" ]; then
4876 QT_CONFIG="$QT_CONFIG kms"
4879 if [ "$BUILD_ON_MAC" = "yes" ]; then
4880 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
4881 QT_CONFIG="$QT_CONFIG coreservices"
4883 QMakeVar add DEFINES QT_NO_CORESERVICES
4887 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4888 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4889 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4890 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4891 echo "No QPA platform plugin enabled!"
4892 echo " If you really want to build without a QPA platform plugin you must pass"
4893 echo " -no-qpa-platform-guard to configure. Doing this will"
4894 echo " produce a Qt that can not run GUI applications."
4895 echo " The dependencies needed for xcb to build are listed in"
4896 echo " src/plugins/platforms/xcb/README"
4903 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4904 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4905 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
4906 CFG_LIBFREETYPE=system
4912 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS &&
4913 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4914 echo "STL functionality check failed! Cannot build Qt with this STL library."
4915 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4920 # detect POSIX clock_gettime()
4921 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4922 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
4923 CFG_CLOCK_GETTIME=yes
4925 CFG_CLOCK_GETTIME=no
4929 # detect POSIX monotonic clocks
4930 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4931 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
4932 CFG_CLOCK_MONOTONIC=yes
4934 CFG_CLOCK_MONOTONIC=no
4936 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4937 CFG_CLOCK_MONOTONIC=no
4941 if [ "$CFG_MREMAP" = "auto" ]; then
4942 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
4949 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4950 if [ "$CFG_GETADDRINFO" != "no" ]; then
4951 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
4954 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4955 echo "getaddrinfo support cannot be enabled due to functionality tests!"
4956 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4957 echo " If you believe this message is in error you may use the continue"
4958 echo " switch (-continue) to $0 to continue."
4966 # find if the platform provides inotify
4967 if [ "$CFG_INOTIFY" != "no" ]; then
4968 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
4971 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4972 echo "inotify support cannot be enabled due to functionality tests!"
4973 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4974 echo " If you believe this message is in error you may use the continue"
4975 echo " switch (-continue) to $0 to continue."
4983 # find if the platform provides if_nametoindex (ipv6 interface name support)
4984 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4985 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
4988 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4989 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4990 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4991 echo " If you believe this message is in error you may use the continue"
4992 echo " switch (-continue) to $0 to continue."
5000 # find if the platform provides getifaddrs (network interface enumeration)
5001 if [ "$CFG_GETIFADDRS" != "no" ]; then
5002 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
5005 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5006 echo "getifaddrs support cannot be enabled due to functionality tests!"
5007 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5008 echo " If you believe this message is in error you may use the continue"
5009 echo " switch (-continue) to $0 to continue."
5018 if [ "$CFG_OPENSSL" != "no" ]; then
5019 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
5020 if [ "$CFG_OPENSSL" = "auto" ]; then
5024 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5025 echo "OpenSSL support cannot be enabled due to functionality tests!"
5026 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5027 echo " If you believe this message is in error you may use the continue"
5028 echo " switch (-continue) to $0 to continue."
5037 if [ "$CFG_PCRE" != "qt" ]; then
5038 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
5041 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5042 echo "PCRE support cannot be enabled due to functionality tests!"
5043 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5044 echo " If you believe this message is in error you may use the continue"
5045 echo " switch (-continue) to $0 to continue."
5053 # detect OpenVG support
5054 if [ "$CFG_OPENVG" != "no" ]; then
5055 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
5056 if [ "$CFG_OPENVG" = "auto" ]; then
5059 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
5060 if [ "$CFG_OPENVG" = "auto" ]; then
5063 CFG_OPENVG_ON_OPENGL=yes
5064 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
5065 if [ "$CFG_OPENVG" = "auto" ]; then
5068 CFG_OPENVG_LC_INCLUDES=yes
5069 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
5070 if [ "$CFG_OPENVG" = "auto" ]; then
5073 CFG_OPENVG_LC_INCLUDES=yes
5074 CFG_OPENVG_ON_OPENGL=yes
5076 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5077 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5078 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5079 echo " If you believe this message is in error you may use the continue"
5080 echo " switch (-continue) to $0 to continue."
5086 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
5087 CFG_OPENVG_SHIVA=yes
5091 if [ "$CFG_ALSA" = "auto" ]; then
5092 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
5099 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5100 if [ "$CFG_ARCH" = "arm" ]; then
5101 "$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
5102 if [ $? != "0" ]; then
5103 CFG_JAVASCRIPTCORE_JIT=no
5106 case "$XPLATFORM" in
5108 CFG_JAVASCRIPTCORE_JIT=no
5114 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5115 QMakeVar set JAVASCRIPTCORE_JIT yes
5116 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5117 QMakeVar set JAVASCRIPTCORE_JIT no
5120 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5121 CFG_AUDIO_BACKEND=yes
5124 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5125 echo "Warning: largefile support cannot be disabled for win32."
5129 #-------------------------------------------------------------------------------
5130 # ask for all that hasn't been auto-detected or specified in the arguments
5131 #-------------------------------------------------------------------------------
5133 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5135 # disable accessibility
5136 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5137 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5139 QT_CONFIG="$QT_CONFIG accessibility"
5143 if [ "$CFG_EGL" = "yes" ]; then
5144 QT_CONFIG="$QT_CONFIG egl"
5146 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5150 if [ "$CFG_EGLFS" = "yes" ]; then
5151 QT_CONFIG="$QT_CONFIG eglfs"
5153 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5157 if [ "$CFG_OPENVG" = "no" ]; then
5158 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5160 QT_CONFIG="$QT_CONFIG openvg"
5161 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5162 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5164 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5165 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5167 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5168 QT_CONFIG="$QT_CONFIG shivavg"
5169 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5174 if [ "$CFG_OPENGL" = "no" ]; then
5175 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5177 QT_CONFIG="$QT_CONFIG opengl"
5180 if [ "$CFG_OPENGL" = "es2" ]; then
5181 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5184 if [ "$CFG_OPENGL" = "es2" ]; then
5185 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5186 QT_CONFIG="$QT_CONFIG opengles2"
5189 # build up the variables for output
5190 if [ "$CFG_DEBUG" = "yes" ]; then
5191 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5192 elif [ "$CFG_DEBUG" = "no" ]; then
5193 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5195 if [ "$CFG_SHARED" = "yes" ]; then
5196 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5197 QT_CONFIG="$QT_CONFIG shared"
5198 elif [ "$CFG_SHARED" = "no" ]; then
5199 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5200 QT_CONFIG="$QT_CONFIG static"
5203 #FIXME: qpa is implicit this should all be removed
5204 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5205 QT_CONFIG="$QT_CONFIG qpa"
5206 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5207 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5209 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5210 # Do not set this here for Windows. Let qmake do it so
5211 # debug and release precompiled headers are kept separate.
5212 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5214 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5215 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5216 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5217 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5218 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5219 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5221 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5222 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5224 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5225 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5226 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5227 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5228 QMakeVar add QMAKE_CFLAGS -g
5229 QMakeVar add QMAKE_CXXFLAGS -g
5230 QT_CONFIG="$QT_CONFIG separate_debug_info"
5232 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5233 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5235 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5236 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5237 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5238 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5239 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5240 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5241 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5242 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5243 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5244 if [ "$CFG_ARCH" = "mips" ]; then
5245 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5246 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5248 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5249 QT_CONFIG="$QT_CONFIG clock-gettime"
5251 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5252 QT_CONFIG="$QT_CONFIG clock-monotonic"
5254 if [ "$CFG_MREMAP" = "yes" ]; then
5255 QT_CONFIG="$QT_CONFIG mremap"
5257 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5258 QT_CONFIG="$QT_CONFIG getaddrinfo"
5260 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5261 QT_CONFIG="$QT_CONFIG ipv6ifname"
5263 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5264 QT_CONFIG="$QT_CONFIG getifaddrs"
5266 if [ "$CFG_INOTIFY" = "yes" ]; then
5267 QT_CONFIG="$QT_CONFIG inotify"
5269 if [ "$CFG_LIBJPEG" = "no" ]; then
5271 elif [ "$CFG_LIBJPEG" = "system" ]; then
5272 QT_CONFIG="$QT_CONFIG system-jpeg"
5274 if [ "$CFG_JPEG" = "no" ]; then
5275 QT_CONFIG="$QT_CONFIG no-jpeg"
5276 elif [ "$CFG_JPEG" = "yes" ]; then
5277 QT_CONFIG="$QT_CONFIG jpeg"
5279 if [ "$CFG_LIBPNG" = "no" ]; then
5282 if [ "$CFG_LIBPNG" = "system" ]; then
5283 QT_CONFIG="$QT_CONFIG system-png"
5285 if [ "$CFG_PNG" = "no" ]; then
5286 QT_CONFIG="$QT_CONFIG no-png"
5287 elif [ "$CFG_PNG" = "yes" ]; then
5288 QT_CONFIG="$QT_CONFIG png"
5290 if [ "$CFG_GIF" = "no" ]; then
5291 QT_CONFIG="$QT_CONFIG no-gif"
5292 elif [ "$CFG_GIF" = "yes" ]; then
5293 QT_CONFIG="$QT_CONFIG gif"
5295 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5296 QT_CONFIG="$QT_CONFIG no-freetype"
5297 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5298 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5299 QT_CONFIG="$QT_CONFIG system-freetype"
5301 QT_CONFIG="$QT_CONFIG freetype"
5303 if [ "$CFG_GUI" = "auto" ]; then
5306 if [ "$CFG_GUI" = "no" ]; then
5307 QT_CONFIG="$QT_CONFIG no-gui"
5310 if [ "$CFG_WIDGETS" = "no" ]; then
5311 QT_CONFIG="$QT_CONFIG no-widgets"
5312 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5315 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5316 #On Mac we implicitly link against libz, so we
5317 #never use the 3rdparty stuff.
5318 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5320 if [ "$CFG_ZLIB" = "yes" ]; then
5321 QT_CONFIG="$QT_CONFIG zlib"
5322 elif [ "$CFG_ZLIB" = "system" ]; then
5323 QT_CONFIG="$QT_CONFIG system-zlib"
5326 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5327 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5328 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5329 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5330 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5331 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5332 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5333 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5334 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5335 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5336 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5337 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5338 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5339 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5341 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5342 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5343 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5345 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5346 if [ "$CFG_RPATH" = "yes" ]; then
5347 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5349 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5350 if [ -n "$RPATH_FLAGS" ]; then
5352 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5356 elif [ "$CFG_RPATH" = "yes" ]; then
5357 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5361 if [ -n "$RPATH_FLAGS" ]; then
5362 # add the user defined rpaths
5363 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5366 if [ "$CFG_RPATH" = "yes" ]; then
5367 QT_CONFIG="$QT_CONFIG rpath"
5370 if [ '!' -z "$I_FLAGS" ]; then
5371 # add the user define include paths
5372 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5373 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5376 if [ '!' -z "$W_FLAGS" ]; then
5377 # add the user defined warning flags
5378 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5379 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5380 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5383 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5384 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5385 # Follow default behavior of configure.exe by overriding with "rtti".
5386 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5389 if [ "$CFG_ALSA" = "yes" ]; then
5390 QT_CONFIG="$QT_CONFIG alsa"
5393 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5394 QT_CONFIG="$QT_CONFIG pulseaudio"
5397 if [ "$CFG_COREWLAN" = "yes" ]; then
5398 QT_CONFIG="$QT_CONFIG corewlan"
5401 if [ "$CFG_ICU" = "yes" ]; then
5402 QT_CONFIG="$QT_CONFIG icu"
5405 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5406 QT_CONFIG="$QT_CONFIG force_asserts"
5409 if [ "$CFG_PCRE" = "qt" ]; then
5410 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5414 # Some Qt modules are too advanced in C++ for some old compilers
5415 # Detect here the platforms where they are known to work.
5417 # See Qt documentation for more information on which features are
5418 # supported and on which compilers.
5420 canBuildQtConcurrent="yes"
5421 canUseV8Snapshot="yes"
5423 case "$XPLATFORM" in
5425 # PA-RISC's assembly is too limited
5426 # gcc 3.4 on that platform can't build QtXmlPatterns
5427 # the assembly it generates cannot be compiled
5429 # Check gcc's version
5430 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5434 canBuildQtXmlPatterns="no"
5438 canBuildQtXmlPatterns="no"
5442 unsupported/vxworks-*-g++*)
5445 unsupported/vxworks-*-dcc*)
5447 canBuildQtXmlPatterns="no"
5450 # Check gcc's version
5451 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5459 canBuildQtXmlPatterns="no"
5464 # Check the compiler version
5465 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5468 canBuildQtXmlPatterns="no"
5469 canBuildQtConcurrent="no"
5473 canBuildQtConcurrent="no"
5479 canBuildQtXmlPatterns="no"
5480 canBuildQtConcurrent="no"
5486 # Get the xlC version
5487 cat > xlcver.c <<EOF
5491 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5496 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5497 xlcver=`./xlcver 2>/dev/null`
5500 if [ "$OPT_VERBOSE" = "yes" ]; then
5501 if [ -n "$xlcver" ]; then
5502 echo Found IBM xlC version: $xlcver.
5504 echo Could not determine IBM xlC version, assuming oldest supported.
5511 canBuildQtXmlPatterns="no"
5512 canBuildQtConcurrent="no"
5516 canBuildQtConcurrent="no"
5522 canBuildQtConcurrent="no"
5526 if [ "$CFG_GUI" = "no" ]; then
5527 # WebKit requires QtGui
5531 if [ "$CFG_SHARED" = "no" ]; then
5533 echo "WARNING: Using static linking will disable the WebKit module."
5538 CFG_CONCURRENT="yes"
5539 if [ "$canBuildQtConcurrent" = "no" ]; then
5540 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5543 QT_CONFIG="$QT_CONFIG concurrent"
5547 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5548 QT_CONFIG="$QT_CONFIG audio-backend"
5552 if [ "$CFG_WEBKIT" = "debug" ]; then
5553 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5557 QT_CONFIG="$QT_CONFIG v8"
5558 # Detect snapshot support
5559 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5560 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5563 *) canUseV8Snapshot="no"
5567 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5568 # QEMU crashes when building inside Scratchbox with an ARM target
5569 canUseV8Snapshot="no"
5572 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5573 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5575 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5576 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5579 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5580 QT_CONFIG="$QT_CONFIG v8snapshot"
5584 if [ "$CFG_QML_DEBUG" = "no" ]; then
5585 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5588 case "$QMAKE_CONF_COMPILER" in
5591 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5593 case "$COMPILER_VERSION" in
5595 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5596 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5597 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5600 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5601 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5602 QT_GCC_PATCH_VERSION=0
5612 #-------------------------------------------------------------------------------
5613 # part of configuration information goes into qconfig.h
5614 #-------------------------------------------------------------------------------
5616 case "$CFG_QCONFIG" in
5618 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5621 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5622 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5623 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5624 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5625 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5626 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5628 echo "#endif" >>"$tmpconfig"
5632 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5636 # define QT_EDITION $QT_EDITION
5640 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5641 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5643 if [ "$CFG_SHARED" = "no" ]; then
5644 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5645 /* Qt was configured for a static build */
5646 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5653 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5654 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5657 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5658 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5661 if [ "$BUILD_ON_MAC" = "yes" ]; then
5662 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5663 #if defined(__LP64__)
5664 # define QT_POINTER_SIZE 8
5666 # define QT_POINTER_SIZE 4
5670 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5671 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5674 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5675 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5676 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5680 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5682 if [ "$CFG_DEV" = "yes" ]; then
5683 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5686 # Add QPA to config.h
5687 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5689 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5690 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5693 # Add turned on SQL drivers
5694 for DRIVER in $CFG_SQL_AVAILABLE; do
5695 eval "VAL=\$CFG_SQL_$DRIVER"
5698 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5699 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5700 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5703 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5709 QMakeVar set sql-drivers "$SQL_DRIVERS"
5710 QMakeVar set sql-plugins "$SQL_PLUGINS"
5712 # Add other configuration options to the qconfig.h file
5713 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5714 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5715 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5716 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5717 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5719 # X11/Unix/Mac only configs
5720 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5721 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5722 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5723 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5724 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5725 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5726 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5727 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5728 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5729 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5730 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5731 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5732 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5733 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5735 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5736 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5737 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5738 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5739 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5740 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5741 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5742 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5743 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5744 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5745 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5746 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5747 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5749 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5750 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5751 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5752 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5753 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5754 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5755 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5756 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5758 # sort QCONFIG_FLAGS for neatness if we can
5759 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5760 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5762 if [ -n "$QCONFIG_FLAGS" ]; then
5763 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5764 #ifndef QT_BOOTSTRAPPED
5767 for cfg in $QCONFIG_FLAGS; do
5768 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5769 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5770 # figure out define logic, so we can output the correct
5771 # ifdefs to override the global defines in a project
5773 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5774 # QT_NO_option can be forcefully turned on by QT_option
5775 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5776 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5777 # QT_option can be forcefully turned off by QT_NO_option
5778 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5781 if [ -z $cfgdNeg ]; then
5782 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5789 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5790 #if defined($cfgd) && defined($cfgdNeg)
5792 #elif !defined($cfgd) && !defined($cfgdNeg)
5799 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5800 #endif // QT_BOOTSTRAPPED
5805 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5806 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5807 #define QT_VISIBILITY_AVAILABLE
5812 if [ -n "$QT_LIBINFIX" ]; then
5813 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5814 #define QT_LIBINFIX "$QT_LIBINFIX"
5819 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5821 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5822 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5823 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5825 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5826 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5827 chmod -w "$outpath/src/corelib/global/qconfig.h"
5828 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5829 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5833 #-------------------------------------------------------------------------------
5834 # save configuration into qconfig.pri
5835 #-------------------------------------------------------------------------------
5836 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5837 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5838 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5839 if [ "$CFG_DEBUG" = "yes" ]; then
5840 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5841 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5842 QT_CONFIG="$QT_CONFIG release"
5844 QT_CONFIG="$QT_CONFIG debug"
5845 elif [ "$CFG_DEBUG" = "no" ]; then
5846 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5847 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5848 QT_CONFIG="$QT_CONFIG debug"
5850 QT_CONFIG="$QT_CONFIG release"
5852 if [ "$CFG_FRAMEWORK" = "no" ]; then
5853 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5855 QT_CONFIG="$QT_CONFIG qt_framework"
5856 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5858 if [ "$CFG_DEV" = "yes" ]; then
5859 QT_CONFIG="$QT_CONFIG private_tests"
5862 cat >>"$QTCONFIG.tmp" <<EOF
5864 CONFIG += $QTCONFIG_CONFIG
5866 QT_HOST_ARCH = $CFG_HOST_ARCH
5867 QT_CPU_FEATURES = $CFG_CPUFEATURES
5868 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5869 QT_EDITION = $Edition
5870 QT_CONFIG += $QT_CONFIG
5873 QT_VERSION = $QT_VERSION
5874 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5875 QT_MINOR_VERSION = $QT_MINOR_VERSION
5876 QT_PATCH_VERSION = $QT_PATCH_VERSION
5879 QT_LIBINFIX = $QT_LIBINFIX
5880 QT_NAMESPACE = $QT_NAMESPACE
5884 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5885 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5886 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5887 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5888 echo >> "$QTCONFIG.tmp"
5891 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5892 echo "# sysroot" >>"$QTCONFIG.tmp"
5893 echo "!host_build {" >>"$QTCONFIG.tmp"
5894 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5895 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5896 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5897 echo "}" >> "$QTCONFIG.tmp"
5898 echo >> "$QTCONFIG.tmp"
5900 if [ -n "$RPATH_FLAGS" ]; then
5901 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5903 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5904 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5905 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5906 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5909 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5910 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5911 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5914 # replace qconfig.pri if it differs from the newly created temp file
5915 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5916 rm -f "$QTCONFIG.tmp"
5918 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5921 #-------------------------------------------------------------------------------
5922 # save configuration into qmodule.pri
5923 #-------------------------------------------------------------------------------
5924 QTMODULE="$outpath/mkspecs/qmodule.pri"
5926 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5927 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
5929 if [ -n "$QT_CFLAGS_PSQL" ]; then
5930 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5932 if [ -n "$QT_LFLAGS_PSQL" ]; then
5933 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5935 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5936 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5938 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5939 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5941 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5942 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5944 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5945 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5947 if [ -n "$QT_LFLAGS_ODBC" ]; then
5948 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5950 if [ -n "$QT_LFLAGS_TDS" ]; then
5951 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5954 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5955 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5958 #dump in the OPENSSL_LIBS info
5959 if [ '!' -z "$OPENSSL_LIBS" ]; then
5960 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5961 elif [ "$CFG_OPENSSL" = "linked" ]; then
5962 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5965 #dump in the SDK info
5966 if [ '!' -z "$CFG_SDK" ]; then
5967 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5971 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5972 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5974 # replace qmodule.pri if it differs from the newly created temp file
5975 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5976 rm -f "$QTMODULE.tmp"
5978 mv -f "$QTMODULE.tmp" "$QTMODULE"
5981 #-------------------------------------------------------------------------------
5982 # save configuration into .qmake.cache
5983 #-------------------------------------------------------------------------------
5985 CACHEFILE="$outpath/.qmake.cache"
5986 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5987 cat >>"$CACHEFILE.tmp" <<EOF
5989 QT_SOURCE_TREE = \$\$quote($relpath)
5990 QT_BUILD_TREE = \$\$quote($outpath)
5992 include(\$\$PWD/mkspecs/qmodule.pri)
5993 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5997 # replace .qmake.cache if it differs from the newly created temp file
5998 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5999 rm -f "$CACHEFILE.tmp"
6001 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6004 #-------------------------------------------------------------------------------
6005 # give feedback on configuration
6006 #-------------------------------------------------------------------------------
6007 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6010 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6011 echo "Build type: $PLATFORM"
6013 echo "Building on: $PLATFORM"
6014 echo "Building for: $XPLATFORM"
6017 # the missing space before $CFG_FEATURES is intentional
6018 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6019 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6021 if [ -n "$PLATFORM_NOTES" ]; then
6022 echo "Platform notes:"
6023 echo "$PLATFORM_NOTES"
6028 if [ "$OPT_VERBOSE" = "yes" ]; then
6029 echo $ECHO_N "qmake vars .......... $ECHO_C"
6030 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6031 echo "qmake switches ......... $QMAKE_SWITCHES"
6034 echo "Build .................. $CFG_BUILD_PARTS"
6035 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6036 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6037 echo "Debug .................. yes (combined)"
6038 if [ "$CFG_DEBUG" = "yes" ]; then
6039 echo "Default Link ........... debug"
6041 echo "Default Link ........... release"
6044 echo "Debug .................. $CFG_DEBUG"
6046 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6047 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6049 echo "C++11 support .......... $CFG_CXX11"
6050 if [ -n "$PKG_CONFIG" ]; then
6051 echo "pkg-config ............. yes"
6053 echo "pkg-config ............. no"
6055 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6056 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6057 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6058 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6059 echo "QtGui module ........... $CFG_GUI"
6060 echo "QtWidgets module ....... $CFG_WIDGETS"
6061 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6062 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6064 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6066 echo "QML debugging .......... $CFG_QML_DEBUG"
6067 echo "PCH support ............ $CFG_PRECOMPILE"
6068 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6069 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6070 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6071 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6072 elif [ "$CFG_ARCH" = "arm" ]; then
6073 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6074 echo "NEON support ........... ${CFG_NEON}"
6076 if [ "$CFG_ARCH" = "mips" ]; then
6077 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6079 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6080 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6081 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6082 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6083 echo "NIS support ............ $CFG_NIS"
6084 echo "CUPS support ........... $CFG_CUPS"
6085 echo "Iconv support .......... $CFG_ICONV"
6086 echo "Glib support ........... $CFG_GLIB"
6087 echo "GStreamer support ...... $CFG_GSTREAMER"
6088 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6089 echo "Large File support ..... $CFG_LARGEFILE"
6090 echo "GIF support ............ $CFG_GIF"
6091 if [ "$CFG_JPEG" = "no" ]; then
6092 echo "JPEG support ........... $CFG_JPEG"
6094 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6096 if [ "$CFG_PNG" = "no" ]; then
6097 echo "PNG support ............ $CFG_PNG"
6099 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6101 echo "zlib support ........... $CFG_ZLIB"
6102 echo "Session management ..... $CFG_SM"
6103 echo "libudev support ........ $CFG_LIBUDEV"
6105 if [ "$CFG_OPENGL" = "desktop" ]; then
6106 echo "OpenGL support ......... yes (Desktop OpenGL)"
6107 elif [ "$CFG_OPENGL" = "es2" ]; then
6108 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6110 echo "OpenGL support ......... no"
6113 if [ "$CFG_OPENVG" ]; then
6114 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6115 echo "OpenVG support ......... ShivaVG"
6117 echo "OpenVG support ......... $CFG_OPENVG"
6121 echo "XShape support ......... $CFG_XSHAPE"
6122 echo "XVideo support ......... $CFG_XVIDEO"
6123 echo "XSync support .......... $CFG_XSYNC"
6124 echo "Xinerama support ....... $CFG_XINERAMA"
6125 echo "Xcursor support ........ $CFG_XCURSOR"
6126 echo "Xfixes support ......... $CFG_XFIXES"
6127 echo "Xrandr support ......... $CFG_XRANDR"
6128 echo "Xi support ............. $CFG_XINPUT"
6129 echo "Xi2 support ............ $CFG_XINPUT2"
6130 echo "MIT-SHM support ........ $CFG_MITSHM"
6131 echo "FontConfig support ..... $CFG_FONTCONFIG"
6132 echo "XKB Support ............ $CFG_XKB"
6133 echo "immodule support ....... $CFG_IM"
6134 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6136 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6137 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6138 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6139 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6140 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6141 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6142 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6143 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6144 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6147 if [ "$CFG_OPENSSL" = "yes" ]; then
6148 OPENSSL_LINKAGE="(run-time)"
6149 elif [ "$CFG_OPENSSL" = "linked" ]; then
6150 OPENSSL_LINKAGE="(linked)"
6152 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6153 echo "Alsa support ........... $CFG_ALSA"
6154 if [ "$BUILD_ON_MAC" = "yes" ]; then
6155 echo "CoreWlan support ....... $CFG_COREWLAN"
6157 echo "libICU support ......... $CFG_ICU"
6158 echo "PCRE support ........... $CFG_PCRE"
6159 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6160 echo "Xcb support ............ limited (old version)"
6162 echo "Xcb support ............ $CFG_XCB"
6164 echo "Xrender support ........ $CFG_XRENDER"
6165 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6166 echo "XInput2 support ........ $CFG_XINPUT2"
6168 echo "EGLFS support .......... $CFG_EGLFS"
6169 echo "DirectFB support ....... $CFG_DIRECTFB"
6170 echo "LinuxFB support ........ $CFG_LINUXFB"
6171 echo "KMS support ............ $CFG_KMS"
6174 # complain about not being able to use dynamic plugins if we are using a static build
6175 if [ "$CFG_SHARED" = "no" ]; then
6177 echo "WARNING: Using static linking will disable the use of dynamically"
6178 echo "loaded plugins. Make sure to import all needed static plugins,"
6179 echo "or compile needed modules into the library."
6182 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6184 echo "NOTE: When linking against OpenSSL, you can override the default"
6185 echo "library names through OPENSSL_LIBS."
6187 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6191 exec 1>&3 3>&- # restore stdout
6192 cat $outpath/config.summary # display config feedback to user
6194 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6196 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6197 echo "if you want a pure debug build."
6202 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6207 #-------------------------------------------------------------------------------
6208 # build makefiles based on the configuration
6209 #-------------------------------------------------------------------------------
6211 if [ "$CFG_PROCESS" != "no" ]; then
6213 if [ "$CFG_PROCESS" = "full" ]; then
6214 echo "Creating makefiles. Please wait..."
6215 "$outpath/bin/qmake" -r "$relpath"
6218 "$outpath/bin/qmake" "$relpath"
6221 if [ "$OPT_FAST" = "yes" ]; then
6223 for part in $CFG_BUILD_PARTS; do
6225 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6228 if [ "x$PART_ROOTS" != "x" ]; then
6230 echo "Creating stub makefiles. Please wait..."
6231 QMAKE="$outpath/bin/qmake"
6232 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6233 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6235 test -f "$outpath/$d/Makefile" && continue
6236 echo " for $relpath/$p"
6238 mkdir -p "$outpath/$d" || exit
6239 cat > "$outpath/$d/Makefile" <<EOF || exit
6240 # $outpath/$d/Makefile: generated by configure
6242 # WARNING: This makefile will be replaced with a real makefile.
6243 # All changes made to this file will be lost.
6248 all clean install qmake first Makefile: FORCE
6249 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6259 #-------------------------------------------------------------------------------
6260 # check for platforms that we don't yet know about
6261 #-------------------------------------------------------------------------------
6262 if [ "$CFG_ARCH" = "unknown" ]; then
6265 NOTICE: configure was unable to determine the architecture
6266 for the $XQMAKESPEC target.
6268 Qt will not use a specialized implementation for any atomic
6269 operations. Instead a generic implemention based on either GCC
6270 intrinsics or C++11 std::atomic<T> will be used (when
6271 available). The generic implementations are generally as fast
6272 as and always as safe as a specialized implementation.
6274 If no generic implementation is available, Qt will use a
6275 fallback UNIX implementation which uses a single
6276 pthread_mutex_t to protect all atomic operations. This
6277 implementation is the slow (but safe) fallback implementation
6278 for architectures Qt does not yet support.
6282 #-------------------------------------------------------------------------------
6283 # check if the user passed the -no-zlib option, which is no longer supported
6284 #-------------------------------------------------------------------------------
6285 if [ -n "$ZLIB_FORCED" ]; then
6286 which_zlib="supplied"
6287 if [ "$CFG_ZLIB" = "system" ]; then
6293 NOTICE: The -no-zlib option was supplied but is no longer
6296 Qt now requires zlib support in all builds, so the -no-zlib
6297 option was ignored. Qt will be built using the $which_zlib
6302 #-------------------------------------------------------------------------------
6303 # check if the user passed the obsoleted -wayland or -no-wayland flag
6304 #-------------------------------------------------------------------------------
6305 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6308 NOTICE: The -wayland and -no-wayland flags are now obsolete
6310 All configuring of QtWayland plugin and QtCompositor happens in the module
6314 #-------------------------------------------------------------------------------
6315 # check if the user passed the obsoleted -arch or -host-arch options
6316 #-------------------------------------------------------------------------------
6317 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6320 NOTICE: The -arch and -host-arch options are obsolete.
6322 Qt now detects the target and host architectures based on compiler
6323 output. Qt will be built using $CFG_ARCH for the target architecture
6324 and $CFG_HOST_ARCH for the host architecture (note that these two
6325 will be the same unless you are cross-compiling).
6329 #-------------------------------------------------------------------------------
6330 # finally save the executed command to another script
6331 #-------------------------------------------------------------------------------
6332 if [ `basename $0` != "config.status" ]; then
6333 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6335 # add the system variables
6336 for varname in $SYSTEM_VARIABLES; do
6338 'if [ -n "\$'${varname}'" ]; then
6339 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6344 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6346 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6347 echo "#!/bin/sh" > "$outpath/config.status"
6348 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6349 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6350 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6351 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6352 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6353 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6354 echo "else" >> "$outpath/config.status"
6355 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6356 echo "fi" >> "$outpath/config.status"
6357 chmod +x "$outpath/config.status"
6360 if [ -n "$RPATH_MESSAGE" ]; then
6362 echo "$RPATH_MESSAGE"
6365 MAKE=`basename "$MAKE"`
6367 echo Qt is now configured for building. Just run \'$MAKE\'.
6368 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6369 echo Once everything is built, Qt is installed.
6370 echo You should not run \'$MAKE install\'.
6372 echo Once everything is built, you must run \'$MAKE install\'.
6373 echo Qt will be installed into $QT_INSTALL_PREFIX
6376 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.