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
802 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
803 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
808 OPT_CONFIRM_LICENSE=no
821 QPA_PLATFORM_GUARD=yes
824 # initalize variables used for installation
833 QT_INSTALL_TRANSLATIONS=
838 CFG_GCC_SYSROOT="yes"
843 #flags for SQL drivers
851 QT_LFLAGS_ODBC="-lodbc"
854 # flags for libdbus-1
858 # flags for Glib (X11 only)
862 # flags for GStreamer (X11 only)
866 # default qpa platform
867 QT_QPA_DEFAULT_PLATFORM=
869 #-------------------------------------------------------------------------------
870 # check SQL drivers available in this package
871 #-------------------------------------------------------------------------------
873 # opensource version removes some drivers, so force them to be off
879 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
880 for a in "$relpath/src/plugins/sqldrivers/"*; do
882 base_a=`basename "$a"`
883 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
884 eval "CFG_SQL_${base_a}=auto"
889 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
890 if [ -d "$relpath/src/plugins/imageformats" ]; then
891 for a in "$relpath/src/plugins/imageformats/"*; do
893 base_a=`basename "$a"`
894 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
899 #-------------------------------------------------------------------------------
900 # parse command line arguments
901 #-------------------------------------------------------------------------------
903 # parse the arguments, setting things to "yes" or "no"
904 while [ "$#" -gt 0 ]; do
908 #Autoconf style options
910 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
914 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
918 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
919 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
922 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
926 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
930 -no-*-*|-plugin-*-*|-qt-*-*)
931 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
932 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
936 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
939 #Qt style options that pass an argument
940 -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa|-qconfig)
941 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
945 #Qt style complex options in one command
946 -enable-*|-disable-*)
947 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
948 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
950 #Qt Builtin/System style options
951 -no-*|-system-*|-qt-*)
952 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
953 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
955 #Options that cannot be generalized
962 # this option may or may not be followed by an argument
963 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
972 # this option may or may not be followed by an argument
973 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
981 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
982 # this option may or may not be followed by an argument
983 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1002 if [ "$1" = "-D" ]; then
1006 VAL=`echo $1 | sed 's,-D,,'`
1011 # this option may or may not be followed by an argument
1012 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1021 if [ "$1" = "-I" ]; then
1025 VAL=`echo $1 | sed 's,-I,,'`
1030 if [ "$1" = "-L" ]; then
1034 VAL=`echo $1 | sed 's,-L,,'`
1039 if [ "$1" = "-R" ]; then
1043 VAL=`echo $1 | sed 's,-R,,'`
1048 if [ "$1" = "-l" ]; then
1052 VAL=`echo $1 | sed 's,-l,,'`
1057 if [ "$1" = "-F" ]; then
1061 VAL=`echo $1 | sed 's,-F,,'`
1066 if [ "$1" = "-fw" ]; then
1070 VAL=`echo $1 | sed 's,-fw,,'`
1077 #General options, including Qt style yes options
1079 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1086 if [ "$UNKNOWN_ARG" = "yes" ]; then
1087 echo "$1: unknown argument"
1098 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1099 CFG_ACCESSIBILITY="$VAL"
1108 CFG_USE_GNUMAKE="$VAL"
1111 CFG_MYSQL_CONFIG="$VAL"
1114 QT_INSTALL_PREFIX="$VAL"
1117 QT_HOST_PREFIX="$VAL"
1126 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1127 CFG_PKGCONFIG="$VAL"
1133 CFG_PKGCONFIG="force"
1136 QT_INSTALL_DOCS="$VAL"
1139 QT_INSTALL_HEADERS="$VAL"
1142 QT_INSTALL_PLUGINS="$VAL"
1145 QT_INSTALL_IMPORTS="$VAL"
1148 QT_INSTALL_DATA="$VAL"
1151 QT_INSTALL_LIBS="$VAL"
1160 QT_INSTALL_TRANSLATIONS="$VAL"
1162 sysconfdir|settingsdir)
1163 QT_INSTALL_SETTINGS="$VAL"
1166 QT_INSTALL_EXAMPLES="$VAL"
1169 QT_INSTALL_TESTS="$VAL"
1178 CFG_GCC_SYSROOT="$VAL"
1181 QT_INSTALL_BINS="$VAL"
1184 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1191 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1192 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1193 [ "$VAL" = "es2" ]; then
1200 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1207 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1210 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1213 if [ "$BUILD_ON_MAC" = "yes" ]; then
1220 OPT_OBSOLETE_HOST_ARG=yes
1223 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1224 CFG_MAC_HARFBUZZ="$VAL"
1231 if [ "$BUILD_ON_MAC" = "yes" ]; then
1232 CFG_FRAMEWORK="$VAL"
1238 if [ "$VAL" = "yes" ]; then
1240 QMakeVar add QMAKE_CFLAGS -pg
1241 QMakeVar add QMAKE_CXXFLAGS -pg
1242 QMakeVar add QMAKE_LFLAGS -pg
1243 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1249 if [ "$VAL" = "yes" ]; then
1250 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1255 # keep compatibility with old platform names
1261 PLATFORM=hpux-acc-o64
1264 PLATFORM=hpux-acc-64
1267 PLATFORM=hpux-acc-64
1279 PLATFORM=reliant-cds-64
1282 PLATFORM=solaris-cc-64
1285 PLATFORM=unixware-cc
1288 PLATFORM=unixware-g++
1291 PLATFORM=unixware-cc
1294 PLATFORM=unixware-g++
1300 i386) NATIVE_64_ARCH="x86_64" ;;
1301 powerpc) NATIVE_64_ARCH="ppc64" ;;
1302 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1304 if [ ! -z "$NATIVE_64_ARCH" ]; then
1305 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1312 case `basename "$XPLATFORM"` in win32-g++*)
1316 CFG_REDUCE_EXPORTS=no
1321 XPLATFORM=`resolveDeviceMkspec $VAL`
1322 [ "$XPLATFORM" = "undefined" ] && exit 101
1325 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1326 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1327 DeviceVar set $DEV_VAR $DEV_VAL
1330 QT_QPA_DEFAULT_PLATFORM="$VAL"
1333 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1334 CFG_DEBUG_RELEASE="$VAL"
1340 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1341 CFG_RELEASE_QMAKE="$VAL"
1347 if [ "$VAL" = "yes" ]; then
1349 elif [ "$VAL" = "no" ]; then
1356 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1357 CFG_PREFIX_INSTALL="$VAL"
1366 CFG_FORCEDEBUGINFO="$VAL"
1368 developer-build|commercial|opensource)
1369 # These switches have been dealt with already
1372 if [ "$VAL" = "yes" ]; then
1374 elif [ "$VAL" = "no" ]; then
1381 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1382 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1388 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1389 if [ "$VAL" = "no" ]; then
1390 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1391 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1392 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1398 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1405 if [ "$VAL" = "no" ]; then
1412 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1420 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1427 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1434 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1441 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1448 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1455 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1462 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1469 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1470 CFG_PRECOMPILE="$VAL"
1475 separate-debug-info)
1476 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1477 CFG_SEPARATE_DEBUG_INFO="$VAL"
1478 elif [ "$VAL" = "nocopy" ] ; then
1479 CFG_SEPARATE_DEBUG_INFO="yes"
1480 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1486 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1487 CFG_REDUCE_EXPORTS="$VAL"
1493 if [ "$VAL" = "no" ]; then
1500 if [ "$VAL" = "no" ]; then
1507 if [ "$VAL" = "no" ]; then
1514 if [ "$VAL" = "no" ]; then
1521 if [ "$VAL" = "no" ]; then
1528 if [ "$VAL" = "no" ]; then
1535 if [ "$VAL" = "no" ]; then
1545 if [ "$VAL" = "no" ]; then
1552 if [ "$VAL" = "no" ]; then
1559 if [ "$VAL" = "no" ]; then
1560 CFG_MIPS_DSPR2="$VAL"
1566 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1567 CFG_REDUCE_RELOCATIONS="$VAL"
1573 [ "$VAL" = "qt" ] && VAL=yes
1574 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1579 # No longer supported:
1580 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1583 if [ "$VAL" = "system" ]; then
1590 [ "$VAL" = "yes" ] && VAL=qt
1591 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1598 [ "$VAL" = "yes" ] && VAL=qt
1599 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1606 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1613 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1620 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1627 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1634 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1641 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1642 CFG_FONTCONFIG="$VAL"
1648 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1655 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1662 CFG_OBSOLETE_WAYLAND=yes
1665 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1672 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1679 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1686 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1693 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1700 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1707 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1714 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1721 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1728 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1729 CFG_GSTREAMER="$VAL"
1735 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1736 CFG_QGTKSTYLE="$VAL"
1742 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1745 if [ "$VAL" = "no" ]; then
1753 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1755 elif [ "$VAL" = "no" ]; then
1762 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1763 QPA_PLATFORM_GUARD="$VAL"
1769 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1771 elif [ "$VAL" = "runtime" ]; then
1778 if [ "$VAL" = "yes" ]; then
1785 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1792 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1793 CFG_LARGEFILE="$VAL"
1799 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1806 if [ "$VAL" = "yes" ]; then
1807 CFG_OPENSSL="linked"
1813 if [ "$VAL" = "yes" ]; then
1816 if [ "$VAL" = "no" ]; then
1824 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1825 CFG_JAVASCRIPTCORE_JIT="$VAL"
1831 if [ "$VAL" = "yes" ]; then
1832 OPT_CONFIRM_LICENSE="$VAL"
1838 if [ "$VAL" = "yes" ]; then
1844 sql-*|imageformat-*)
1845 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1846 # if autoconf style options were used, $VAL can be "yes" or "no"
1847 [ "$VAL" = "yes" ] && VAL=qt
1848 # now $VAL should be "no", "qt", or "plugin"... double-check
1849 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1852 # now $VAL is "no", "qt", or "plugin"
1854 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1855 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1857 # Grab the available values
1860 avail="$CFG_SQL_AVAILABLE"
1863 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1864 if [ "$OPT" != "plugin" ]; then
1865 # png is always built in
1871 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1875 # Check that that user's value is available.
1878 if [ "$VAL" = "$d" ]; then
1883 [ "$found" = yes ] || ERROR=yes
1885 if [ "$VAR" = "sql" ]; then
1886 # set the CFG_SQL_driver
1887 eval "CFG_SQL_$VAL=\$OPT"
1889 elif [ "$VAR" = "imageformat" ]; then
1890 [ "$OPT" = "qt" ] && OPT=yes
1891 VAL="`echo $VAL |tr a-z A-Z`"
1892 eval "CFG_$VAL=$OPT"
1896 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1897 if [ "$OPT" = "plugin" ]; then
1900 QMakeVar add "${VAR}s" "${VAL}"
1901 elif [ "$OPT" = "no" ]; then
1902 PLUG_VAR="${VAR}-plugin"
1904 QMakeVar del "${IN_VAR}s" "$VAL"
1905 QMakeVar del "${PLUG_VAR}s" "$VAL"
1907 if [ "$ERROR" = "yes" ]; then
1908 echo "$CURRENT_OPT: unknown argument"
1913 if [ "$VAL" = "yes" ]; then
1914 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1915 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1919 elif [ "$VAL" = "no" ]; then
1920 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1921 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1930 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1937 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1944 DEFINES="$DEFINES \"$VAL\""
1945 D_FLAGS="$D_FLAGS -D\"$VAL\""
1948 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1951 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1954 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1957 L_FLAGS="$L_FLAGS -l\"${VAL}\""
1960 if [ "$BUILD_ON_MAC" = "yes" ]; then
1961 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1962 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1968 if [ "$BUILD_ON_MAC" = "yes" ]; then
1969 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
1975 W_FLAGS="$W_FLAGS \"${VAL}\""
1990 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1991 CFG_AUDIO_BACKEND="$VAL"
1997 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2004 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2005 CFG_FORCE_ASSERTS="$VAL"
2011 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2018 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2028 if [ "$UNKNOWN_OPT" = "yes" ]; then
2029 echo "${CURRENT_OPT}: invalid command-line switch"
2035 # update QT_CONFIG to show our current predefined configuration
2036 case "$CFG_QCONFIG" in
2037 minimal|small|medium|large|full)
2038 # these are a sequence of increasing functionality
2039 for c in minimal small medium large full; do
2040 QT_CONFIG="$QT_CONFIG $c-config"
2041 [ "$CFG_QCONFIG" = $c ] && break
2045 # not known to be sufficient for anything
2046 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2047 echo >&2 "Error: configuration file not found:"
2048 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2050 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2055 #-------------------------------------------------------------------------------
2056 # build tree initialization
2057 #-------------------------------------------------------------------------------
2059 # where to find which..
2060 unixtests="$relpath/config.tests/unix"
2061 mactests="$relpath/config.tests/mac"
2062 WHICH="$unixtests/which.test"
2064 PERL=`$WHICH perl 2>/dev/null`
2066 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2068 for e in gawk nawk awk; do
2069 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2076 PERL="/usr/bin/perl"
2077 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2081 ### skip this if the user just needs help...
2082 if [ "$OPT_HELP" != "yes" ]; then
2084 # is this a shadow build?
2085 if [ "$OPT_SHADOW" = "maybe" ]; then
2087 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2088 if [ -h "$outpath" ]; then
2089 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2095 if [ "$OPT_SHADOW" = "yes" ]; then
2096 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2097 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2098 echo >&2 "Cannot proceed."
2101 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2104 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2106 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2107 echo "Qt can be built in release mode with separate debug information, so"
2108 echo "-debug-and-release is not necessary anymore"
2112 if [ "$CFG_SILENT" = "yes" ]; then
2113 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2116 # if the source tree is different from the build tree,
2117 # symlink or copy part of the sources
2118 if [ "$OPT_SHADOW" = "yes" ]; then
2119 echo "Preparing build tree..."
2121 if [ -z "$PERL" ]; then
2123 echo "You need perl in your PATH to make a shadow build."
2124 echo "Cannot proceed."
2128 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2130 # make a syncqt script that can be used in the shadow
2131 rm -f "$outpath/bin/syncqt"
2132 if [ -x "$relpath/bin/syncqt" ]; then
2133 mkdir -p "$outpath/bin"
2134 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2135 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2136 chmod 755 "$outpath/bin/syncqt"
2139 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2140 rm -f "$outpath/bin/$i"
2141 if [ -x "$relpath/bin/$i" ]; then
2142 mkdir -p "$outpath/bin"
2143 echo "#!/bin/sh" >"$outpath/bin/$i"
2144 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2145 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2146 chmod 755 "$outpath/bin/$i"
2150 # save a pre-existing mkspecs/modules dir
2151 test -d "$outpath/mkspecs/modules" && \
2152 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2153 # ditto for mkspecs/modules-inst
2154 test -d "$outpath/mkspecs/modules-inst" && \
2155 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2157 # symlink the mkspecs directory
2158 mkdir -p "$outpath/mkspecs"
2159 rm -rf "$outpath"/mkspecs/*
2160 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2161 rm -f "$outpath/mkspecs/default"
2165 rm -rf "$outpath/mkspecs/$1"
2166 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2167 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2170 # Special case for mkspecs/features directory.
2171 # To be able to place .prf files into a shadow build directory,
2172 # we're creating links for files only. The directory structure is reproduced.
2173 ShadowMkspecs features
2175 # The modules dir is special, too.
2176 if test -d "$outpath/mkspecs-modules"; then
2177 rm -rf "$outpath/mkspecs/modules"
2178 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2180 ShadowMkspecs modules
2183 # The modules-inst dir is not quite as special, but still.
2184 if test -d "$outpath/mkspecs-modules-inst"; then
2185 rm -rf "$outpath/mkspecs/modules-inst"
2186 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2189 # symlink the doc directory
2190 rm -rf "$outpath/doc"
2191 ln -s "$relpath/doc" "$outpath/doc"
2194 # symlink fonts to be able to run application from build directory
2195 if [ ! -d "${outpath}/lib/fonts" ]; then
2196 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2197 mkdir -p "${outpath}/lib"
2198 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2202 if [ "$OPT_FAST" = "auto" ]; then
2203 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2210 # find a make command
2211 if [ -z "$MAKE" ]; then
2213 for mk in gmake make; do
2214 if "$WHICH" $mk >/dev/null 2>&1; then
2219 if [ -z "$MAKE" ]; then
2220 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2221 echo >&2 "Cannot proceed."
2224 # export MAKE, we need it later in the config.tests
2230 #-------------------------------------------------------------------------------
2231 # auto-detect all that hasn't been specified in the arguments
2232 #-------------------------------------------------------------------------------
2234 if [ -z "$PLATFORM" ]; then
2236 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2238 OSX_VERSION=`uname -r | cut -d. -f1`
2239 # Select compiler. Use g++ unless we find a usable Clang version
2241 if [ "$OSX_VERSION" -ge 12 ]; then
2242 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2244 elif [ "$OSX_VERSION" -eq 11 ]; then
2245 # We're on Lion. Check if we have a supported Clang version
2246 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2249 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2256 #PLATFORM=aix-g++-64
2258 #PLATFORM=aix-xlc-64
2260 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2270 # PLATFORM=dynix-g++
2276 PLATFORM=freebsd-g++
2278 - Also available for FreeBSD: freebsd-icc
2282 PLATFORM=openbsd-g++
2293 #PLATFORM=irix-cc-64
2295 - Also available for IRIX: irix-g++ irix-cc-64
2299 case "$UNAME_MACHINE" in
2301 #PLATFORM=hpuxi-acc-32
2302 PLATFORM=hpuxi-acc-64
2304 - Also available for HP-UXi: hpuxi-acc-32
2310 #PLATFORM=hpux-acc-64
2312 #PLATFORM=hpux-acc-o64
2314 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2323 - Also available for Tru64: tru64-g++
2327 case "$UNAME_MACHINE" in
2329 PLATFORM=linux-g++-64
2336 - Also available for Linux: linux-kcc linux-icc linux-cxx
2340 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2341 PLATFORM="solaris-g++"
2343 #PLATFORM=solaris-g++
2345 #PLATFORM=solaris-cc64
2348 - Also available for Solaris: solaris-g++ solaris-cc-64
2351 ReliantUNIX-*:*|SINIX-*:*)
2352 PLATFORM=reliant-cds
2353 #PLATFORM=reliant-cds-64
2355 - Also available for Reliant UNIX: reliant-cds-64
2365 #PLATFORM=unixware-g++
2366 PLATFORM=unixware-cc
2368 - Also available for OpenUNIX: unixware-g++
2372 #PLATFORM=unixware-g++
2373 PLATFORM=unixware-cc
2375 - Also available for UnixWare: unixware-g++
2382 - Also available for SCO OpenServer: sco-g++
2386 PLATFORM=unixware-g++
2389 PLATFORM=unsupported/qnx-g++
2392 if [ "$OPT_HELP" != "yes" ]; then
2394 echo " The build script does not currently recognize all" >&2
2395 echo " platforms supported by Qt." >&2
2396 echo " Rerun this script with a -platform option listed to" >&2
2397 echo " set the system/compiler combination you use." >&2
2404 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2406 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2407 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2408 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2410 if [ -d "$PLATFORM" ]; then
2411 QMAKESPEC="$PLATFORM"
2413 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2415 if [ -d "$XPLATFORM" ]; then
2416 XQMAKESPEC="$XPLATFORM"
2418 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2420 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2421 QT_CROSS_COMPILE=yes
2422 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2423 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2426 if [ "$BUILD_ON_MAC" = "yes" ]; then
2427 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2429 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2430 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2431 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2432 echo " built with 'macx-g++'" >&2
2438 # check specified platforms are supported
2439 if [ '!' -d "$QMAKESPEC" ]; then
2441 echo " The specified system/compiler is not supported:"
2445 echo " Please see the README file for a complete list."
2449 if [ '!' -d "$XQMAKESPEC" ]; then
2451 echo " The specified system/compiler is not supported:"
2455 echo " Please see the README file for a complete list."
2459 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2461 echo " The specified system/compiler port is not complete:"
2463 echo " $XQMAKESPEC/qplatformdefs.h"
2465 echo " Please contact qt-info@nokia.com."
2470 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2471 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2472 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2473 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2474 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2478 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2479 case `basename "$XPLATFORM"` in
2482 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2484 echo "Please contact qt-info@nokia.com to upgrade your license to"
2485 echo "include this platform, or install the Qt Open Source Edition"
2486 echo "if you intend to develop free software."
2492 #-------------------------------------------------------------------------------
2493 # tests that don't need qmake (must be run before displaying help)
2494 #-------------------------------------------------------------------------------
2496 # detect build style
2497 if [ "$CFG_DEBUG" = "auto" ]; then
2498 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2499 CFG_DEBUG_RELEASE=yes
2501 elif [ "$CFG_DEV" = "yes" ]; then
2502 CFG_DEBUG_RELEASE=no
2505 CFG_DEBUG_RELEASE=no
2509 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2510 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2513 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2514 QT_CONFIG="$QT_CONFIG force_debug_info"
2517 # pass on $CFG_SDK to the configure tests.
2518 if [ '!' -z "$CFG_SDK" ]; then
2519 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2522 # find the default framework value
2523 if [ "$BUILD_ON_MAC" = "yes" ]; then
2524 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2525 CFG_FRAMEWORK="$CFG_SHARED"
2526 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2528 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2536 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2538 TEST_COMPILER=$QMAKE_CONF_COMPILER
2539 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2540 if [ -z "$TEST_COMPILER" ]; then
2541 echo "ERROR: Cannot set the compiler for the configuration tests"
2545 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2548 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2549 if [ -n "$GCC_MACHINE_DUMP" ]; then
2550 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2553 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2554 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2558 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2560 # auto-detect precompiled header support
2561 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2562 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2569 # auto-detect support for separate debug info in objcopy
2570 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2571 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2572 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2573 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2574 CFG_SEPARATE_DEBUG_INFO=no
2578 # binutils on HP-UX is buggy; default to no.
2579 CFG_SEPARATE_DEBUG_INFO=no
2582 CFG_SEPARATE_DEBUG_INFO=yes
2588 # auto-detect -fvisibility support
2589 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2590 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2591 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2592 echo "-reduce-exports was requested but this compiler does not support it"
2593 echo "Re-run configure with -v for more information"
2596 CFG_REDUCE_EXPORTS=no
2598 CFG_REDUCE_EXPORTS=yes
2602 # detect the availability of the -Bsymbolic-functions linker optimization
2603 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2604 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2605 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2606 echo "-reduce-relocations was requested but this compiler does not support it"
2607 echo "Re-run configure with -v for more information"
2610 CFG_REDUCE_RELOCATIONS=no
2612 CFG_REDUCE_RELOCATIONS=yes
2616 # auto-detect GNU make support
2617 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2621 # find the default framework value
2622 if [ "$BUILD_ON_MAC" = "yes" ]; then
2623 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2624 CFG_FRAMEWORK="$CFG_SHARED"
2625 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2627 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2635 # auto-detect default include and library search paths
2636 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2637 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2638 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2639 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2640 /^End of search/ { yup=0 }
2641 yup { print substr($0, 2) }
2642 /^\#include </ { yup=1 }
2644 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2646 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2649 #setup the build parts
2650 if [ -z "$CFG_BUILD_PARTS" ]; then
2651 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2653 # build tests by default, if a developer build
2654 if [ "$CFG_DEV" = "yes" ]; then
2655 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2658 # don't build tools by default when cross-compiling
2659 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2660 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2663 for nobuild in $CFG_NOBUILD_PARTS; do
2664 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2666 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2668 # echo "WARNING: libs is a required part of the build."
2670 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2673 #-------------------------------------------------------------------------------
2674 # post process QT_INSTALL_* variables
2675 #-------------------------------------------------------------------------------
2677 if [ -z "$QT_INSTALL_PREFIX" ]; then
2678 if [ "$CFG_DEV" = "yes" ]; then
2679 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2681 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2684 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2686 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2687 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2688 if [ "$BUILD_ON_MAC" = "yes" ]; then
2689 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2692 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2695 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2697 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2698 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2699 if [ "$BUILD_ON_MAC" = "yes" ]; then
2700 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2705 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2708 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2710 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2711 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2712 if [ "$BUILD_ON_MAC" = "yes" ]; then
2713 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2714 QT_INSTALL_LIBS="/Library/Frameworks"
2718 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2720 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2722 if [ -z "$QT_INSTALL_BINS" ]; then #default
2723 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2724 if [ "$BUILD_ON_MAC" = "yes" ]; then
2725 QT_INSTALL_BINS="/Developer/Applications/Qt"
2728 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2730 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2732 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2733 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2734 if [ "$BUILD_ON_MAC" = "yes" ]; then
2735 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2738 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2740 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2742 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2743 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2744 if [ "$BUILD_ON_MAC" = "yes" ]; then
2745 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2748 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2750 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2752 if [ -z "$QT_INSTALL_DATA" ]; then #default
2753 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2755 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2757 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2758 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2760 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2762 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2763 if [ "$BUILD_ON_MAC" = "yes" ]; then
2764 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2766 QT_INSTALL_SETTINGS=/etc/xdg
2769 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2771 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2772 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2773 if [ "$BUILD_ON_MAC" = "yes" ]; then
2774 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2777 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2779 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2782 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2783 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2784 if [ "$BUILD_ON_MAC" = "yes" ]; then
2785 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2788 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2790 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2792 #------- host paths --------
2794 if [ -z "$QT_HOST_PREFIX" ]; then
2795 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2798 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2802 if [ -z "$QT_HOST_BINS" ]; then #default
2804 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2805 if [ "$BUILD_ON_MAC" = "yes" ]; then
2806 QT_HOST_BINS="/Developer/Applications/Qt"
2809 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2811 QT_HOST_BINS="$QT_INSTALL_BINS"
2814 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2816 if [ -z "$QT_HOST_DATA" ]; then #default
2818 QT_HOST_DATA="$QT_HOST_PREFIX"
2820 QT_HOST_DATA="$QT_INSTALL_DATA"
2823 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2826 #-------------------------------------------------------------------------------
2827 # help - interactive parts of the script _after_ this section please
2828 #-------------------------------------------------------------------------------
2830 # next, emit a usage message if something failed.
2831 if [ "$OPT_HELP" = "yes" ]; then
2832 [ "x$ERROR" = "xyes" ] && echo
2833 if [ "$CFG_NIS" = "no" ]; then
2840 if [ "$CFG_CUPS" = "no" ]; then
2847 if [ "$CFG_ICONV" = "no" ]; then
2854 if [ "$CFG_LARGEFILE" = "no" ]; then
2861 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2869 if [ "$CFG_XCB" = "no" ]; then
2877 if [ "$CFG_EGLFS" = "no" ]; then
2885 if [ "$CFG_DIRECTFB" = "no" ]; then
2893 if [ "$CFG_LINUXFB" = "no" ]; then
2901 if [ "$CFG_KMS" = "no" ]; then
2909 if [ "$CFG_XINPUT2" = "no" ]; then
2917 if [ "$CFG_DBUS" = "no" ]; then
2925 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2933 if [ "$CFG_GLIB" = "no" ]; then
2942 Usage: $relconf [options]
2944 Installation options:
2946 These are optional, but you may specify install directories.
2948 -prefix <dir> ...... This will install everything relative to <dir>
2949 (default $QT_INSTALL_PREFIX)
2951 -hostprefix [dir] .. Tools and libraries needed when developing
2952 applications are installed in [dir]. If [dir] is
2953 not given, the current build directory will be used.
2956 * -prefix-install .... Force a sandboxed "local" installation of
2957 Qt. This will install into
2958 $QT_INSTALL_PREFIX, if this option is
2959 disabled then some platforms will attempt a
2960 "system" install by placing default values to
2961 be placed in a system location other than
2964 You may use these to separate different parts of the install:
2966 -bindir <dir> ......... Executables will be installed to <dir>
2967 (default PREFIX/bin)
2968 -libdir <dir> ......... Libraries will be installed to <dir>
2969 (default PREFIX/lib)
2970 -docdir <dir> ......... Documentation will be installed to <dir>
2971 (default PREFIX/doc)
2972 -headerdir <dir> ...... Headers will be installed to <dir>
2973 (default PREFIX/include)
2974 -plugindir <dir> ...... Plugins will be installed to <dir>
2975 (default PREFIX/plugins)
2976 -importdir <dir> ...... Imports for QML will be installed to <dir>
2977 (default PREFIX/imports)
2978 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2980 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2981 (default PREFIX/translations)
2982 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2983 (default PREFIX/etc/settings)
2984 -examplesdir <dir> .... Examples will be installed to <dir>
2985 (default PREFIX/examples)
2986 -testsdir <dir> ....... Tests will be installed to <dir>
2987 (default PREFIX/tests)
2989 -hostbindir <dir> .. Host executables will be installed to <dir>
2990 (default HOSTPREFIX/bin)
2991 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2992 (default HOSTPREFIX)
2996 The defaults (*) are usually acceptable. A plus (+) denotes a default value
2997 that needs to be evaluated. If the evaluation succeeds, the feature is
2998 included. Here is a short explanation of each option:
3000 * -release ........... Compile and link Qt with debugging turned off.
3001 -debug ............. Compile and link Qt with debugging turned on.
3002 -debug-and-release . Compile and link two versions of Qt, with and without
3003 debugging turned on (Mac only).
3005 -force-debug-info .. Create symbol files for release builds.
3007 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3009 -opensource ........ Compile and link the Open-Source Edition of Qt.
3010 -commercial ........ Compile and link the Commercial Edition of Qt.
3012 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3013 + -c++11 ............. Compile Qt with C++11 support enabled.
3015 * -shared ............ Create and use shared Qt libraries.
3016 -static ............ Create and use static Qt libraries.
3018 * -process ........... Generate only a top-level Makefile.
3019 -fully-process ..... Generate Makefiles for the entire Qt tree.
3020 -dont-process ...... Do not generate any Makefiles.
3022 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3024 -fast .............. Configure Qt quickly by generating Makefiles only for
3025 library and subdirectory targets. All other Makefiles
3026 are created as wrappers, which will in turn run qmake.
3028 -no-largefile ...... Disables large file support.
3029 + -largefile ......... Enables Qt to access files larger than 4 GB.
3031 -no-accessibility .. Do not compile Accessibility support.
3032 + -accessibility ..... Compile Accessibility support.
3034 -no-sql-<driver> ... Disable SQL <driver> entirely.
3035 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3037 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3040 Possible values for <driver>:
3041 [ $CFG_SQL_AVAILABLE ]
3043 -system-sqlite ..... Use sqlite from the operating system.
3045 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3046 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3048 -no-qml-debug ...... Do not build the in-process QML debugging support.
3049 + -qml-debug ......... Build the QML debugging support.
3051 -platform target ... The operating system and compiler you are building
3054 See the README file for a list of supported
3055 operating systems and compilers.
3057 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3058 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3059 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3060 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3061 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3062 -no-avx ............ Do not compile with use of AVX instructions.
3063 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3064 -no-neon ........... Do not compile with use of NEON instructions.
3065 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3066 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3068 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3069 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3071 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3073 -D <string> ........ Add an explicit define to the preprocessor.
3074 -I <string> ........ Add an explicit include path.
3075 -L <string> ........ Add an explicit library path.
3077 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3078 configure determines whether to use pkg-config or not with
3079 some heuristics such as checking the environment variables.
3080 -no-pkg-config ..... Disable use of pkg-config.
3081 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3082 detection heuristic).
3084 -help, -h .......... Display this information.
3086 Third Party Libraries:
3088 -qt-zlib ........... Use the zlib bundled with Qt.
3089 + -system-zlib ....... Use zlib from the operating system.
3090 See http://www.gzip.org/zlib
3092 -no-gif ............ Do not compile GIF reading support.
3094 -no-libpng ......... Do not compile PNG support.
3095 -qt-libpng ......... Use the libpng bundled with Qt.
3096 + -system-libpng ..... Use libpng from the operating system.
3097 See http://www.libpng.org/pub/png
3099 -no-libjpeg ........ Do not compile JPEG support.
3100 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3101 + -system-libjpeg .... Use libjpeg from the operating system.
3102 See http://www.ijg.org
3104 -no-openssl ........ Do not compile support for OpenSSL.
3105 + -openssl ........... Enable run-time OpenSSL support.
3106 -openssl-linked .... Enabled linked OpenSSL support.
3108 -qt-pcre ........... Use the PCRE library bundled with Qt.
3109 + -system-pcre ....... Use the PCRE library from the operating system.
3113 -make <part> ....... Add part to the list of parts to be built at make time.
3114 ($QT_DEFAULT_BUILD_PARTS)
3115 -nomake <part> ..... Exclude part from the list of parts to be built.
3117 -R <string> ........ Add an explicit runtime library path to the Qt
3119 -l <string> ........ Add an explicit library.
3121 -no-rpath .......... Do not use the library install path as a runtime
3123 + -rpath ............. Link Qt libraries and executables using the library
3124 install path as a runtime library path. Equivalent
3125 to -R install_libpath
3127 -continue .......... Continue as far as possible if an error occurs.
3129 -verbose, -v ....... Print verbose information about each step of the
3132 -silent ............ Reduce the build output so that warnings and errors
3133 can be seen more easily.
3135 * -no-optimized-qmake ... Do not build qmake optimized.
3136 -optimized-qmake ...... Build qmake optimized.
3138 -no-gui ............ Don't build the Qt GUI library
3140 $NSN -no-nis ............ Do not compile NIS support.
3141 $NSY -nis ............... Compile NIS support.
3143 $CUN -no-cups ........... Do not compile CUPS support.
3144 $CUY -cups .............. Compile CUPS support.
3145 Requires cups/cups.h and libcups.so.2.
3147 $CIN -no-iconv .......... Do not compile support for iconv(3).
3148 $CIY -iconv ............. Compile support for iconv(3).
3150 $PHN -no-pch ............ Do not use precompiled header support.
3151 $PHY -pch ............... Use precompiled header support.
3153 $DBN -no-dbus ........... Do not compile the QtDBus module.
3154 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3155 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3157 -reduce-relocations ..... Reduce relocations in the libraries through extra
3158 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3159 experimental; needs GNU ld >= 2.18).
3161 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3163 -device <name> ............... Cross-compile for device <name> (experimental)
3164 -device-option <key=value> ... Add device specific options for the device mkspec
3167 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3168 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3170 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3171 $XCBY -xcb ............... Compile Xcb support.
3173 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3174 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3176 $DFBN -no-directfb ....... Do not compile DirectFB support.
3177 $DFBY -directfb .......... Compile DirectFB support.
3179 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3180 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3182 $KMSN -no-kms ............ Do not compile KMS support.
3183 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3185 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3187 -xplatform target ... The target platform when cross-compiling.
3189 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3190 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3192 -no-feature-<feature> Do not compile in <feature>.
3193 -feature-<feature> .. Compile in <feature>. The available features
3194 are described in src/corelib/global/qfeatures.txt
3196 -no-freetype ........ Do not compile in Freetype2 support.
3197 -qt-freetype ........ Use the libfreetype bundled with Qt.
3198 * -system-freetype .... Use libfreetype from the operating system.
3199 See http://www.freetype.org/
3201 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3202 default ($CFG_QCONFIG).
3204 -no-opengl .......... Do not support OpenGL.
3205 -opengl <api> ....... Enable OpenGL support
3206 With no parameter, this will attempt to auto-detect
3207 OpenGL ES 2, or regular desktop OpenGL.
3208 Use es2 for <api> to override auto-detection.
3210 $GBN -no-glib ........... Do not compile Glib support.
3211 $GBY -glib .............. Compile Glib support.
3214 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3217 $X2N -no-xinput2......... Do not compile XInput2 support.
3218 $X2Y -xinput2............ Compile XInput2 support.
3224 if [ "$BUILD_ON_MAC" = "yes" ]; then
3229 -Fstring ........... Add an explicit framework path.
3230 -fw string ......... Add an explicit framework.
3232 * -framework ......... Build Qt as a series of frameworks and
3233 link tools against those frameworks.
3234 -no-framework ...... Do not build Qt as a series of frameworks.
3236 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3237 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3239 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3240 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3241 QT_ENABLE_HARFBUZZ environment variable.
3246 [ "x$ERROR" = "xyes" ] && exit 1
3251 # -----------------------------------------------------------------------------
3252 # LICENSING, INTERACTIVE PART
3253 # -----------------------------------------------------------------------------
3256 echo "This is the Qt ${EditionString} Edition."
3259 if [ "$Edition" = "OpenSource" ]; then
3261 echo "You are licensed to use this software under the terms of"
3262 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3263 if [ -f "$relpath/LICENSE.GPL3" ]; then
3264 echo "You are also licensed to use this software under the terms of"
3265 echo "the GNU General Public License (GPL) versions 3."
3271 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3272 echo "You have already accepted the terms of the $LicenseType license."
3275 if [ -f "$relpath/LICENSE.GPL3" ]; then
3276 echo "Type '3' to view the GNU General Public License version 3."
3278 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3279 echo "Type 'yes' to accept this license offer."
3280 echo "Type 'no' to decline this license offer."
3282 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3286 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3288 elif [ "$acceptance" = "no" ]; then
3289 echo "You are not licensed to use this software."
3292 elif [ "$acceptance" = "3" ]; then
3293 more "$relpath/LICENSE.GPL3"
3294 elif [ "$acceptance" = "L" ]; then
3295 more "$relpath/LICENSE.LGPL"
3298 elif [ "$Edition" = "Preview" ]; then
3299 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3302 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3303 echo "You have already accepted the terms of the $LicenseType license."
3306 echo "You are licensed to use this software under the terms of"
3307 echo "the $TheLicense"
3309 echo "Type '?' to read the Preview License."
3310 echo "Type 'yes' to accept this license offer."
3311 echo "Type 'no' to decline this license offer."
3313 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3317 if [ "$acceptance" = "yes" ]; then
3319 elif [ "$acceptance" = "no" ] ;then
3320 echo "You are not licensed to use this software."
3323 elif [ "$acceptance" = "?" ]; then
3324 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3327 elif [ "$Edition" != "OpenSource" ]; then
3328 if [ -n "$ExpiryDate" ]; then
3329 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3330 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3331 Today=`date +%Y%m%d`
3332 if [ "$Today" -gt "$ExpiryDate" ]; then
3333 case "$LicenseType" in
3334 Commercial|Academic|Educational)
3335 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3337 echo "NOTICE NOTICE NOTICE NOTICE"
3339 echo " Your support and upgrade period has expired."
3341 echo " You are no longer licensed to use this version of Qt."
3342 echo " Please contact qt-info@nokia.com to renew your support"
3343 echo " and upgrades for this license."
3345 echo "NOTICE NOTICE NOTICE NOTICE"
3350 echo "WARNING WARNING WARNING WARNING"
3352 echo " Your support and upgrade period has expired."
3354 echo " You may continue to use your last licensed release"
3355 echo " of Qt under the terms of your existing license"
3356 echo " agreement. But you are not entitled to technical"
3357 echo " support, nor are you entitled to use any more recent"
3358 echo " Qt releases."
3360 echo " Please contact qt-info@nokia.com to renew your"
3361 echo " support and upgrades for this license."
3363 echo "WARNING WARNING WARNING WARNING"
3370 echo "NOTICE NOTICE NOTICE NOTICE"
3372 echo " Your Evaluation license has expired."
3374 echo " You are no longer licensed to use this software. Please"
3375 echo " contact qt-info@nokia.com to purchase license, or install"
3376 echo " the Qt Open Source Edition if you intend to develop free"
3379 echo "NOTICE NOTICE NOTICE NOTICE"
3386 TheLicense=`head -n 1 "$outpath/LICENSE"`
3388 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3389 echo "You have already accepted the terms of the $TheLicense."
3392 echo "You are licensed to use this software under the terms of"
3393 echo "the $TheLicense."
3395 echo "Type '?' to view the $TheLicense."
3396 echo "Type 'yes' to accept this license offer."
3397 echo "Type 'no' to decline this license offer."
3399 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3403 if [ "$acceptance" = "yes" ]; then
3405 elif [ "$acceptance" = "no" ]; then
3406 echo "You are not licensed to use this software."
3409 else [ "$acceptance" = "?" ]
3410 more "$outpath/LICENSE"
3415 # this should be moved somewhere else
3418 AIX_VERSION=`uname -v`
3419 if [ "$AIX_VERSION" -lt "5" ]; then
3420 QMakeVar add QMAKE_LIBS_X11 -lbind
3427 #-------------------------------------------------------------------------------
3428 # generate qconfig.cpp
3429 #-------------------------------------------------------------------------------
3430 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3432 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3434 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3435 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3437 /* Installation date */
3438 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3440 /* Installation Info */
3441 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3442 "qt_prfxpath=$QT_INSTALL_PREFIX",
3443 "qt_docspath=$QT_INSTALL_DOCS",
3444 "qt_hdrspath=$QT_INSTALL_HEADERS",
3445 "qt_libspath=$QT_INSTALL_LIBS",
3446 "qt_binspath=$QT_INSTALL_BINS",
3447 "qt_plugpath=$QT_INSTALL_PLUGINS",
3448 "qt_impspath=$QT_INSTALL_IMPORTS",
3449 "qt_datapath=$QT_INSTALL_DATA",
3450 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3451 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3452 "qt_tstspath=$QT_INSTALL_TESTS",
3453 #ifdef QT_BUILD_QMAKE
3454 "qt_ssrtpath=$CFG_SYSROOT",
3455 "qt_hpfxpath=$QT_HOST_PREFIX",
3456 "qt_hbinpath=$QT_HOST_BINS",
3457 "qt_hdatpath=$QT_HOST_DATA",
3460 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3463 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3465 /* strlen( "qt_lcnsxxxx" ) == 12 */
3466 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3467 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3469 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3472 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3473 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3474 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3476 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3477 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3478 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3481 # -----------------------------------------------------------------------------
3482 if [ "$LicenseType" = "Evaluation" ]; then
3483 EVALKEY=qt_qevalkey=$LicenseKeyExt
3484 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3485 EVALKEY=qt_qevalkey=
3488 if [ -n "$EVALKEY" ]; then
3489 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3490 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3491 /* Evaluation license key */
3492 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3494 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3498 # -----------------------------------------------------------------------------
3500 # -----------------------------------------------------------------------------
3503 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3505 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3506 if [ "$OPT_SHADOW" = "yes" ]; then
3507 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3508 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3509 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3513 # $1: input variable name (awk regexp)
3514 # $2: optional output variable name
3515 # $3: optional value transformation (sed command)
3516 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3517 # is where the resulting variable is written to
3518 setBootstrapVariable()
3520 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3524 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3525 echo "Creating qmake. Please wait..."
3528 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3529 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3530 if [ -f "$QCONFIG_H" ]; then
3531 OLD_QCONFIG_H=$QCONFIG_H
3532 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3535 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3536 # when building qmake, we use #defines for the install paths,
3537 # however they are real functions in the library
3538 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3539 mkdir -p "$outpath/src/corelib/global"
3540 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3541 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3544 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3546 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3547 rm -rf mkspecs/default mkspecs/default-host
3548 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3549 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3550 mkdir -p "$outpath/qmake" || exit
3552 for mkfile in GNUmakefile Makefile; do
3555 in_mkfile="${mkfile}.in"
3556 if [ "$mkfile" = "Makefile" ]; then
3557 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3558 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3560 in_mkfile="${mkfile}.unix"
3562 in_mkfile="$relpath/qmake/$in_mkfile"
3563 mkfile="$outpath/qmake/$mkfile"
3564 if [ -f "$mkfile" ]; then
3565 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3568 [ -f "$in_mkfile" ] || continue
3570 echo "########################################################################" > "$mkfile"
3571 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3572 echo "########################################################################" >> "$mkfile"
3575 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3576 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3577 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3579 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3580 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3583 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3584 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3585 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3586 setBootstrapVariable QMAKE_CFLAGS
3587 setBootstrapVariable QMAKE_CXXFLAGS
3588 setBootstrapVariable QMAKE_LFLAGS
3590 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3591 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3592 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3594 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3595 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3596 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3597 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3598 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3599 elif [ "$CFG_DEBUG" = "yes" ]; then
3600 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3601 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3602 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3603 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3606 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3607 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3608 for rpath in $RPATH_FLAGS; do
3609 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3612 if [ "$BUILD_ON_MAC" = "yes" ]; then
3613 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3614 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3615 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3616 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3617 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3618 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3619 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3620 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3621 if [ '!' -z "$CFG_SDK" ]; then
3622 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3623 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3624 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3625 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3626 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3629 if [ '!' -z "$D_FLAGS" ]; then
3630 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3632 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3633 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3634 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3635 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3637 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3638 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3639 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3640 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3641 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3642 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3643 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3644 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3645 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3646 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3648 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3649 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3650 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3651 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3656 QMAKE_BUILD_ERROR=no
3657 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3658 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3659 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3660 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3663 #-------------------------------------------------------------------------------
3664 # create a qt.conf for the Qt build tree itself
3665 #-------------------------------------------------------------------------------
3667 QTCONFFILE="$outpath/bin/qt.conf"
3668 cat > "$QTCONFFILE" <<EOF
3673 #-------------------------------------------------------------------------------
3675 #-------------------------------------------------------------------------------
3676 if [ -z "$PKG_CONFIG" ]; then
3677 # See if PKG_CONFIG is set in the mkspec:
3678 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3680 if [ -z "$PKG_CONFIG" ]; then
3681 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3684 if [ "$CFG_PKGCONFIG" = "no" ]; then
3686 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3688 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3689 echo >&2 "a correctly setup pkg-config environment!"
3691 elif [ -n "$PKG_CONFIG" ]; then
3692 # found a pkg-config
3693 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3694 # when xcompiling, check environment to see if it's actually usable
3695 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3696 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3697 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3698 if [ -n "$GCC_MACHINE_DUMP" ]; then
3699 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3701 export PKG_CONFIG_LIBDIR
3702 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3703 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3704 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3705 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3706 echo >&2 "Set this variable to the directory that contains target .pc files"
3707 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3708 echo >&2 "use -force-pkg-config to override this test."
3712 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3715 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3716 if [ -n "$CFG_SYSROOT" ]; then
3717 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3718 export PKG_CONFIG_SYSROOT_DIR
3719 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3720 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3721 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3722 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3723 echo >&2 "or use -force-pkg-config to override this test."
3727 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3731 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3732 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3736 if [ -z "$PKG_CONFIG" ]; then
3737 QT_CONFIG="$QT_CONFIG no-pkg-config"
3740 #-------------------------------------------------------------------------------
3741 # write out device config before we run the test.
3742 #-------------------------------------------------------------------------------
3743 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3744 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3745 rm -f "$DEVICE_VARS_FILE"
3747 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3748 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3751 #-------------------------------------------------------------------------------
3752 # tests that need qmake
3753 #-------------------------------------------------------------------------------
3755 # parameters: path, name, extra args
3758 path=config.tests/$1
3761 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_CONFIG_TEST_COMMANDLINE "$@"
3764 #-------------------------------------------------------------------------------
3765 # determine the target and host architectures
3766 #-------------------------------------------------------------------------------
3768 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3769 OUTFILE=$outpath/arch.result
3770 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_CONFIG_TEST_COMMANDLINE
3771 if [ $? -eq 0 ]; then
3772 eval `cat "$OUTFILE"`
3775 echo "Could not determine the target architecture!"
3776 echo "Turn on verbose messaging (-v) to see the final report."
3778 rm -f "$OUTFILE" 2>/dev/null
3779 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3781 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3782 # Do the same test again, using the host compiler
3783 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_CONFIG_TEST_COMMANDLINE
3784 if [ $? -eq 0 ]; then
3785 eval `cat "$OUTFILE"`
3788 echo "Could not determine the host architecture!"
3789 echo "Turn on verbose messaging (-v) to see the final report."
3791 rm -f "$OUTFILE" 2>/dev/null
3792 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3794 # not cross compiling, host == target
3795 CFG_HOST_ARCH="$CFG_ARCH"
3796 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3800 if [ "$OPT_VERBOSE" = "yes" ]; then
3801 echo "System architecture: '$CFG_ARCH'"
3802 echo "Host architecture: '$CFG_HOST_ARCH'"
3805 #-------------------------------------------------------------------------------
3806 # functionality tests
3807 #-------------------------------------------------------------------------------
3809 # Detect C++11 support
3810 if [ "$CFG_CXX11" != "no" ]; then
3811 if compileTest unix/c++11 "C++11"; then
3813 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3814 echo "C++11 support cannot be enabled due to functionality tests!"
3815 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3816 echo " If you believe this message is in error you may use the continue"
3817 echo " switch (-continue) to $0 to continue."
3824 # detect availability of float math.h functions
3825 if compileTest unix/floatmath "floatmath"; then
3826 CFG_USE_FLOATMATH=yes
3828 CFG_USE_FLOATMATH=no
3831 # detect sse2 support
3832 if [ "${CFG_SSE2}" = "auto" ]; then
3833 if compileTest common/sse2 "sse2"; then
3840 # detect sse3 support
3841 if [ "${CFG_SSE3}" = "auto" ]; then
3842 if compileTest common/sse3 "sse3"; then
3849 # detect ssse3 support
3850 if [ "${CFG_SSSE3}" = "auto" ]; then
3851 if compileTest common/ssse3 "ssse3"; then
3858 # detect sse4.1 support
3859 if [ "${CFG_SSE4_1}" = "auto" ]; then
3860 if compileTest common/sse4_1 "sse4_1"; then
3867 # detect sse4.2 support
3868 if [ "${CFG_SSE4_2}" = "auto" ]; then
3869 if compileTest common/sse4_2 "sse4_2"; then
3876 # detect avx support
3877 if [ "${CFG_AVX}" = "auto" ]; then
3878 if compileTest common/avx "avx"; then
3879 case "$XQMAKESPEC" in
3881 # Some clang versions produce internal compiler errors compiling Qt AVX code
3882 case `$TEST_COMPILER --version` in
3883 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3885 if [ "$OPT_VERBOSE" = "yes" ]; then
3886 echo 'AVX support disabled for blacklisted clang compiler'
3903 # detect avx2 support
3904 if [ "${CFG_AVX}" = "no" ]; then
3907 if [ "${CFG_AVX2}" = "auto" ]; then
3908 if compileTest common/avx2 "avx2"; then
3915 # check iWMMXt support
3916 if [ "$CFG_IWMMXT" = "yes" ]; then
3917 compileTest unix/iwmmxt "iwmmxt"
3918 if [ $? != "0" ]; then
3919 echo "The iWMMXt functionality test failed!"
3920 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3925 # detect neon support
3926 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3927 if compileTest unix/neon "neon"; then
3932 elif [ "$CFG_ARCH" != "arm" ]; then
3936 # detect mips_dsp support
3937 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3943 # detect mips_dspr2 support
3944 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3950 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3953 if [ "$CFG_ZLIB" = "no" ]; then
3954 # Note: Qt no longer support builds without zlib
3955 # So we force a "no" to be "auto" here.
3956 # If you REALLY really need no zlib support, you can still disable
3957 # it by doing the following:
3958 # add "no-zlib" to mkspecs/qconfig.pri
3959 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3961 # There's no guarantee that Qt will build under those conditions
3966 if [ "$CFG_ZLIB" = "auto" ]; then
3967 if compileTest unix/zlib "zlib"; then
3974 if [ "$CFG_LARGEFILE" = "auto" ]; then
3975 #Large files should be enabled for all Linux systems
3979 if [ "$CFG_GUI" = "no" ]; then
3980 QPA_PLATFORM_GUARD=no
3983 # detect how jpeg should be built
3984 if [ "$CFG_JPEG" = "auto" ]; then
3985 if [ "$CFG_SHARED" = "yes" ]; then
3992 if [ "$CFG_LIBJPEG" = "auto" ]; then
3993 if compileTest unix/libjpeg "libjpeg"; then
4000 # detect how gif should be built
4001 if [ "$CFG_GIF" = "auto" ]; then
4002 if [ "$CFG_SHARED" = "yes" ]; then
4010 if [ "$CFG_LIBPNG" = "auto" ]; then
4011 if compileTest unix/libpng "libpng"; then
4018 if [ "$CFG_EGLFS" = "yes" ]; then
4019 if [ "$CFG_EGL" = "no" ]; then
4020 echo "The EGLFS plugin requires EGL support and cannot be built"
4023 if [ "$CFG_OPENGL" != "es2" ]; then
4024 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4031 if [ "$CFG_KMS" = "yes" ]; then
4032 if [ "$CFG_EGL" = "no" ]; then
4033 echo "The KMS plugin requires EGL support and cannot be built"
4036 if [ "$CFG_OPENGL" != "es2" ]; then
4037 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4042 # auto-detect SQL-modules support
4043 for _SQLDR in $CFG_SQL_AVAILABLE; do
4046 if [ "$CFG_SQL_mysql" != "no" ]; then
4047 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4048 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4049 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4050 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4051 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4052 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4053 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4055 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4056 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4057 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4058 echo " You need MySql 4 or higher."
4059 echo " If you believe this message is in error you may use the continue"
4060 echo " switch (-continue) to $0 to continue."
4065 QT_LFLAGS_MYSQL_R=""
4069 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4070 QMakeVar add CONFIG use_libmysqlclient_r
4071 if [ "$CFG_SQL_mysql" = "auto" ]; then
4072 CFG_SQL_mysql=plugin
4074 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4075 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4076 if [ "$CFG_SQL_mysql" = "auto" ]; then
4077 CFG_SQL_mysql=plugin
4080 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4081 echo "MySQL support cannot be enabled due to functionality tests!"
4082 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4083 echo " If you believe this message is in error you may use the continue"
4084 echo " switch (-continue) to $0 to continue."
4089 QT_LFLAGS_MYSQL_R=""
4097 if [ "$CFG_SQL_psql" != "no" ]; then
4098 # Be careful not to use native pg_config when cross building.
4099 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4100 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4101 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4103 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4104 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4105 # But, respect PSQL_LIBS if set
4106 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4107 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4108 if [ "$CFG_SQL_psql" = "auto" ]; then
4112 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4113 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4114 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4115 echo " If you believe this message is in error you may use the continue"
4116 echo " switch (-continue) to $0 to continue."
4127 if [ "$CFG_SQL_odbc" != "no" ]; then
4128 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4129 if [ "$CFG_SQL_odbc" = "auto" ]; then
4133 if compileTest unix/iodbc "iODBC"; then
4134 QT_LFLAGS_ODBC="-liodbc"
4135 if [ "$CFG_SQL_odbc" = "auto" ]; then
4139 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4140 echo "ODBC support cannot be enabled due to functionality tests!"
4141 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4142 echo " If you believe this message is in error you may use the continue"
4143 echo " switch (-continue) to $0 to continue."
4153 if [ "$CFG_SQL_oci" != "no" ]; then
4154 if compileTest unix/oci "OCI"; then
4155 if [ "$CFG_SQL_oci" = "auto" ]; then
4159 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4160 echo "Oracle (OCI) 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_tds" != "no" ]; then
4173 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4174 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4175 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4176 if [ "$CFG_SQL_tds" = "auto" ]; then
4180 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4181 echo "TDS support cannot be enabled due to functionality tests!"
4182 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4183 echo " If you believe this message is in error you may use the continue"
4184 echo " switch (-continue) to $0 to continue."
4193 if [ "$CFG_SQL_db2" != "no" ]; then
4194 if compileTest unix/db2 "DB2"; then
4195 if [ "$CFG_SQL_db2" = "auto" ]; then
4199 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4200 echo "ODBC support cannot be enabled due to functionality tests!"
4201 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4202 echo " If you believe this message is in error you may use the continue"
4203 echo " switch (-continue) to $0 to continue."
4212 if [ "$CFG_SQL_ibase" != "no" ]; then
4213 if compileTest unix/ibase "InterBase"; then
4214 if [ "$CFG_SQL_ibase" = "auto" ]; then
4215 CFG_SQL_ibase=plugin
4218 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4219 echo "InterBase support cannot be enabled due to functionality tests!"
4220 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4221 echo " If you believe this message is in error you may use the continue"
4222 echo " switch (-continue) to $0 to continue."
4231 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4232 if compileTest unix/sqlite2 "SQLite2"; then
4233 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4234 CFG_SQL_sqlite2=plugin
4237 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4238 echo "SQLite2 support cannot be enabled due to functionality tests!"
4239 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4240 echo " If you believe this message is in error you may use the continue"
4241 echo " switch (-continue) to $0 to continue."
4250 if [ "$CFG_SQL_sqlite" != "no" ]; then
4251 SQLITE_AUTODETECT_FAILED="no"
4252 if [ "$CFG_SQLITE" = "system" ]; then
4253 if [ -n "$PKG_CONFIG" ]; then
4254 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4255 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4258 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4260 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4261 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4262 CFG_SQL_sqlite=plugin
4264 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4266 SQLITE_AUTODETECT_FAILED="yes"
4269 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4270 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4271 CFG_SQL_sqlite=plugin
4274 SQLITE_AUTODETECT_FAILED="yes"
4278 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4279 echo "SQLite support cannot be enabled due to functionality tests!"
4280 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4281 echo " If you believe this message is in error you may use the continue"
4282 echo " switch (-continue) to $0 to continue."
4288 if [ "$OPT_VERBOSE" = "yes" ]; then
4289 echo "unknown SQL driver: $_SQLDR"
4295 # auto-detect NIS support
4296 if [ "$CFG_NIS" != "no" ]; then
4297 if compileTest unix/nis "NIS"; then
4300 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4301 echo "NIS support cannot be enabled due to functionality tests!"
4302 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4303 echo " If you believe this message is in error you may use the continue"
4304 echo " switch (-continue) to $0 to continue."
4312 # auto-detect CUPS support
4313 if [ "$CFG_CUPS" != "no" ]; then
4314 if compileTest unix/cups "Cups"; then
4317 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4318 echo "Cups support cannot be enabled due to functionality tests!"
4319 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4320 echo " If you believe this message is in error you may use the continue"
4321 echo " switch (-continue) to $0 to continue."
4329 # auto-detect iconv(3) support
4330 if [ "$CFG_ICONV" != "no" ]; then
4331 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4333 elif compileTest unix/iconv "POSIX iconv"; then
4335 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4337 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4340 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4341 echo "Iconv support cannot be enabled due to functionality tests!"
4342 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4343 echo " If you believe this message is in error you may use the continue"
4344 echo " switch (-continue) to $0 to continue."
4352 # auto-detect libdbus-1 support
4353 if [ "$CFG_DBUS" != "no" ]; then
4354 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4355 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4356 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4358 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4359 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4360 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4361 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4363 if [ "$CFG_DBUS" = "auto" ]; then
4365 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4366 # CFG_DBUS is "yes" or "linked" here
4368 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4369 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4370 echo " If you believe this message is in error you may use the continue"
4371 echo " switch (-continue) to $0 to continue."
4377 # auto-detect Glib support
4378 if [ "$CFG_GLIB" != "no" ]; then
4379 if [ -n "$PKG_CONFIG" ]; then
4380 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4381 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4383 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4385 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4386 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4388 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4389 echo "Glib support cannot be enabled due to functionality tests!"
4390 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4391 echo " If you believe this message is in error you may use the continue"
4392 echo " switch (-continue) to $0 to continue."
4400 # auto-detect GTK style support
4401 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4402 if [ -n "$PKG_CONFIG" ]; then
4403 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4404 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4406 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4408 QT_CONFIG="$QT_CONFIG gtkstyle"
4409 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4410 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4412 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4413 echo "Gtk theme support cannot be enabled due to functionality tests!"
4414 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4415 echo " If you believe this message is in error you may use the continue"
4416 echo " switch (-continue) to $0 to continue."
4422 elif [ "$CFG_GLIB" = "no" ]; then
4427 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4428 if [ -n "$PKG_CONFIG" ]; then
4429 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4430 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4432 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4434 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4435 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4437 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4438 echo "Gstreamer support cannot be enabled due to functionality tests!"
4439 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4440 echo " If you believe this message is in error you may use the continue"
4441 echo " switch (-continue) to $0 to continue."
4447 elif [ "$CFG_GLIB" = "no" ]; then
4451 # auto-detect libicu support
4452 if [ "$CFG_ICU" != "no" ]; then
4453 if compileTest unix/icu "ICU"; then
4454 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4456 if [ "$CFG_ICU" = "auto" ]; then
4458 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4461 echo "The ICU library support cannot be enabled."
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."
4470 # Auto-detect PulseAudio support
4471 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4472 if [ -n "$PKG_CONFIG" ]; then
4473 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4474 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4476 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4478 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4479 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4481 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4482 echo "PulseAudio support cannot be enabled due to functionality tests!"
4483 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4484 echo " If you believe this message is in error you may use the continue"
4485 echo " switch (-continue) to $0 to continue."
4494 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4495 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4496 if [ "$CFG_GUI" = "no" ]; then
4497 if [ "$CFG_OPENGL" = "auto" ]; then
4500 if [ "$CFG_OPENGL" != "no" ]; then
4501 echo "OpenGL enabled, but GUI disabled."
4502 echo " You might need to either enable the GUI or disable OpenGL"
4506 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4507 if compileTest x11/opengl "OpenGL"; then
4509 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4512 if [ "$CFG_OPENGL" = "yes" ]; then
4513 echo "All the OpenGL functionality tests failed!"
4514 echo " You might need to modify the include and library search paths by editing"
4515 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4516 echo " ${XQMAKESPEC}."
4523 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4524 if [ "$CFG_OPENGL" = "desktop" ]; then
4525 compileTest x11/glxfbconfig "OpenGL"
4526 if [ $? != "0" ]; then
4527 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4534 elif [ "$CFG_OPENGL" = "es2" ]; then
4536 compileTest unix/opengles2 "OpenGL ES 2.x"
4537 if [ $? != "0" ]; then
4538 echo "The OpenGL ES 2.0 functionality test failed!"
4539 echo " You might need to modify the include and library search paths by editing"
4540 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4541 echo " ${XQMAKESPEC}."
4544 elif [ "$CFG_OPENGL" = "desktop" ]; then
4545 # Desktop OpenGL support
4546 compileTest x11/opengl "OpenGL"
4547 if [ $? != "0" ]; then
4548 echo "The OpenGL functionality test failed!"
4549 echo " You might need to modify the include and library search paths by editing"
4550 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4551 echo " ${XQMAKESPEC}."
4556 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4557 compileTest x11/glxfbconfig "OpenGL"
4558 if [ $? != "0" ]; then
4559 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4566 fi # X11/MINGW OpenGL
4568 if [ "$BUILD_ON_MAC" = "yes" ]; then
4569 if [ "$CFG_COREWLAN" = "auto" ]; then
4570 if compileTest mac/corewlan "CoreWlan"; then
4578 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4579 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4580 if compileTest unix/opengldesktop "OpenGL"; then
4582 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4585 if [ "$CFG_OPENGL" = "yes" ]; then
4586 echo "All the OpenGL functionality tests failed!"
4587 echo " You might need to modify the include and library search paths by editing"
4588 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4589 echo " ${XQMAKESPEC}."
4594 elif [ "$CFG_OPENGL" = "es2" ]; then
4596 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4597 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4598 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4599 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4600 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4601 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4602 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4603 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4606 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4607 if [ $? != "0" ]; then
4608 echo "The OpenGL ES 2.0 functionality test failed!"
4609 echo " You might need to modify the include and library search paths by editing"
4610 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4611 echo " ${XQMAKESPEC}."
4614 elif [ "$CFG_OPENGL" = "desktop" ]; then
4615 # Desktop OpenGL support
4616 compileTest unix/opengldesktop "OpenGL"
4617 if [ $? != "0" ]; then
4618 echo "The OpenGL functionality test failed!"
4619 echo " You might need to modify the include and library search paths by editing"
4620 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4621 echo " ${XQMAKESPEC}."
4626 # auto-detect FontConfig support
4627 if [ "$CFG_FONTCONFIG" != "no" ]; then
4628 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4629 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4630 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4632 QT_CFLAGS_FONTCONFIG=
4633 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4635 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4636 QT_CONFIG="$QT_CONFIG fontconfig"
4637 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4638 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4640 CFG_LIBFREETYPE=system
4647 # Save these for a check later
4648 ORIG_CFG_XCB="$CFG_XCB"
4649 ORIG_CFG_EGLFS="$CFG_EGLFS"
4650 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4651 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4652 ORIG_CFG_KMS="$CFG_KMS"
4654 if [ "$CFG_LIBUDEV" != "no" ]; then
4655 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4656 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4657 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4658 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4659 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4661 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4663 QT_CONFIG="$QT_CONFIG libudev"
4664 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4665 echo "The libudev functionality test failed!"
4671 if [ "$CFG_LIBUDEV" = "no" ]; then
4672 QMakeVar add DEFINES QT_NO_LIBUDEV
4675 if [ "$CFG_EVDEV" != "no" ]; then
4676 if compileTest unix/evdev "evdev"; then
4678 QT_CONFIG="$QT_CONFIG evdev"
4679 elif [ "$CFG_EVDEV" = "yes" ]; then
4680 echo "The evdev functionality test failed!"
4686 if [ "$CFG_EVDEV" = "no" ]; then
4687 QMakeVar add DEFINES QT_NO_EVDEV
4690 # Check we actually have X11 :-)
4691 if compileTest x11/xlib "XLib"; then
4692 QT_CONFIG="$QT_CONFIG xlib"
4695 # auto-detect Xrender support
4696 if [ "$CFG_XRENDER" != "no" ]; then
4697 if compileTest x11/xrender "Xrender"; then
4699 QT_CONFIG="$QT_CONFIG xrender"
4701 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4702 echo "Xrender support cannot be enabled due to functionality tests!"
4703 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4704 echo " If you believe this message is in error you may use the continue"
4705 echo " switch (-continue) to $0 to continue."
4713 if [ "$CFG_XCB" != "no" ]; then
4714 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4715 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4716 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4718 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4720 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4721 QT_CONFIG="$QT_CONFIG xcb-render"
4724 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4726 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4729 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4730 QT_CONFIG="$QT_CONFIG xcb-xlib"
4733 # auto-detect XInput2 support. Needed by xcb too.
4734 if [ "$CFG_XINPUT2" != "no" ]; then
4735 if compileTest x11/xinput2 "XInput2"; then
4739 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4740 echo "XInput2 support cannot be enabled due to functionality tests!"
4741 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4742 echo " If you believe this message is in error you may use the continue"
4743 echo " switch (-continue) to $0 to continue."
4751 if [ "$CFG_XCB" = "yes" ]; then
4752 echo "The XCB test failed!"
4753 echo " You might need to install dependency packages."
4754 echo " See src/plugins/platforms/xcb/README."
4760 if [ "$CFG_XCB" = "no" ]; then
4761 QMakeVar add DEFINES QT_NO_XCB
4764 if [ "$CFG_DIRECTFB" != "no" ]; then
4765 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4766 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4767 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4768 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4770 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4771 echo " DirectFB support cannot be enabled due to functionality tests!"
4772 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4773 echo " If you believe this message is in error you may use the continue"
4774 echo " switch (-continue) to $0 to continue."
4784 if [ "$CFG_LINUXFB" != "no" ]; then
4785 if compileTest qpa/linuxfb "LinuxFB"; then
4787 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4788 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4789 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4790 echo " If you believe this message is in error you may use the continue"
4791 echo " switch (-continue) to $0 to continue."
4798 if [ "$CFG_KMS" != "no" ]; then
4799 if compileTest qpa/kms "KMS"; then
4801 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4802 echo " KMS support cannot be enabled due to functionality tests!"
4803 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4804 echo " If you believe this message is in error you may use the continue"
4805 echo " switch (-continue) to $0 to continue."
4812 # Detect libxkbcommon
4813 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4814 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4815 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4816 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4817 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4819 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4823 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4824 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4825 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4826 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4827 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4828 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4829 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4830 fi # detect EGL support
4831 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4833 elif [ "$CFG_EGL" = "yes" ]; then
4834 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4835 echo " You might need to modify the include and library search paths by editing"
4836 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4841 elif [ "$CFG_OPENGL" = "desktop" ]; then
4842 if [ "$CFG_EGL" = "yes" ]; then
4843 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4844 echo "Either disable EGL support or enable OpenGL ES support."
4850 if [ "$CFG_EGLFS" != "no" ]; then
4851 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4852 CFG_EGLFS="$CFG_EGL"
4858 if [ "$CFG_KMS" = "yes" ]; then
4859 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4866 # Detect accessibility support
4867 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4868 if [ "$CFG_XCB" = "no" ]; then
4869 CFG_ACCESSIBILITY=yes
4871 # linux/xcb accessibility needs dbus and atspi-2
4872 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4873 CFG_ACCESSIBILITY=yes
4875 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4876 CFG_ACCESSIBILITY=no
4878 echo "Accessibility support needs pkg-config and libatspi2."
4885 # Determine the default QPA platform
4886 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4888 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4889 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4890 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4891 QT_QPA_DEFAULT_PLATFORM="windows"
4892 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4893 QT_QPA_DEFAULT_PLATFORM="cocoa"
4894 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4895 QT_QPA_DEFAULT_PLATFORM="qnx"
4897 QT_QPA_DEFAULT_PLATFORM="xcb"
4902 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4903 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4904 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4905 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4907 if [ "$CFG_DIRECTFB" = "yes" ]; then
4908 QT_CONFIG="$QT_CONFIG directfb"
4909 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4910 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4912 if [ "$CFG_LINUXFB" = "yes" ]; then
4913 QT_CONFIG="$QT_CONFIG linuxfb"
4915 if [ "$CFG_KMS" = "yes" ]; then
4916 QT_CONFIG="$QT_CONFIG kms"
4919 if [ "$BUILD_ON_MAC" = "yes" ]; then
4920 if compileTest mac/coreservices "CoreServices"; then
4921 QT_CONFIG="$QT_CONFIG coreservices"
4923 QMakeVar add DEFINES QT_NO_CORESERVICES
4927 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4928 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4929 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4930 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4931 echo "No QPA platform plugin enabled!"
4932 echo " If you really want to build without a QPA platform plugin you must pass"
4933 echo " -no-qpa-platform-guard to configure. Doing this will"
4934 echo " produce a Qt that can not run GUI applications."
4935 echo " The dependencies needed for xcb to build are listed in"
4936 echo " src/plugins/platforms/xcb/README"
4943 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4944 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4945 if compileTest unix/freetype "FreeType"; then
4946 CFG_LIBFREETYPE=system
4952 if ! compileTest unix/stl "STL" &&
4953 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4954 echo "STL functionality check failed! Cannot build Qt with this STL library."
4955 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4960 # detect POSIX clock_gettime()
4961 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4962 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
4963 CFG_CLOCK_GETTIME=yes
4965 CFG_CLOCK_GETTIME=no
4969 # detect POSIX monotonic clocks
4970 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4971 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
4972 CFG_CLOCK_MONOTONIC=yes
4974 CFG_CLOCK_MONOTONIC=no
4976 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4977 CFG_CLOCK_MONOTONIC=no
4981 if [ "$CFG_MREMAP" = "auto" ]; then
4982 if compileTest unix/mremap "mremap"; then
4989 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4990 if [ "$CFG_GETADDRINFO" != "no" ]; then
4991 if compileTest unix/getaddrinfo "getaddrinfo"; then
4994 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4995 echo "getaddrinfo support cannot be enabled due to functionality tests!"
4996 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4997 echo " If you believe this message is in error you may use the continue"
4998 echo " switch (-continue) to $0 to continue."
5006 # find if the platform provides inotify
5007 if [ "$CFG_INOTIFY" != "no" ]; then
5008 if compileTest unix/inotify "inotify"; then
5011 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5012 echo "inotify support cannot be enabled due to functionality tests!"
5013 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5014 echo " If you believe this message is in error you may use the continue"
5015 echo " switch (-continue) to $0 to continue."
5023 # find if the platform provides if_nametoindex (ipv6 interface name support)
5024 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5025 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5028 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5029 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5030 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5031 echo " If you believe this message is in error you may use the continue"
5032 echo " switch (-continue) to $0 to continue."
5040 # find if the platform provides getifaddrs (network interface enumeration)
5041 if [ "$CFG_GETIFADDRS" != "no" ]; then
5042 if compileTest unix/getifaddrs "getifaddrs"; then
5045 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5046 echo "getifaddrs support cannot be enabled due to functionality tests!"
5047 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5048 echo " If you believe this message is in error you may use the continue"
5049 echo " switch (-continue) to $0 to continue."
5058 if [ "$CFG_OPENSSL" != "no" ]; then
5059 if compileTest unix/openssl "OpenSSL"; then
5060 if [ "$CFG_OPENSSL" = "auto" ]; then
5064 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5065 echo "OpenSSL support cannot be enabled due to functionality tests!"
5066 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5067 echo " If you believe this message is in error you may use the continue"
5068 echo " switch (-continue) to $0 to continue."
5077 if [ "$CFG_PCRE" != "qt" ]; then
5078 if compileTest unix/pcre "PCRE"; then
5081 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5082 echo "PCRE support cannot be enabled due to functionality tests!"
5083 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5084 echo " If you believe this message is in error you may use the continue"
5085 echo " switch (-continue) to $0 to continue."
5093 # detect OpenVG support
5094 if [ "$CFG_OPENVG" != "no" ]; then
5095 if compileTest unix/openvg "OpenVG"; then
5096 if [ "$CFG_OPENVG" = "auto" ]; then
5099 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5100 if [ "$CFG_OPENVG" = "auto" ]; then
5103 CFG_OPENVG_ON_OPENGL=yes
5104 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5105 if [ "$CFG_OPENVG" = "auto" ]; then
5108 CFG_OPENVG_LC_INCLUDES=yes
5109 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5110 if [ "$CFG_OPENVG" = "auto" ]; then
5113 CFG_OPENVG_LC_INCLUDES=yes
5114 CFG_OPENVG_ON_OPENGL=yes
5116 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5117 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5118 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5119 echo " If you believe this message is in error you may use the continue"
5120 echo " switch (-continue) to $0 to continue."
5126 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5127 CFG_OPENVG_SHIVA=yes
5131 if [ "$CFG_ALSA" = "auto" ]; then
5132 if compileTest unix/alsa "alsa"; then
5139 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5140 if [ "$CFG_ARCH" = "arm" ]; then
5141 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5142 if [ $? != "0" ]; then
5143 CFG_JAVASCRIPTCORE_JIT=no
5146 case "$XPLATFORM" in
5148 CFG_JAVASCRIPTCORE_JIT=no
5154 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5155 QMakeVar set JAVASCRIPTCORE_JIT yes
5156 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5157 QMakeVar set JAVASCRIPTCORE_JIT no
5160 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5161 CFG_AUDIO_BACKEND=yes
5164 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5165 echo "Warning: largefile support cannot be disabled for win32."
5169 #-------------------------------------------------------------------------------
5170 # ask for all that hasn't been auto-detected or specified in the arguments
5171 #-------------------------------------------------------------------------------
5173 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5175 # disable accessibility
5176 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5177 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5179 QT_CONFIG="$QT_CONFIG accessibility"
5183 if [ "$CFG_EGL" = "yes" ]; then
5184 QT_CONFIG="$QT_CONFIG egl"
5186 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5190 if [ "$CFG_EGLFS" = "yes" ]; then
5191 QT_CONFIG="$QT_CONFIG eglfs"
5193 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5197 if [ "$CFG_OPENVG" = "no" ]; then
5198 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5200 QT_CONFIG="$QT_CONFIG openvg"
5201 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5202 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5204 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5205 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5207 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5208 QT_CONFIG="$QT_CONFIG shivavg"
5209 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5214 if [ "$CFG_OPENGL" = "no" ]; then
5215 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5217 QT_CONFIG="$QT_CONFIG opengl"
5220 if [ "$CFG_OPENGL" = "es2" ]; then
5221 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5224 if [ "$CFG_OPENGL" = "es2" ]; then
5225 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5226 QT_CONFIG="$QT_CONFIG opengles2"
5229 # build up the variables for output
5230 if [ "$CFG_DEBUG" = "yes" ]; then
5231 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5232 elif [ "$CFG_DEBUG" = "no" ]; then
5233 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5235 if [ "$CFG_SHARED" = "yes" ]; then
5236 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5237 QT_CONFIG="$QT_CONFIG shared"
5238 elif [ "$CFG_SHARED" = "no" ]; then
5239 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5240 QT_CONFIG="$QT_CONFIG static"
5243 #FIXME: qpa is implicit this should all be removed
5244 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5245 QT_CONFIG="$QT_CONFIG qpa"
5246 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5247 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5249 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5250 # Do not set this here for Windows. Let qmake do it so
5251 # debug and release precompiled headers are kept separate.
5252 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5254 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5255 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5256 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5257 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5258 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5259 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5261 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5262 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5264 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5265 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5266 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5267 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5268 QMakeVar add QMAKE_CFLAGS -g
5269 QMakeVar add QMAKE_CXXFLAGS -g
5270 QT_CONFIG="$QT_CONFIG separate_debug_info"
5272 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5273 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5275 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5276 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5277 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5278 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5279 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5280 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5281 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5282 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5283 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5284 if [ "$CFG_ARCH" = "mips" ]; then
5285 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5286 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5288 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5289 QT_CONFIG="$QT_CONFIG clock-gettime"
5291 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5292 QT_CONFIG="$QT_CONFIG clock-monotonic"
5294 if [ "$CFG_MREMAP" = "yes" ]; then
5295 QT_CONFIG="$QT_CONFIG mremap"
5297 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5298 QT_CONFIG="$QT_CONFIG getaddrinfo"
5300 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5301 QT_CONFIG="$QT_CONFIG ipv6ifname"
5303 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5304 QT_CONFIG="$QT_CONFIG getifaddrs"
5306 if [ "$CFG_INOTIFY" = "yes" ]; then
5307 QT_CONFIG="$QT_CONFIG inotify"
5309 if [ "$CFG_LIBJPEG" = "no" ]; then
5311 elif [ "$CFG_LIBJPEG" = "system" ]; then
5312 QT_CONFIG="$QT_CONFIG system-jpeg"
5314 if [ "$CFG_JPEG" = "no" ]; then
5315 QT_CONFIG="$QT_CONFIG no-jpeg"
5316 elif [ "$CFG_JPEG" = "yes" ]; then
5317 QT_CONFIG="$QT_CONFIG jpeg"
5319 if [ "$CFG_LIBPNG" = "no" ]; then
5322 if [ "$CFG_LIBPNG" = "system" ]; then
5323 QT_CONFIG="$QT_CONFIG system-png"
5325 if [ "$CFG_PNG" = "no" ]; then
5326 QT_CONFIG="$QT_CONFIG no-png"
5327 elif [ "$CFG_PNG" = "yes" ]; then
5328 QT_CONFIG="$QT_CONFIG png"
5330 if [ "$CFG_GIF" = "no" ]; then
5331 QT_CONFIG="$QT_CONFIG no-gif"
5332 elif [ "$CFG_GIF" = "yes" ]; then
5333 QT_CONFIG="$QT_CONFIG gif"
5335 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5336 QT_CONFIG="$QT_CONFIG no-freetype"
5337 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5338 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5339 QT_CONFIG="$QT_CONFIG system-freetype"
5341 QT_CONFIG="$QT_CONFIG freetype"
5343 if [ "$CFG_GUI" = "auto" ]; then
5346 if [ "$CFG_GUI" = "no" ]; then
5347 QT_CONFIG="$QT_CONFIG no-gui"
5350 if [ "$CFG_WIDGETS" = "no" ]; then
5351 QT_CONFIG="$QT_CONFIG no-widgets"
5352 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5355 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5356 #On Mac we implicitly link against libz, so we
5357 #never use the 3rdparty stuff.
5358 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5360 if [ "$CFG_ZLIB" = "yes" ]; then
5361 QT_CONFIG="$QT_CONFIG zlib"
5362 elif [ "$CFG_ZLIB" = "system" ]; then
5363 QT_CONFIG="$QT_CONFIG system-zlib"
5366 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5367 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5368 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5369 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5370 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5371 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5372 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5373 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5374 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5375 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5376 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5377 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5378 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5379 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5381 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5382 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5384 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5385 if [ "$CFG_RPATH" = "yes" ]; then
5386 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5388 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5389 if [ -n "$RPATH_FLAGS" ]; then
5391 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5395 elif [ "$CFG_RPATH" = "yes" ]; then
5396 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5400 if [ -n "$RPATH_FLAGS" ]; then
5401 # add the user defined rpaths
5402 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5405 if [ "$CFG_RPATH" = "yes" ]; then
5406 QT_CONFIG="$QT_CONFIG rpath"
5409 if [ '!' -z "$I_FLAGS" ]; then
5410 # add the user define include paths
5411 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5412 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5415 if [ '!' -z "$W_FLAGS" ]; then
5416 # add the user defined warning flags
5417 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5418 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5419 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5422 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5423 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5424 # Follow default behavior of configure.exe by overriding with "rtti".
5425 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5428 if [ "$CFG_ALSA" = "yes" ]; then
5429 QT_CONFIG="$QT_CONFIG alsa"
5432 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5433 QT_CONFIG="$QT_CONFIG pulseaudio"
5436 if [ "$CFG_COREWLAN" = "yes" ]; then
5437 QT_CONFIG="$QT_CONFIG corewlan"
5440 if [ "$CFG_ICU" = "yes" ]; then
5441 QT_CONFIG="$QT_CONFIG icu"
5444 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5445 QT_CONFIG="$QT_CONFIG force_asserts"
5448 if [ "$CFG_PCRE" = "qt" ]; then
5449 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5453 # Some Qt modules are too advanced in C++ for some old compilers
5454 # Detect here the platforms where they are known to work.
5456 # See Qt documentation for more information on which features are
5457 # supported and on which compilers.
5459 canBuildQtConcurrent="yes"
5460 canUseV8Snapshot="yes"
5462 case "$XPLATFORM" in
5464 # PA-RISC's assembly is too limited
5465 # gcc 3.4 on that platform can't build QtXmlPatterns
5466 # the assembly it generates cannot be compiled
5468 # Check gcc's version
5469 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5473 canBuildQtXmlPatterns="no"
5477 canBuildQtXmlPatterns="no"
5481 unsupported/vxworks-*-g++*)
5484 unsupported/vxworks-*-dcc*)
5486 canBuildQtXmlPatterns="no"
5489 # Check gcc's version
5490 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5498 canBuildQtXmlPatterns="no"
5503 # Check the compiler version
5504 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5507 canBuildQtXmlPatterns="no"
5508 canBuildQtConcurrent="no"
5512 canBuildQtConcurrent="no"
5518 canBuildQtXmlPatterns="no"
5519 canBuildQtConcurrent="no"
5525 # Get the xlC version
5526 cat > xlcver.c <<EOF
5530 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5535 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5536 xlcver=`./xlcver 2>/dev/null`
5539 if [ "$OPT_VERBOSE" = "yes" ]; then
5540 if [ -n "$xlcver" ]; then
5541 echo Found IBM xlC version: $xlcver.
5543 echo Could not determine IBM xlC version, assuming oldest supported.
5550 canBuildQtXmlPatterns="no"
5551 canBuildQtConcurrent="no"
5555 canBuildQtConcurrent="no"
5561 canBuildQtConcurrent="no"
5565 if [ "$CFG_GUI" = "no" ]; then
5566 # WebKit requires QtGui
5570 if [ "$CFG_SHARED" = "no" ]; then
5572 echo "WARNING: Using static linking will disable the WebKit module."
5577 CFG_CONCURRENT="yes"
5578 if [ "$canBuildQtConcurrent" = "no" ]; then
5579 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5582 QT_CONFIG="$QT_CONFIG concurrent"
5586 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5587 QT_CONFIG="$QT_CONFIG audio-backend"
5591 if [ "$CFG_WEBKIT" = "debug" ]; then
5592 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5596 QT_CONFIG="$QT_CONFIG v8"
5597 # Detect snapshot support
5598 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5599 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5602 *) canUseV8Snapshot="no"
5606 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5607 # QEMU crashes when building inside Scratchbox with an ARM target
5608 canUseV8Snapshot="no"
5611 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5612 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5614 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5615 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5618 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5619 QT_CONFIG="$QT_CONFIG v8snapshot"
5623 if [ "$CFG_QML_DEBUG" = "no" ]; then
5624 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5627 case "$QMAKE_CONF_COMPILER" in
5630 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5632 case "$COMPILER_VERSION" in
5634 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5635 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5636 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5639 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5640 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5641 QT_GCC_PATCH_VERSION=0
5651 #-------------------------------------------------------------------------------
5652 # part of configuration information goes into qconfig.h
5653 #-------------------------------------------------------------------------------
5655 case "$CFG_QCONFIG" in
5657 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5660 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5661 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5662 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5663 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5664 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5665 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5667 echo "#endif" >>"$tmpconfig"
5671 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5675 # define QT_EDITION $QT_EDITION
5679 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5680 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5682 if [ "$CFG_SHARED" = "no" ]; then
5683 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5684 /* Qt was configured for a static build */
5685 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5692 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5693 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5696 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5697 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5700 if [ "$BUILD_ON_MAC" = "yes" ]; then
5701 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5702 #if defined(__LP64__)
5703 # define QT_POINTER_SIZE 8
5705 # define QT_POINTER_SIZE 4
5709 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5710 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5713 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5714 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5715 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5718 # Add compiler sub-architecture support
5719 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5720 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5721 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5723 MIPS_DSP MIPS_DSPR2; do
5724 eval "VAL=\$CFG_$SUBARCH"
5727 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5728 >>"$outpath/src/corelib/global/qconfig.h.new"
5733 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5735 if [ "$CFG_DEV" = "yes" ]; then
5736 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5739 # Add QPA to config.h
5740 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5742 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5743 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5746 # Add turned on SQL drivers
5747 for DRIVER in $CFG_SQL_AVAILABLE; do
5748 eval "VAL=\$CFG_SQL_$DRIVER"
5751 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5752 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5753 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5756 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5761 QMakeVar set sql-drivers "$SQL_DRIVERS"
5762 QMakeVar set sql-plugins "$SQL_PLUGINS"
5764 # Add other configuration options to the qconfig.h file
5765 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5766 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5767 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5768 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5769 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5771 # X11/Unix/Mac only configs
5772 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5773 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5774 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5775 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5776 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5777 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5778 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5779 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5780 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5781 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5782 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5783 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5784 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5785 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5787 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5788 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5789 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5790 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5791 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5792 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5793 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5794 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5795 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5796 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5797 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5798 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5799 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5801 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5802 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5803 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5804 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5805 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5806 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5807 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5808 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5810 # sort QCONFIG_FLAGS for neatness if we can
5811 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5812 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5814 if [ -n "$QCONFIG_FLAGS" ]; then
5815 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5816 #ifndef QT_BOOTSTRAPPED
5819 for cfg in $QCONFIG_FLAGS; do
5820 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5821 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5822 # figure out define logic, so we can output the correct
5823 # ifdefs to override the global defines in a project
5825 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5826 # QT_NO_option can be forcefully turned on by QT_option
5827 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5828 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5829 # QT_option can be forcefully turned off by QT_NO_option
5830 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5833 if [ -z $cfgdNeg ]; then
5834 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5841 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5842 #if defined($cfgd) && defined($cfgdNeg)
5844 #elif !defined($cfgd) && !defined($cfgdNeg)
5851 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5852 #endif // QT_BOOTSTRAPPED
5857 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5858 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5859 #define QT_VISIBILITY_AVAILABLE
5864 if [ -n "$QT_LIBINFIX" ]; then
5865 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5866 #define QT_LIBINFIX "$QT_LIBINFIX"
5871 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5873 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5874 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5875 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5877 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5878 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5879 chmod -w "$outpath/src/corelib/global/qconfig.h"
5880 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5881 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5885 #-------------------------------------------------------------------------------
5886 # save configuration into qconfig.pri
5887 #-------------------------------------------------------------------------------
5888 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5889 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5890 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5891 if [ "$CFG_DEBUG" = "yes" ]; then
5892 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5893 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5894 QT_CONFIG="$QT_CONFIG release"
5896 QT_CONFIG="$QT_CONFIG debug"
5897 elif [ "$CFG_DEBUG" = "no" ]; then
5898 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5899 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5900 QT_CONFIG="$QT_CONFIG debug"
5902 QT_CONFIG="$QT_CONFIG release"
5904 if [ "$CFG_FRAMEWORK" = "no" ]; then
5905 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5907 QT_CONFIG="$QT_CONFIG qt_framework"
5908 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5910 if [ "$CFG_DEV" = "yes" ]; then
5911 QT_CONFIG="$QT_CONFIG private_tests"
5914 cat >>"$QTCONFIG.tmp" <<EOF
5916 CONFIG += $QTCONFIG_CONFIG
5918 QT_HOST_ARCH = $CFG_HOST_ARCH
5919 QT_CPU_FEATURES = $CFG_CPUFEATURES
5920 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5921 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5922 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5923 QT_EDITION = $Edition
5924 QT_CONFIG += $QT_CONFIG
5927 QT_VERSION = $QT_VERSION
5928 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5929 QT_MINOR_VERSION = $QT_MINOR_VERSION
5930 QT_PATCH_VERSION = $QT_PATCH_VERSION
5933 QT_LIBINFIX = $QT_LIBINFIX
5934 QT_NAMESPACE = $QT_NAMESPACE
5938 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5939 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5940 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5941 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5942 echo >> "$QTCONFIG.tmp"
5945 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5946 echo "# sysroot" >>"$QTCONFIG.tmp"
5947 echo "!host_build {" >>"$QTCONFIG.tmp"
5948 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5949 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5950 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5951 echo "}" >> "$QTCONFIG.tmp"
5952 echo >> "$QTCONFIG.tmp"
5954 if [ -n "$RPATH_FLAGS" ]; then
5955 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5957 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5958 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5959 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5960 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5963 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5964 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5965 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5968 # replace qconfig.pri if it differs from the newly created temp file
5969 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5970 rm -f "$QTCONFIG.tmp"
5972 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5975 #-------------------------------------------------------------------------------
5976 # save configuration into qmodule.pri
5977 #-------------------------------------------------------------------------------
5978 QTMODULE="$outpath/mkspecs/qmodule.pri"
5980 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5981 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
5983 if [ -n "$QT_CFLAGS_PSQL" ]; then
5984 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5986 if [ -n "$QT_LFLAGS_PSQL" ]; then
5987 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5989 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5990 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5992 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5993 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5995 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5996 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5998 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5999 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6001 if [ -n "$QT_LFLAGS_ODBC" ]; then
6002 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6004 if [ -n "$QT_LFLAGS_TDS" ]; then
6005 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6008 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6009 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6012 #dump in the OPENSSL_LIBS info
6013 if [ '!' -z "$OPENSSL_LIBS" ]; then
6014 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6015 elif [ "$CFG_OPENSSL" = "linked" ]; then
6016 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6019 #dump in the SDK info
6020 if [ '!' -z "$CFG_SDK" ]; then
6021 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6025 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6026 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6028 # replace qmodule.pri if it differs from the newly created temp file
6029 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6030 rm -f "$QTMODULE.tmp"
6032 mv -f "$QTMODULE.tmp" "$QTMODULE"
6035 #-------------------------------------------------------------------------------
6036 # save configuration into .qmake.cache
6037 #-------------------------------------------------------------------------------
6039 CACHEFILE="$outpath/.qmake.cache"
6040 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6041 cat >>"$CACHEFILE.tmp" <<EOF
6043 QT_SOURCE_TREE = \$\$quote($relpath)
6044 QT_BUILD_TREE = \$\$quote($outpath)
6046 include(\$\$PWD/mkspecs/qmodule.pri)
6047 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
6051 # replace .qmake.cache if it differs from the newly created temp file
6052 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6053 rm -f "$CACHEFILE.tmp"
6055 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6058 #-------------------------------------------------------------------------------
6059 # give feedback on configuration
6060 #-------------------------------------------------------------------------------
6061 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6064 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6065 echo "Build type: $PLATFORM"
6067 echo "Building on: $PLATFORM"
6068 echo "Building for: $XPLATFORM"
6071 # the missing space before $CFG_FEATURES is intentional
6072 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6073 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6075 if [ -n "$PLATFORM_NOTES" ]; then
6076 echo "Platform notes:"
6077 echo "$PLATFORM_NOTES"
6082 if [ "$OPT_VERBOSE" = "yes" ]; then
6083 echo $ECHO_N "qmake vars .......... $ECHO_C"
6084 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6085 echo "qmake switches ......... $QMAKE_SWITCHES"
6088 echo "Build .................. $CFG_BUILD_PARTS"
6089 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6090 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6091 echo "Debug .................. yes (combined)"
6092 if [ "$CFG_DEBUG" = "yes" ]; then
6093 echo "Default Link ........... debug"
6095 echo "Default Link ........... release"
6098 echo "Debug .................. $CFG_DEBUG"
6100 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6101 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6103 echo "C++11 support .......... $CFG_CXX11"
6104 if [ -n "$PKG_CONFIG" ]; then
6105 echo "pkg-config ............. yes"
6107 echo "pkg-config ............. no"
6109 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6110 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6111 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6112 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6113 echo "QtGui module ........... $CFG_GUI"
6114 echo "QtWidgets module ....... $CFG_WIDGETS"
6115 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6116 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6118 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6120 echo "QML debugging .......... $CFG_QML_DEBUG"
6121 echo "PCH support ............ $CFG_PRECOMPILE"
6122 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6123 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6124 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6125 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6126 elif [ "$CFG_ARCH" = "arm" ]; then
6127 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6128 echo "NEON support ........... ${CFG_NEON}"
6130 if [ "$CFG_ARCH" = "mips" ]; then
6131 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6133 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6134 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6135 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6136 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6137 echo "NIS support ............ $CFG_NIS"
6138 echo "CUPS support ........... $CFG_CUPS"
6139 echo "Iconv support .......... $CFG_ICONV"
6140 echo "Glib support ........... $CFG_GLIB"
6141 echo "GStreamer support ...... $CFG_GSTREAMER"
6142 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6143 echo "Large File support ..... $CFG_LARGEFILE"
6144 echo "GIF support ............ $CFG_GIF"
6145 if [ "$CFG_JPEG" = "no" ]; then
6146 echo "JPEG support ........... $CFG_JPEG"
6148 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6150 if [ "$CFG_PNG" = "no" ]; then
6151 echo "PNG support ............ $CFG_PNG"
6153 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6155 echo "zlib support ........... $CFG_ZLIB"
6156 echo "Session management ..... $CFG_SM"
6157 echo "libudev support ........ $CFG_LIBUDEV"
6159 if [ "$CFG_OPENGL" = "desktop" ]; then
6160 echo "OpenGL support ......... yes (Desktop OpenGL)"
6161 elif [ "$CFG_OPENGL" = "es2" ]; then
6162 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6164 echo "OpenGL support ......... no"
6167 if [ "$CFG_OPENVG" ]; then
6168 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6169 echo "OpenVG support ......... ShivaVG"
6171 echo "OpenVG support ......... $CFG_OPENVG"
6175 echo "XShape support ......... $CFG_XSHAPE"
6176 echo "XVideo support ......... $CFG_XVIDEO"
6177 echo "XSync support .......... $CFG_XSYNC"
6178 echo "Xinerama support ....... $CFG_XINERAMA"
6179 echo "Xcursor support ........ $CFG_XCURSOR"
6180 echo "Xfixes support ......... $CFG_XFIXES"
6181 echo "Xrandr support ......... $CFG_XRANDR"
6182 echo "Xi support ............. $CFG_XINPUT"
6183 echo "Xi2 support ............ $CFG_XINPUT2"
6184 echo "MIT-SHM support ........ $CFG_MITSHM"
6185 echo "FontConfig support ..... $CFG_FONTCONFIG"
6186 echo "XKB Support ............ $CFG_XKB"
6187 echo "immodule support ....... $CFG_IM"
6188 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6190 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6191 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6192 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6193 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6194 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6195 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6196 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6197 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6198 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6201 if [ "$CFG_OPENSSL" = "yes" ]; then
6202 OPENSSL_LINKAGE="(run-time)"
6203 elif [ "$CFG_OPENSSL" = "linked" ]; then
6204 OPENSSL_LINKAGE="(linked)"
6206 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6207 echo "Alsa support ........... $CFG_ALSA"
6208 if [ "$BUILD_ON_MAC" = "yes" ]; then
6209 echo "CoreWlan support ....... $CFG_COREWLAN"
6211 echo "libICU support ......... $CFG_ICU"
6212 echo "PCRE support ........... $CFG_PCRE"
6213 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6214 echo "Xcb support ............ limited (old version)"
6216 echo "Xcb support ............ $CFG_XCB"
6218 echo "Xrender support ........ $CFG_XRENDER"
6219 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6220 echo "XInput2 support ........ $CFG_XINPUT2"
6222 echo "EGLFS support .......... $CFG_EGLFS"
6223 echo "DirectFB support ....... $CFG_DIRECTFB"
6224 echo "LinuxFB support ........ $CFG_LINUXFB"
6225 echo "KMS support ............ $CFG_KMS"
6228 # complain about not being able to use dynamic plugins if we are using a static build
6229 if [ "$CFG_SHARED" = "no" ]; then
6231 echo "WARNING: Using static linking will disable the use of dynamically"
6232 echo "loaded plugins. Make sure to import all needed static plugins,"
6233 echo "or compile needed modules into the library."
6236 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6238 echo "NOTE: When linking against OpenSSL, you can override the default"
6239 echo "library names through OPENSSL_LIBS."
6241 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6245 exec 1>&3 3>&- # restore stdout
6246 cat $outpath/config.summary # display config feedback to user
6248 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6250 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6251 echo "if you want a pure debug build."
6256 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6261 #-------------------------------------------------------------------------------
6262 # build makefiles based on the configuration
6263 #-------------------------------------------------------------------------------
6265 if [ "$CFG_PROCESS" != "no" ]; then
6267 if [ "$CFG_PROCESS" = "full" ]; then
6268 echo "Creating makefiles. Please wait..."
6269 "$outpath/bin/qmake" -r "$relpath"
6272 "$outpath/bin/qmake" "$relpath"
6275 if [ "$OPT_FAST" = "yes" ]; then
6277 for part in $CFG_BUILD_PARTS; do
6279 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6282 if [ "x$PART_ROOTS" != "x" ]; then
6284 echo "Creating stub makefiles. Please wait..."
6285 QMAKE="$outpath/bin/qmake"
6286 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6287 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6289 test -f "$outpath/$d/Makefile" && continue
6290 echo " for $relpath/$p"
6292 mkdir -p "$outpath/$d" || exit
6293 cat > "$outpath/$d/Makefile" <<EOF || exit
6294 # $outpath/$d/Makefile: generated by configure
6296 # WARNING: This makefile will be replaced with a real makefile.
6297 # All changes made to this file will be lost.
6302 all clean install qmake first Makefile: FORCE
6303 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6313 #-------------------------------------------------------------------------------
6314 # check for platforms that we don't yet know about
6315 #-------------------------------------------------------------------------------
6316 if [ "$CFG_ARCH" = "unknown" ]; then
6319 NOTICE: configure was unable to determine the architecture
6320 for the $XQMAKESPEC target.
6322 Qt will not use a specialized implementation for any atomic
6323 operations. Instead a generic implemention based on either GCC
6324 intrinsics or C++11 std::atomic<T> will be used (when
6325 available). The generic implementations are generally as fast
6326 as and always as safe as a specialized implementation.
6328 If no generic implementation is available, Qt will use a
6329 fallback UNIX implementation which uses a single
6330 pthread_mutex_t to protect all atomic operations. This
6331 implementation is the slow (but safe) fallback implementation
6332 for architectures Qt does not yet support.
6336 #-------------------------------------------------------------------------------
6337 # check if the user passed the -no-zlib option, which is no longer supported
6338 #-------------------------------------------------------------------------------
6339 if [ -n "$ZLIB_FORCED" ]; then
6340 which_zlib="supplied"
6341 if [ "$CFG_ZLIB" = "system" ]; then
6347 NOTICE: The -no-zlib option was supplied but is no longer
6350 Qt now requires zlib support in all builds, so the -no-zlib
6351 option was ignored. Qt will be built using the $which_zlib
6356 #-------------------------------------------------------------------------------
6357 # check if the user passed the obsoleted -wayland or -no-wayland flag
6358 #-------------------------------------------------------------------------------
6359 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6362 NOTICE: The -wayland and -no-wayland flags are now obsolete
6364 All configuring of QtWayland plugin and QtCompositor happens in the module
6368 #-------------------------------------------------------------------------------
6369 # check if the user passed the obsoleted -arch or -host-arch options
6370 #-------------------------------------------------------------------------------
6371 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6374 NOTICE: The -arch and -host-arch options are obsolete.
6376 Qt now detects the target and host architectures based on compiler
6377 output. Qt will be built using $CFG_ARCH for the target architecture
6378 and $CFG_HOST_ARCH for the host architecture (note that these two
6379 will be the same unless you are cross-compiling).
6383 #-------------------------------------------------------------------------------
6384 # finally save the executed command to another script
6385 #-------------------------------------------------------------------------------
6386 if [ `basename $0` != "config.status" ]; then
6387 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6389 # add the system variables
6390 for varname in $SYSTEM_VARIABLES; do
6392 'if [ -n "\$'${varname}'" ]; then
6393 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6398 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6400 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6401 echo "#!/bin/sh" > "$outpath/config.status"
6402 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6403 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6404 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6405 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6406 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6407 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6408 echo "else" >> "$outpath/config.status"
6409 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6410 echo "fi" >> "$outpath/config.status"
6411 chmod +x "$outpath/config.status"
6414 if [ -n "$RPATH_MESSAGE" ]; then
6416 echo "$RPATH_MESSAGE"
6419 MAKE=`basename "$MAKE"`
6421 echo Qt is now configured for building. Just run \'$MAKE\'.
6422 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6423 echo Once everything is built, Qt is installed.
6424 echo You should not run \'$MAKE install\'.
6426 echo Once everything is built, you must run \'$MAKE install\'.
6427 echo Qt will be installed into $QT_INSTALL_PREFIX
6430 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.