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++*) XPLATFORM_MINGW=yes;; esac
1315 XPLATFORM=`resolveDeviceMkspec $VAL`
1316 [ "$XPLATFORM" = "undefined" ] && exit 101
1319 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1320 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1321 DeviceVar set $DEV_VAR $DEV_VAL
1324 QT_QPA_DEFAULT_PLATFORM="$VAL"
1327 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1328 CFG_DEBUG_RELEASE="$VAL"
1334 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1335 CFG_RELEASE_QMAKE="$VAL"
1341 if [ "$VAL" = "yes" ]; then
1343 elif [ "$VAL" = "no" ]; then
1350 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1351 CFG_PREFIX_INSTALL="$VAL"
1360 CFG_FORCEDEBUGINFO="$VAL"
1362 developer-build|commercial|opensource)
1363 # These switches have been dealt with already
1366 if [ "$VAL" = "yes" ]; then
1368 elif [ "$VAL" = "no" ]; then
1375 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1376 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1382 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1383 if [ "$VAL" = "no" ]; then
1384 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1385 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1386 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1392 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1399 if [ "$VAL" = "no" ]; then
1406 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1414 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1421 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1428 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1435 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1442 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1449 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1456 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1463 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1464 CFG_PRECOMPILE="$VAL"
1469 separate-debug-info)
1470 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1471 CFG_SEPARATE_DEBUG_INFO="$VAL"
1472 elif [ "$VAL" = "nocopy" ] ; then
1473 CFG_SEPARATE_DEBUG_INFO="yes"
1474 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1480 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1481 CFG_REDUCE_EXPORTS="$VAL"
1487 if [ "$VAL" = "no" ]; then
1494 if [ "$VAL" = "no" ]; then
1501 if [ "$VAL" = "no" ]; then
1508 if [ "$VAL" = "no" ]; then
1515 if [ "$VAL" = "no" ]; then
1522 if [ "$VAL" = "no" ]; then
1529 if [ "$VAL" = "no" ]; then
1539 if [ "$VAL" = "no" ]; then
1546 if [ "$VAL" = "no" ]; then
1553 if [ "$VAL" = "no" ]; then
1554 CFG_MIPS_DSPR2="$VAL"
1560 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1561 CFG_REDUCE_RELOCATIONS="$VAL"
1567 [ "$VAL" = "qt" ] && VAL=yes
1568 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1573 # No longer supported:
1574 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1577 if [ "$VAL" = "system" ]; then
1584 [ "$VAL" = "yes" ] && VAL=qt
1585 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1592 [ "$VAL" = "yes" ] && VAL=qt
1593 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1600 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1607 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1614 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1621 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1628 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1635 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1636 CFG_FONTCONFIG="$VAL"
1642 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1649 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1656 CFG_OBSOLETE_WAYLAND=yes
1659 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1666 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1673 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1680 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1687 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1694 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1701 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1708 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1715 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1722 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1723 CFG_GSTREAMER="$VAL"
1729 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1730 CFG_QGTKSTYLE="$VAL"
1736 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1739 if [ "$VAL" = "no" ]; then
1747 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1749 elif [ "$VAL" = "no" ]; then
1756 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1757 QPA_PLATFORM_GUARD="$VAL"
1763 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1765 elif [ "$VAL" = "runtime" ]; then
1772 if [ "$VAL" = "yes" ]; then
1779 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1786 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1787 CFG_LARGEFILE="$VAL"
1793 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1800 if [ "$VAL" = "yes" ]; then
1801 CFG_OPENSSL="linked"
1807 if [ "$VAL" = "yes" ]; then
1810 if [ "$VAL" = "no" ]; then
1818 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1819 CFG_JAVASCRIPTCORE_JIT="$VAL"
1825 if [ "$VAL" = "yes" ]; then
1826 OPT_CONFIRM_LICENSE="$VAL"
1832 if [ "$VAL" = "yes" ]; then
1838 sql-*|imageformat-*)
1839 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1840 # if autoconf style options were used, $VAL can be "yes" or "no"
1841 [ "$VAL" = "yes" ] && VAL=qt
1842 # now $VAL should be "no", "qt", or "plugin"... double-check
1843 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1846 # now $VAL is "no", "qt", or "plugin"
1848 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1849 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1851 # Grab the available values
1854 avail="$CFG_SQL_AVAILABLE"
1857 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1858 if [ "$OPT" != "plugin" ]; then
1859 # png is always built in
1865 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1869 # Check that that user's value is available.
1872 if [ "$VAL" = "$d" ]; then
1877 [ "$found" = yes ] || ERROR=yes
1879 if [ "$VAR" = "sql" ]; then
1880 # set the CFG_SQL_driver
1881 eval "CFG_SQL_$VAL=\$OPT"
1883 elif [ "$VAR" = "imageformat" ]; then
1884 [ "$OPT" = "qt" ] && OPT=yes
1885 VAL="`echo $VAL |tr a-z A-Z`"
1886 eval "CFG_$VAL=$OPT"
1890 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1891 if [ "$OPT" = "plugin" ]; then
1894 QMakeVar add "${VAR}s" "${VAL}"
1895 elif [ "$OPT" = "no" ]; then
1896 PLUG_VAR="${VAR}-plugin"
1898 QMakeVar del "${IN_VAR}s" "$VAL"
1899 QMakeVar del "${PLUG_VAR}s" "$VAL"
1901 if [ "$ERROR" = "yes" ]; then
1902 echo "$CURRENT_OPT: unknown argument"
1907 if [ "$VAL" = "yes" ]; then
1908 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1909 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1913 elif [ "$VAL" = "no" ]; then
1914 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1915 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1924 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1931 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1938 DEFINES="$DEFINES \"$VAL\""
1939 D_FLAGS="$D_FLAGS -D\"$VAL\""
1942 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1945 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1948 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1951 L_FLAGS="$L_FLAGS -l\"${VAL}\""
1954 if [ "$BUILD_ON_MAC" = "yes" ]; then
1955 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1956 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1962 if [ "$BUILD_ON_MAC" = "yes" ]; then
1963 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
1969 W_FLAGS="$W_FLAGS \"${VAL}\""
1984 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1985 CFG_AUDIO_BACKEND="$VAL"
1991 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1998 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1999 CFG_FORCE_ASSERTS="$VAL"
2005 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2012 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2022 if [ "$UNKNOWN_OPT" = "yes" ]; then
2023 echo "${CURRENT_OPT}: invalid command-line switch"
2029 # update QT_CONFIG to show our current predefined configuration
2030 case "$CFG_QCONFIG" in
2031 minimal|small|medium|large|full)
2032 # these are a sequence of increasing functionality
2033 for c in minimal small medium large full; do
2034 QT_CONFIG="$QT_CONFIG $c-config"
2035 [ "$CFG_QCONFIG" = $c ] && break
2039 # not known to be sufficient for anything
2040 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2041 echo >&2 "Error: configuration file not found:"
2042 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2044 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2049 #-------------------------------------------------------------------------------
2050 # build tree initialization
2051 #-------------------------------------------------------------------------------
2053 # where to find which..
2054 unixtests="$relpath/config.tests/unix"
2055 mactests="$relpath/config.tests/mac"
2056 WHICH="$unixtests/which.test"
2058 PERL=`$WHICH perl 2>/dev/null`
2060 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2062 for e in gawk nawk awk; do
2063 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2070 PERL="/usr/bin/perl"
2071 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2075 ### skip this if the user just needs help...
2076 if [ "$OPT_HELP" != "yes" ]; then
2078 # is this a shadow build?
2079 if [ "$OPT_SHADOW" = "maybe" ]; then
2081 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2082 if [ -h "$outpath" ]; then
2083 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2089 if [ "$OPT_SHADOW" = "yes" ]; then
2090 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2091 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2092 echo >&2 "Cannot proceed."
2095 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2098 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2100 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2101 echo "Qt can be built in release mode with separate debug information, so"
2102 echo "-debug-and-release is not necessary anymore"
2106 if [ "$CFG_SILENT" = "yes" ]; then
2107 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2110 # if the source tree is different from the build tree,
2111 # symlink or copy part of the sources
2112 if [ "$OPT_SHADOW" = "yes" ]; then
2113 echo "Preparing build tree..."
2115 if [ -z "$PERL" ]; then
2117 echo "You need perl in your PATH to make a shadow build."
2118 echo "Cannot proceed."
2122 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2124 # make a syncqt script that can be used in the shadow
2125 rm -f "$outpath/bin/syncqt"
2126 if [ -x "$relpath/bin/syncqt" ]; then
2127 mkdir -p "$outpath/bin"
2128 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2129 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2130 chmod 755 "$outpath/bin/syncqt"
2133 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2134 rm -f "$outpath/bin/$i"
2135 if [ -x "$relpath/bin/$i" ]; then
2136 mkdir -p "$outpath/bin"
2137 echo "#!/bin/sh" >"$outpath/bin/$i"
2138 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2139 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2140 chmod 755 "$outpath/bin/$i"
2144 # save a pre-existing mkspecs/modules dir
2145 test -d "$outpath/mkspecs/modules" && \
2146 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2147 # ditto for mkspecs/modules-inst
2148 test -d "$outpath/mkspecs/modules-inst" && \
2149 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2151 # symlink the mkspecs directory
2152 mkdir -p "$outpath/mkspecs"
2153 rm -rf "$outpath"/mkspecs/*
2154 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2155 rm -f "$outpath/mkspecs/default"
2159 rm -rf "$outpath/mkspecs/$1"
2160 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2161 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2164 # Special case for mkspecs/features directory.
2165 # To be able to place .prf files into a shadow build directory,
2166 # we're creating links for files only. The directory structure is reproduced.
2167 ShadowMkspecs features
2169 # The modules dir is special, too.
2170 if test -d "$outpath/mkspecs-modules"; then
2171 rm -rf "$outpath/mkspecs/modules"
2172 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2174 ShadowMkspecs modules
2177 # The modules-inst dir is not quite as special, but still.
2178 if test -d "$outpath/mkspecs-modules-inst"; then
2179 rm -rf "$outpath/mkspecs/modules-inst"
2180 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2183 # symlink the doc directory
2184 rm -rf "$outpath/doc"
2185 ln -s "$relpath/doc" "$outpath/doc"
2188 # symlink fonts to be able to run application from build directory
2189 if [ ! -d "${outpath}/lib/fonts" ]; then
2190 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2191 mkdir -p "${outpath}/lib"
2192 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2196 if [ "$OPT_FAST" = "auto" ]; then
2197 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2204 # find a make command
2205 if [ -z "$MAKE" ]; then
2207 for mk in gmake make; do
2208 if "$WHICH" $mk >/dev/null 2>&1; then
2213 if [ -z "$MAKE" ]; then
2214 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2215 echo >&2 "Cannot proceed."
2218 # export MAKE, we need it later in the config.tests
2224 #-------------------------------------------------------------------------------
2225 # auto-detect all that hasn't been specified in the arguments
2226 #-------------------------------------------------------------------------------
2228 if [ -z "$PLATFORM" ]; then
2230 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2232 OSX_VERSION=`uname -r | cut -d. -f1`
2233 # Select compiler. Use g++ unless we find a usable Clang version
2235 if [ "$OSX_VERSION" -ge 12 ]; then
2236 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2238 elif [ "$OSX_VERSION" -eq 11 ]; then
2239 # We're on Lion. Check if we have a supported Clang version
2240 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2243 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2250 #PLATFORM=aix-g++-64
2252 #PLATFORM=aix-xlc-64
2254 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2264 # PLATFORM=dynix-g++
2270 PLATFORM=freebsd-g++
2272 - Also available for FreeBSD: freebsd-icc
2276 PLATFORM=openbsd-g++
2287 #PLATFORM=irix-cc-64
2289 - Also available for IRIX: irix-g++ irix-cc-64
2293 case "$UNAME_MACHINE" in
2295 #PLATFORM=hpuxi-acc-32
2296 PLATFORM=hpuxi-acc-64
2298 - Also available for HP-UXi: hpuxi-acc-32
2304 #PLATFORM=hpux-acc-64
2306 #PLATFORM=hpux-acc-o64
2308 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2317 - Also available for Tru64: tru64-g++
2321 case "$UNAME_MACHINE" in
2323 PLATFORM=linux-g++-64
2330 - Also available for Linux: linux-kcc linux-icc linux-cxx
2334 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2335 PLATFORM="solaris-g++"
2337 #PLATFORM=solaris-g++
2339 #PLATFORM=solaris-cc64
2342 - Also available for Solaris: solaris-g++ solaris-cc-64
2345 ReliantUNIX-*:*|SINIX-*:*)
2346 PLATFORM=reliant-cds
2347 #PLATFORM=reliant-cds-64
2349 - Also available for Reliant UNIX: reliant-cds-64
2359 #PLATFORM=unixware-g++
2360 PLATFORM=unixware-cc
2362 - Also available for OpenUNIX: unixware-g++
2366 #PLATFORM=unixware-g++
2367 PLATFORM=unixware-cc
2369 - Also available for UnixWare: unixware-g++
2376 - Also available for SCO OpenServer: sco-g++
2380 PLATFORM=unixware-g++
2383 PLATFORM=unsupported/qnx-g++
2386 if [ "$OPT_HELP" != "yes" ]; then
2388 echo " The build script does not currently recognize all" >&2
2389 echo " platforms supported by Qt." >&2
2390 echo " Rerun this script with a -platform option listed to" >&2
2391 echo " set the system/compiler combination you use." >&2
2398 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2400 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2401 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2402 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2404 if [ -d "$PLATFORM" ]; then
2405 QMAKESPEC="$PLATFORM"
2407 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2409 if [ -d "$XPLATFORM" ]; then
2410 XQMAKESPEC="$XPLATFORM"
2412 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2414 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2415 QT_CROSS_COMPILE=yes
2416 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2417 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2420 if [ "$BUILD_ON_MAC" = "yes" ]; then
2421 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2423 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2424 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2425 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2426 echo " built with 'macx-g++'" >&2
2432 # check specified platforms are supported
2433 if [ '!' -d "$QMAKESPEC" ]; then
2435 echo " The specified system/compiler is not supported:"
2439 echo " Please see the README file for a complete list."
2443 if [ '!' -d "$XQMAKESPEC" ]; then
2445 echo " The specified system/compiler is not supported:"
2449 echo " Please see the README file for a complete list."
2453 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2455 echo " The specified system/compiler port is not complete:"
2457 echo " $XQMAKESPEC/qplatformdefs.h"
2459 echo " Please contact qt-info@nokia.com."
2464 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2465 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2466 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2467 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2468 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2472 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2473 case `basename "$XPLATFORM"` in
2476 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2478 echo "Please contact qt-info@nokia.com to upgrade your license to"
2479 echo "include this platform, or install the Qt Open Source Edition"
2480 echo "if you intend to develop free software."
2486 #-------------------------------------------------------------------------------
2487 # tests that don't need qmake (must be run before displaying help)
2488 #-------------------------------------------------------------------------------
2490 # detect build style
2491 if [ "$CFG_DEBUG" = "auto" ]; then
2492 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2493 CFG_DEBUG_RELEASE=yes
2495 elif [ "$CFG_DEV" = "yes" ]; then
2496 CFG_DEBUG_RELEASE=no
2499 CFG_DEBUG_RELEASE=no
2503 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2504 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2507 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2508 QT_CONFIG="$QT_CONFIG force_debug_info"
2511 # pass on $CFG_SDK to the configure tests.
2512 if [ '!' -z "$CFG_SDK" ]; then
2513 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2516 # find the default framework value
2517 if [ "$BUILD_ON_MAC" = "yes" ]; then
2518 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2519 CFG_FRAMEWORK="$CFG_SHARED"
2520 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2522 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2530 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2532 TEST_COMPILER=$QMAKE_CONF_COMPILER
2533 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2534 if [ -z "$TEST_COMPILER" ]; then
2535 echo "ERROR: Cannot set the compiler for the configuration tests"
2541 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2542 if [ -n "$GCC_MACHINE_DUMP" ]; then
2543 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2546 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2547 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2551 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2553 # auto-detect precompiled header support
2554 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2555 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2562 # auto-detect support for separate debug info in objcopy
2563 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2564 TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2565 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2566 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2567 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2568 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2569 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2570 CFG_SEPARATE_DEBUG_INFO=no
2574 # binutils on HP-UX is buggy; default to no.
2575 CFG_SEPARATE_DEBUG_INFO=no
2578 CFG_SEPARATE_DEBUG_INFO=yes
2584 # auto-detect -fvisibility support
2585 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2586 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2587 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2588 echo "-reduce-exports was requested but this compiler does not support it"
2589 echo "Re-run configure with -v for more information"
2592 CFG_REDUCE_EXPORTS=no
2594 CFG_REDUCE_EXPORTS=yes
2598 # detect the availability of the -Bsymbolic-functions linker optimization
2599 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2600 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2601 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2602 echo "-reduce-relocations was requested but this compiler does not support it"
2603 echo "Re-run configure with -v for more information"
2606 CFG_REDUCE_RELOCATIONS=no
2608 CFG_REDUCE_RELOCATIONS=yes
2612 # auto-detect GNU make support
2613 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2617 # find the default framework value
2618 if [ "$BUILD_ON_MAC" = "yes" ]; then
2619 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2620 CFG_FRAMEWORK="$CFG_SHARED"
2621 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2623 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2631 #setup the build parts
2632 if [ -z "$CFG_BUILD_PARTS" ]; then
2633 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2635 # build tests by default, if a developer build
2636 if [ "$CFG_DEV" = "yes" ]; then
2637 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2640 # don't build tools by default when cross-compiling
2641 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2642 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2645 for nobuild in $CFG_NOBUILD_PARTS; do
2646 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2648 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2650 # echo "WARNING: libs is a required part of the build."
2652 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2655 #-------------------------------------------------------------------------------
2656 # post process QT_INSTALL_* variables
2657 #-------------------------------------------------------------------------------
2659 if [ -z "$QT_INSTALL_PREFIX" ]; then
2660 if [ "$CFG_DEV" = "yes" ]; then
2661 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2663 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2666 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2668 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2669 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2670 if [ "$BUILD_ON_MAC" = "yes" ]; then
2671 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2674 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2677 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2679 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2680 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2681 if [ "$BUILD_ON_MAC" = "yes" ]; then
2682 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2687 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2690 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2692 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2693 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2694 if [ "$BUILD_ON_MAC" = "yes" ]; then
2695 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2696 QT_INSTALL_LIBS="/Library/Frameworks"
2700 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2702 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2704 if [ -z "$QT_INSTALL_BINS" ]; then #default
2705 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2706 if [ "$BUILD_ON_MAC" = "yes" ]; then
2707 QT_INSTALL_BINS="/Developer/Applications/Qt"
2710 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2712 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2714 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2715 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2716 if [ "$BUILD_ON_MAC" = "yes" ]; then
2717 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2720 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2722 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2724 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2725 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2726 if [ "$BUILD_ON_MAC" = "yes" ]; then
2727 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2730 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2732 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2734 if [ -z "$QT_INSTALL_DATA" ]; then #default
2735 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2737 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2739 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2740 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2742 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2744 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2745 if [ "$BUILD_ON_MAC" = "yes" ]; then
2746 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2748 QT_INSTALL_SETTINGS=/etc/xdg
2751 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2753 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2754 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2755 if [ "$BUILD_ON_MAC" = "yes" ]; then
2756 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2759 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2761 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2764 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2765 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2766 if [ "$BUILD_ON_MAC" = "yes" ]; then
2767 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2770 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2772 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2774 #------- host paths --------
2776 if [ -z "$QT_HOST_PREFIX" ]; then
2777 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2780 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2784 if [ -z "$QT_HOST_BINS" ]; then #default
2786 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2787 if [ "$BUILD_ON_MAC" = "yes" ]; then
2788 QT_HOST_BINS="/Developer/Applications/Qt"
2791 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2793 QT_HOST_BINS="$QT_INSTALL_BINS"
2796 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2798 if [ -z "$QT_HOST_DATA" ]; then #default
2800 QT_HOST_DATA="$QT_HOST_PREFIX"
2802 QT_HOST_DATA="$QT_INSTALL_DATA"
2805 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2808 #-------------------------------------------------------------------------------
2809 # help - interactive parts of the script _after_ this section please
2810 #-------------------------------------------------------------------------------
2812 # next, emit a usage message if something failed.
2813 if [ "$OPT_HELP" = "yes" ]; then
2814 [ "x$ERROR" = "xyes" ] && echo
2815 if [ "$CFG_NIS" = "no" ]; then
2822 if [ "$CFG_CUPS" = "no" ]; then
2829 if [ "$CFG_ICONV" = "no" ]; then
2836 if [ "$CFG_LARGEFILE" = "no" ]; then
2843 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2851 if [ "$CFG_XCB" = "no" ]; then
2859 if [ "$CFG_EGLFS" = "no" ]; then
2867 if [ "$CFG_DIRECTFB" = "no" ]; then
2875 if [ "$CFG_LINUXFB" = "no" ]; then
2883 if [ "$CFG_KMS" = "no" ]; then
2891 if [ "$CFG_XINPUT2" = "no" ]; then
2899 if [ "$CFG_DBUS" = "no" ]; then
2907 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2915 if [ "$CFG_GLIB" = "no" ]; then
2924 Usage: $relconf [options]
2926 Installation options:
2928 These are optional, but you may specify install directories.
2930 -prefix <dir> ...... This will install everything relative to <dir>
2931 (default $QT_INSTALL_PREFIX)
2933 -hostprefix [dir] .. Tools and libraries needed when developing
2934 applications are installed in [dir]. If [dir] is
2935 not given, the current build directory will be used.
2938 * -prefix-install .... Force a sandboxed "local" installation of
2939 Qt. This will install into
2940 $QT_INSTALL_PREFIX, if this option is
2941 disabled then some platforms will attempt a
2942 "system" install by placing default values to
2943 be placed in a system location other than
2946 You may use these to separate different parts of the install:
2948 -bindir <dir> ......... Executables will be installed to <dir>
2949 (default PREFIX/bin)
2950 -libdir <dir> ......... Libraries will be installed to <dir>
2951 (default PREFIX/lib)
2952 -docdir <dir> ......... Documentation will be installed to <dir>
2953 (default PREFIX/doc)
2954 -headerdir <dir> ...... Headers will be installed to <dir>
2955 (default PREFIX/include)
2956 -plugindir <dir> ...... Plugins will be installed to <dir>
2957 (default PREFIX/plugins)
2958 -importdir <dir> ...... Imports for QML will be installed to <dir>
2959 (default PREFIX/imports)
2960 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2962 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2963 (default PREFIX/translations)
2964 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2965 (default PREFIX/etc/settings)
2966 -examplesdir <dir> .... Examples will be installed to <dir>
2967 (default PREFIX/examples)
2968 -testsdir <dir> ....... Tests will be installed to <dir>
2969 (default PREFIX/tests)
2971 -hostbindir <dir> .. Host executables will be installed to <dir>
2972 (default HOSTPREFIX/bin)
2973 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2974 (default HOSTPREFIX)
2978 The defaults (*) are usually acceptable. A plus (+) denotes a default value
2979 that needs to be evaluated. If the evaluation succeeds, the feature is
2980 included. Here is a short explanation of each option:
2982 * -release ........... Compile and link Qt with debugging turned off.
2983 -debug ............. Compile and link Qt with debugging turned on.
2984 -debug-and-release . Compile and link two versions of Qt, with and without
2985 debugging turned on (Mac only).
2987 -force-debug-info .. Create symbol files for release builds.
2989 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2991 -opensource ........ Compile and link the Open-Source Edition of Qt.
2992 -commercial ........ Compile and link the Commercial Edition of Qt.
2994 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
2995 + -c++11 ............. Compile Qt with C++11 support enabled.
2997 * -shared ............ Create and use shared Qt libraries.
2998 -static ............ Create and use static Qt libraries.
3000 * -process ........... Generate only a top-level Makefile.
3001 -fully-process ..... Generate Makefiles for the entire Qt tree.
3002 -dont-process ...... Do not generate any Makefiles.
3004 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3006 -fast .............. Configure Qt quickly by generating Makefiles only for
3007 library and subdirectory targets. All other Makefiles
3008 are created as wrappers, which will in turn run qmake.
3010 -no-largefile ...... Disables large file support.
3011 + -largefile ......... Enables Qt to access files larger than 4 GB.
3013 -no-accessibility .. Do not compile Accessibility support.
3014 + -accessibility ..... Compile Accessibility support.
3016 -no-sql-<driver> ... Disable SQL <driver> entirely.
3017 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3019 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3022 Possible values for <driver>:
3023 [ $CFG_SQL_AVAILABLE ]
3025 -system-sqlite ..... Use sqlite from the operating system.
3027 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3028 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3030 -no-qml-debug ...... Do not build the in-process QML debugging support.
3031 + -qml-debug ......... Build the QML debugging support.
3033 -platform target ... The operating system and compiler you are building
3036 See the README file for a list of supported
3037 operating systems and compilers.
3039 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3040 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3041 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3042 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3043 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3044 -no-avx ............ Do not compile with use of AVX instructions.
3045 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3046 -no-neon ........... Do not compile with use of NEON instructions.
3047 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3048 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3050 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3051 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3053 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3055 -D <string> ........ Add an explicit define to the preprocessor.
3056 -I <string> ........ Add an explicit include path.
3057 -L <string> ........ Add an explicit library path.
3059 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3060 configure determines whether to use pkg-config or not with
3061 some heuristics such as checking the environment variables.
3062 -no-pkg-config ..... Disable use of pkg-config.
3063 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3064 detection heuristic).
3066 -help, -h .......... Display this information.
3068 Third Party Libraries:
3070 -qt-zlib ........... Use the zlib bundled with Qt.
3071 + -system-zlib ....... Use zlib from the operating system.
3072 See http://www.gzip.org/zlib
3074 -no-gif ............ Do not compile GIF reading support.
3076 -no-libpng ......... Do not compile PNG support.
3077 -qt-libpng ......... Use the libpng bundled with Qt.
3078 + -system-libpng ..... Use libpng from the operating system.
3079 See http://www.libpng.org/pub/png
3081 -no-libjpeg ........ Do not compile JPEG support.
3082 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3083 + -system-libjpeg .... Use libjpeg from the operating system.
3084 See http://www.ijg.org
3086 -no-openssl ........ Do not compile support for OpenSSL.
3087 + -openssl ........... Enable run-time OpenSSL support.
3088 -openssl-linked .... Enabled linked OpenSSL support.
3090 -qt-pcre ........... Use the PCRE library bundled with Qt.
3091 + -system-pcre ....... Use the PCRE library from the operating system.
3095 -make <part> ....... Add part to the list of parts to be built at make time.
3096 ($QT_DEFAULT_BUILD_PARTS)
3097 -nomake <part> ..... Exclude part from the list of parts to be built.
3099 -R <string> ........ Add an explicit runtime library path to the Qt
3101 -l <string> ........ Add an explicit library.
3103 -no-rpath .......... Do not use the library install path as a runtime
3105 + -rpath ............. Link Qt libraries and executables using the library
3106 install path as a runtime library path. Equivalent
3107 to -R install_libpath
3109 -continue .......... Continue as far as possible if an error occurs.
3111 -verbose, -v ....... Print verbose information about each step of the
3114 -silent ............ Reduce the build output so that warnings and errors
3115 can be seen more easily.
3117 * -no-optimized-qmake ... Do not build qmake optimized.
3118 -optimized-qmake ...... Build qmake optimized.
3120 -no-gui ............ Don't build the Qt GUI library
3122 $NSN -no-nis ............ Do not compile NIS support.
3123 $NSY -nis ............... Compile NIS support.
3125 $CUN -no-cups ........... Do not compile CUPS support.
3126 $CUY -cups .............. Compile CUPS support.
3127 Requires cups/cups.h and libcups.so.2.
3129 $CIN -no-iconv .......... Do not compile support for iconv(3).
3130 $CIY -iconv ............. Compile support for iconv(3).
3132 $PHN -no-pch ............ Do not use precompiled header support.
3133 $PHY -pch ............... Use precompiled header support.
3135 $DBN -no-dbus ........... Do not compile the QtDBus module.
3136 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3137 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3139 -reduce-relocations ..... Reduce relocations in the libraries through extra
3140 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3141 experimental; needs GNU ld >= 2.18).
3143 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3145 -device <name> ............... Cross-compile for device <name> (experimental)
3146 -device-option <key=value> ... Add device specific options for the device mkspec
3149 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3150 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3152 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3153 $XCBY -xcb ............... Compile Xcb support.
3155 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3156 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3158 $DFBN -no-directfb ....... Do not compile DirectFB support.
3159 $DFBY -directfb .......... Compile DirectFB support.
3161 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3162 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3164 $KMSN -no-kms ............ Do not compile KMS support.
3165 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3167 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3169 -xplatform target ... The target platform when cross-compiling.
3171 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3172 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3174 -no-feature-<feature> Do not compile in <feature>.
3175 -feature-<feature> .. Compile in <feature>. The available features
3176 are described in src/corelib/global/qfeatures.txt
3178 -no-freetype ........ Do not compile in Freetype2 support.
3179 -qt-freetype ........ Use the libfreetype bundled with Qt.
3180 * -system-freetype .... Use libfreetype from the operating system.
3181 See http://www.freetype.org/
3183 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3184 default ($CFG_QCONFIG).
3186 -no-opengl .......... Do not support OpenGL.
3187 -opengl <api> ....... Enable OpenGL support
3188 With no parameter, this will attempt to auto-detect
3189 OpenGL ES 2, or regular desktop OpenGL.
3190 Use es2 for <api> to override auto-detection.
3192 $GBN -no-glib ........... Do not compile Glib support.
3193 $GBY -glib .............. Compile Glib support.
3196 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3199 $X2N -no-xinput2......... Do not compile XInput2 support.
3200 $X2Y -xinput2............ Compile XInput2 support.
3206 if [ "$BUILD_ON_MAC" = "yes" ]; then
3211 -Fstring ........... Add an explicit framework path.
3212 -fw string ......... Add an explicit framework.
3214 * -framework ......... Build Qt as a series of frameworks and
3215 link tools against those frameworks.
3216 -no-framework ...... Do not build Qt as a series of frameworks.
3218 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3219 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3221 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3222 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3223 QT_ENABLE_HARFBUZZ environment variable.
3228 [ "x$ERROR" = "xyes" ] && exit 1
3233 # -----------------------------------------------------------------------------
3234 # LICENSING, INTERACTIVE PART
3235 # -----------------------------------------------------------------------------
3238 echo "This is the Qt ${EditionString} Edition."
3241 if [ "$Edition" = "OpenSource" ]; then
3243 echo "You are licensed to use this software under the terms of"
3244 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3245 if [ -f "$relpath/LICENSE.GPL3" ]; then
3246 echo "You are also licensed to use this software under the terms of"
3247 echo "the GNU General Public License (GPL) versions 3."
3253 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3254 echo "You have already accepted the terms of the $LicenseType license."
3257 if [ -f "$relpath/LICENSE.GPL3" ]; then
3258 echo "Type '3' to view the GNU General Public License version 3."
3260 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3261 echo "Type 'yes' to accept this license offer."
3262 echo "Type 'no' to decline this license offer."
3264 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3268 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3270 elif [ "$acceptance" = "no" ]; then
3271 echo "You are not licensed to use this software."
3274 elif [ "$acceptance" = "3" ]; then
3275 more "$relpath/LICENSE.GPL3"
3276 elif [ "$acceptance" = "L" ]; then
3277 more "$relpath/LICENSE.LGPL"
3280 elif [ "$Edition" = "Preview" ]; then
3281 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3284 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3285 echo "You have already accepted the terms of the $LicenseType license."
3288 echo "You are licensed to use this software under the terms of"
3289 echo "the $TheLicense"
3291 echo "Type '?' to read the Preview License."
3292 echo "Type 'yes' to accept this license offer."
3293 echo "Type 'no' to decline this license offer."
3295 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3299 if [ "$acceptance" = "yes" ]; then
3301 elif [ "$acceptance" = "no" ] ;then
3302 echo "You are not licensed to use this software."
3305 elif [ "$acceptance" = "?" ]; then
3306 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3309 elif [ "$Edition" != "OpenSource" ]; then
3310 if [ -n "$ExpiryDate" ]; then
3311 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3312 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3313 Today=`date +%Y%m%d`
3314 if [ "$Today" -gt "$ExpiryDate" ]; then
3315 case "$LicenseType" in
3316 Commercial|Academic|Educational)
3317 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3319 echo "NOTICE NOTICE NOTICE NOTICE"
3321 echo " Your support and upgrade period has expired."
3323 echo " You are no longer licensed to use this version of Qt."
3324 echo " Please contact qt-info@nokia.com to renew your support"
3325 echo " and upgrades for this license."
3327 echo "NOTICE NOTICE NOTICE NOTICE"
3332 echo "WARNING WARNING WARNING WARNING"
3334 echo " Your support and upgrade period has expired."
3336 echo " You may continue to use your last licensed release"
3337 echo " of Qt under the terms of your existing license"
3338 echo " agreement. But you are not entitled to technical"
3339 echo " support, nor are you entitled to use any more recent"
3340 echo " Qt releases."
3342 echo " Please contact qt-info@nokia.com to renew your"
3343 echo " support and upgrades for this license."
3345 echo "WARNING WARNING WARNING WARNING"
3352 echo "NOTICE NOTICE NOTICE NOTICE"
3354 echo " Your Evaluation license has expired."
3356 echo " You are no longer licensed to use this software. Please"
3357 echo " contact qt-info@nokia.com to purchase license, or install"
3358 echo " the Qt Open Source Edition if you intend to develop free"
3361 echo "NOTICE NOTICE NOTICE NOTICE"
3368 TheLicense=`head -n 1 "$outpath/LICENSE"`
3370 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3371 echo "You have already accepted the terms of the $TheLicense."
3374 echo "You are licensed to use this software under the terms of"
3375 echo "the $TheLicense."
3377 echo "Type '?' to view the $TheLicense."
3378 echo "Type 'yes' to accept this license offer."
3379 echo "Type 'no' to decline this license offer."
3381 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3385 if [ "$acceptance" = "yes" ]; then
3387 elif [ "$acceptance" = "no" ]; then
3388 echo "You are not licensed to use this software."
3391 else [ "$acceptance" = "?" ]
3392 more "$outpath/LICENSE"
3397 # this should be moved somewhere else
3400 AIX_VERSION=`uname -v`
3401 if [ "$AIX_VERSION" -lt "5" ]; then
3402 QMakeVar add QMAKE_LIBS_X11 -lbind
3409 #-------------------------------------------------------------------------------
3410 # generate qconfig.cpp
3411 #-------------------------------------------------------------------------------
3412 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3414 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3416 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3417 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3419 /* Installation date */
3420 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3422 /* Installation Info */
3423 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3424 "qt_prfxpath=$QT_INSTALL_PREFIX",
3425 "qt_docspath=$QT_INSTALL_DOCS",
3426 "qt_hdrspath=$QT_INSTALL_HEADERS",
3427 "qt_libspath=$QT_INSTALL_LIBS",
3428 "qt_binspath=$QT_INSTALL_BINS",
3429 "qt_plugpath=$QT_INSTALL_PLUGINS",
3430 "qt_impspath=$QT_INSTALL_IMPORTS",
3431 "qt_datapath=$QT_INSTALL_DATA",
3432 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3433 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3434 "qt_tstspath=$QT_INSTALL_TESTS",
3435 #ifdef QT_BUILD_QMAKE
3436 "qt_ssrtpath=$CFG_SYSROOT",
3437 "qt_hpfxpath=$QT_HOST_PREFIX",
3438 "qt_hbinpath=$QT_HOST_BINS",
3439 "qt_hdatpath=$QT_HOST_DATA",
3442 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3445 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3447 /* strlen( "qt_lcnsxxxx" ) == 12 */
3448 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3449 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3451 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3454 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3455 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3456 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3458 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3459 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3460 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3463 # -----------------------------------------------------------------------------
3464 if [ "$LicenseType" = "Evaluation" ]; then
3465 EVALKEY=qt_qevalkey=$LicenseKeyExt
3466 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3467 EVALKEY=qt_qevalkey=
3470 if [ -n "$EVALKEY" ]; then
3471 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3472 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3473 /* Evaluation license key */
3474 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3476 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3480 # -----------------------------------------------------------------------------
3482 # -----------------------------------------------------------------------------
3485 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3487 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3488 if [ "$OPT_SHADOW" = "yes" ]; then
3489 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3490 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3491 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3495 # $1: input variable name (awk regexp)
3496 # $2: optional output variable name
3497 # $3: optional value transformation (sed command)
3498 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3499 # is where the resulting variable is written to
3500 setBootstrapVariable()
3502 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3506 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3507 echo "Creating qmake. Please wait..."
3510 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3511 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3512 if [ -f "$QCONFIG_H" ]; then
3513 OLD_QCONFIG_H=$QCONFIG_H
3514 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3517 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3518 # when building qmake, we use #defines for the install paths,
3519 # however they are real functions in the library
3520 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3521 mkdir -p "$outpath/src/corelib/global"
3522 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3523 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3526 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3528 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3529 rm -rf mkspecs/default mkspecs/default-host
3530 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3531 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3532 mkdir -p "$outpath/qmake" || exit
3534 for mkfile in GNUmakefile Makefile; do
3537 in_mkfile="${mkfile}.in"
3538 if [ "$mkfile" = "Makefile" ]; then
3539 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3540 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3542 in_mkfile="${mkfile}.unix"
3544 in_mkfile="$relpath/qmake/$in_mkfile"
3545 mkfile="$outpath/qmake/$mkfile"
3546 if [ -f "$mkfile" ]; then
3547 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3550 [ -f "$in_mkfile" ] || continue
3552 echo "########################################################################" > "$mkfile"
3553 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3554 echo "########################################################################" >> "$mkfile"
3557 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3558 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3559 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3561 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3562 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3565 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3566 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3567 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3568 setBootstrapVariable QMAKE_CFLAGS
3569 setBootstrapVariable QMAKE_CXXFLAGS
3570 setBootstrapVariable QMAKE_LFLAGS
3572 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3573 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3574 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3576 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3577 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3578 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3579 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3580 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3581 elif [ "$CFG_DEBUG" = "yes" ]; then
3582 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3583 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3584 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3585 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3588 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3589 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3590 for rpath in $RPATH_FLAGS; do
3591 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3594 if [ "$BUILD_ON_MAC" = "yes" ]; then
3595 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3596 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3597 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3598 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3599 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3600 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3601 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3602 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3603 if [ '!' -z "$CFG_SDK" ]; then
3604 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3605 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3606 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3607 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3608 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3611 if [ '!' -z "$D_FLAGS" ]; then
3612 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3614 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3615 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3616 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3617 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3619 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3620 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3621 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3622 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3623 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3624 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3625 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3626 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3627 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3628 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3630 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3631 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3632 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3633 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3638 QMAKE_BUILD_ERROR=no
3639 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3640 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3641 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3642 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3645 #-------------------------------------------------------------------------------
3646 # create a qt.conf for the Qt build tree itself
3647 #-------------------------------------------------------------------------------
3649 QTCONFFILE="$outpath/bin/qt.conf"
3650 cat > "$QTCONFFILE" <<EOF
3655 #-------------------------------------------------------------------------------
3657 #-------------------------------------------------------------------------------
3658 if [ -z "$PKG_CONFIG" ]; then
3659 # See if PKG_CONFIG is set in the mkspec:
3660 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3662 if [ -z "$PKG_CONFIG" ]; then
3663 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3666 if [ "$CFG_PKGCONFIG" = "no" ]; then
3668 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3670 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3671 echo >&2 "a correctly setup pkg-config environment!"
3673 elif [ -n "$PKG_CONFIG" ]; then
3674 # found a pkg-config
3675 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3676 # when xcompiling, check environment to see if it's actually usable
3677 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3678 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3679 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3680 if [ -n "$GCC_MACHINE_DUMP" ]; then
3681 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3683 export PKG_CONFIG_LIBDIR
3684 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3685 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3686 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3687 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3688 echo >&2 "Set this variable to the directory that contains target .pc files"
3689 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3690 echo >&2 "use -force-pkg-config to override this test."
3694 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3697 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3698 if [ -n "$CFG_SYSROOT" ]; then
3699 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3700 export PKG_CONFIG_SYSROOT_DIR
3701 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3702 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3703 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3704 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3705 echo >&2 "or use -force-pkg-config to override this test."
3709 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3713 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3714 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3718 if [ -z "$PKG_CONFIG" ]; then
3719 QT_CONFIG="$QT_CONFIG no-pkg-config"
3722 #-------------------------------------------------------------------------------
3723 # write out device config before we run the test.
3724 #-------------------------------------------------------------------------------
3725 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3726 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3727 rm -f "$DEVICE_VARS_FILE"
3729 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3730 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3733 #-------------------------------------------------------------------------------
3734 # tests that need qmake
3735 #-------------------------------------------------------------------------------
3737 # parameters: path, name, extra args
3740 path=config.tests/$1
3743 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_CONFIG_TEST_COMMANDLINE "$@"
3746 #-------------------------------------------------------------------------------
3747 # determine the target and host architectures
3748 #-------------------------------------------------------------------------------
3750 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3751 OUTFILE=$outpath/arch.result
3752 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_CONFIG_TEST_COMMANDLINE
3753 if [ $? -eq 0 ]; then
3754 eval `cat "$OUTFILE"`
3757 echo "Could not determine the target architecture!"
3758 echo "Turn on verbose messaging (-v) to see the final report."
3760 rm -f "$OUTFILE" 2>/dev/null
3761 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3763 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3764 # Do the same test again, using the host compiler
3765 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_CONFIG_TEST_COMMANDLINE
3766 if [ $? -eq 0 ]; then
3767 eval `cat "$OUTFILE"`
3770 echo "Could not determine the host architecture!"
3771 echo "Turn on verbose messaging (-v) to see the final report."
3773 rm -f "$OUTFILE" 2>/dev/null
3774 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3776 # not cross compiling, host == target
3777 CFG_HOST_ARCH="$CFG_ARCH"
3778 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3782 if [ "$OPT_VERBOSE" = "yes" ]; then
3783 echo "System architecture: '$CFG_ARCH'"
3784 echo "Host architecture: '$CFG_HOST_ARCH'"
3787 #-------------------------------------------------------------------------------
3788 # functionality tests
3789 #-------------------------------------------------------------------------------
3791 # Detect C++11 support
3792 if [ "$CFG_CXX11" != "no" ]; then
3793 if compileTest unix/c++11 "C++11"; then
3795 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3796 echo "C++11 support cannot be enabled due to functionality tests!"
3797 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3798 echo " If you believe this message is in error you may use the continue"
3799 echo " switch (-continue) to $0 to continue."
3806 # detect availability of float math.h functions
3807 if compileTest unix/floatmath "floatmath"; then
3808 CFG_USE_FLOATMATH=yes
3810 CFG_USE_FLOATMATH=no
3813 # detect sse2 support
3814 if [ "${CFG_SSE2}" = "auto" ]; then
3815 if compileTest common/sse2 "sse2"; then
3822 # detect sse3 support
3823 if [ "${CFG_SSE3}" = "auto" ]; then
3824 if compileTest common/sse3 "sse3"; then
3831 # detect ssse3 support
3832 if [ "${CFG_SSSE3}" = "auto" ]; then
3833 if compileTest common/ssse3 "ssse3"; then
3840 # detect sse4.1 support
3841 if [ "${CFG_SSE4_1}" = "auto" ]; then
3842 if compileTest common/sse4_1 "sse4_1"; then
3849 # detect sse4.2 support
3850 if [ "${CFG_SSE4_2}" = "auto" ]; then
3851 if compileTest common/sse4_2 "sse4_2"; then
3858 # detect avx support
3859 if [ "${CFG_AVX}" = "auto" ]; then
3860 if compileTest common/avx "avx"; then
3861 case "$XQMAKESPEC" in
3863 # Some clang versions produce internal compiler errors compiling Qt AVX code
3864 case `$TEST_COMPILER --version` in
3865 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3867 if [ "$OPT_VERBOSE" = "yes" ]; then
3868 echo 'AVX support disabled for blacklisted clang compiler'
3885 # detect avx2 support
3886 if [ "${CFG_AVX}" = "no" ]; then
3889 if [ "${CFG_AVX2}" = "auto" ]; then
3890 if compileTest common/avx2 "avx2"; then
3897 # check iWMMXt support
3898 if [ "$CFG_IWMMXT" = "yes" ]; then
3899 compileTest unix/iwmmxt "iwmmxt"
3900 if [ $? != "0" ]; then
3901 echo "The iWMMXt functionality test failed!"
3902 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3907 # detect neon support
3908 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3909 if compileTest unix/neon "neon"; then
3914 elif [ "$CFG_ARCH" != "arm" ]; then
3918 # detect mips_dsp support
3919 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3925 # detect mips_dspr2 support
3926 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3932 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3935 if [ "$CFG_ZLIB" = "no" ]; then
3936 # Note: Qt no longer support builds without zlib
3937 # So we force a "no" to be "auto" here.
3938 # If you REALLY really need no zlib support, you can still disable
3939 # it by doing the following:
3940 # add "no-zlib" to mkspecs/qconfig.pri
3941 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3943 # There's no guarantee that Qt will build under those conditions
3948 if [ "$CFG_ZLIB" = "auto" ]; then
3949 if compileTest unix/zlib "zlib"; then
3956 if [ "$CFG_LARGEFILE" = "auto" ]; then
3957 #Large files should be enabled for all Linux systems
3961 if [ "$CFG_GUI" = "no" ]; then
3962 QPA_PLATFORM_GUARD=no
3965 # detect how jpeg should be built
3966 if [ "$CFG_JPEG" = "auto" ]; then
3967 if [ "$CFG_SHARED" = "yes" ]; then
3974 if [ "$CFG_LIBJPEG" = "auto" ]; then
3975 if compileTest unix/libjpeg "libjpeg"; then
3982 # detect how gif should be built
3983 if [ "$CFG_GIF" = "auto" ]; then
3984 if [ "$CFG_SHARED" = "yes" ]; then
3992 if [ "$CFG_LIBPNG" = "auto" ]; then
3993 if compileTest unix/libpng "libpng"; then
4000 if [ "$CFG_EGLFS" = "yes" ]; then
4001 if [ "$CFG_EGL" = "no" ]; then
4002 echo "The EGLFS plugin requires EGL support and cannot be built"
4005 if [ "$CFG_OPENGL" != "es2" ]; then
4006 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4013 if [ "$CFG_KMS" = "yes" ]; then
4014 if [ "$CFG_EGL" = "no" ]; then
4015 echo "The KMS plugin requires EGL support and cannot be built"
4018 if [ "$CFG_OPENGL" != "es2" ]; then
4019 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4024 # auto-detect SQL-modules support
4025 for _SQLDR in $CFG_SQL_AVAILABLE; do
4028 if [ "$CFG_SQL_mysql" != "no" ]; then
4029 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4030 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4031 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4032 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4033 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4034 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4035 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4037 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4038 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4039 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4040 echo " You need MySql 4 or higher."
4041 echo " If you believe this message is in error you may use the continue"
4042 echo " switch (-continue) to $0 to continue."
4047 QT_LFLAGS_MYSQL_R=""
4051 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4052 QMakeVar add CONFIG use_libmysqlclient_r
4053 if [ "$CFG_SQL_mysql" = "auto" ]; then
4054 CFG_SQL_mysql=plugin
4056 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4057 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4058 if [ "$CFG_SQL_mysql" = "auto" ]; then
4059 CFG_SQL_mysql=plugin
4062 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4063 echo "MySQL support cannot be enabled due to functionality tests!"
4064 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4065 echo " If you believe this message is in error you may use the continue"
4066 echo " switch (-continue) to $0 to continue."
4071 QT_LFLAGS_MYSQL_R=""
4079 if [ "$CFG_SQL_psql" != "no" ]; then
4080 # Be careful not to use native pg_config when cross building.
4081 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4082 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4083 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4085 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4086 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4087 # But, respect PSQL_LIBS if set
4088 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4089 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4090 if [ "$CFG_SQL_psql" = "auto" ]; then
4094 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4095 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4096 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4097 echo " If you believe this message is in error you may use the continue"
4098 echo " switch (-continue) to $0 to continue."
4109 if [ "$CFG_SQL_odbc" != "no" ]; then
4110 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4111 if [ "$CFG_SQL_odbc" = "auto" ]; then
4115 if compileTest unix/iodbc "iODBC"; then
4116 QT_LFLAGS_ODBC="-liodbc"
4117 if [ "$CFG_SQL_odbc" = "auto" ]; then
4121 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4122 echo "ODBC support cannot be enabled due to functionality tests!"
4123 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4124 echo " If you believe this message is in error you may use the continue"
4125 echo " switch (-continue) to $0 to continue."
4135 if [ "$CFG_SQL_oci" != "no" ]; then
4136 if compileTest unix/oci "OCI"; then
4137 if [ "$CFG_SQL_oci" = "auto" ]; then
4141 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4142 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4143 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4144 echo " If you believe this message is in error you may use the continue"
4145 echo " switch (-continue) to $0 to continue."
4154 if [ "$CFG_SQL_tds" != "no" ]; then
4155 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4156 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4157 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4158 if [ "$CFG_SQL_tds" = "auto" ]; then
4162 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4163 echo "TDS support cannot be enabled due to functionality tests!"
4164 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4165 echo " If you believe this message is in error you may use the continue"
4166 echo " switch (-continue) to $0 to continue."
4175 if [ "$CFG_SQL_db2" != "no" ]; then
4176 if compileTest unix/db2 "DB2"; then
4177 if [ "$CFG_SQL_db2" = "auto" ]; then
4181 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4182 echo "ODBC support cannot be enabled due to functionality tests!"
4183 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4184 echo " If you believe this message is in error you may use the continue"
4185 echo " switch (-continue) to $0 to continue."
4194 if [ "$CFG_SQL_ibase" != "no" ]; then
4195 if compileTest unix/ibase "InterBase"; then
4196 if [ "$CFG_SQL_ibase" = "auto" ]; then
4197 CFG_SQL_ibase=plugin
4200 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4201 echo "InterBase support cannot be enabled due to functionality tests!"
4202 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4203 echo " If you believe this message is in error you may use the continue"
4204 echo " switch (-continue) to $0 to continue."
4213 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4214 if compileTest unix/sqlite2 "SQLite2"; then
4215 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4216 CFG_SQL_sqlite2=plugin
4219 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4220 echo "SQLite2 support cannot be enabled due to functionality tests!"
4221 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4222 echo " If you believe this message is in error you may use the continue"
4223 echo " switch (-continue) to $0 to continue."
4232 if [ "$CFG_SQL_sqlite" != "no" ]; then
4233 SQLITE_AUTODETECT_FAILED="no"
4234 if [ "$CFG_SQLITE" = "system" ]; then
4235 if [ -n "$PKG_CONFIG" ]; then
4236 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4237 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4240 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4242 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4243 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4244 CFG_SQL_sqlite=plugin
4246 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4248 SQLITE_AUTODETECT_FAILED="yes"
4251 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4252 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4253 CFG_SQL_sqlite=plugin
4256 SQLITE_AUTODETECT_FAILED="yes"
4260 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4261 echo "SQLite support cannot be enabled due to functionality tests!"
4262 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4263 echo " If you believe this message is in error you may use the continue"
4264 echo " switch (-continue) to $0 to continue."
4270 if [ "$OPT_VERBOSE" = "yes" ]; then
4271 echo "unknown SQL driver: $_SQLDR"
4277 # auto-detect NIS support
4278 if [ "$CFG_NIS" != "no" ]; then
4279 if compileTest unix/nis "NIS"; then
4282 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4283 echo "NIS support cannot be enabled due to functionality tests!"
4284 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4285 echo " If you believe this message is in error you may use the continue"
4286 echo " switch (-continue) to $0 to continue."
4294 # auto-detect CUPS support
4295 if [ "$CFG_CUPS" != "no" ]; then
4296 if compileTest unix/cups "Cups"; then
4299 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4300 echo "Cups support cannot be enabled due to functionality tests!"
4301 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4302 echo " If you believe this message is in error you may use the continue"
4303 echo " switch (-continue) to $0 to continue."
4311 # auto-detect iconv(3) support
4312 if [ "$CFG_ICONV" != "no" ]; then
4313 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4315 elif compileTest unix/iconv "POSIX iconv"; then
4317 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4319 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4322 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4323 echo "Iconv support cannot be enabled due to functionality tests!"
4324 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4325 echo " If you believe this message is in error you may use the continue"
4326 echo " switch (-continue) to $0 to continue."
4334 # auto-detect libdbus-1 support
4335 if [ "$CFG_DBUS" != "no" ]; then
4336 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4337 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4338 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4340 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4341 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4342 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4343 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4345 if [ "$CFG_DBUS" = "auto" ]; then
4347 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4348 # CFG_DBUS is "yes" or "linked" here
4350 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4351 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4352 echo " If you believe this message is in error you may use the continue"
4353 echo " switch (-continue) to $0 to continue."
4359 # auto-detect Glib support
4360 if [ "$CFG_GLIB" != "no" ]; then
4361 if [ -n "$PKG_CONFIG" ]; then
4362 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4363 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4365 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4367 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4368 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4370 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4371 echo "Glib support cannot be enabled due to functionality tests!"
4372 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4373 echo " If you believe this message is in error you may use the continue"
4374 echo " switch (-continue) to $0 to continue."
4382 # auto-detect GTK style support
4383 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4384 if [ -n "$PKG_CONFIG" ]; then
4385 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4386 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4388 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4390 QT_CONFIG="$QT_CONFIG gtkstyle"
4391 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4392 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4394 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4395 echo "Gtk theme support cannot be enabled due to functionality tests!"
4396 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4397 echo " If you believe this message is in error you may use the continue"
4398 echo " switch (-continue) to $0 to continue."
4404 elif [ "$CFG_GLIB" = "no" ]; then
4409 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4410 if [ -n "$PKG_CONFIG" ]; then
4411 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4412 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4414 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4416 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4417 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4419 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4420 echo "Gstreamer support cannot be enabled due to functionality tests!"
4421 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4422 echo " If you believe this message is in error you may use the continue"
4423 echo " switch (-continue) to $0 to continue."
4429 elif [ "$CFG_GLIB" = "no" ]; then
4433 # auto-detect libicu support
4434 if [ "$CFG_ICU" != "no" ]; then
4435 if compileTest unix/icu "ICU"; then
4436 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4438 if [ "$CFG_ICU" = "auto" ]; then
4440 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4443 echo "The ICU library support cannot be enabled."
4444 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4445 echo " If you believe this message is in error you may use the continue"
4446 echo " switch (-continue) to $0 to continue."
4452 # Auto-detect PulseAudio support
4453 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4454 if [ -n "$PKG_CONFIG" ]; then
4455 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4456 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4458 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4460 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4461 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4463 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4464 echo "PulseAudio support cannot be enabled due to functionality tests!"
4465 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4466 echo " If you believe this message is in error you may use the continue"
4467 echo " switch (-continue) to $0 to continue."
4476 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4477 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4478 if [ "$CFG_GUI" = "no" ]; then
4479 if [ "$CFG_OPENGL" = "auto" ]; then
4482 if [ "$CFG_OPENGL" != "no" ]; then
4483 echo "OpenGL enabled, but GUI disabled."
4484 echo " You might need to either enable the GUI or disable OpenGL"
4488 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4489 if compileTest x11/opengl "OpenGL"; then
4491 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4494 if [ "$CFG_OPENGL" = "yes" ]; then
4495 echo "All the OpenGL functionality tests failed!"
4496 echo " You might need to modify the include and library search paths by editing"
4497 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4498 echo " ${XQMAKESPEC}."
4505 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4506 if [ "$CFG_OPENGL" = "desktop" ]; then
4507 compileTest x11/glxfbconfig "OpenGL"
4508 if [ $? != "0" ]; then
4509 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4516 elif [ "$CFG_OPENGL" = "es2" ]; then
4518 compileTest unix/opengles2 "OpenGL ES 2.x"
4519 if [ $? != "0" ]; then
4520 echo "The OpenGL ES 2.0 functionality test failed!"
4521 echo " You might need to modify the include and library search paths by editing"
4522 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4523 echo " ${XQMAKESPEC}."
4526 elif [ "$CFG_OPENGL" = "desktop" ]; then
4527 # Desktop OpenGL support
4528 compileTest x11/opengl "OpenGL"
4529 if [ $? != "0" ]; then
4530 echo "The OpenGL functionality test failed!"
4531 echo " You might need to modify the include and library search paths by editing"
4532 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4533 echo " ${XQMAKESPEC}."
4538 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4539 compileTest x11/glxfbconfig "OpenGL"
4540 if [ $? != "0" ]; then
4541 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4548 fi # X11/MINGW OpenGL
4550 if [ "$BUILD_ON_MAC" = "yes" ]; then
4551 if [ "$CFG_COREWLAN" = "auto" ]; then
4552 if compileTest mac/corewlan "CoreWlan"; then
4560 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4561 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4562 if compileTest unix/opengldesktop "OpenGL"; then
4564 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4567 if [ "$CFG_OPENGL" = "yes" ]; then
4568 echo "All the OpenGL functionality tests failed!"
4569 echo " You might need to modify the include and library search paths by editing"
4570 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4571 echo " ${XQMAKESPEC}."
4576 elif [ "$CFG_OPENGL" = "es2" ]; then
4578 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4579 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4580 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4581 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4582 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4583 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4584 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4585 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4588 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4589 if [ $? != "0" ]; then
4590 echo "The OpenGL ES 2.0 functionality test failed!"
4591 echo " You might need to modify the include and library search paths by editing"
4592 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4593 echo " ${XQMAKESPEC}."
4596 elif [ "$CFG_OPENGL" = "desktop" ]; then
4597 # Desktop OpenGL support
4598 compileTest unix/opengldesktop "OpenGL"
4599 if [ $? != "0" ]; then
4600 echo "The OpenGL functionality test failed!"
4601 echo " You might need to modify the include and library search paths by editing"
4602 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4603 echo " ${XQMAKESPEC}."
4608 # auto-detect FontConfig support
4609 if [ "$CFG_FONTCONFIG" != "no" ]; then
4610 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4611 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4612 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4614 QT_CFLAGS_FONTCONFIG=
4615 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4617 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4618 QT_CONFIG="$QT_CONFIG fontconfig"
4619 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4620 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4622 CFG_LIBFREETYPE=system
4629 # Save these for a check later
4630 ORIG_CFG_XCB="$CFG_XCB"
4631 ORIG_CFG_EGLFS="$CFG_EGLFS"
4632 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4633 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4634 ORIG_CFG_KMS="$CFG_KMS"
4636 if [ "$CFG_LIBUDEV" != "no" ]; then
4637 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4638 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4639 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4640 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4641 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4643 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4645 QT_CONFIG="$QT_CONFIG libudev"
4646 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4647 echo "The libudev functionality test failed!"
4653 if [ "$CFG_LIBUDEV" = "no" ]; then
4654 QMakeVar add DEFINES QT_NO_LIBUDEV
4657 if [ "$CFG_EVDEV" != "no" ]; then
4658 if compileTest unix/evdev "evdev"; then
4660 QT_CONFIG="$QT_CONFIG evdev"
4661 elif [ "$CFG_EVDEV" = "yes" ]; then
4662 echo "The evdev functionality test failed!"
4668 if [ "$CFG_EVDEV" = "no" ]; then
4669 QMakeVar add DEFINES QT_NO_EVDEV
4672 # Check we actually have X11 :-)
4673 if compileTest x11/xlib "XLib"; then
4674 QT_CONFIG="$QT_CONFIG xlib"
4677 # auto-detect Xrender support
4678 if [ "$CFG_XRENDER" != "no" ]; then
4679 if compileTest x11/xrender "Xrender"; then
4681 QT_CONFIG="$QT_CONFIG xrender"
4683 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4684 echo "Xrender support cannot be enabled due to functionality tests!"
4685 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4686 echo " If you believe this message is in error you may use the continue"
4687 echo " switch (-continue) to $0 to continue."
4695 if [ "$CFG_XCB" != "no" ]; then
4696 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4697 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4698 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4700 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4702 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4703 QT_CONFIG="$QT_CONFIG xcb-render"
4706 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4708 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4711 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4712 QT_CONFIG="$QT_CONFIG xcb-xlib"
4715 # auto-detect XInput2 support. Needed by xcb too.
4716 if [ "$CFG_XINPUT2" != "no" ]; then
4717 if compileTest x11/xinput2 "XInput2"; then
4721 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4722 echo "XInput2 support cannot be enabled due to functionality tests!"
4723 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4724 echo " If you believe this message is in error you may use the continue"
4725 echo " switch (-continue) to $0 to continue."
4733 if [ "$CFG_XCB" = "yes" ]; then
4734 echo "The XCB test failed!"
4735 echo " You might need to install dependency packages."
4736 echo " See src/plugins/platforms/xcb/README."
4742 if [ "$CFG_XCB" = "no" ]; then
4743 QMakeVar add DEFINES QT_NO_XCB
4746 if [ "$CFG_DIRECTFB" != "no" ]; then
4747 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4748 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4749 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4750 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4752 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4753 echo " DirectFB support cannot be enabled due to functionality tests!"
4754 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4755 echo " If you believe this message is in error you may use the continue"
4756 echo " switch (-continue) to $0 to continue."
4766 if [ "$CFG_LINUXFB" != "no" ]; then
4767 if compileTest qpa/linuxfb "LinuxFB"; then
4769 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4770 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4771 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4772 echo " If you believe this message is in error you may use the continue"
4773 echo " switch (-continue) to $0 to continue."
4780 if [ "$CFG_KMS" != "no" ]; then
4781 if compileTest qpa/kms "KMS"; then
4783 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4784 echo " KMS support cannot be enabled due to functionality tests!"
4785 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4786 echo " If you believe this message is in error you may use the continue"
4787 echo " switch (-continue) to $0 to continue."
4794 # Detect libxkbcommon
4795 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4796 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4797 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4798 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4799 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4801 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4805 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4806 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4807 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4808 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4809 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4810 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4811 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4812 fi # detect EGL support
4813 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4815 elif [ "$CFG_EGL" = "yes" ]; then
4816 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4817 echo " You might need to modify the include and library search paths by editing"
4818 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4823 elif [ "$CFG_OPENGL" = "desktop" ]; then
4824 if [ "$CFG_EGL" = "yes" ]; then
4825 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4826 echo "Either disable EGL support or enable OpenGL ES support."
4832 if [ "$CFG_EGLFS" != "no" ]; then
4833 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4834 CFG_EGLFS="$CFG_EGL"
4840 if [ "$CFG_KMS" = "yes" ]; then
4841 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4848 # Detect accessibility support
4849 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4850 if [ "$CFG_XCB" = "no" ]; then
4851 CFG_ACCESSIBILITY=yes
4853 # linux/xcb accessibility needs dbus and atspi-2
4854 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4855 CFG_ACCESSIBILITY=yes
4857 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4858 CFG_ACCESSIBILITY=no
4860 echo "Accessibility support needs pkg-config and libatspi2."
4867 # Determine the default QPA platform
4868 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4870 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4871 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4872 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4873 QT_QPA_DEFAULT_PLATFORM="windows"
4874 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4875 QT_QPA_DEFAULT_PLATFORM="cocoa"
4876 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4877 QT_QPA_DEFAULT_PLATFORM="qnx"
4879 QT_QPA_DEFAULT_PLATFORM="xcb"
4884 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4885 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4886 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4887 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4889 if [ "$CFG_DIRECTFB" = "yes" ]; then
4890 QT_CONFIG="$QT_CONFIG directfb"
4891 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4892 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4894 if [ "$CFG_LINUXFB" = "yes" ]; then
4895 QT_CONFIG="$QT_CONFIG linuxfb"
4897 if [ "$CFG_KMS" = "yes" ]; then
4898 QT_CONFIG="$QT_CONFIG kms"
4901 if [ "$BUILD_ON_MAC" = "yes" ]; then
4902 if compileTest mac/coreservices "CoreServices"; then
4903 QT_CONFIG="$QT_CONFIG coreservices"
4905 QMakeVar add DEFINES QT_NO_CORESERVICES
4909 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4910 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4911 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4912 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4913 echo "No QPA platform plugin enabled!"
4914 echo " If you really want to build without a QPA platform plugin you must pass"
4915 echo " -no-qpa-platform-guard to configure. Doing this will"
4916 echo " produce a Qt that can not run GUI applications."
4917 echo " The dependencies needed for xcb to build are listed in"
4918 echo " src/plugins/platforms/xcb/README"
4925 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4926 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4927 if compileTest unix/freetype "FreeType"; then
4928 CFG_LIBFREETYPE=system
4934 if ! compileTest unix/stl "STL" &&
4935 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4936 echo "STL functionality check failed! Cannot build Qt with this STL library."
4937 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4942 # detect POSIX clock_gettime()
4943 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4944 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
4945 CFG_CLOCK_GETTIME=yes
4947 CFG_CLOCK_GETTIME=no
4951 # detect POSIX monotonic clocks
4952 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4953 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
4954 CFG_CLOCK_MONOTONIC=yes
4956 CFG_CLOCK_MONOTONIC=no
4958 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4959 CFG_CLOCK_MONOTONIC=no
4963 if [ "$CFG_MREMAP" = "auto" ]; then
4964 if compileTest unix/mremap "mremap"; then
4971 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4972 if [ "$CFG_GETADDRINFO" != "no" ]; then
4973 if compileTest unix/getaddrinfo "getaddrinfo"; then
4976 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4977 echo "getaddrinfo support cannot be enabled due to functionality tests!"
4978 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4979 echo " If you believe this message is in error you may use the continue"
4980 echo " switch (-continue) to $0 to continue."
4988 # find if the platform provides inotify
4989 if [ "$CFG_INOTIFY" != "no" ]; then
4990 if compileTest unix/inotify "inotify"; then
4993 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4994 echo "inotify support cannot be enabled due to functionality tests!"
4995 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4996 echo " If you believe this message is in error you may use the continue"
4997 echo " switch (-continue) to $0 to continue."
5005 # find if the platform provides if_nametoindex (ipv6 interface name support)
5006 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5007 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5010 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5011 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5012 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5013 echo " If you believe this message is in error you may use the continue"
5014 echo " switch (-continue) to $0 to continue."
5022 # find if the platform provides getifaddrs (network interface enumeration)
5023 if [ "$CFG_GETIFADDRS" != "no" ]; then
5024 if compileTest unix/getifaddrs "getifaddrs"; then
5027 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5028 echo "getifaddrs support cannot be enabled due to functionality tests!"
5029 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5030 echo " If you believe this message is in error you may use the continue"
5031 echo " switch (-continue) to $0 to continue."
5040 if [ "$CFG_OPENSSL" != "no" ]; then
5041 if compileTest unix/openssl "OpenSSL"; then
5042 if [ "$CFG_OPENSSL" = "auto" ]; then
5046 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5047 echo "OpenSSL support cannot be enabled due to functionality tests!"
5048 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5049 echo " If you believe this message is in error you may use the continue"
5050 echo " switch (-continue) to $0 to continue."
5059 if [ "$CFG_PCRE" != "qt" ]; then
5060 if compileTest unix/pcre "PCRE"; then
5063 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5064 echo "PCRE support cannot be enabled due to functionality tests!"
5065 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5066 echo " If you believe this message is in error you may use the continue"
5067 echo " switch (-continue) to $0 to continue."
5075 # detect OpenVG support
5076 if [ "$CFG_OPENVG" != "no" ]; then
5077 if compileTest unix/openvg "OpenVG"; then
5078 if [ "$CFG_OPENVG" = "auto" ]; then
5081 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5082 if [ "$CFG_OPENVG" = "auto" ]; then
5085 CFG_OPENVG_ON_OPENGL=yes
5086 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5087 if [ "$CFG_OPENVG" = "auto" ]; then
5090 CFG_OPENVG_LC_INCLUDES=yes
5091 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5092 if [ "$CFG_OPENVG" = "auto" ]; then
5095 CFG_OPENVG_LC_INCLUDES=yes
5096 CFG_OPENVG_ON_OPENGL=yes
5098 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5099 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5100 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5101 echo " If you believe this message is in error you may use the continue"
5102 echo " switch (-continue) to $0 to continue."
5108 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5109 CFG_OPENVG_SHIVA=yes
5113 if [ "$CFG_ALSA" = "auto" ]; then
5114 if compileTest unix/alsa "alsa"; then
5121 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5122 if [ "$CFG_ARCH" = "arm" ]; then
5123 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5124 if [ $? != "0" ]; then
5125 CFG_JAVASCRIPTCORE_JIT=no
5128 case "$XPLATFORM" in
5130 CFG_JAVASCRIPTCORE_JIT=no
5136 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5137 QMakeVar set JAVASCRIPTCORE_JIT yes
5138 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5139 QMakeVar set JAVASCRIPTCORE_JIT no
5142 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5143 CFG_AUDIO_BACKEND=yes
5146 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5147 echo "Warning: largefile support cannot be disabled for win32."
5151 #-------------------------------------------------------------------------------
5152 # ask for all that hasn't been auto-detected or specified in the arguments
5153 #-------------------------------------------------------------------------------
5155 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5157 # disable accessibility
5158 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5159 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5161 QT_CONFIG="$QT_CONFIG accessibility"
5165 if [ "$CFG_EGL" = "yes" ]; then
5166 QT_CONFIG="$QT_CONFIG egl"
5168 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5172 if [ "$CFG_EGLFS" = "yes" ]; then
5173 QT_CONFIG="$QT_CONFIG eglfs"
5175 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5179 if [ "$CFG_OPENVG" = "no" ]; then
5180 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5182 QT_CONFIG="$QT_CONFIG openvg"
5183 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5184 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5186 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5187 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5189 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5190 QT_CONFIG="$QT_CONFIG shivavg"
5191 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5196 if [ "$CFG_OPENGL" = "no" ]; then
5197 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5199 QT_CONFIG="$QT_CONFIG opengl"
5202 if [ "$CFG_OPENGL" = "es2" ]; then
5203 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5206 if [ "$CFG_OPENGL" = "es2" ]; then
5207 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5208 QT_CONFIG="$QT_CONFIG opengles2"
5211 # build up the variables for output
5212 if [ "$CFG_DEBUG" = "yes" ]; then
5213 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5214 elif [ "$CFG_DEBUG" = "no" ]; then
5215 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5217 if [ "$CFG_SHARED" = "yes" ]; then
5218 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5219 QT_CONFIG="$QT_CONFIG shared"
5220 elif [ "$CFG_SHARED" = "no" ]; then
5221 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5222 QT_CONFIG="$QT_CONFIG static"
5225 #FIXME: qpa is implicit this should all be removed
5226 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5227 QT_CONFIG="$QT_CONFIG qpa"
5228 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5229 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5231 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5232 # Do not set this here for Windows. Let qmake do it so
5233 # debug and release precompiled headers are kept separate.
5234 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5236 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5237 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5238 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5239 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5240 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5241 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5243 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5244 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5246 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5247 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5248 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5249 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5250 QMakeVar add QMAKE_CFLAGS -g
5251 QMakeVar add QMAKE_CXXFLAGS -g
5252 QT_CONFIG="$QT_CONFIG separate_debug_info"
5254 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5255 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5257 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5258 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5259 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5260 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5261 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5262 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5263 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5264 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5265 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5266 if [ "$CFG_ARCH" = "mips" ]; then
5267 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5268 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5270 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5271 QT_CONFIG="$QT_CONFIG clock-gettime"
5273 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5274 QT_CONFIG="$QT_CONFIG clock-monotonic"
5276 if [ "$CFG_MREMAP" = "yes" ]; then
5277 QT_CONFIG="$QT_CONFIG mremap"
5279 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5280 QT_CONFIG="$QT_CONFIG getaddrinfo"
5282 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5283 QT_CONFIG="$QT_CONFIG ipv6ifname"
5285 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5286 QT_CONFIG="$QT_CONFIG getifaddrs"
5288 if [ "$CFG_INOTIFY" = "yes" ]; then
5289 QT_CONFIG="$QT_CONFIG inotify"
5291 if [ "$CFG_LIBJPEG" = "no" ]; then
5293 elif [ "$CFG_LIBJPEG" = "system" ]; then
5294 QT_CONFIG="$QT_CONFIG system-jpeg"
5296 if [ "$CFG_JPEG" = "no" ]; then
5297 QT_CONFIG="$QT_CONFIG no-jpeg"
5298 elif [ "$CFG_JPEG" = "yes" ]; then
5299 QT_CONFIG="$QT_CONFIG jpeg"
5301 if [ "$CFG_LIBPNG" = "no" ]; then
5304 if [ "$CFG_LIBPNG" = "system" ]; then
5305 QT_CONFIG="$QT_CONFIG system-png"
5307 if [ "$CFG_PNG" = "no" ]; then
5308 QT_CONFIG="$QT_CONFIG no-png"
5309 elif [ "$CFG_PNG" = "yes" ]; then
5310 QT_CONFIG="$QT_CONFIG png"
5312 if [ "$CFG_GIF" = "no" ]; then
5313 QT_CONFIG="$QT_CONFIG no-gif"
5314 elif [ "$CFG_GIF" = "yes" ]; then
5315 QT_CONFIG="$QT_CONFIG gif"
5317 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5318 QT_CONFIG="$QT_CONFIG no-freetype"
5319 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5320 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5321 QT_CONFIG="$QT_CONFIG system-freetype"
5323 QT_CONFIG="$QT_CONFIG freetype"
5325 if [ "$CFG_GUI" = "auto" ]; then
5328 if [ "$CFG_GUI" = "no" ]; then
5329 QT_CONFIG="$QT_CONFIG no-gui"
5332 if [ "$CFG_WIDGETS" = "no" ]; then
5333 QT_CONFIG="$QT_CONFIG no-widgets"
5334 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5337 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5338 #On Mac we implicitly link against libz, so we
5339 #never use the 3rdparty stuff.
5340 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5342 if [ "$CFG_ZLIB" = "yes" ]; then
5343 QT_CONFIG="$QT_CONFIG zlib"
5344 elif [ "$CFG_ZLIB" = "system" ]; then
5345 QT_CONFIG="$QT_CONFIG system-zlib"
5348 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5349 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5350 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5351 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5352 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5353 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5354 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5355 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5356 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5357 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5358 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5359 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5360 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5361 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5363 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5364 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5366 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5367 if [ "$CFG_RPATH" = "yes" ]; then
5368 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5370 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5371 if [ -n "$RPATH_FLAGS" ]; then
5373 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5377 elif [ "$CFG_RPATH" = "yes" ]; then
5378 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5382 if [ -n "$RPATH_FLAGS" ]; then
5383 # add the user defined rpaths
5384 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5387 if [ "$CFG_RPATH" = "yes" ]; then
5388 QT_CONFIG="$QT_CONFIG rpath"
5391 if [ '!' -z "$I_FLAGS" ]; then
5392 # add the user define include paths
5393 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5394 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5397 if [ '!' -z "$W_FLAGS" ]; then
5398 # add the user defined warning flags
5399 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5400 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5401 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5404 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5405 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5406 # Follow default behavior of configure.exe by overriding with "rtti".
5407 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5410 if [ "$CFG_ALSA" = "yes" ]; then
5411 QT_CONFIG="$QT_CONFIG alsa"
5414 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5415 QT_CONFIG="$QT_CONFIG pulseaudio"
5418 if [ "$CFG_COREWLAN" = "yes" ]; then
5419 QT_CONFIG="$QT_CONFIG corewlan"
5422 if [ "$CFG_ICU" = "yes" ]; then
5423 QT_CONFIG="$QT_CONFIG icu"
5426 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5427 QT_CONFIG="$QT_CONFIG force_asserts"
5430 if [ "$CFG_PCRE" = "qt" ]; then
5431 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5435 # Some Qt modules are too advanced in C++ for some old compilers
5436 # Detect here the platforms where they are known to work.
5438 # See Qt documentation for more information on which features are
5439 # supported and on which compilers.
5441 canBuildQtConcurrent="yes"
5442 canUseV8Snapshot="yes"
5444 case "$XPLATFORM" in
5446 # PA-RISC's assembly is too limited
5447 # gcc 3.4 on that platform can't build QtXmlPatterns
5448 # the assembly it generates cannot be compiled
5450 # Check gcc's version
5451 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5455 canBuildQtXmlPatterns="no"
5459 canBuildQtXmlPatterns="no"
5463 unsupported/vxworks-*-g++*)
5466 unsupported/vxworks-*-dcc*)
5468 canBuildQtXmlPatterns="no"
5471 # Check gcc's version
5472 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5480 canBuildQtXmlPatterns="no"
5485 # Check the compiler version
5486 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5489 canBuildQtXmlPatterns="no"
5490 canBuildQtConcurrent="no"
5494 canBuildQtConcurrent="no"
5500 canBuildQtXmlPatterns="no"
5501 canBuildQtConcurrent="no"
5507 # Get the xlC version
5508 cat > xlcver.c <<EOF
5512 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5517 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5518 xlcver=`./xlcver 2>/dev/null`
5521 if [ "$OPT_VERBOSE" = "yes" ]; then
5522 if [ -n "$xlcver" ]; then
5523 echo Found IBM xlC version: $xlcver.
5525 echo Could not determine IBM xlC version, assuming oldest supported.
5532 canBuildQtXmlPatterns="no"
5533 canBuildQtConcurrent="no"
5537 canBuildQtConcurrent="no"
5543 canBuildQtConcurrent="no"
5547 if [ "$CFG_GUI" = "no" ]; then
5548 # WebKit requires QtGui
5552 if [ "$CFG_SHARED" = "no" ]; then
5554 echo "WARNING: Using static linking will disable the WebKit module."
5559 CFG_CONCURRENT="yes"
5560 if [ "$canBuildQtConcurrent" = "no" ]; then
5561 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5564 QT_CONFIG="$QT_CONFIG concurrent"
5568 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5569 QT_CONFIG="$QT_CONFIG audio-backend"
5573 if [ "$CFG_WEBKIT" = "debug" ]; then
5574 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5578 QT_CONFIG="$QT_CONFIG v8"
5579 # Detect snapshot support
5580 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5581 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5584 *) canUseV8Snapshot="no"
5588 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5589 # QEMU crashes when building inside Scratchbox with an ARM target
5590 canUseV8Snapshot="no"
5593 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5594 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5596 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5597 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5600 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5601 QT_CONFIG="$QT_CONFIG v8snapshot"
5605 if [ "$CFG_QML_DEBUG" = "no" ]; then
5606 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5609 case "$QMAKE_CONF_COMPILER" in
5612 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5614 case "$COMPILER_VERSION" in
5616 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5617 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5618 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5621 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5622 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5623 QT_GCC_PATCH_VERSION=0
5633 #-------------------------------------------------------------------------------
5634 # part of configuration information goes into qconfig.h
5635 #-------------------------------------------------------------------------------
5637 case "$CFG_QCONFIG" in
5639 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5642 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5643 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5644 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5645 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5646 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5647 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5649 echo "#endif" >>"$tmpconfig"
5653 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5657 # define QT_EDITION $QT_EDITION
5661 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5662 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5664 if [ "$CFG_SHARED" = "no" ]; then
5665 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5666 /* Qt was configured for a static build */
5667 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5674 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5675 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5678 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5679 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5682 if [ "$BUILD_ON_MAC" = "yes" ]; then
5683 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5684 #if defined(__LP64__)
5685 # define QT_POINTER_SIZE 8
5687 # define QT_POINTER_SIZE 4
5691 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5692 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5695 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5696 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5697 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5701 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5703 if [ "$CFG_DEV" = "yes" ]; then
5704 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5707 # Add QPA to config.h
5708 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5710 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5711 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5714 # Add turned on SQL drivers
5715 for DRIVER in $CFG_SQL_AVAILABLE; do
5716 eval "VAL=\$CFG_SQL_$DRIVER"
5719 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5720 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5721 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5724 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5730 QMakeVar set sql-drivers "$SQL_DRIVERS"
5731 QMakeVar set sql-plugins "$SQL_PLUGINS"
5733 # Add other configuration options to the qconfig.h file
5734 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5735 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5736 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5737 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5738 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5740 # X11/Unix/Mac only configs
5741 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5742 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5743 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5744 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5745 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5746 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5747 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5748 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5749 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5750 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5751 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5752 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5753 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5754 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5756 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5757 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5758 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5759 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5760 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5761 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5762 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5763 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5764 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5765 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5766 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5767 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5768 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5770 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5771 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5772 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5773 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5774 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5775 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5776 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5777 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5779 # sort QCONFIG_FLAGS for neatness if we can
5780 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5781 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5783 if [ -n "$QCONFIG_FLAGS" ]; then
5784 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5785 #ifndef QT_BOOTSTRAPPED
5788 for cfg in $QCONFIG_FLAGS; do
5789 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5790 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5791 # figure out define logic, so we can output the correct
5792 # ifdefs to override the global defines in a project
5794 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5795 # QT_NO_option can be forcefully turned on by QT_option
5796 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5797 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5798 # QT_option can be forcefully turned off by QT_NO_option
5799 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5802 if [ -z $cfgdNeg ]; then
5803 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5810 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5811 #if defined($cfgd) && defined($cfgdNeg)
5813 #elif !defined($cfgd) && !defined($cfgdNeg)
5820 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5821 #endif // QT_BOOTSTRAPPED
5826 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5827 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5828 #define QT_VISIBILITY_AVAILABLE
5833 if [ -n "$QT_LIBINFIX" ]; then
5834 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5835 #define QT_LIBINFIX "$QT_LIBINFIX"
5840 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5842 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5843 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5844 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5846 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5847 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5848 chmod -w "$outpath/src/corelib/global/qconfig.h"
5849 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5850 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5854 #-------------------------------------------------------------------------------
5855 # save configuration into qconfig.pri
5856 #-------------------------------------------------------------------------------
5857 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5858 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5859 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5860 if [ "$CFG_DEBUG" = "yes" ]; then
5861 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5862 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5863 QT_CONFIG="$QT_CONFIG release"
5865 QT_CONFIG="$QT_CONFIG debug"
5866 elif [ "$CFG_DEBUG" = "no" ]; then
5867 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5868 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5869 QT_CONFIG="$QT_CONFIG debug"
5871 QT_CONFIG="$QT_CONFIG release"
5873 if [ "$CFG_FRAMEWORK" = "no" ]; then
5874 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5876 QT_CONFIG="$QT_CONFIG qt_framework"
5877 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5879 if [ "$CFG_DEV" = "yes" ]; then
5880 QT_CONFIG="$QT_CONFIG private_tests"
5883 cat >>"$QTCONFIG.tmp" <<EOF
5885 CONFIG += $QTCONFIG_CONFIG
5887 QT_HOST_ARCH = $CFG_HOST_ARCH
5888 QT_CPU_FEATURES = $CFG_CPUFEATURES
5889 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5890 QT_EDITION = $Edition
5891 QT_CONFIG += $QT_CONFIG
5894 QT_VERSION = $QT_VERSION
5895 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5896 QT_MINOR_VERSION = $QT_MINOR_VERSION
5897 QT_PATCH_VERSION = $QT_PATCH_VERSION
5900 QT_LIBINFIX = $QT_LIBINFIX
5901 QT_NAMESPACE = $QT_NAMESPACE
5905 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5906 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5907 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5908 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5909 echo >> "$QTCONFIG.tmp"
5912 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5913 echo "# sysroot" >>"$QTCONFIG.tmp"
5914 echo "!host_build {" >>"$QTCONFIG.tmp"
5915 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5916 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5917 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5918 echo "}" >> "$QTCONFIG.tmp"
5919 echo >> "$QTCONFIG.tmp"
5921 if [ -n "$RPATH_FLAGS" ]; then
5922 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5924 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5925 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5926 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5927 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5930 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5931 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5932 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5935 # replace qconfig.pri if it differs from the newly created temp file
5936 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5937 rm -f "$QTCONFIG.tmp"
5939 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5942 #-------------------------------------------------------------------------------
5943 # save configuration into qmodule.pri
5944 #-------------------------------------------------------------------------------
5945 QTMODULE="$outpath/mkspecs/qmodule.pri"
5947 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5948 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
5950 if [ -n "$QT_CFLAGS_PSQL" ]; then
5951 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5953 if [ -n "$QT_LFLAGS_PSQL" ]; then
5954 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5956 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5957 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5959 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5960 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5962 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5963 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5965 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5966 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5968 if [ -n "$QT_LFLAGS_ODBC" ]; then
5969 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5971 if [ -n "$QT_LFLAGS_TDS" ]; then
5972 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5975 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5976 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5979 #dump in the OPENSSL_LIBS info
5980 if [ '!' -z "$OPENSSL_LIBS" ]; then
5981 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5982 elif [ "$CFG_OPENSSL" = "linked" ]; then
5983 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5986 #dump in the SDK info
5987 if [ '!' -z "$CFG_SDK" ]; then
5988 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5992 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5993 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5995 # replace qmodule.pri if it differs from the newly created temp file
5996 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5997 rm -f "$QTMODULE.tmp"
5999 mv -f "$QTMODULE.tmp" "$QTMODULE"
6002 #-------------------------------------------------------------------------------
6003 # save configuration into .qmake.cache
6004 #-------------------------------------------------------------------------------
6006 CACHEFILE="$outpath/.qmake.cache"
6007 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6008 cat >>"$CACHEFILE.tmp" <<EOF
6010 QT_SOURCE_TREE = \$\$quote($relpath)
6011 QT_BUILD_TREE = \$\$quote($outpath)
6013 include(\$\$PWD/mkspecs/qmodule.pri)
6014 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
6018 # replace .qmake.cache if it differs from the newly created temp file
6019 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6020 rm -f "$CACHEFILE.tmp"
6022 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6025 #-------------------------------------------------------------------------------
6026 # give feedback on configuration
6027 #-------------------------------------------------------------------------------
6028 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6031 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6032 echo "Build type: $PLATFORM"
6034 echo "Building on: $PLATFORM"
6035 echo "Building for: $XPLATFORM"
6038 # the missing space before $CFG_FEATURES is intentional
6039 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6040 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6042 if [ -n "$PLATFORM_NOTES" ]; then
6043 echo "Platform notes:"
6044 echo "$PLATFORM_NOTES"
6049 if [ "$OPT_VERBOSE" = "yes" ]; then
6050 echo $ECHO_N "qmake vars .......... $ECHO_C"
6051 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6052 echo "qmake switches ......... $QMAKE_SWITCHES"
6055 echo "Build .................. $CFG_BUILD_PARTS"
6056 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6057 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6058 echo "Debug .................. yes (combined)"
6059 if [ "$CFG_DEBUG" = "yes" ]; then
6060 echo "Default Link ........... debug"
6062 echo "Default Link ........... release"
6065 echo "Debug .................. $CFG_DEBUG"
6067 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6068 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6070 echo "C++11 support .......... $CFG_CXX11"
6071 if [ -n "$PKG_CONFIG" ]; then
6072 echo "pkg-config ............. yes"
6074 echo "pkg-config ............. no"
6076 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6077 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6078 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6079 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6080 echo "QtGui module ........... $CFG_GUI"
6081 echo "QtWidgets module ....... $CFG_WIDGETS"
6082 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6083 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6085 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6087 echo "QML debugging .......... $CFG_QML_DEBUG"
6088 echo "PCH support ............ $CFG_PRECOMPILE"
6089 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6090 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6091 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6092 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6093 elif [ "$CFG_ARCH" = "arm" ]; then
6094 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6095 echo "NEON support ........... ${CFG_NEON}"
6097 if [ "$CFG_ARCH" = "mips" ]; then
6098 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6100 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6101 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6102 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6103 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6104 echo "NIS support ............ $CFG_NIS"
6105 echo "CUPS support ........... $CFG_CUPS"
6106 echo "Iconv support .......... $CFG_ICONV"
6107 echo "Glib support ........... $CFG_GLIB"
6108 echo "GStreamer support ...... $CFG_GSTREAMER"
6109 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6110 echo "Large File support ..... $CFG_LARGEFILE"
6111 echo "GIF support ............ $CFG_GIF"
6112 if [ "$CFG_JPEG" = "no" ]; then
6113 echo "JPEG support ........... $CFG_JPEG"
6115 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6117 if [ "$CFG_PNG" = "no" ]; then
6118 echo "PNG support ............ $CFG_PNG"
6120 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6122 echo "zlib support ........... $CFG_ZLIB"
6123 echo "Session management ..... $CFG_SM"
6124 echo "libudev support ........ $CFG_LIBUDEV"
6126 if [ "$CFG_OPENGL" = "desktop" ]; then
6127 echo "OpenGL support ......... yes (Desktop OpenGL)"
6128 elif [ "$CFG_OPENGL" = "es2" ]; then
6129 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6131 echo "OpenGL support ......... no"
6134 if [ "$CFG_OPENVG" ]; then
6135 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6136 echo "OpenVG support ......... ShivaVG"
6138 echo "OpenVG support ......... $CFG_OPENVG"
6142 echo "XShape support ......... $CFG_XSHAPE"
6143 echo "XVideo support ......... $CFG_XVIDEO"
6144 echo "XSync support .......... $CFG_XSYNC"
6145 echo "Xinerama support ....... $CFG_XINERAMA"
6146 echo "Xcursor support ........ $CFG_XCURSOR"
6147 echo "Xfixes support ......... $CFG_XFIXES"
6148 echo "Xrandr support ......... $CFG_XRANDR"
6149 echo "Xi support ............. $CFG_XINPUT"
6150 echo "Xi2 support ............ $CFG_XINPUT2"
6151 echo "MIT-SHM support ........ $CFG_MITSHM"
6152 echo "FontConfig support ..... $CFG_FONTCONFIG"
6153 echo "XKB Support ............ $CFG_XKB"
6154 echo "immodule support ....... $CFG_IM"
6155 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6157 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6158 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6159 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6160 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6161 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6162 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6163 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6164 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6165 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6168 if [ "$CFG_OPENSSL" = "yes" ]; then
6169 OPENSSL_LINKAGE="(run-time)"
6170 elif [ "$CFG_OPENSSL" = "linked" ]; then
6171 OPENSSL_LINKAGE="(linked)"
6173 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6174 echo "Alsa support ........... $CFG_ALSA"
6175 if [ "$BUILD_ON_MAC" = "yes" ]; then
6176 echo "CoreWlan support ....... $CFG_COREWLAN"
6178 echo "libICU support ......... $CFG_ICU"
6179 echo "PCRE support ........... $CFG_PCRE"
6180 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6181 echo "Xcb support ............ limited (old version)"
6183 echo "Xcb support ............ $CFG_XCB"
6185 echo "Xrender support ........ $CFG_XRENDER"
6186 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6187 echo "XInput2 support ........ $CFG_XINPUT2"
6189 echo "EGLFS support .......... $CFG_EGLFS"
6190 echo "DirectFB support ....... $CFG_DIRECTFB"
6191 echo "LinuxFB support ........ $CFG_LINUXFB"
6192 echo "KMS support ............ $CFG_KMS"
6195 # complain about not being able to use dynamic plugins if we are using a static build
6196 if [ "$CFG_SHARED" = "no" ]; then
6198 echo "WARNING: Using static linking will disable the use of dynamically"
6199 echo "loaded plugins. Make sure to import all needed static plugins,"
6200 echo "or compile needed modules into the library."
6203 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6205 echo "NOTE: When linking against OpenSSL, you can override the default"
6206 echo "library names through OPENSSL_LIBS."
6208 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6212 exec 1>&3 3>&- # restore stdout
6213 cat $outpath/config.summary # display config feedback to user
6215 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6217 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6218 echo "if you want a pure debug build."
6223 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6228 #-------------------------------------------------------------------------------
6229 # build makefiles based on the configuration
6230 #-------------------------------------------------------------------------------
6232 if [ "$CFG_PROCESS" != "no" ]; then
6234 if [ "$CFG_PROCESS" = "full" ]; then
6235 echo "Creating makefiles. Please wait..."
6236 "$outpath/bin/qmake" -r "$relpath"
6239 "$outpath/bin/qmake" "$relpath"
6242 if [ "$OPT_FAST" = "yes" ]; then
6244 for part in $CFG_BUILD_PARTS; do
6246 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6249 if [ "x$PART_ROOTS" != "x" ]; then
6251 echo "Creating stub makefiles. Please wait..."
6252 QMAKE="$outpath/bin/qmake"
6253 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6254 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6256 test -f "$outpath/$d/Makefile" && continue
6257 echo " for $relpath/$p"
6259 mkdir -p "$outpath/$d" || exit
6260 cat > "$outpath/$d/Makefile" <<EOF || exit
6261 # $outpath/$d/Makefile: generated by configure
6263 # WARNING: This makefile will be replaced with a real makefile.
6264 # All changes made to this file will be lost.
6269 all clean install qmake first Makefile: FORCE
6270 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6280 #-------------------------------------------------------------------------------
6281 # check for platforms that we don't yet know about
6282 #-------------------------------------------------------------------------------
6283 if [ "$CFG_ARCH" = "unknown" ]; then
6286 NOTICE: configure was unable to determine the architecture
6287 for the $XQMAKESPEC target.
6289 Qt will not use a specialized implementation for any atomic
6290 operations. Instead a generic implemention based on either GCC
6291 intrinsics or C++11 std::atomic<T> will be used (when
6292 available). The generic implementations are generally as fast
6293 as and always as safe as a specialized implementation.
6295 If no generic implementation is available, Qt will use a
6296 fallback UNIX implementation which uses a single
6297 pthread_mutex_t to protect all atomic operations. This
6298 implementation is the slow (but safe) fallback implementation
6299 for architectures Qt does not yet support.
6303 #-------------------------------------------------------------------------------
6304 # check if the user passed the -no-zlib option, which is no longer supported
6305 #-------------------------------------------------------------------------------
6306 if [ -n "$ZLIB_FORCED" ]; then
6307 which_zlib="supplied"
6308 if [ "$CFG_ZLIB" = "system" ]; then
6314 NOTICE: The -no-zlib option was supplied but is no longer
6317 Qt now requires zlib support in all builds, so the -no-zlib
6318 option was ignored. Qt will be built using the $which_zlib
6323 #-------------------------------------------------------------------------------
6324 # check if the user passed the obsoleted -wayland or -no-wayland flag
6325 #-------------------------------------------------------------------------------
6326 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6329 NOTICE: The -wayland and -no-wayland flags are now obsolete
6331 All configuring of QtWayland plugin and QtCompositor happens in the module
6335 #-------------------------------------------------------------------------------
6336 # check if the user passed the obsoleted -arch or -host-arch options
6337 #-------------------------------------------------------------------------------
6338 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6341 NOTICE: The -arch and -host-arch options are obsolete.
6343 Qt now detects the target and host architectures based on compiler
6344 output. Qt will be built using $CFG_ARCH for the target architecture
6345 and $CFG_HOST_ARCH for the host architecture (note that these two
6346 will be the same unless you are cross-compiling).
6350 #-------------------------------------------------------------------------------
6351 # finally save the executed command to another script
6352 #-------------------------------------------------------------------------------
6353 if [ `basename $0` != "config.status" ]; then
6354 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6356 # add the system variables
6357 for varname in $SYSTEM_VARIABLES; do
6359 'if [ -n "\$'${varname}'" ]; then
6360 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6365 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6367 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6368 echo "#!/bin/sh" > "$outpath/config.status"
6369 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6370 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6371 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6372 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6373 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6374 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6375 echo "else" >> "$outpath/config.status"
6376 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6377 echo "fi" >> "$outpath/config.status"
6378 chmod +x "$outpath/config.status"
6381 if [ -n "$RPATH_MESSAGE" ]; then
6383 echo "$RPATH_MESSAGE"
6386 MAKE=`basename "$MAKE"`
6388 echo Qt is now configured for building. Just run \'$MAKE\'.
6389 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6390 echo Once everything is built, Qt is installed.
6391 echo You should not run \'$MAKE install\'.
6393 echo Once everything is built, you must run \'$MAKE install\'.
6394 echo Qt will be installed into $QT_INSTALL_PREFIX
6397 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.