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 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 #-------------------------------------------------------------------------------
399 #-------------------------------------------------------------------------------
403 EditionString=Commercial
407 # parse the arguments, setting things to "yes" or "no"
408 while [ "$#" -gt 0 ]; do
412 #Autoconf style options
414 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
418 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
422 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
426 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
429 -h|help|--help|-help)
430 if [ "$VAL" = "yes" ]; then
432 COMMERCIAL_USER="no" #doesn't matter we will display the help
435 COMMERCIAL_USER="no" #doesn't matter we will display the help
439 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
443 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
450 if [ "$UNKNOWN_ARG" = "yes" ]; then
462 COMMERCIAL_USER="yes"
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
478 echo "Which edition of Qt do you want to use ?"
480 echo "Type 'c' if you want to use the Commercial Edition."
481 echo "Type 'o' if you want to use the Open Source Edition."
485 if [ "$commercial" = "c" ]; then
486 COMMERCIAL_USER="yes"
488 elif [ "$commercial" = "o" ]; then
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496 # Commercial preview release
497 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
500 QT_EDITION="QT_EDITION_DESKTOP"
501 LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503 # one of commercial editions
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
506 # read in the license file
507 if [ -f "$LICENSE_FILE" ]; then
508 . "$LICENSE_FILE" >/dev/null 2>&1
509 if [ -z "$LicenseKeyExt" ]; then
511 echo "You are using an old license file."
513 echo "Please install the license file supplied by Nokia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please contact qt-info@nokia.com to upgrade your license to"
621 echo "include the $Platform platform, or install the Qt Open Source Edition"
622 echo "if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
732 # QTDIR may be set and point to an old or system-wide Qt installation
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
741 CFG_GUI=auto # (yes|no|auto)
747 CFG_FORCEDEBUGINFO=no
768 CFG_OPENVG_LC_INCLUDES=no
769 CFG_OPENVG_SHIVA=auto
770 CFG_OPENVG_ON_OPENGL=auto
776 QT_DEFAULT_BUILD_PARTS="libs tools examples"
780 CFG_AUDIO_BACKEND=auto
783 CFG_JAVASCRIPTCORE_JIT=auto
786 # Target architecture
789 # Host architecture, same as CFG_ARCH when not cross-compiling
791 CFG_HOST_CPUFEATURES=
792 # Set when the -arch or -host-arch arguments are used
793 OPT_OBSOLETE_HOST_ARG=no
807 CFG_OBSOLETE_WAYLAND=no
819 CFG_SEPARATE_DEBUG_INFO=no
820 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
821 CFG_REDUCE_EXPORTS=auto
829 CFG_REDUCE_RELOCATIONS=auto
830 CFG_ACCESSIBILITY=auto
835 CFG_CLOCK_GETTIME=auto
836 CFG_CLOCK_MONOTONIC=auto
845 CFG_PREFIX_INSTALL=yes
854 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
855 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
860 OPT_CONFIRM_LICENSE=no
873 QPA_PLATFORM_GUARD=yes
876 # initalize variables used for installation
885 QT_INSTALL_TRANSLATIONS=
890 CFG_GCC_SYSROOT="yes"
895 #flags for SQL drivers
903 QT_LFLAGS_ODBC="-lodbc"
906 # flags for libdbus-1
910 # flags for Glib (X11 only)
914 # flags for GStreamer (X11 only)
918 # default qpa platform
919 QT_QPA_DEFAULT_PLATFORM=
921 #-------------------------------------------------------------------------------
922 # check SQL drivers available in this package
923 #-------------------------------------------------------------------------------
925 # opensource version removes some drivers, so force them to be off
931 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
932 for a in "$relpath/src/plugins/sqldrivers/"*; do
934 base_a=`basename "$a"`
935 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
936 eval "CFG_SQL_${base_a}=auto"
941 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
942 if [ -d "$relpath/src/plugins/imageformats" ]; then
943 for a in "$relpath/src/plugins/imageformats/"*; do
945 base_a=`basename "$a"`
946 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
951 #-------------------------------------------------------------------------------
952 # parse command line arguments
953 #-------------------------------------------------------------------------------
955 # parse the arguments, setting things to "yes" or "no"
956 while [ "$#" -gt 0 ]; do
960 #Autoconf style options
962 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
966 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
970 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
971 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
974 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
978 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
982 -no-*-*|-plugin-*-*|-qt-*-*)
983 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
984 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
988 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
991 #Qt style options that pass an argument
992 -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)
993 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
997 #Qt style complex options in one command
998 -enable-*|-disable-*)
999 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1000 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1002 #Qt Builtin/System style options
1003 -no-*|-system-*|-qt-*)
1004 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1005 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1007 #Options that cannot be generalized
1014 # this option may or may not be followed by an argument
1015 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1024 # this option may or may not be followed by an argument
1025 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1033 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1034 # this option may or may not be followed by an argument
1035 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1054 if [ "$1" = "-D" ]; then
1058 VAL=`echo $1 | sed 's,-D,,'`
1063 # this option may or may not be followed by an argument
1064 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1073 if [ "$1" = "-I" ]; then
1077 VAL=`echo $1 | sed 's,-I,,'`
1082 if [ "$1" = "-L" ]; then
1086 VAL=`echo $1 | sed 's,-L,,'`
1091 if [ "$1" = "-R" ]; then
1095 VAL=`echo $1 | sed 's,-R,,'`
1100 if [ "$1" = "-l" ]; then
1104 VAL=`echo $1 | sed 's,-l,,'`
1109 if [ "$1" = "-F" ]; then
1113 VAL=`echo $1 | sed 's,-F,,'`
1118 if [ "$1" = "-fw" ]; then
1122 VAL=`echo $1 | sed 's,-fw,,'`
1129 #General options, including Qt style yes options
1131 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1138 if [ "$UNKNOWN_ARG" = "yes" ]; then
1139 echo "$1: unknown argument"
1150 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1151 CFG_ACCESSIBILITY="$VAL"
1160 CFG_USE_GNUMAKE="$VAL"
1163 CFG_MYSQL_CONFIG="$VAL"
1166 QT_INSTALL_PREFIX="$VAL"
1169 QT_HOST_PREFIX="$VAL"
1178 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1179 CFG_PKGCONFIG="$VAL"
1185 CFG_PKGCONFIG="force"
1188 QT_INSTALL_DOCS="$VAL"
1191 QT_INSTALL_HEADERS="$VAL"
1194 QT_INSTALL_PLUGINS="$VAL"
1197 QT_INSTALL_IMPORTS="$VAL"
1200 QT_INSTALL_DATA="$VAL"
1203 QT_INSTALL_LIBS="$VAL"
1212 QT_INSTALL_TRANSLATIONS="$VAL"
1214 sysconfdir|settingsdir)
1215 QT_INSTALL_SETTINGS="$VAL"
1218 QT_INSTALL_EXAMPLES="$VAL"
1221 QT_INSTALL_TESTS="$VAL"
1230 CFG_GCC_SYSROOT="$VAL"
1233 QT_INSTALL_BINS="$VAL"
1236 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1243 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1244 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1245 [ "$VAL" = "es2" ]; then
1252 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1259 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1262 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1265 if [ "$BUILD_ON_MAC" = "yes" ]; then
1272 OPT_OBSOLETE_HOST_ARG=yes
1275 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1276 CFG_MAC_HARFBUZZ="$VAL"
1283 if [ "$BUILD_ON_MAC" = "yes" ]; then
1284 CFG_FRAMEWORK="$VAL"
1290 if [ "$VAL" = "yes" ]; then
1292 QMakeVar add QMAKE_CFLAGS -pg
1293 QMakeVar add QMAKE_CXXFLAGS -pg
1294 QMakeVar add QMAKE_LFLAGS -pg
1295 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1301 if [ "$VAL" = "yes" ]; then
1302 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1307 # keep compatibility with old platform names
1313 PLATFORM=hpux-acc-o64
1316 PLATFORM=hpux-acc-64
1319 PLATFORM=hpux-acc-64
1331 PLATFORM=reliant-cds-64
1334 PLATFORM=solaris-cc-64
1337 PLATFORM=unixware-cc
1340 PLATFORM=unixware-g++
1343 PLATFORM=unixware-cc
1346 PLATFORM=unixware-g++
1352 i386) NATIVE_64_ARCH="x86_64" ;;
1353 powerpc) NATIVE_64_ARCH="ppc64" ;;
1354 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1356 if [ ! -z "$NATIVE_64_ARCH" ]; then
1357 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1364 case `basename "$XPLATFORM"` in win32-g++*)
1368 CFG_REDUCE_EXPORTS=no
1373 XPLATFORM=`resolveDeviceMkspec $VAL`
1374 [ "$XPLATFORM" = "undefined" ] && exit 101
1377 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1378 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1379 DeviceVar set $DEV_VAR $DEV_VAL
1382 QT_QPA_DEFAULT_PLATFORM="$VAL"
1385 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1386 CFG_DEBUG_RELEASE="$VAL"
1392 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1393 CFG_RELEASE_QMAKE="$VAL"
1399 if [ "$VAL" = "yes" ]; then
1401 elif [ "$VAL" = "no" ]; then
1408 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1409 CFG_PREFIX_INSTALL="$VAL"
1418 CFG_FORCEDEBUGINFO="$VAL"
1420 developer-build|commercial|opensource)
1421 # These switches have been dealt with already
1424 if [ "$VAL" = "yes" ]; then
1426 elif [ "$VAL" = "no" ]; then
1433 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1434 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1440 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1441 if [ "$VAL" = "no" ]; then
1442 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1443 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1444 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1450 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1457 if [ "$VAL" = "no" ]; then
1464 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1472 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1479 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1486 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1493 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1500 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1507 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1514 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1521 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1522 CFG_PRECOMPILE="$VAL"
1527 separate-debug-info)
1528 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1529 CFG_SEPARATE_DEBUG_INFO="$VAL"
1530 elif [ "$VAL" = "nocopy" ] ; then
1531 CFG_SEPARATE_DEBUG_INFO="yes"
1532 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1538 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1539 CFG_REDUCE_EXPORTS="$VAL"
1545 if [ "$VAL" = "no" ]; then
1552 if [ "$VAL" = "no" ]; then
1559 if [ "$VAL" = "no" ]; then
1566 if [ "$VAL" = "no" ]; then
1573 if [ "$VAL" = "no" ]; then
1580 if [ "$VAL" = "no" ]; then
1587 if [ "$VAL" = "no" ]; then
1597 if [ "$VAL" = "no" ]; then
1604 if [ "$VAL" = "no" ]; then
1611 if [ "$VAL" = "no" ]; then
1612 CFG_MIPS_DSPR2="$VAL"
1618 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1619 CFG_REDUCE_RELOCATIONS="$VAL"
1625 [ "$VAL" = "qt" ] && VAL=yes
1626 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1631 # No longer supported:
1632 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1635 if [ "$VAL" = "system" ]; then
1642 [ "$VAL" = "yes" ] && VAL=qt
1643 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1650 [ "$VAL" = "yes" ] && VAL=qt
1651 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1658 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1665 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1672 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1679 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1686 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1693 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1694 CFG_FONTCONFIG="$VAL"
1700 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1707 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1714 CFG_OBSOLETE_WAYLAND=yes
1717 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1724 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1731 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1738 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1745 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1752 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1759 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1766 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1773 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1780 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1781 CFG_GSTREAMER="$VAL"
1787 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1788 CFG_QGTKSTYLE="$VAL"
1794 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1797 if [ "$VAL" = "no" ]; then
1805 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1807 elif [ "$VAL" = "no" ]; then
1814 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1815 QPA_PLATFORM_GUARD="$VAL"
1821 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1823 elif [ "$VAL" = "runtime" ]; then
1830 if [ "$VAL" = "yes" ]; then
1837 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1844 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1845 CFG_LARGEFILE="$VAL"
1851 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1858 if [ "$VAL" = "yes" ]; then
1859 CFG_OPENSSL="linked"
1865 if [ "$VAL" = "yes" ]; then
1868 if [ "$VAL" = "no" ]; then
1876 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1877 CFG_JAVASCRIPTCORE_JIT="$VAL"
1883 if [ "$VAL" = "yes" ]; then
1884 OPT_CONFIRM_LICENSE="$VAL"
1890 if [ "$VAL" = "yes" ]; then
1896 sql-*|imageformat-*)
1897 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1898 # if autoconf style options were used, $VAL can be "yes" or "no"
1899 [ "$VAL" = "yes" ] && VAL=qt
1900 # now $VAL should be "no", "qt", or "plugin"... double-check
1901 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1904 # now $VAL is "no", "qt", or "plugin"
1906 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1907 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1909 # Grab the available values
1912 avail="$CFG_SQL_AVAILABLE"
1915 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1916 if [ "$OPT" != "plugin" ]; then
1917 # png is always built in
1923 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1927 # Check that that user's value is available.
1930 if [ "$VAL" = "$d" ]; then
1935 [ "$found" = yes ] || ERROR=yes
1937 if [ "$VAR" = "sql" ]; then
1938 # set the CFG_SQL_driver
1939 eval "CFG_SQL_$VAL=\$OPT"
1941 elif [ "$VAR" = "imageformat" ]; then
1942 [ "$OPT" = "qt" ] && OPT=yes
1943 VAL="`echo $VAL |tr a-z A-Z`"
1944 eval "CFG_$VAL=$OPT"
1948 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1949 if [ "$OPT" = "plugin" ]; then
1952 QMakeVar add "${VAR}s" "${VAL}"
1953 elif [ "$OPT" = "no" ]; then
1954 PLUG_VAR="${VAR}-plugin"
1956 QMakeVar del "${IN_VAR}s" "$VAL"
1957 QMakeVar del "${PLUG_VAR}s" "$VAL"
1959 if [ "$ERROR" = "yes" ]; then
1960 echo "$CURRENT_OPT: unknown argument"
1965 if [ "$VAL" = "yes" ]; then
1966 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1967 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1971 elif [ "$VAL" = "no" ]; then
1972 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1973 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1982 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1989 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1996 DEFINES="$DEFINES \"$VAL\""
1997 D_FLAGS="$D_FLAGS -D\"$VAL\""
2000 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2003 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2006 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2009 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2012 if [ "$BUILD_ON_MAC" = "yes" ]; then
2013 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2014 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2020 if [ "$BUILD_ON_MAC" = "yes" ]; then
2021 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2027 W_FLAGS="$W_FLAGS \"${VAL}\""
2042 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2043 CFG_AUDIO_BACKEND="$VAL"
2049 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2056 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2057 CFG_FORCE_ASSERTS="$VAL"
2063 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2070 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2080 if [ "$UNKNOWN_OPT" = "yes" ]; then
2081 echo "${CURRENT_OPT}: invalid command-line switch"
2087 # update QT_CONFIG to show our current predefined configuration
2088 case "$CFG_QCONFIG" in
2089 minimal|small|medium|large|full)
2090 # these are a sequence of increasing functionality
2091 for c in minimal small medium large full; do
2092 QT_CONFIG="$QT_CONFIG $c-config"
2093 [ "$CFG_QCONFIG" = $c ] && break
2097 # not known to be sufficient for anything
2098 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2099 echo >&2 "Error: configuration file not found:"
2100 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2102 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2107 #-------------------------------------------------------------------------------
2108 # build tree initialization
2109 #-------------------------------------------------------------------------------
2111 # where to find which..
2112 unixtests="$relpath/config.tests/unix"
2113 mactests="$relpath/config.tests/mac"
2114 WHICH="$unixtests/which.test"
2116 PERL=`$WHICH perl 2>/dev/null`
2118 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2120 for e in gawk nawk awk; do
2121 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2128 PERL="/usr/bin/perl"
2129 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2133 ### skip this if the user just needs help...
2134 if [ "$OPT_HELP" != "yes" ]; then
2136 # is this a shadow build?
2137 if [ "$OPT_SHADOW" = "maybe" ]; then
2139 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2140 if [ -h "$outpath" ]; then
2141 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2147 if [ "$OPT_SHADOW" = "yes" ]; then
2148 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2149 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2150 echo >&2 "Cannot proceed."
2153 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2156 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2158 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2159 echo "Qt can be built in release mode with separate debug information, so"
2160 echo "-debug-and-release is not necessary anymore"
2164 if [ "$CFG_SILENT" = "yes" ]; then
2165 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2168 # if the source tree is different from the build tree,
2169 # symlink or copy part of the sources
2170 if [ "$OPT_SHADOW" = "yes" ]; then
2171 echo "Preparing build tree..."
2173 if [ -z "$PERL" ]; then
2175 echo "You need perl in your PATH to make a shadow build."
2176 echo "Cannot proceed."
2180 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2182 # make a syncqt script that can be used in the shadow
2183 rm -f "$outpath/bin/syncqt"
2184 if [ -x "$relpath/bin/syncqt" ]; then
2185 mkdir -p "$outpath/bin"
2186 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2187 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2188 chmod 755 "$outpath/bin/syncqt"
2191 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2192 rm -f "$outpath/bin/$i"
2193 if [ -x "$relpath/bin/$i" ]; then
2194 mkdir -p "$outpath/bin"
2195 echo "#!/bin/sh" >"$outpath/bin/$i"
2196 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2197 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2198 chmod 755 "$outpath/bin/$i"
2202 # save a pre-existing mkspecs/modules dir
2203 test -d "$outpath/mkspecs/modules" && \
2204 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2205 # ditto for mkspecs/modules-inst
2206 test -d "$outpath/mkspecs/modules-inst" && \
2207 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2209 # symlink the mkspecs directory
2210 mkdir -p "$outpath/mkspecs"
2211 rm -rf "$outpath"/mkspecs/*
2212 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2213 rm -f "$outpath/mkspecs/default"
2217 rm -rf "$outpath/mkspecs/$1"
2218 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2219 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2222 # Special case for mkspecs/features directory.
2223 # To be able to place .prf files into a shadow build directory,
2224 # we're creating links for files only. The directory structure is reproduced.
2225 ShadowMkspecs features
2227 # The modules dir is special, too.
2228 if test -d "$outpath/mkspecs-modules"; then
2229 rm -rf "$outpath/mkspecs/modules"
2230 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2232 ShadowMkspecs modules
2235 # The modules-inst dir is not quite as special, but still.
2236 if test -d "$outpath/mkspecs-modules-inst"; then
2237 rm -rf "$outpath/mkspecs/modules-inst"
2238 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2241 # symlink the doc directory
2242 rm -rf "$outpath/doc"
2243 ln -s "$relpath/doc" "$outpath/doc"
2246 # symlink fonts to be able to run application from build directory
2247 if [ ! -d "${outpath}/lib/fonts" ]; then
2248 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2249 mkdir -p "${outpath}/lib"
2250 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2254 if [ "$OPT_FAST" = "auto" ]; then
2255 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2262 # find a make command
2263 if [ -z "$MAKE" ]; then
2265 for mk in gmake make; do
2266 if "$WHICH" $mk >/dev/null 2>&1; then
2271 if [ -z "$MAKE" ]; then
2272 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2273 echo >&2 "Cannot proceed."
2276 # export MAKE, we need it later in the config.tests
2282 #-------------------------------------------------------------------------------
2283 # auto-detect all that hasn't been specified in the arguments
2284 #-------------------------------------------------------------------------------
2286 if [ -z "$PLATFORM" ]; then
2288 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2290 OSX_VERSION=`uname -r | cut -d. -f1`
2291 # Select compiler. Use g++ unless we find a usable Clang version
2293 if [ "$OSX_VERSION" -ge 12 ]; then
2294 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2296 elif [ "$OSX_VERSION" -eq 11 ]; then
2297 # We're on Lion. Check if we have a supported Clang version
2298 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2301 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2308 #PLATFORM=aix-g++-64
2310 #PLATFORM=aix-xlc-64
2312 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2322 # PLATFORM=dynix-g++
2328 PLATFORM=freebsd-g++
2330 - Also available for FreeBSD: freebsd-icc
2334 PLATFORM=openbsd-g++
2345 #PLATFORM=irix-cc-64
2347 - Also available for IRIX: irix-g++ irix-cc-64
2351 case "$UNAME_MACHINE" in
2353 #PLATFORM=hpuxi-acc-32
2354 PLATFORM=hpuxi-acc-64
2356 - Also available for HP-UXi: hpuxi-acc-32
2362 #PLATFORM=hpux-acc-64
2364 #PLATFORM=hpux-acc-o64
2366 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2375 - Also available for Tru64: tru64-g++
2379 case "$UNAME_MACHINE" in
2381 PLATFORM=linux-g++-64
2388 - Also available for Linux: linux-kcc linux-icc linux-cxx
2392 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2393 PLATFORM="solaris-g++"
2395 #PLATFORM=solaris-g++
2397 #PLATFORM=solaris-cc64
2400 - Also available for Solaris: solaris-g++ solaris-cc-64
2403 ReliantUNIX-*:*|SINIX-*:*)
2404 PLATFORM=reliant-cds
2405 #PLATFORM=reliant-cds-64
2407 - Also available for Reliant UNIX: reliant-cds-64
2417 #PLATFORM=unixware-g++
2418 PLATFORM=unixware-cc
2420 - Also available for OpenUNIX: unixware-g++
2424 #PLATFORM=unixware-g++
2425 PLATFORM=unixware-cc
2427 - Also available for UnixWare: unixware-g++
2434 - Also available for SCO OpenServer: sco-g++
2438 PLATFORM=unixware-g++
2441 PLATFORM=unsupported/qnx-g++
2444 if [ "$OPT_HELP" != "yes" ]; then
2446 echo " The build script does not currently recognize all" >&2
2447 echo " platforms supported by Qt." >&2
2448 echo " Rerun this script with a -platform option listed to" >&2
2449 echo " set the system/compiler combination you use." >&2
2456 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2458 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2459 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2460 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2462 if [ -d "$PLATFORM" ]; then
2463 QMAKESPEC="$PLATFORM"
2465 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2467 if [ -d "$XPLATFORM" ]; then
2468 XQMAKESPEC="$XPLATFORM"
2470 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2472 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2473 QT_CROSS_COMPILE=yes
2474 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2475 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2478 if [ "$BUILD_ON_MAC" = "yes" ]; then
2479 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2481 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2482 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2483 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2484 echo " built with 'macx-g++'" >&2
2490 # check specified platforms are supported
2491 if [ '!' -d "$QMAKESPEC" ]; then
2493 echo " The specified system/compiler is not supported:"
2497 echo " Please see the README file for a complete list."
2501 if [ '!' -d "$XQMAKESPEC" ]; then
2503 echo " The specified system/compiler is not supported:"
2507 echo " Please see the README file for a complete list."
2511 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2513 echo " The specified system/compiler port is not complete:"
2515 echo " $XQMAKESPEC/qplatformdefs.h"
2517 echo " Please contact qt-info@nokia.com."
2522 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2523 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2524 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2525 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2526 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2530 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2531 case `basename "$XPLATFORM"` in
2534 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2536 echo "Please contact qt-info@nokia.com to upgrade your license to"
2537 echo "include this platform, or install the Qt Open Source Edition"
2538 echo "if you intend to develop free software."
2544 #-------------------------------------------------------------------------------
2545 # tests that don't need qmake (must be run before displaying help)
2546 #-------------------------------------------------------------------------------
2548 # detect build style
2549 if [ "$CFG_DEBUG" = "auto" ]; then
2550 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2551 CFG_DEBUG_RELEASE=yes
2553 elif [ "$CFG_DEV" = "yes" ]; then
2554 CFG_DEBUG_RELEASE=no
2557 CFG_DEBUG_RELEASE=no
2561 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2562 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2565 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2566 QT_CONFIG="$QT_CONFIG force_debug_info"
2569 # pass on $CFG_SDK to the arch/configure tests.
2570 if [ -n "$CFG_SDK" ]; then
2571 MAC_SDK_FLAG="-sdk $CFG_SDK"
2576 # find the default framework value
2577 if [ "$BUILD_ON_MAC" = "yes" ]; then
2578 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2579 CFG_FRAMEWORK="$CFG_SHARED"
2580 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2582 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2590 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2592 TEST_COMPILER=$QMAKE_CONF_COMPILER
2593 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2594 if [ -z "$TEST_COMPILER" ]; then
2595 echo "ERROR: Cannot set the compiler for the configuration tests"
2599 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2602 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2603 if [ -n "$GCC_MACHINE_DUMP" ]; then
2604 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2607 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2608 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2612 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2614 # auto-detect precompiled header support
2615 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2616 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2623 # auto-detect support for separate debug info in objcopy
2624 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2625 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2626 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2627 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2628 CFG_SEPARATE_DEBUG_INFO=no
2632 # binutils on HP-UX is buggy; default to no.
2633 CFG_SEPARATE_DEBUG_INFO=no
2636 CFG_SEPARATE_DEBUG_INFO=yes
2642 # auto-detect -fvisibility support
2643 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2644 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2645 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2646 echo "-reduce-exports was requested but this compiler does not support it"
2647 echo "Re-run configure with -v for more information"
2650 CFG_REDUCE_EXPORTS=no
2652 CFG_REDUCE_EXPORTS=yes
2656 # detect the availability of the -Bsymbolic-functions linker optimization
2657 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2658 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2659 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2660 echo "-reduce-relocations was requested but this compiler does not support it"
2661 echo "Re-run configure with -v for more information"
2664 CFG_REDUCE_RELOCATIONS=no
2666 CFG_REDUCE_RELOCATIONS=yes
2670 # auto-detect GNU make support
2671 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2675 # find the default framework value
2676 if [ "$BUILD_ON_MAC" = "yes" ]; then
2677 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2678 CFG_FRAMEWORK="$CFG_SHARED"
2679 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2681 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2689 # auto-detect default include and library search paths
2690 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2691 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2692 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2693 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2694 /^End of search/ { yup=0 }
2695 yup { print substr($0, 2) }
2696 /^\#include </ { yup=1 }
2698 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2700 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2703 #setup the build parts
2704 if [ -z "$CFG_BUILD_PARTS" ]; then
2705 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2707 # build tests by default, if a developer build
2708 if [ "$CFG_DEV" = "yes" ]; then
2709 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2712 # don't build tools by default when cross-compiling
2713 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2714 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2717 for nobuild in $CFG_NOBUILD_PARTS; do
2718 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2720 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2722 # echo "WARNING: libs is a required part of the build."
2724 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2727 #-------------------------------------------------------------------------------
2728 # post process QT_INSTALL_* variables
2729 #-------------------------------------------------------------------------------
2731 if [ -z "$QT_INSTALL_PREFIX" ]; then
2732 if [ "$CFG_DEV" = "yes" ]; then
2733 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2735 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2738 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2740 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2741 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2742 if [ "$BUILD_ON_MAC" = "yes" ]; then
2743 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2746 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2749 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2751 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2752 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2753 if [ "$BUILD_ON_MAC" = "yes" ]; then
2754 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2759 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2762 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2764 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2765 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2766 if [ "$BUILD_ON_MAC" = "yes" ]; then
2767 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2768 QT_INSTALL_LIBS="/Library/Frameworks"
2772 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2774 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2776 if [ -z "$QT_INSTALL_BINS" ]; then #default
2777 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2778 if [ "$BUILD_ON_MAC" = "yes" ]; then
2779 QT_INSTALL_BINS="/Developer/Applications/Qt"
2782 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2784 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2786 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2787 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2788 if [ "$BUILD_ON_MAC" = "yes" ]; then
2789 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2792 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2794 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2796 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2797 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2798 if [ "$BUILD_ON_MAC" = "yes" ]; then
2799 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2802 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2804 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2806 if [ -z "$QT_INSTALL_DATA" ]; then #default
2807 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2809 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2811 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2812 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2814 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2816 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2817 if [ "$BUILD_ON_MAC" = "yes" ]; then
2818 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2820 QT_INSTALL_SETTINGS=/etc/xdg
2823 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2825 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2826 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2827 if [ "$BUILD_ON_MAC" = "yes" ]; then
2828 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2831 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2833 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2836 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2837 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2838 if [ "$BUILD_ON_MAC" = "yes" ]; then
2839 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2842 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2844 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2846 #------- host paths --------
2848 if [ -z "$QT_HOST_PREFIX" ]; then
2849 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2852 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2856 if [ -z "$QT_HOST_BINS" ]; then #default
2858 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2859 if [ "$BUILD_ON_MAC" = "yes" ]; then
2860 QT_HOST_BINS="/Developer/Applications/Qt"
2863 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2865 QT_HOST_BINS="$QT_INSTALL_BINS"
2868 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2870 if [ -z "$QT_HOST_DATA" ]; then #default
2872 QT_HOST_DATA="$QT_HOST_PREFIX"
2874 QT_HOST_DATA="$QT_INSTALL_DATA"
2877 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2880 #-------------------------------------------------------------------------------
2881 # help - interactive parts of the script _after_ this section please
2882 #-------------------------------------------------------------------------------
2884 # next, emit a usage message if something failed.
2885 if [ "$OPT_HELP" = "yes" ]; then
2886 [ "x$ERROR" = "xyes" ] && echo
2887 if [ "$CFG_NIS" = "no" ]; then
2894 if [ "$CFG_CUPS" = "no" ]; then
2901 if [ "$CFG_ICONV" = "no" ]; then
2908 if [ "$CFG_LARGEFILE" = "no" ]; then
2915 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2923 if [ "$CFG_XCB" = "no" ]; then
2931 if [ "$CFG_EGLFS" = "no" ]; then
2939 if [ "$CFG_DIRECTFB" = "no" ]; then
2947 if [ "$CFG_LINUXFB" = "no" ]; then
2955 if [ "$CFG_KMS" = "no" ]; then
2963 if [ "$CFG_XINPUT2" = "no" ]; then
2971 if [ "$CFG_DBUS" = "no" ]; then
2979 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2987 if [ "$CFG_GLIB" = "no" ]; then
2996 Usage: $relconf [options]
2998 Installation options:
3000 These are optional, but you may specify install directories.
3002 -prefix <dir> ...... This will install everything relative to <dir>
3003 (default $QT_INSTALL_PREFIX)
3005 -hostprefix [dir] .. Tools and libraries needed when developing
3006 applications are installed in [dir]. If [dir] is
3007 not given, the current build directory will be used.
3010 * -prefix-install .... Force a sandboxed "local" installation of
3011 Qt. This will install into
3012 $QT_INSTALL_PREFIX, if this option is
3013 disabled then some platforms will attempt a
3014 "system" install by placing default values to
3015 be placed in a system location other than
3018 You may use these to separate different parts of the install:
3020 -bindir <dir> ......... Executables will be installed to <dir>
3021 (default PREFIX/bin)
3022 -libdir <dir> ......... Libraries will be installed to <dir>
3023 (default PREFIX/lib)
3024 -docdir <dir> ......... Documentation will be installed to <dir>
3025 (default PREFIX/doc)
3026 -headerdir <dir> ...... Headers will be installed to <dir>
3027 (default PREFIX/include)
3028 -plugindir <dir> ...... Plugins will be installed to <dir>
3029 (default PREFIX/plugins)
3030 -importdir <dir> ...... Imports for QML will be installed to <dir>
3031 (default PREFIX/imports)
3032 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3034 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3035 (default PREFIX/translations)
3036 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3037 (default PREFIX/etc/settings)
3038 -examplesdir <dir> .... Examples will be installed to <dir>
3039 (default PREFIX/examples)
3040 -testsdir <dir> ....... Tests will be installed to <dir>
3041 (default PREFIX/tests)
3043 -hostbindir <dir> .. Host executables will be installed to <dir>
3044 (default HOSTPREFIX/bin)
3045 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3046 (default HOSTPREFIX)
3050 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3051 that needs to be evaluated. If the evaluation succeeds, the feature is
3052 included. Here is a short explanation of each option:
3054 * -release ........... Compile and link Qt with debugging turned off.
3055 -debug ............. Compile and link Qt with debugging turned on.
3056 -debug-and-release . Compile and link two versions of Qt, with and without
3057 debugging turned on (Mac only).
3059 -force-debug-info .. Create symbol files for release builds.
3061 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3063 -opensource ........ Compile and link the Open-Source Edition of Qt.
3064 -commercial ........ Compile and link the Commercial Edition of Qt.
3066 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3067 + -c++11 ............. Compile Qt with C++11 support enabled.
3069 * -shared ............ Create and use shared Qt libraries.
3070 -static ............ Create and use static Qt libraries.
3072 * -process ........... Generate only a top-level Makefile.
3073 -fully-process ..... Generate Makefiles for the entire Qt tree.
3074 -dont-process ...... Do not generate any Makefiles.
3076 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3078 -fast .............. Configure Qt quickly by generating Makefiles only for
3079 library and subdirectory targets. All other Makefiles
3080 are created as wrappers, which will in turn run qmake.
3082 -no-largefile ...... Disables large file support.
3083 + -largefile ......... Enables Qt to access files larger than 4 GB.
3085 -no-accessibility .. Do not compile Accessibility support.
3086 + -accessibility ..... Compile Accessibility support.
3088 -no-sql-<driver> ... Disable SQL <driver> entirely.
3089 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3091 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3094 Possible values for <driver>:
3095 [ $CFG_SQL_AVAILABLE ]
3097 -system-sqlite ..... Use sqlite from the operating system.
3099 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3100 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3102 -no-qml-debug ...... Do not build the in-process QML debugging support.
3103 + -qml-debug ......... Build the QML debugging support.
3105 -platform target ... The operating system and compiler you are building
3108 See the README file for a list of supported
3109 operating systems and compilers.
3111 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3112 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3113 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3114 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3115 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3116 -no-avx ............ Do not compile with use of AVX instructions.
3117 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3118 -no-neon ........... Do not compile with use of NEON instructions.
3119 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3120 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3122 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3123 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3125 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3127 -D <string> ........ Add an explicit define to the preprocessor.
3128 -I <string> ........ Add an explicit include path.
3129 -L <string> ........ Add an explicit library path.
3131 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3132 configure determines whether to use pkg-config or not with
3133 some heuristics such as checking the environment variables.
3134 -no-pkg-config ..... Disable use of pkg-config.
3135 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3136 detection heuristic).
3138 -help, -h .......... Display this information.
3140 Third Party Libraries:
3142 -qt-zlib ........... Use the zlib bundled with Qt.
3143 + -system-zlib ....... Use zlib from the operating system.
3144 See http://www.gzip.org/zlib
3146 -no-gif ............ Do not compile GIF reading support.
3148 -no-libpng ......... Do not compile PNG support.
3149 -qt-libpng ......... Use the libpng bundled with Qt.
3150 + -system-libpng ..... Use libpng from the operating system.
3151 See http://www.libpng.org/pub/png
3153 -no-libjpeg ........ Do not compile JPEG support.
3154 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3155 + -system-libjpeg .... Use libjpeg from the operating system.
3156 See http://www.ijg.org
3158 -no-openssl ........ Do not compile support for OpenSSL.
3159 + -openssl ........... Enable run-time OpenSSL support.
3160 -openssl-linked .... Enabled linked OpenSSL support.
3162 -qt-pcre ........... Use the PCRE library bundled with Qt.
3163 + -system-pcre ....... Use the PCRE library from the operating system.
3167 -make <part> ....... Add part to the list of parts to be built at make time.
3168 ($QT_DEFAULT_BUILD_PARTS)
3169 -nomake <part> ..... Exclude part from the list of parts to be built.
3171 -R <string> ........ Add an explicit runtime library path to the Qt
3173 -l <string> ........ Add an explicit library.
3175 -no-rpath .......... Do not use the library install path as a runtime
3177 + -rpath ............. Link Qt libraries and executables using the library
3178 install path as a runtime library path. Equivalent
3179 to -R install_libpath
3181 -continue .......... Continue as far as possible if an error occurs.
3183 -verbose, -v ....... Print verbose information about each step of the
3186 -silent ............ Reduce the build output so that warnings and errors
3187 can be seen more easily.
3189 * -no-optimized-qmake ... Do not build qmake optimized.
3190 -optimized-qmake ...... Build qmake optimized.
3192 -no-gui ............ Don't build the Qt GUI library
3194 $NSN -no-nis ............ Do not compile NIS support.
3195 $NSY -nis ............... Compile NIS support.
3197 $CUN -no-cups ........... Do not compile CUPS support.
3198 $CUY -cups .............. Compile CUPS support.
3199 Requires cups/cups.h and libcups.so.2.
3201 $CIN -no-iconv .......... Do not compile support for iconv(3).
3202 $CIY -iconv ............. Compile support for iconv(3).
3204 $PHN -no-pch ............ Do not use precompiled header support.
3205 $PHY -pch ............... Use precompiled header support.
3207 $DBN -no-dbus ........... Do not compile the QtDBus module.
3208 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3209 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3211 -reduce-relocations ..... Reduce relocations in the libraries through extra
3212 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3213 experimental; needs GNU ld >= 2.18).
3215 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3217 -device <name> ............... Cross-compile for device <name> (experimental)
3218 -device-option <key=value> ... Add device specific options for the device mkspec
3221 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3222 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3224 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3225 $XCBY -xcb ............... Compile Xcb support.
3227 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3228 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3230 $DFBN -no-directfb ....... Do not compile DirectFB support.
3231 $DFBY -directfb .......... Compile DirectFB support.
3233 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3234 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3236 $KMSN -no-kms ............ Do not compile KMS support.
3237 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3239 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3241 -xplatform target ... The target platform when cross-compiling.
3243 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3244 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3246 -no-feature-<feature> Do not compile in <feature>.
3247 -feature-<feature> .. Compile in <feature>. The available features
3248 are described in src/corelib/global/qfeatures.txt
3250 -no-freetype ........ Do not compile in Freetype2 support.
3251 -qt-freetype ........ Use the libfreetype bundled with Qt.
3252 * -system-freetype .... Use libfreetype from the operating system.
3253 See http://www.freetype.org/
3255 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3256 default ($CFG_QCONFIG).
3258 -no-opengl .......... Do not support OpenGL.
3259 -opengl <api> ....... Enable OpenGL support
3260 With no parameter, this will attempt to auto-detect
3261 OpenGL ES 2, or regular desktop OpenGL.
3262 Use es2 for <api> to override auto-detection.
3264 $GBN -no-glib ........... Do not compile Glib support.
3265 $GBY -glib .............. Compile Glib support.
3268 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3271 $X2N -no-xinput2......... Do not compile XInput2 support.
3272 $X2Y -xinput2............ Compile XInput2 support.
3278 if [ "$BUILD_ON_MAC" = "yes" ]; then
3283 -Fstring ........... Add an explicit framework path.
3284 -fw string ......... Add an explicit framework.
3286 * -framework ......... Build Qt as a series of frameworks and
3287 link tools against those frameworks.
3288 -no-framework ...... Do not build Qt as a series of frameworks.
3290 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3291 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3293 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3294 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3295 QT_ENABLE_HARFBUZZ environment variable.
3300 [ "x$ERROR" = "xyes" ] && exit 1
3305 # -----------------------------------------------------------------------------
3306 # LICENSING, INTERACTIVE PART
3307 # -----------------------------------------------------------------------------
3310 echo "This is the Qt ${EditionString} Edition."
3313 if [ "$Edition" = "OpenSource" ]; then
3315 echo "You are licensed to use this software under the terms of"
3316 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3317 if [ -f "$relpath/LICENSE.GPL3" ]; then
3318 echo "You are also licensed to use this software under the terms of"
3319 echo "the GNU General Public License (GPL) versions 3."
3325 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3326 echo "You have already accepted the terms of the $LicenseType license."
3329 if [ -f "$relpath/LICENSE.GPL3" ]; then
3330 echo "Type '3' to view the GNU General Public License version 3."
3332 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3333 echo "Type 'yes' to accept this license offer."
3334 echo "Type 'no' to decline this license offer."
3336 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3340 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3342 elif [ "$acceptance" = "no" ]; then
3343 echo "You are not licensed to use this software."
3346 elif [ "$acceptance" = "3" ]; then
3347 more "$relpath/LICENSE.GPL3"
3348 elif [ "$acceptance" = "L" ]; then
3349 more "$relpath/LICENSE.LGPL"
3352 elif [ "$Edition" = "Preview" ]; then
3353 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3356 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3357 echo "You have already accepted the terms of the $LicenseType license."
3360 echo "You are licensed to use this software under the terms of"
3361 echo "the $TheLicense"
3363 echo "Type '?' to read the Preview License."
3364 echo "Type 'yes' to accept this license offer."
3365 echo "Type 'no' to decline this license offer."
3367 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3371 if [ "$acceptance" = "yes" ]; then
3373 elif [ "$acceptance" = "no" ] ;then
3374 echo "You are not licensed to use this software."
3377 elif [ "$acceptance" = "?" ]; then
3378 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3381 elif [ "$Edition" != "OpenSource" ]; then
3382 if [ -n "$ExpiryDate" ]; then
3383 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3384 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3385 Today=`date +%Y%m%d`
3386 if [ "$Today" -gt "$ExpiryDate" ]; then
3387 case "$LicenseType" in
3388 Commercial|Academic|Educational)
3390 echo "WARNING WARNING WARNING WARNING"
3392 echo " Your support and upgrade period has expired."
3394 echo " You may continue to use your last licensed release"
3395 echo " of Qt under the terms of your existing license"
3396 echo " agreement. But you are not entitled to technical"
3397 echo " support, nor are you entitled to use any more recent"
3398 echo " Qt releases."
3400 echo " Please contact qt-info@nokia.com to renew your"
3401 echo " support and upgrades for this license."
3403 echo "WARNING WARNING WARNING WARNING"
3409 echo "NOTICE NOTICE NOTICE NOTICE"
3411 echo " Your Evaluation license has expired."
3413 echo " You are no longer licensed to use this software. Please"
3414 echo " contact qt-info@nokia.com to purchase license, or install"
3415 echo " the Qt Open Source Edition if you intend to develop free"
3418 echo "NOTICE NOTICE NOTICE NOTICE"
3425 TheLicense=`head -n 1 "$outpath/LICENSE"`
3427 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3428 echo "You have already accepted the terms of the $TheLicense."
3431 echo "You are licensed to use this software under the terms of"
3432 echo "the $TheLicense."
3434 echo "Type '?' to view the $TheLicense."
3435 echo "Type 'yes' to accept this license offer."
3436 echo "Type 'no' to decline this license offer."
3438 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3442 if [ "$acceptance" = "yes" ]; then
3444 elif [ "$acceptance" = "no" ]; then
3445 echo "You are not licensed to use this software."
3448 else [ "$acceptance" = "?" ]
3449 more "$outpath/LICENSE"
3454 # this should be moved somewhere else
3457 AIX_VERSION=`uname -v`
3458 if [ "$AIX_VERSION" -lt "5" ]; then
3459 QMakeVar add QMAKE_LIBS_X11 -lbind
3466 #-------------------------------------------------------------------------------
3467 # generate qconfig.cpp
3468 #-------------------------------------------------------------------------------
3469 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3471 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3473 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3474 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3476 /* Installation date */
3477 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3479 /* Installation Info */
3480 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3481 "qt_prfxpath=$QT_INSTALL_PREFIX",
3482 "qt_docspath=$QT_INSTALL_DOCS",
3483 "qt_hdrspath=$QT_INSTALL_HEADERS",
3484 "qt_libspath=$QT_INSTALL_LIBS",
3485 "qt_binspath=$QT_INSTALL_BINS",
3486 "qt_plugpath=$QT_INSTALL_PLUGINS",
3487 "qt_impspath=$QT_INSTALL_IMPORTS",
3488 "qt_datapath=$QT_INSTALL_DATA",
3489 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3490 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3491 "qt_tstspath=$QT_INSTALL_TESTS",
3492 #ifdef QT_BUILD_QMAKE
3493 "qt_ssrtpath=$CFG_SYSROOT",
3494 "qt_hpfxpath=$QT_HOST_PREFIX",
3495 "qt_hbinpath=$QT_HOST_BINS",
3496 "qt_hdatpath=$QT_HOST_DATA",
3499 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3502 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3504 /* strlen( "qt_lcnsxxxx" ) == 12 */
3505 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3506 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3508 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3511 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3512 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3513 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3515 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3516 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3517 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3520 # -----------------------------------------------------------------------------
3521 if [ "$LicenseType" = "Evaluation" ]; then
3522 EVALKEY=qt_qevalkey=$LicenseKeyExt
3523 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3524 EVALKEY=qt_qevalkey=
3527 if [ -n "$EVALKEY" ]; then
3528 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3529 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3530 /* Evaluation license key */
3531 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3533 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3537 # -----------------------------------------------------------------------------
3539 # -----------------------------------------------------------------------------
3542 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3544 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3545 if [ "$OPT_SHADOW" = "yes" ]; then
3546 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3547 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3548 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3552 # $1: input variable name (awk regexp)
3553 # $2: optional output variable name
3554 # $3: optional value transformation (sed command)
3555 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3556 # is where the resulting variable is written to
3557 setBootstrapVariable()
3559 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3563 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3564 echo "Creating qmake. Please wait..."
3567 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3568 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3569 if [ -f "$QCONFIG_H" ]; then
3570 OLD_QCONFIG_H=$QCONFIG_H
3571 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3574 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3575 # when building qmake, we use #defines for the install paths,
3576 # however they are real functions in the library
3577 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3578 mkdir -p "$outpath/src/corelib/global"
3579 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3580 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3583 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3585 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3586 rm -rf mkspecs/default mkspecs/default-host
3587 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3588 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3589 mkdir -p "$outpath/qmake" || exit
3591 for mkfile in GNUmakefile Makefile; do
3594 in_mkfile="${mkfile}.in"
3595 if [ "$mkfile" = "Makefile" ]; then
3596 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3597 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3599 in_mkfile="${mkfile}.unix"
3601 in_mkfile="$relpath/qmake/$in_mkfile"
3602 mkfile="$outpath/qmake/$mkfile"
3603 if [ -f "$mkfile" ]; then
3604 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3607 [ -f "$in_mkfile" ] || continue
3609 echo "########################################################################" > "$mkfile"
3610 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3611 echo "########################################################################" >> "$mkfile"
3614 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3615 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3616 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3618 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3619 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3622 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3623 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3624 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3625 setBootstrapVariable QMAKE_CFLAGS
3626 setBootstrapVariable QMAKE_CXXFLAGS
3627 setBootstrapVariable QMAKE_LFLAGS
3629 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3630 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3631 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3633 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3634 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3635 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3636 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3637 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3638 elif [ "$CFG_DEBUG" = "yes" ]; then
3639 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3640 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3641 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3642 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3645 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3646 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3647 for rpath in $RPATH_FLAGS; do
3648 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3651 if [ "$BUILD_ON_MAC" = "yes" ]; then
3652 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3653 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3654 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3655 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3656 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3657 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3658 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3659 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3660 if [ '!' -z "$CFG_SDK" ]; then
3661 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3662 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3663 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3664 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3665 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3668 if [ '!' -z "$D_FLAGS" ]; then
3669 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3671 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3672 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3673 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3674 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3676 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3677 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3678 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3679 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3680 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3681 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3682 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3683 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3684 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3685 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3687 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3688 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3689 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3690 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3695 QMAKE_BUILD_ERROR=no
3696 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3697 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3698 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3699 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3702 #-------------------------------------------------------------------------------
3703 # create a qt.conf for the Qt build tree itself
3704 #-------------------------------------------------------------------------------
3706 QTCONFFILE="$outpath/bin/qt.conf"
3707 cat > "$QTCONFFILE" <<EOF
3712 #-------------------------------------------------------------------------------
3714 #-------------------------------------------------------------------------------
3715 if [ -z "$PKG_CONFIG" ]; then
3716 # See if PKG_CONFIG is set in the mkspec:
3717 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3719 if [ -z "$PKG_CONFIG" ]; then
3720 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3723 if [ "$CFG_PKGCONFIG" = "no" ]; then
3725 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3727 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3728 echo >&2 "a correctly setup pkg-config environment!"
3730 elif [ -n "$PKG_CONFIG" ]; then
3731 # found a pkg-config
3732 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3733 # when xcompiling, check environment to see if it's actually usable
3734 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3735 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3736 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3737 if [ -n "$GCC_MACHINE_DUMP" ]; then
3738 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3740 export PKG_CONFIG_LIBDIR
3741 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3742 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3743 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3744 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3745 echo >&2 "Set this variable to the directory that contains target .pc files"
3746 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3747 echo >&2 "use -force-pkg-config to override this test."
3751 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3754 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3755 if [ -n "$CFG_SYSROOT" ]; then
3756 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3757 export PKG_CONFIG_SYSROOT_DIR
3758 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3759 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3760 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3761 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3762 echo >&2 "or use -force-pkg-config to override this test."
3766 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3770 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3771 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3775 if [ -z "$PKG_CONFIG" ]; then
3776 QT_CONFIG="$QT_CONFIG no-pkg-config"
3779 #-------------------------------------------------------------------------------
3780 # write out device config before we run the test.
3781 #-------------------------------------------------------------------------------
3782 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3783 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3784 rm -f "$DEVICE_VARS_FILE"
3786 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3787 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3790 #-------------------------------------------------------------------------------
3791 # tests that need qmake
3792 #-------------------------------------------------------------------------------
3794 # parameters: path, name, extra args
3797 path=config.tests/$1
3800 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3803 #-------------------------------------------------------------------------------
3804 # determine the target and host architectures
3805 #-------------------------------------------------------------------------------
3807 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3808 OUTFILE=$outpath/arch.result
3809 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3810 if [ $? -eq 0 ]; then
3811 eval `cat "$OUTFILE"`
3814 echo "Could not determine the target architecture!"
3815 echo "Turn on verbose messaging (-v) to see the final report."
3817 rm -f "$OUTFILE" 2>/dev/null
3818 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3820 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3821 # Do the same test again, using the host compiler
3822 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3823 if [ $? -eq 0 ]; then
3824 eval `cat "$OUTFILE"`
3827 echo "Could not determine the host architecture!"
3828 echo "Turn on verbose messaging (-v) to see the final report."
3830 rm -f "$OUTFILE" 2>/dev/null
3831 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3833 # not cross compiling, host == target
3834 CFG_HOST_ARCH="$CFG_ARCH"
3835 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3839 if [ "$OPT_VERBOSE" = "yes" ]; then
3840 echo "System architecture: '$CFG_ARCH'"
3841 echo "Host architecture: '$CFG_HOST_ARCH'"
3844 #-------------------------------------------------------------------------------
3845 # functionality tests
3846 #-------------------------------------------------------------------------------
3848 # Detect C++11 support
3849 if [ "$CFG_CXX11" != "no" ]; then
3850 if compileTest unix/c++11 "C++11"; then
3852 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3853 echo "C++11 support cannot be enabled due to functionality tests!"
3854 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3855 echo " If you believe this message is in error you may use the continue"
3856 echo " switch (-continue) to $0 to continue."
3863 # detect availability of float math.h functions
3864 if compileTest unix/floatmath "floatmath"; then
3865 CFG_USE_FLOATMATH=yes
3867 CFG_USE_FLOATMATH=no
3870 # detect sse2 support
3871 if [ "${CFG_SSE2}" = "auto" ]; then
3872 if compileTest common/sse2 "sse2"; then
3879 # detect sse3 support
3880 if [ "${CFG_SSE3}" = "auto" ]; then
3881 if compileTest common/sse3 "sse3"; then
3888 # detect ssse3 support
3889 if [ "${CFG_SSSE3}" = "auto" ]; then
3890 if compileTest common/ssse3 "ssse3"; then
3897 # detect sse4.1 support
3898 if [ "${CFG_SSE4_1}" = "auto" ]; then
3899 if compileTest common/sse4_1 "sse4_1"; then
3906 # detect sse4.2 support
3907 if [ "${CFG_SSE4_2}" = "auto" ]; then
3908 if compileTest common/sse4_2 "sse4_2"; then
3915 # detect avx support
3916 if [ "${CFG_AVX}" = "auto" ]; then
3917 if compileTest common/avx "avx"; then
3918 case "$XQMAKESPEC" in
3920 # Some clang versions produce internal compiler errors compiling Qt AVX code
3921 case `$TEST_COMPILER --version` in
3922 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3924 if [ "$OPT_VERBOSE" = "yes" ]; then
3925 echo 'AVX support disabled for blacklisted clang compiler'
3942 # detect avx2 support
3943 if [ "${CFG_AVX}" = "no" ]; then
3946 if [ "${CFG_AVX2}" = "auto" ]; then
3947 if compileTest common/avx2 "avx2"; then
3954 # check iWMMXt support
3955 if [ "$CFG_IWMMXT" = "yes" ]; then
3956 compileTest unix/iwmmxt "iwmmxt"
3957 if [ $? != "0" ]; then
3958 echo "The iWMMXt functionality test failed!"
3959 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3964 # detect neon support
3965 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3966 if compileTest unix/neon "neon"; then
3971 elif [ "$CFG_ARCH" != "arm" ]; then
3975 # detect mips_dsp support
3976 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3977 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dsp "mips_dsp" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3982 elif [ "$CFG_ARCH" != "mips" ]; then
3986 # detect mips_dspr2 support
3987 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3988 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dspr2 "mips_dspr2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3993 elif [ "$CFG_ARCH" != "mips" ]; then
3997 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4000 if [ "$CFG_ZLIB" = "no" ]; then
4001 # Note: Qt no longer support builds without zlib
4002 # So we force a "no" to be "auto" here.
4003 # If you REALLY really need no zlib support, you can still disable
4004 # it by doing the following:
4005 # add "no-zlib" to mkspecs/qconfig.pri
4006 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4008 # There's no guarantee that Qt will build under those conditions
4013 if [ "$CFG_ZLIB" = "auto" ]; then
4014 if compileTest unix/zlib "zlib"; then
4021 if [ "$CFG_LARGEFILE" = "auto" ]; then
4022 #Large files should be enabled for all Linux systems
4026 if [ "$CFG_GUI" = "no" ]; then
4027 QPA_PLATFORM_GUARD=no
4030 # detect how jpeg should be built
4031 if [ "$CFG_JPEG" = "auto" ]; then
4032 if [ "$CFG_SHARED" = "yes" ]; then
4039 if [ "$CFG_LIBJPEG" = "auto" ]; then
4040 if compileTest unix/libjpeg "libjpeg"; then
4047 # detect how gif should be built
4048 if [ "$CFG_GIF" = "auto" ]; then
4049 if [ "$CFG_SHARED" = "yes" ]; then
4057 if [ "$CFG_LIBPNG" = "auto" ]; then
4058 if compileTest unix/libpng "libpng"; then
4065 if [ "$CFG_EGLFS" = "yes" ]; then
4066 if [ "$CFG_EGL" = "no" ]; then
4067 echo "The EGLFS plugin requires EGL support and cannot be built"
4070 if [ "$CFG_OPENGL" != "es2" ]; then
4071 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4078 if [ "$CFG_KMS" = "yes" ]; then
4079 if [ "$CFG_EGL" = "no" ]; then
4080 echo "The KMS plugin requires EGL support and cannot be built"
4083 if [ "$CFG_OPENGL" != "es2" ]; then
4084 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4089 # auto-detect SQL-modules support
4090 for _SQLDR in $CFG_SQL_AVAILABLE; do
4093 if [ "$CFG_SQL_mysql" != "no" ]; then
4094 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4095 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4096 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4097 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4098 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4099 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4100 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4102 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4103 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4104 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4105 echo " You need MySql 4 or higher."
4106 echo " If you believe this message is in error you may use the continue"
4107 echo " switch (-continue) to $0 to continue."
4112 QT_LFLAGS_MYSQL_R=""
4116 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4117 QMakeVar add CONFIG use_libmysqlclient_r
4118 if [ "$CFG_SQL_mysql" = "auto" ]; then
4119 CFG_SQL_mysql=plugin
4121 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4122 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4123 if [ "$CFG_SQL_mysql" = "auto" ]; then
4124 CFG_SQL_mysql=plugin
4127 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4128 echo "MySQL support cannot be enabled due to functionality tests!"
4129 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4130 echo " If you believe this message is in error you may use the continue"
4131 echo " switch (-continue) to $0 to continue."
4136 QT_LFLAGS_MYSQL_R=""
4144 if [ "$CFG_SQL_psql" != "no" ]; then
4145 # Be careful not to use native pg_config when cross building.
4146 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4147 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4148 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4150 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4151 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4152 # But, respect PSQL_LIBS if set
4153 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4154 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4155 if [ "$CFG_SQL_psql" = "auto" ]; then
4159 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4160 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4161 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4162 echo " If you believe this message is in error you may use the continue"
4163 echo " switch (-continue) to $0 to continue."
4174 if [ "$CFG_SQL_odbc" != "no" ]; then
4175 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4176 if [ "$CFG_SQL_odbc" = "auto" ]; then
4180 if compileTest unix/iodbc "iODBC"; then
4181 QT_LFLAGS_ODBC="-liodbc"
4182 if [ "$CFG_SQL_odbc" = "auto" ]; then
4186 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4187 echo "ODBC support cannot be enabled due to functionality tests!"
4188 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4189 echo " If you believe this message is in error you may use the continue"
4190 echo " switch (-continue) to $0 to continue."
4200 if [ "$CFG_SQL_oci" != "no" ]; then
4201 if compileTest unix/oci "OCI"; then
4202 if [ "$CFG_SQL_oci" = "auto" ]; then
4206 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4207 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4208 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4209 echo " If you believe this message is in error you may use the continue"
4210 echo " switch (-continue) to $0 to continue."
4219 if [ "$CFG_SQL_tds" != "no" ]; then
4220 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4221 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4222 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4223 if [ "$CFG_SQL_tds" = "auto" ]; then
4227 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4228 echo "TDS support cannot be enabled due to functionality tests!"
4229 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4230 echo " If you believe this message is in error you may use the continue"
4231 echo " switch (-continue) to $0 to continue."
4240 if [ "$CFG_SQL_db2" != "no" ]; then
4241 if compileTest unix/db2 "DB2"; then
4242 if [ "$CFG_SQL_db2" = "auto" ]; then
4246 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4247 echo "ODBC support cannot be enabled due to functionality tests!"
4248 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4249 echo " If you believe this message is in error you may use the continue"
4250 echo " switch (-continue) to $0 to continue."
4259 if [ "$CFG_SQL_ibase" != "no" ]; then
4260 if compileTest unix/ibase "InterBase"; then
4261 if [ "$CFG_SQL_ibase" = "auto" ]; then
4262 CFG_SQL_ibase=plugin
4265 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4266 echo "InterBase support cannot be enabled due to functionality tests!"
4267 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4268 echo " If you believe this message is in error you may use the continue"
4269 echo " switch (-continue) to $0 to continue."
4278 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4279 if compileTest unix/sqlite2 "SQLite2"; then
4280 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4281 CFG_SQL_sqlite2=plugin
4284 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4285 echo "SQLite2 support cannot be enabled due to functionality tests!"
4286 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4287 echo " If you believe this message is in error you may use the continue"
4288 echo " switch (-continue) to $0 to continue."
4297 if [ "$CFG_SQL_sqlite" != "no" ]; then
4298 SQLITE_AUTODETECT_FAILED="no"
4299 if [ "$CFG_SQLITE" = "system" ]; then
4300 if [ -n "$PKG_CONFIG" ]; then
4301 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4302 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4305 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4307 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4308 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4309 CFG_SQL_sqlite=plugin
4311 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4313 SQLITE_AUTODETECT_FAILED="yes"
4316 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4317 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4318 CFG_SQL_sqlite=plugin
4321 SQLITE_AUTODETECT_FAILED="yes"
4325 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4326 echo "SQLite support cannot be enabled due to functionality tests!"
4327 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4328 echo " If you believe this message is in error you may use the continue"
4329 echo " switch (-continue) to $0 to continue."
4335 if [ "$OPT_VERBOSE" = "yes" ]; then
4336 echo "unknown SQL driver: $_SQLDR"
4342 # auto-detect NIS support
4343 if [ "$CFG_NIS" != "no" ]; then
4344 if compileTest unix/nis "NIS"; then
4347 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4348 echo "NIS support cannot be enabled due to functionality tests!"
4349 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4350 echo " If you believe this message is in error you may use the continue"
4351 echo " switch (-continue) to $0 to continue."
4359 # auto-detect CUPS support
4360 if [ "$CFG_CUPS" != "no" ]; then
4361 if compileTest unix/cups "Cups"; then
4364 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4365 echo "Cups support cannot be enabled due to functionality tests!"
4366 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4367 echo " If you believe this message is in error you may use the continue"
4368 echo " switch (-continue) to $0 to continue."
4376 # auto-detect iconv(3) support
4377 if [ "$CFG_ICONV" != "no" ]; then
4378 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4380 elif compileTest unix/iconv "POSIX iconv"; then
4382 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4384 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4387 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4388 echo "Iconv support cannot be enabled due to functionality tests!"
4389 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4390 echo " If you believe this message is in error you may use the continue"
4391 echo " switch (-continue) to $0 to continue."
4399 # auto-detect libdbus-1 support
4400 if [ "$CFG_DBUS" != "no" ]; then
4401 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4402 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4403 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4405 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4406 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4407 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4408 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4410 if [ "$CFG_DBUS" = "auto" ]; then
4412 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4413 # CFG_DBUS is "yes" or "linked" here
4415 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4416 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4417 echo " If you believe this message is in error you may use the continue"
4418 echo " switch (-continue) to $0 to continue."
4424 # auto-detect Glib support
4425 if [ "$CFG_GLIB" != "no" ]; then
4426 if [ -n "$PKG_CONFIG" ]; then
4427 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4428 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4430 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4432 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4433 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4435 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4436 echo "Glib support cannot be enabled due to functionality tests!"
4437 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4438 echo " If you believe this message is in error you may use the continue"
4439 echo " switch (-continue) to $0 to continue."
4447 # auto-detect GTK style support
4448 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4449 if [ -n "$PKG_CONFIG" ]; then
4450 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4451 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4453 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4455 QT_CONFIG="$QT_CONFIG gtkstyle"
4456 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4457 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4459 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4460 echo "Gtk theme support cannot be enabled due to functionality tests!"
4461 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4462 echo " If you believe this message is in error you may use the continue"
4463 echo " switch (-continue) to $0 to continue."
4469 elif [ "$CFG_GLIB" = "no" ]; then
4474 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4475 if [ -n "$PKG_CONFIG" ]; then
4476 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4477 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4479 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4481 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4482 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4484 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4485 echo "Gstreamer support cannot be enabled due to functionality tests!"
4486 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4487 echo " If you believe this message is in error you may use the continue"
4488 echo " switch (-continue) to $0 to continue."
4494 elif [ "$CFG_GLIB" = "no" ]; then
4498 # auto-detect libicu support
4499 if [ "$CFG_ICU" != "no" ]; then
4500 if compileTest unix/icu "ICU"; then
4501 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4503 if [ "$CFG_ICU" = "auto" ]; then
4505 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4508 echo "The ICU library support cannot be enabled."
4509 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4510 echo " If you believe this message is in error you may use the continue"
4511 echo " switch (-continue) to $0 to continue."
4517 # Auto-detect PulseAudio support
4518 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4519 if [ -n "$PKG_CONFIG" ]; then
4520 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4521 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4523 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4525 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4526 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4528 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4529 echo "PulseAudio support cannot be enabled due to functionality tests!"
4530 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4531 echo " If you believe this message is in error you may use the continue"
4532 echo " switch (-continue) to $0 to continue."
4541 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4542 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4543 if [ "$CFG_GUI" = "no" ]; then
4544 if [ "$CFG_OPENGL" = "auto" ]; then
4547 if [ "$CFG_OPENGL" != "no" ]; then
4548 echo "OpenGL enabled, but GUI disabled."
4549 echo " You might need to either enable the GUI or disable OpenGL"
4553 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4554 if compileTest x11/opengl "OpenGL"; then
4556 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4559 if [ "$CFG_OPENGL" = "yes" ]; then
4560 echo "All the OpenGL functionality tests failed!"
4561 echo " You might need to modify the include and library search paths by editing"
4562 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4563 echo " ${XQMAKESPEC}."
4570 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4571 if [ "$CFG_OPENGL" = "desktop" ]; then
4572 compileTest x11/glxfbconfig "OpenGL"
4573 if [ $? != "0" ]; then
4574 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4581 elif [ "$CFG_OPENGL" = "es2" ]; then
4583 compileTest unix/opengles2 "OpenGL ES 2.x"
4584 if [ $? != "0" ]; then
4585 echo "The OpenGL ES 2.0 functionality test failed!"
4586 echo " You might need to modify the include and library search paths by editing"
4587 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4588 echo " ${XQMAKESPEC}."
4591 elif [ "$CFG_OPENGL" = "desktop" ]; then
4592 # Desktop OpenGL support
4593 compileTest x11/opengl "OpenGL"
4594 if [ $? != "0" ]; then
4595 echo "The OpenGL functionality test failed!"
4596 echo " You might need to modify the include and library search paths by editing"
4597 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4598 echo " ${XQMAKESPEC}."
4603 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4604 compileTest x11/glxfbconfig "OpenGL"
4605 if [ $? != "0" ]; then
4606 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4613 fi # X11/MINGW OpenGL
4615 if [ "$BUILD_ON_MAC" = "yes" ]; then
4616 if [ "$CFG_COREWLAN" = "auto" ]; then
4617 if compileTest mac/corewlan "CoreWlan"; then
4625 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4626 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4627 if compileTest unix/opengldesktop "OpenGL"; then
4629 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4632 if [ "$CFG_OPENGL" = "yes" ]; then
4633 echo "All the OpenGL functionality tests failed!"
4634 echo " You might need to modify the include and library search paths by editing"
4635 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4636 echo " ${XQMAKESPEC}."
4641 elif [ "$CFG_OPENGL" = "es2" ]; then
4643 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4644 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4645 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4646 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4647 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4648 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4649 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4650 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4653 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4654 if [ $? != "0" ]; then
4655 echo "The OpenGL ES 2.0 functionality test failed!"
4656 echo " You might need to modify the include and library search paths by editing"
4657 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4658 echo " ${XQMAKESPEC}."
4661 elif [ "$CFG_OPENGL" = "desktop" ]; then
4662 # Desktop OpenGL support
4663 compileTest unix/opengldesktop "OpenGL"
4664 if [ $? != "0" ]; then
4665 echo "The OpenGL functionality test failed!"
4666 echo " You might need to modify the include and library search paths by editing"
4667 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4668 echo " ${XQMAKESPEC}."
4673 # auto-detect FontConfig support
4674 if [ "$CFG_FONTCONFIG" != "no" ]; then
4675 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4676 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4677 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4679 QT_CFLAGS_FONTCONFIG=
4680 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4682 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4683 QT_CONFIG="$QT_CONFIG fontconfig"
4684 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4685 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4687 CFG_LIBFREETYPE=system
4694 # Save these for a check later
4695 ORIG_CFG_XCB="$CFG_XCB"
4696 ORIG_CFG_EGLFS="$CFG_EGLFS"
4697 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4698 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4699 ORIG_CFG_KMS="$CFG_KMS"
4701 if [ "$CFG_LIBUDEV" != "no" ]; then
4702 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4703 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4704 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4705 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4706 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4708 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4710 QT_CONFIG="$QT_CONFIG libudev"
4711 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4712 echo "The libudev functionality test failed!"
4718 if [ "$CFG_LIBUDEV" = "no" ]; then
4719 QMakeVar add DEFINES QT_NO_LIBUDEV
4722 if [ "$CFG_EVDEV" != "no" ]; then
4723 if compileTest unix/evdev "evdev"; then
4725 QT_CONFIG="$QT_CONFIG evdev"
4726 elif [ "$CFG_EVDEV" = "yes" ]; then
4727 echo "The evdev functionality test failed!"
4733 if [ "$CFG_EVDEV" = "no" ]; then
4734 QMakeVar add DEFINES QT_NO_EVDEV
4737 # Check we actually have X11 :-)
4738 if compileTest x11/xlib "XLib"; then
4739 QT_CONFIG="$QT_CONFIG xlib"
4742 # auto-detect Xrender support
4743 if [ "$CFG_XRENDER" != "no" ]; then
4744 if compileTest x11/xrender "Xrender"; then
4746 QT_CONFIG="$QT_CONFIG xrender"
4748 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4749 echo "Xrender support cannot be enabled due to functionality tests!"
4750 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4751 echo " If you believe this message is in error you may use the continue"
4752 echo " switch (-continue) to $0 to continue."
4760 if [ "$CFG_XCB" != "no" ]; then
4761 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4762 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4763 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4765 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4767 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4768 QT_CONFIG="$QT_CONFIG xcb-render"
4771 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4773 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4776 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4777 QT_CONFIG="$QT_CONFIG xcb-xlib"
4780 # auto-detect XInput2 support. Needed by xcb too.
4781 if [ "$CFG_XINPUT2" != "no" ]; then
4782 if compileTest x11/xinput2 "XInput2"; then
4786 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4787 echo "XInput2 support cannot be enabled due to functionality tests!"
4788 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4789 echo " If you believe this message is in error you may use the continue"
4790 echo " switch (-continue) to $0 to continue."
4798 if [ "$CFG_XCB" = "yes" ]; then
4799 echo "The XCB test failed!"
4800 echo " You might need to install dependency packages."
4801 echo " See src/plugins/platforms/xcb/README."
4807 if [ "$CFG_XCB" = "no" ]; then
4808 QMakeVar add DEFINES QT_NO_XCB
4811 if [ "$CFG_DIRECTFB" != "no" ]; then
4812 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4813 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4814 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4815 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4817 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4818 echo " DirectFB support cannot be enabled due to functionality tests!"
4819 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4820 echo " If you believe this message is in error you may use the continue"
4821 echo " switch (-continue) to $0 to continue."
4831 if [ "$CFG_LINUXFB" != "no" ]; then
4832 if compileTest qpa/linuxfb "LinuxFB"; then
4834 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4835 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4836 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4837 echo " If you believe this message is in error you may use the continue"
4838 echo " switch (-continue) to $0 to continue."
4845 if [ "$CFG_KMS" != "no" ]; then
4846 if compileTest qpa/kms "KMS"; then
4848 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4849 echo " KMS support cannot be enabled due to functionality tests!"
4850 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4851 echo " If you believe this message is in error you may use the continue"
4852 echo " switch (-continue) to $0 to continue."
4859 # Detect libxkbcommon
4860 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4861 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4862 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4863 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4864 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4866 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4870 if [ "$CFG_EGL" != "no" ]; then
4871 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4872 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4873 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4874 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4875 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4876 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4877 fi # detect EGL support
4878 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4880 elif [ "$CFG_EGL" = "yes" ]; then
4881 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4882 echo " You might need to modify the include and library search paths by editing"
4883 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4888 elif [ "$CFG_OPENGL" = "desktop" ]; then
4889 if [ "$CFG_EGL" = "yes" ]; then
4890 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4891 echo "Either disable EGL support or enable OpenGL ES support."
4897 if [ "$CFG_EGLFS" != "no" ]; then
4898 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4899 CFG_EGLFS="$CFG_EGL"
4905 if [ "$CFG_KMS" = "yes" ]; then
4906 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4913 # Detect accessibility support
4914 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4915 if [ "$CFG_XCB" = "no" ]; then
4916 CFG_ACCESSIBILITY=yes
4918 # linux/xcb accessibility needs dbus and atspi-2
4919 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4920 CFG_ACCESSIBILITY=yes
4922 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4923 CFG_ACCESSIBILITY=no
4925 echo "Accessibility support needs pkg-config and libatspi2."
4932 # Determine the default QPA platform
4933 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4935 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4936 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4937 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4938 QT_QPA_DEFAULT_PLATFORM="windows"
4939 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4940 QT_QPA_DEFAULT_PLATFORM="cocoa"
4941 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4942 QT_QPA_DEFAULT_PLATFORM="qnx"
4944 QT_QPA_DEFAULT_PLATFORM="xcb"
4949 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4950 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4951 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4952 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4954 if [ "$CFG_DIRECTFB" = "yes" ]; then
4955 QT_CONFIG="$QT_CONFIG directfb"
4956 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4957 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4959 if [ "$CFG_LINUXFB" = "yes" ]; then
4960 QT_CONFIG="$QT_CONFIG linuxfb"
4962 if [ "$CFG_KMS" = "yes" ]; then
4963 QT_CONFIG="$QT_CONFIG kms"
4966 if [ "$BUILD_ON_MAC" = "yes" ]; then
4967 if compileTest mac/coreservices "CoreServices"; then
4968 QT_CONFIG="$QT_CONFIG coreservices"
4970 QMakeVar add DEFINES QT_NO_CORESERVICES
4974 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4975 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4976 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4977 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4978 echo "No QPA platform plugin enabled!"
4979 echo " If you really want to build without a QPA platform plugin you must pass"
4980 echo " -no-qpa-platform-guard to configure. Doing this will"
4981 echo " produce a Qt that can not run GUI applications."
4982 echo " The dependencies needed for xcb to build are listed in"
4983 echo " src/plugins/platforms/xcb/README"
4990 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4991 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4992 if compileTest unix/freetype "FreeType"; then
4993 CFG_LIBFREETYPE=system
4999 if ! compileTest unix/stl "STL" &&
5000 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5001 echo "STL functionality check failed! Cannot build Qt with this STL library."
5002 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5007 # detect POSIX clock_gettime()
5008 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5009 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5010 CFG_CLOCK_GETTIME=yes
5012 CFG_CLOCK_GETTIME=no
5016 # detect POSIX monotonic clocks
5017 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5018 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5019 CFG_CLOCK_MONOTONIC=yes
5021 CFG_CLOCK_MONOTONIC=no
5023 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5024 CFG_CLOCK_MONOTONIC=no
5028 if [ "$CFG_MREMAP" = "auto" ]; then
5029 if compileTest unix/mremap "mremap"; then
5036 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5037 if [ "$CFG_GETADDRINFO" != "no" ]; then
5038 if compileTest unix/getaddrinfo "getaddrinfo"; then
5041 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5042 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5043 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5044 echo " If you believe this message is in error you may use the continue"
5045 echo " switch (-continue) to $0 to continue."
5053 # find if the platform provides inotify
5054 if [ "$CFG_INOTIFY" != "no" ]; then
5055 if compileTest unix/inotify "inotify"; then
5058 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5059 echo "inotify support cannot be enabled due to functionality tests!"
5060 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5061 echo " If you believe this message is in error you may use the continue"
5062 echo " switch (-continue) to $0 to continue."
5070 # find if the platform provides if_nametoindex (ipv6 interface name support)
5071 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5072 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5075 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5076 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5077 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5078 echo " If you believe this message is in error you may use the continue"
5079 echo " switch (-continue) to $0 to continue."
5087 # find if the platform provides getifaddrs (network interface enumeration)
5088 if [ "$CFG_GETIFADDRS" != "no" ]; then
5089 if compileTest unix/getifaddrs "getifaddrs"; then
5092 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5093 echo "getifaddrs support cannot be enabled due to functionality tests!"
5094 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5095 echo " If you believe this message is in error you may use the continue"
5096 echo " switch (-continue) to $0 to continue."
5105 if [ "$CFG_OPENSSL" != "no" ]; then
5106 if compileTest unix/openssl "OpenSSL"; then
5107 if [ "$CFG_OPENSSL" = "auto" ]; then
5111 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5112 echo "OpenSSL support cannot be enabled due to functionality tests!"
5113 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5114 echo " If you believe this message is in error you may use the continue"
5115 echo " switch (-continue) to $0 to continue."
5124 if [ "$CFG_PCRE" != "qt" ]; then
5125 if compileTest unix/pcre "PCRE"; then
5128 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5129 echo "PCRE support cannot be enabled due to functionality tests!"
5130 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5131 echo " If you believe this message is in error you may use the continue"
5132 echo " switch (-continue) to $0 to continue."
5140 # detect OpenVG support
5141 if [ "$CFG_OPENVG" != "no" ]; then
5142 if compileTest unix/openvg "OpenVG"; then
5143 if [ "$CFG_OPENVG" = "auto" ]; then
5146 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5147 if [ "$CFG_OPENVG" = "auto" ]; then
5150 CFG_OPENVG_ON_OPENGL=yes
5151 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5152 if [ "$CFG_OPENVG" = "auto" ]; then
5155 CFG_OPENVG_LC_INCLUDES=yes
5156 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5157 if [ "$CFG_OPENVG" = "auto" ]; then
5160 CFG_OPENVG_LC_INCLUDES=yes
5161 CFG_OPENVG_ON_OPENGL=yes
5163 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5164 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5165 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5166 echo " If you believe this message is in error you may use the continue"
5167 echo " switch (-continue) to $0 to continue."
5173 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5174 CFG_OPENVG_SHIVA=yes
5178 if [ "$CFG_ALSA" = "auto" ]; then
5179 if compileTest unix/alsa "alsa"; then
5186 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5187 if [ "$CFG_ARCH" = "arm" ]; then
5188 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5189 if [ $? != "0" ]; then
5190 CFG_JAVASCRIPTCORE_JIT=no
5193 case "$XPLATFORM" in
5195 CFG_JAVASCRIPTCORE_JIT=no
5201 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5202 QMakeVar set JAVASCRIPTCORE_JIT yes
5203 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5204 QMakeVar set JAVASCRIPTCORE_JIT no
5207 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5208 CFG_AUDIO_BACKEND=yes
5211 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5212 echo "Warning: largefile support cannot be disabled for win32."
5216 #-------------------------------------------------------------------------------
5217 # ask for all that hasn't been auto-detected or specified in the arguments
5218 #-------------------------------------------------------------------------------
5220 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5222 # disable accessibility
5223 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5224 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5226 QT_CONFIG="$QT_CONFIG accessibility"
5230 if [ "$CFG_EGL" = "yes" ]; then
5231 QT_CONFIG="$QT_CONFIG egl"
5233 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5237 if [ "$CFG_EGLFS" = "yes" ]; then
5238 QT_CONFIG="$QT_CONFIG eglfs"
5240 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5244 if [ "$CFG_OPENVG" = "no" ]; then
5245 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5247 QT_CONFIG="$QT_CONFIG openvg"
5248 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5249 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5251 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5252 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5254 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5255 QT_CONFIG="$QT_CONFIG shivavg"
5256 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5261 if [ "$CFG_OPENGL" = "no" ]; then
5262 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5264 QT_CONFIG="$QT_CONFIG opengl"
5267 if [ "$CFG_OPENGL" = "es2" ]; then
5268 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5271 if [ "$CFG_OPENGL" = "es2" ]; then
5272 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5273 QT_CONFIG="$QT_CONFIG opengles2"
5276 # build up the variables for output
5277 if [ "$CFG_DEBUG" = "yes" ]; then
5278 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5279 elif [ "$CFG_DEBUG" = "no" ]; then
5280 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5282 if [ "$CFG_SHARED" = "yes" ]; then
5283 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5284 QT_CONFIG="$QT_CONFIG shared"
5285 elif [ "$CFG_SHARED" = "no" ]; then
5286 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5287 QT_CONFIG="$QT_CONFIG static"
5290 #FIXME: qpa is implicit this should all be removed
5291 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5292 QT_CONFIG="$QT_CONFIG qpa"
5293 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5294 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5296 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5297 # Do not set this here for Windows. Let qmake do it so
5298 # debug and release precompiled headers are kept separate.
5299 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5301 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5302 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5303 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5304 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5305 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5306 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5308 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5309 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5311 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5312 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5313 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5314 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5315 QMakeVar add QMAKE_CFLAGS -g
5316 QMakeVar add QMAKE_CXXFLAGS -g
5317 QT_CONFIG="$QT_CONFIG separate_debug_info"
5319 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5320 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5322 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5323 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5324 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5325 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5326 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5327 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5328 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5329 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5330 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5331 if [ "$CFG_ARCH" = "mips" ]; then
5332 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5333 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5335 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5336 QT_CONFIG="$QT_CONFIG clock-gettime"
5338 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5339 QT_CONFIG="$QT_CONFIG clock-monotonic"
5341 if [ "$CFG_MREMAP" = "yes" ]; then
5342 QT_CONFIG="$QT_CONFIG mremap"
5344 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5345 QT_CONFIG="$QT_CONFIG getaddrinfo"
5347 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5348 QT_CONFIG="$QT_CONFIG ipv6ifname"
5350 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5351 QT_CONFIG="$QT_CONFIG getifaddrs"
5353 if [ "$CFG_INOTIFY" = "yes" ]; then
5354 QT_CONFIG="$QT_CONFIG inotify"
5356 if [ "$CFG_LIBJPEG" = "no" ]; then
5358 elif [ "$CFG_LIBJPEG" = "system" ]; then
5359 QT_CONFIG="$QT_CONFIG system-jpeg"
5361 if [ "$CFG_JPEG" = "no" ]; then
5362 QT_CONFIG="$QT_CONFIG no-jpeg"
5363 elif [ "$CFG_JPEG" = "yes" ]; then
5364 QT_CONFIG="$QT_CONFIG jpeg"
5366 if [ "$CFG_LIBPNG" = "no" ]; then
5369 if [ "$CFG_LIBPNG" = "system" ]; then
5370 QT_CONFIG="$QT_CONFIG system-png"
5372 if [ "$CFG_PNG" = "no" ]; then
5373 QT_CONFIG="$QT_CONFIG no-png"
5374 elif [ "$CFG_PNG" = "yes" ]; then
5375 QT_CONFIG="$QT_CONFIG png"
5377 if [ "$CFG_GIF" = "no" ]; then
5378 QT_CONFIG="$QT_CONFIG no-gif"
5379 elif [ "$CFG_GIF" = "yes" ]; then
5380 QT_CONFIG="$QT_CONFIG gif"
5382 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5383 QT_CONFIG="$QT_CONFIG no-freetype"
5384 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5385 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5386 QT_CONFIG="$QT_CONFIG system-freetype"
5388 QT_CONFIG="$QT_CONFIG freetype"
5390 if [ "$CFG_GUI" = "auto" ]; then
5393 if [ "$CFG_GUI" = "no" ]; then
5394 QT_CONFIG="$QT_CONFIG no-gui"
5397 if [ "$CFG_WIDGETS" = "no" ]; then
5398 QT_CONFIG="$QT_CONFIG no-widgets"
5399 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5402 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5403 #On Mac we implicitly link against libz, so we
5404 #never use the 3rdparty stuff.
5405 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5407 if [ "$CFG_ZLIB" = "yes" ]; then
5408 QT_CONFIG="$QT_CONFIG zlib"
5409 elif [ "$CFG_ZLIB" = "system" ]; then
5410 QT_CONFIG="$QT_CONFIG system-zlib"
5413 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5414 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5415 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5416 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5417 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5418 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5419 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5420 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5421 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5422 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5423 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5424 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5425 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5426 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5428 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5429 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5431 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5432 if [ "$CFG_RPATH" = "yes" ]; then
5433 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5435 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5436 if [ -n "$RPATH_FLAGS" ]; then
5438 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5442 elif [ "$CFG_RPATH" = "yes" ]; then
5443 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5447 if [ -n "$RPATH_FLAGS" ]; then
5448 # add the user defined rpaths
5449 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5452 if [ "$CFG_RPATH" = "yes" ]; then
5453 QT_CONFIG="$QT_CONFIG rpath"
5456 if [ '!' -z "$I_FLAGS" ]; then
5457 # add the user define include paths
5458 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5459 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5462 if [ '!' -z "$W_FLAGS" ]; then
5463 # add the user defined warning flags
5464 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5465 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5466 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5469 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5470 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5471 # Follow default behavior of configure.exe by overriding with "rtti".
5472 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5475 if [ "$CFG_ALSA" = "yes" ]; then
5476 QT_CONFIG="$QT_CONFIG alsa"
5479 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5480 QT_CONFIG="$QT_CONFIG pulseaudio"
5483 if [ "$CFG_COREWLAN" = "yes" ]; then
5484 QT_CONFIG="$QT_CONFIG corewlan"
5487 if [ "$CFG_ICU" = "yes" ]; then
5488 QT_CONFIG="$QT_CONFIG icu"
5491 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5492 QT_CONFIG="$QT_CONFIG force_asserts"
5495 if [ "$CFG_PCRE" = "qt" ]; then
5496 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5500 # Some Qt modules are too advanced in C++ for some old compilers
5501 # Detect here the platforms where they are known to work.
5503 # See Qt documentation for more information on which features are
5504 # supported and on which compilers.
5506 canBuildQtConcurrent="yes"
5507 canUseV8Snapshot="yes"
5509 case "$XPLATFORM" in
5511 # PA-RISC's assembly is too limited
5512 # gcc 3.4 on that platform can't build QtXmlPatterns
5513 # the assembly it generates cannot be compiled
5515 # Check gcc's version
5516 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5520 canBuildQtXmlPatterns="no"
5524 canBuildQtXmlPatterns="no"
5528 unsupported/vxworks-*-g++*)
5531 unsupported/vxworks-*-dcc*)
5533 canBuildQtXmlPatterns="no"
5536 # Check gcc's version
5537 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5545 canBuildQtXmlPatterns="no"
5550 # Check the compiler version
5551 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5554 canBuildQtXmlPatterns="no"
5555 canBuildQtConcurrent="no"
5559 canBuildQtConcurrent="no"
5565 canBuildQtXmlPatterns="no"
5566 canBuildQtConcurrent="no"
5572 # Get the xlC version
5573 cat > xlcver.c <<EOF
5577 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5582 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5583 xlcver=`./xlcver 2>/dev/null`
5586 if [ "$OPT_VERBOSE" = "yes" ]; then
5587 if [ -n "$xlcver" ]; then
5588 echo Found IBM xlC version: $xlcver.
5590 echo Could not determine IBM xlC version, assuming oldest supported.
5597 canBuildQtXmlPatterns="no"
5598 canBuildQtConcurrent="no"
5602 canBuildQtConcurrent="no"
5608 canBuildQtConcurrent="no"
5612 if [ "$CFG_GUI" = "no" ]; then
5613 # WebKit requires QtGui
5617 if [ "$CFG_SHARED" = "no" ]; then
5619 echo "WARNING: Using static linking will disable the WebKit module."
5624 CFG_CONCURRENT="yes"
5625 if [ "$canBuildQtConcurrent" = "no" ]; then
5626 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5629 QT_CONFIG="$QT_CONFIG concurrent"
5633 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5634 QT_CONFIG="$QT_CONFIG audio-backend"
5638 if [ "$CFG_WEBKIT" = "debug" ]; then
5639 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5643 QT_CONFIG="$QT_CONFIG v8"
5644 # Detect snapshot support
5645 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5646 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5649 *) canUseV8Snapshot="no"
5653 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5654 # QEMU crashes when building inside Scratchbox with an ARM target
5655 canUseV8Snapshot="no"
5658 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5659 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5661 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5662 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5665 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5666 QT_CONFIG="$QT_CONFIG v8snapshot"
5670 if [ "$CFG_QML_DEBUG" = "no" ]; then
5671 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5674 case "$QMAKE_CONF_COMPILER" in
5677 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5679 case "$COMPILER_VERSION" in
5681 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5682 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5683 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5686 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5687 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5688 QT_GCC_PATCH_VERSION=0
5698 #-------------------------------------------------------------------------------
5699 # part of configuration information goes into qconfig.h
5700 #-------------------------------------------------------------------------------
5702 case "$CFG_QCONFIG" in
5704 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5707 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5708 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5709 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5710 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5711 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5712 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5714 echo "#endif" >>"$tmpconfig"
5718 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5722 # define QT_EDITION $QT_EDITION
5726 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5727 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5729 if [ "$CFG_SHARED" = "no" ]; then
5730 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5731 /* Qt was configured for a static build */
5732 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5739 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5740 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5743 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5744 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5747 if [ "$BUILD_ON_MAC" = "yes" ]; then
5748 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5749 #if defined(__LP64__)
5750 # define QT_POINTER_SIZE 8
5752 # define QT_POINTER_SIZE 4
5756 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5757 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5760 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5761 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5762 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5765 # Add compiler sub-architecture support
5766 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5767 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5768 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5770 MIPS_DSP MIPS_DSPR2; do
5771 eval "VAL=\$CFG_$SUBARCH"
5774 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5775 >>"$outpath/src/corelib/global/qconfig.h.new"
5780 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5782 if [ "$CFG_DEV" = "yes" ]; then
5783 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5786 # Add QPA to config.h
5787 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5789 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5790 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5793 # Add turned on SQL drivers
5794 for DRIVER in $CFG_SQL_AVAILABLE; do
5795 eval "VAL=\$CFG_SQL_$DRIVER"
5798 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5799 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5800 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5803 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5808 QMakeVar set sql-drivers "$SQL_DRIVERS"
5809 QMakeVar set sql-plugins "$SQL_PLUGINS"
5811 # Add other configuration options to the qconfig.h file
5812 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5813 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5814 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5815 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5816 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5818 # X11/Unix/Mac only configs
5819 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5820 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5821 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5822 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5823 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5824 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5825 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5826 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5827 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5828 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5829 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5830 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5831 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5832 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5834 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5835 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5836 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5837 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5838 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5839 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5840 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5841 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5842 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5843 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5844 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5845 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5846 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5848 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5849 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5850 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5851 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5852 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5853 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5854 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5855 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5857 # sort QCONFIG_FLAGS for neatness if we can
5858 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5859 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5861 if [ -n "$QCONFIG_FLAGS" ]; then
5862 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5863 #ifndef QT_BOOTSTRAPPED
5866 for cfg in $QCONFIG_FLAGS; do
5867 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5868 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5869 # figure out define logic, so we can output the correct
5870 # ifdefs to override the global defines in a project
5872 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5873 # QT_NO_option can be forcefully turned on by QT_option
5874 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5875 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5876 # QT_option can be forcefully turned off by QT_NO_option
5877 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5880 if [ -z $cfgdNeg ]; then
5881 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5888 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5889 #if defined($cfgd) && defined($cfgdNeg)
5891 #elif !defined($cfgd) && !defined($cfgdNeg)
5898 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5899 #endif // QT_BOOTSTRAPPED
5904 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5905 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5906 #define QT_VISIBILITY_AVAILABLE
5911 if [ -n "$QT_LIBINFIX" ]; then
5912 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5913 #define QT_LIBINFIX "$QT_LIBINFIX"
5918 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5920 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5921 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5922 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5924 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5925 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5926 chmod -w "$outpath/src/corelib/global/qconfig.h"
5927 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5928 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5932 #-------------------------------------------------------------------------------
5933 # save configuration into qconfig.pri
5934 #-------------------------------------------------------------------------------
5935 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5936 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5937 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5938 if [ "$CFG_DEBUG" = "yes" ]; then
5939 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5940 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5941 QT_CONFIG="$QT_CONFIG release"
5943 QT_CONFIG="$QT_CONFIG debug"
5944 elif [ "$CFG_DEBUG" = "no" ]; then
5945 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5946 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5947 QT_CONFIG="$QT_CONFIG debug"
5949 QT_CONFIG="$QT_CONFIG release"
5951 if [ "$CFG_FRAMEWORK" = "no" ]; then
5952 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5954 QT_CONFIG="$QT_CONFIG qt_framework"
5955 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5957 if [ "$CFG_DEV" = "yes" ]; then
5958 QT_CONFIG="$QT_CONFIG private_tests"
5961 cat >>"$QTCONFIG.tmp" <<EOF
5963 CONFIG += $QTCONFIG_CONFIG
5965 QT_HOST_ARCH = $CFG_HOST_ARCH
5966 QT_CPU_FEATURES = $CFG_CPUFEATURES
5967 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5968 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5969 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5970 QT_EDITION = $Edition
5971 QT_CONFIG += $QT_CONFIG
5974 QT_VERSION = $QT_VERSION
5975 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5976 QT_MINOR_VERSION = $QT_MINOR_VERSION
5977 QT_PATCH_VERSION = $QT_PATCH_VERSION
5980 QT_LIBINFIX = $QT_LIBINFIX
5981 QT_NAMESPACE = $QT_NAMESPACE
5985 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5986 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5987 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5988 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5989 echo >> "$QTCONFIG.tmp"
5992 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5993 echo "# sysroot" >>"$QTCONFIG.tmp"
5994 echo "!host_build {" >>"$QTCONFIG.tmp"
5995 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5996 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5997 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5998 echo "}" >> "$QTCONFIG.tmp"
5999 echo >> "$QTCONFIG.tmp"
6001 if [ -n "$RPATH_FLAGS" ]; then
6002 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6004 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6005 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6006 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6007 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6010 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6011 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6012 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6015 # replace qconfig.pri if it differs from the newly created temp file
6016 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6017 rm -f "$QTCONFIG.tmp"
6019 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6022 #-------------------------------------------------------------------------------
6023 # save configuration into qmodule.pri
6024 #-------------------------------------------------------------------------------
6025 QTMODULE="$outpath/mkspecs/qmodule.pri"
6027 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6028 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6030 if [ -n "$QT_CFLAGS_PSQL" ]; then
6031 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6033 if [ -n "$QT_LFLAGS_PSQL" ]; then
6034 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6036 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6037 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6039 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6040 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6042 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6043 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6045 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6046 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6048 if [ -n "$QT_LFLAGS_ODBC" ]; then
6049 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6051 if [ -n "$QT_LFLAGS_TDS" ]; then
6052 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6055 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6056 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6059 #dump in the OPENSSL_LIBS info
6060 if [ '!' -z "$OPENSSL_LIBS" ]; then
6061 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6062 elif [ "$CFG_OPENSSL" = "linked" ]; then
6063 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6066 #dump in the SDK info
6067 if [ '!' -z "$CFG_SDK" ]; then
6068 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6072 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6073 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6075 # replace qmodule.pri if it differs from the newly created temp file
6076 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6077 rm -f "$QTMODULE.tmp"
6079 mv -f "$QTMODULE.tmp" "$QTMODULE"
6082 #-------------------------------------------------------------------------------
6083 # save configuration into .qmake.cache
6084 #-------------------------------------------------------------------------------
6086 CACHEFILE="$outpath/.qmake.cache"
6087 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6088 cat >>"$CACHEFILE.tmp" <<EOF
6090 QT_SOURCE_TREE = \$\$quote($relpath)
6091 QT_BUILD_TREE = \$\$quote($outpath)
6093 include(\$\$PWD/mkspecs/qmodule.pri)
6094 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
6098 # replace .qmake.cache if it differs from the newly created temp file
6099 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6100 rm -f "$CACHEFILE.tmp"
6102 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6105 #-------------------------------------------------------------------------------
6106 # give feedback on configuration
6107 #-------------------------------------------------------------------------------
6108 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6111 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6112 echo "Build type: $PLATFORM"
6114 echo "Building on: $PLATFORM"
6115 echo "Building for: $XPLATFORM"
6118 # the missing space before $CFG_FEATURES is intentional
6119 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6120 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6122 if [ -n "$PLATFORM_NOTES" ]; then
6123 echo "Platform notes:"
6124 echo "$PLATFORM_NOTES"
6129 if [ "$OPT_VERBOSE" = "yes" ]; then
6130 echo $ECHO_N "qmake vars .......... $ECHO_C"
6131 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6132 echo "qmake switches ......... $QMAKE_SWITCHES"
6135 echo "Build .................. $CFG_BUILD_PARTS"
6136 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6137 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6138 echo "Debug .................. yes (combined)"
6139 if [ "$CFG_DEBUG" = "yes" ]; then
6140 echo "Default Link ........... debug"
6142 echo "Default Link ........... release"
6145 echo "Debug .................. $CFG_DEBUG"
6147 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6148 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6150 echo "C++11 support .......... $CFG_CXX11"
6151 if [ -n "$PKG_CONFIG" ]; then
6152 echo "pkg-config ............. yes"
6154 echo "pkg-config ............. no"
6156 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6157 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6158 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6159 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6160 echo "QtGui module ........... $CFG_GUI"
6161 echo "QtWidgets module ....... $CFG_WIDGETS"
6162 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6163 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6165 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6167 echo "QML debugging .......... $CFG_QML_DEBUG"
6168 echo "PCH support ............ $CFG_PRECOMPILE"
6169 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6170 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6171 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6172 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6173 elif [ "$CFG_ARCH" = "arm" ]; then
6174 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6175 echo "NEON support ........... ${CFG_NEON}"
6177 if [ "$CFG_ARCH" = "mips" ]; then
6178 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6180 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6181 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6182 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6183 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6184 echo "NIS support ............ $CFG_NIS"
6185 echo "CUPS support ........... $CFG_CUPS"
6186 echo "Iconv support .......... $CFG_ICONV"
6187 echo "Glib support ........... $CFG_GLIB"
6188 echo "GStreamer support ...... $CFG_GSTREAMER"
6189 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6190 echo "Large File support ..... $CFG_LARGEFILE"
6191 echo "GIF support ............ $CFG_GIF"
6192 if [ "$CFG_JPEG" = "no" ]; then
6193 echo "JPEG support ........... $CFG_JPEG"
6195 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6197 if [ "$CFG_PNG" = "no" ]; then
6198 echo "PNG support ............ $CFG_PNG"
6200 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6202 echo "zlib support ........... $CFG_ZLIB"
6203 echo "Session management ..... $CFG_SM"
6204 echo "libudev support ........ $CFG_LIBUDEV"
6206 if [ "$CFG_OPENGL" = "desktop" ]; then
6207 echo "OpenGL support ......... yes (Desktop OpenGL)"
6208 elif [ "$CFG_OPENGL" = "es2" ]; then
6209 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6211 echo "OpenGL support ......... no"
6214 if [ "$CFG_OPENVG" ]; then
6215 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6216 echo "OpenVG support ......... ShivaVG"
6218 echo "OpenVG support ......... $CFG_OPENVG"
6222 echo "XShape support ......... $CFG_XSHAPE"
6223 echo "XVideo support ......... $CFG_XVIDEO"
6224 echo "XSync support .......... $CFG_XSYNC"
6225 echo "Xinerama support ....... $CFG_XINERAMA"
6226 echo "Xcursor support ........ $CFG_XCURSOR"
6227 echo "Xfixes support ......... $CFG_XFIXES"
6228 echo "Xrandr support ......... $CFG_XRANDR"
6229 echo "Xi support ............. $CFG_XINPUT"
6230 echo "Xi2 support ............ $CFG_XINPUT2"
6231 echo "MIT-SHM support ........ $CFG_MITSHM"
6232 echo "FontConfig support ..... $CFG_FONTCONFIG"
6233 echo "XKB Support ............ $CFG_XKB"
6234 echo "immodule support ....... $CFG_IM"
6235 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6237 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6238 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6239 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6240 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6241 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6242 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6243 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6244 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6245 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6248 if [ "$CFG_OPENSSL" = "yes" ]; then
6249 OPENSSL_LINKAGE="(run-time)"
6250 elif [ "$CFG_OPENSSL" = "linked" ]; then
6251 OPENSSL_LINKAGE="(linked)"
6253 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6254 echo "Alsa support ........... $CFG_ALSA"
6255 if [ "$BUILD_ON_MAC" = "yes" ]; then
6256 echo "CoreWlan support ....... $CFG_COREWLAN"
6258 echo "libICU support ......... $CFG_ICU"
6259 echo "PCRE support ........... $CFG_PCRE"
6260 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6261 echo "Xcb support ............ limited (old version)"
6263 echo "Xcb support ............ $CFG_XCB"
6265 echo "Xrender support ........ $CFG_XRENDER"
6266 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6267 echo "XInput2 support ........ $CFG_XINPUT2"
6269 echo "EGLFS support .......... $CFG_EGLFS"
6270 echo "DirectFB support ....... $CFG_DIRECTFB"
6271 echo "LinuxFB support ........ $CFG_LINUXFB"
6272 echo "KMS support ............ $CFG_KMS"
6275 # complain about not being able to use dynamic plugins if we are using a static build
6276 if [ "$CFG_SHARED" = "no" ]; then
6278 echo "WARNING: Using static linking will disable the use of dynamically"
6279 echo "loaded plugins. Make sure to import all needed static plugins,"
6280 echo "or compile needed modules into the library."
6283 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6285 echo "NOTE: When linking against OpenSSL, you can override the default"
6286 echo "library names through OPENSSL_LIBS."
6288 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6292 exec 1>&3 3>&- # restore stdout
6293 cat $outpath/config.summary # display config feedback to user
6295 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6297 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6298 echo "if you want a pure debug build."
6303 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6308 #-------------------------------------------------------------------------------
6309 # build makefiles based on the configuration
6310 #-------------------------------------------------------------------------------
6312 if [ "$CFG_PROCESS" != "no" ]; then
6314 if [ "$CFG_PROCESS" = "full" ]; then
6315 echo "Creating makefiles. Please wait..."
6316 "$outpath/bin/qmake" -r "$relpath"
6319 "$outpath/bin/qmake" "$relpath"
6322 if [ "$OPT_FAST" = "yes" ]; then
6324 for part in $CFG_BUILD_PARTS; do
6326 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6329 if [ "x$PART_ROOTS" != "x" ]; then
6331 echo "Creating stub makefiles. Please wait..."
6332 QMAKE="$outpath/bin/qmake"
6333 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6334 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6336 test -f "$outpath/$d/Makefile" && continue
6337 echo " for $relpath/$p"
6339 mkdir -p "$outpath/$d" || exit
6340 cat > "$outpath/$d/Makefile" <<EOF || exit
6341 # $outpath/$d/Makefile: generated by configure
6343 # WARNING: This makefile will be replaced with a real makefile.
6344 # All changes made to this file will be lost.
6349 all clean install qmake first Makefile: FORCE
6350 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6360 #-------------------------------------------------------------------------------
6361 # check for platforms that we don't yet know about
6362 #-------------------------------------------------------------------------------
6363 if [ "$CFG_ARCH" = "unknown" ]; then
6366 NOTICE: configure was unable to determine the architecture
6367 for the $XQMAKESPEC target.
6369 Qt will not use a specialized implementation for any atomic
6370 operations. Instead a generic implemention based on either GCC
6371 intrinsics or C++11 std::atomic<T> will be used (when
6372 available). The generic implementations are generally as fast
6373 as and always as safe as a specialized implementation.
6375 If no generic implementation is available, Qt will use a
6376 fallback UNIX implementation which uses a single
6377 pthread_mutex_t to protect all atomic operations. This
6378 implementation is the slow (but safe) fallback implementation
6379 for architectures Qt does not yet support.
6383 #-------------------------------------------------------------------------------
6384 # check if the user passed the -no-zlib option, which is no longer supported
6385 #-------------------------------------------------------------------------------
6386 if [ -n "$ZLIB_FORCED" ]; then
6387 which_zlib="supplied"
6388 if [ "$CFG_ZLIB" = "system" ]; then
6394 NOTICE: The -no-zlib option was supplied but is no longer
6397 Qt now requires zlib support in all builds, so the -no-zlib
6398 option was ignored. Qt will be built using the $which_zlib
6403 #-------------------------------------------------------------------------------
6404 # check if the user passed the obsoleted -wayland or -no-wayland flag
6405 #-------------------------------------------------------------------------------
6406 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6409 NOTICE: The -wayland and -no-wayland flags are now obsolete
6411 All configuring of QtWayland plugin and QtCompositor happens in the module
6415 #-------------------------------------------------------------------------------
6416 # check if the user passed the obsoleted -arch or -host-arch options
6417 #-------------------------------------------------------------------------------
6418 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6421 NOTICE: The -arch and -host-arch options are obsolete.
6423 Qt now detects the target and host architectures based on compiler
6424 output. Qt will be built using $CFG_ARCH for the target architecture
6425 and $CFG_HOST_ARCH for the host architecture (note that these two
6426 will be the same unless you are cross-compiling).
6430 #-------------------------------------------------------------------------------
6431 # finally save the executed command to another script
6432 #-------------------------------------------------------------------------------
6433 if [ `basename $0` != "config.status" ]; then
6434 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6436 # add the system variables
6437 for varname in $SYSTEM_VARIABLES; do
6439 'if [ -n "\$'${varname}'" ]; then
6440 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6445 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6447 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6448 echo "#!/bin/sh" > "$outpath/config.status"
6449 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6450 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6451 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6452 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6453 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6454 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6455 echo "else" >> "$outpath/config.status"
6456 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6457 echo "fi" >> "$outpath/config.status"
6458 chmod +x "$outpath/config.status"
6461 if [ -n "$RPATH_MESSAGE" ]; then
6463 echo "$RPATH_MESSAGE"
6466 MAKE=`basename "$MAKE"`
6468 echo Qt is now configured for building. Just run \'$MAKE\'.
6469 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6470 echo Once everything is built, Qt is installed.
6471 echo You should not run \'$MAKE install\'.
6473 echo Once everything is built, you must run \'$MAKE install\'.
6474 echo Qt will be installed into $QT_INSTALL_PREFIX
6477 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.