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++*)
1367 CFG_REDUCE_EXPORTS=no
1372 XPLATFORM=`resolveDeviceMkspec $VAL`
1373 [ "$XPLATFORM" = "undefined" ] && exit 101
1376 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1377 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1378 DeviceVar set $DEV_VAR $DEV_VAL
1381 QT_QPA_DEFAULT_PLATFORM="$VAL"
1384 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1385 CFG_DEBUG_RELEASE="$VAL"
1391 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1392 CFG_RELEASE_QMAKE="$VAL"
1398 if [ "$VAL" = "yes" ]; then
1400 elif [ "$VAL" = "no" ]; then
1407 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1408 CFG_PREFIX_INSTALL="$VAL"
1417 CFG_FORCEDEBUGINFO="$VAL"
1419 developer-build|commercial|opensource)
1420 # These switches have been dealt with already
1423 if [ "$VAL" = "yes" ]; then
1425 elif [ "$VAL" = "no" ]; then
1432 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1433 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1439 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1440 if [ "$VAL" = "no" ]; then
1441 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1442 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1443 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1449 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1456 if [ "$VAL" = "no" ]; then
1463 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1471 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1478 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1485 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1492 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1499 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1506 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1513 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1520 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1521 CFG_PRECOMPILE="$VAL"
1526 separate-debug-info)
1527 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1528 CFG_SEPARATE_DEBUG_INFO="$VAL"
1529 elif [ "$VAL" = "nocopy" ] ; then
1530 CFG_SEPARATE_DEBUG_INFO="yes"
1531 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1537 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1538 CFG_REDUCE_EXPORTS="$VAL"
1544 if [ "$VAL" = "no" ]; then
1551 if [ "$VAL" = "no" ]; then
1558 if [ "$VAL" = "no" ]; then
1565 if [ "$VAL" = "no" ]; then
1572 if [ "$VAL" = "no" ]; then
1579 if [ "$VAL" = "no" ]; then
1586 if [ "$VAL" = "no" ]; then
1596 if [ "$VAL" = "no" ]; then
1603 if [ "$VAL" = "no" ]; then
1610 if [ "$VAL" = "no" ]; then
1611 CFG_MIPS_DSPR2="$VAL"
1617 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1618 CFG_REDUCE_RELOCATIONS="$VAL"
1624 [ "$VAL" = "qt" ] && VAL=yes
1625 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1630 # No longer supported:
1631 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1634 if [ "$VAL" = "system" ]; then
1641 [ "$VAL" = "yes" ] && VAL=qt
1642 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1649 [ "$VAL" = "yes" ] && VAL=qt
1650 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1657 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1664 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1671 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1678 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1685 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1692 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1693 CFG_FONTCONFIG="$VAL"
1699 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1706 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1713 CFG_OBSOLETE_WAYLAND=yes
1716 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1723 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1730 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1737 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1744 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1751 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1758 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1765 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1772 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1779 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1780 CFG_GSTREAMER="$VAL"
1786 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1787 CFG_QGTKSTYLE="$VAL"
1793 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1796 if [ "$VAL" = "no" ]; then
1804 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1806 elif [ "$VAL" = "no" ]; then
1813 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1814 QPA_PLATFORM_GUARD="$VAL"
1820 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1822 elif [ "$VAL" = "runtime" ]; then
1829 if [ "$VAL" = "yes" ]; then
1836 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1843 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1844 CFG_LARGEFILE="$VAL"
1850 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1857 if [ "$VAL" = "yes" ]; then
1858 CFG_OPENSSL="linked"
1864 if [ "$VAL" = "yes" ]; then
1867 if [ "$VAL" = "no" ]; then
1875 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1876 CFG_JAVASCRIPTCORE_JIT="$VAL"
1882 if [ "$VAL" = "yes" ]; then
1883 OPT_CONFIRM_LICENSE="$VAL"
1889 if [ "$VAL" = "yes" ]; then
1895 sql-*|imageformat-*)
1896 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1897 # if autoconf style options were used, $VAL can be "yes" or "no"
1898 [ "$VAL" = "yes" ] && VAL=qt
1899 # now $VAL should be "no", "qt", or "plugin"... double-check
1900 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1903 # now $VAL is "no", "qt", or "plugin"
1905 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1906 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1908 # Grab the available values
1911 avail="$CFG_SQL_AVAILABLE"
1914 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1915 if [ "$OPT" != "plugin" ]; then
1916 # png is always built in
1922 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1926 # Check that that user's value is available.
1929 if [ "$VAL" = "$d" ]; then
1934 [ "$found" = yes ] || ERROR=yes
1936 if [ "$VAR" = "sql" ]; then
1937 # set the CFG_SQL_driver
1938 eval "CFG_SQL_$VAL=\$OPT"
1940 elif [ "$VAR" = "imageformat" ]; then
1941 [ "$OPT" = "qt" ] && OPT=yes
1942 VAL="`echo $VAL |tr a-z A-Z`"
1943 eval "CFG_$VAL=$OPT"
1947 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1948 if [ "$OPT" = "plugin" ]; then
1951 QMakeVar add "${VAR}s" "${VAL}"
1952 elif [ "$OPT" = "no" ]; then
1953 PLUG_VAR="${VAR}-plugin"
1955 QMakeVar del "${IN_VAR}s" "$VAL"
1956 QMakeVar del "${PLUG_VAR}s" "$VAL"
1958 if [ "$ERROR" = "yes" ]; then
1959 echo "$CURRENT_OPT: unknown argument"
1964 if [ "$VAL" = "yes" ]; then
1965 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1966 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1970 elif [ "$VAL" = "no" ]; then
1971 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1972 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1981 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1988 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1995 DEFINES="$DEFINES \"$VAL\""
1996 D_FLAGS="$D_FLAGS -D\"$VAL\""
1999 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2002 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2005 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2008 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2011 if [ "$BUILD_ON_MAC" = "yes" ]; then
2012 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2013 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2019 if [ "$BUILD_ON_MAC" = "yes" ]; then
2020 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2026 W_FLAGS="$W_FLAGS \"${VAL}\""
2041 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2042 CFG_AUDIO_BACKEND="$VAL"
2048 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2055 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2056 CFG_FORCE_ASSERTS="$VAL"
2062 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2069 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2079 if [ "$UNKNOWN_OPT" = "yes" ]; then
2080 echo "${CURRENT_OPT}: invalid command-line switch"
2086 # update QT_CONFIG to show our current predefined configuration
2087 case "$CFG_QCONFIG" in
2088 minimal|small|medium|large|full)
2089 # these are a sequence of increasing functionality
2090 for c in minimal small medium large full; do
2091 QT_CONFIG="$QT_CONFIG $c-config"
2092 [ "$CFG_QCONFIG" = $c ] && break
2096 # not known to be sufficient for anything
2097 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2098 echo >&2 "Error: configuration file not found:"
2099 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2101 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2106 #-------------------------------------------------------------------------------
2107 # build tree initialization
2108 #-------------------------------------------------------------------------------
2110 # where to find which..
2111 unixtests="$relpath/config.tests/unix"
2112 mactests="$relpath/config.tests/mac"
2113 WHICH="$unixtests/which.test"
2115 PERL=`$WHICH perl 2>/dev/null`
2117 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2119 for e in gawk nawk awk; do
2120 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2127 PERL="/usr/bin/perl"
2128 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2132 ### skip this if the user just needs help...
2133 if [ "$OPT_HELP" != "yes" ]; then
2135 # is this a shadow build?
2136 if [ "$OPT_SHADOW" = "maybe" ]; then
2138 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2139 if [ -h "$outpath" ]; then
2140 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2146 if [ "$OPT_SHADOW" = "yes" ]; then
2147 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2148 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2149 echo >&2 "Cannot proceed."
2152 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2155 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2157 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2158 echo "Qt can be built in release mode with separate debug information, so"
2159 echo "-debug-and-release is not necessary anymore"
2163 if [ "$CFG_SILENT" = "yes" ]; then
2164 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2167 # if the source tree is different from the build tree,
2168 # symlink or copy part of the sources
2169 if [ "$OPT_SHADOW" = "yes" ]; then
2170 echo "Preparing build tree..."
2172 if [ -z "$PERL" ]; then
2174 echo "You need perl in your PATH to make a shadow build."
2175 echo "Cannot proceed."
2179 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2181 # make a syncqt script that can be used in the shadow
2182 rm -f "$outpath/bin/syncqt"
2183 if [ -x "$relpath/bin/syncqt" ]; then
2184 mkdir -p "$outpath/bin"
2185 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2186 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2187 chmod 755 "$outpath/bin/syncqt"
2190 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2191 rm -f "$outpath/bin/$i"
2192 if [ -x "$relpath/bin/$i" ]; then
2193 mkdir -p "$outpath/bin"
2194 echo "#!/bin/sh" >"$outpath/bin/$i"
2195 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2196 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2197 chmod 755 "$outpath/bin/$i"
2201 # save a pre-existing mkspecs/modules dir
2202 test -d "$outpath/mkspecs/modules" && \
2203 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2204 # ditto for mkspecs/modules-inst
2205 test -d "$outpath/mkspecs/modules-inst" && \
2206 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2208 # symlink the mkspecs directory
2209 mkdir -p "$outpath/mkspecs"
2210 rm -rf "$outpath"/mkspecs/*
2211 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2212 rm -f "$outpath/mkspecs/default"
2216 rm -rf "$outpath/mkspecs/$1"
2217 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2218 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2221 # Special case for mkspecs/features directory.
2222 # To be able to place .prf files into a shadow build directory,
2223 # we're creating links for files only. The directory structure is reproduced.
2224 ShadowMkspecs features
2226 # The modules dir is special, too.
2227 if test -d "$outpath/mkspecs-modules"; then
2228 rm -rf "$outpath/mkspecs/modules"
2229 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2231 ShadowMkspecs modules
2234 # The modules-inst dir is not quite as special, but still.
2235 if test -d "$outpath/mkspecs-modules-inst"; then
2236 rm -rf "$outpath/mkspecs/modules-inst"
2237 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2240 # symlink the doc directory
2241 rm -rf "$outpath/doc"
2242 ln -s "$relpath/doc" "$outpath/doc"
2245 # symlink fonts to be able to run application from build directory
2246 if [ ! -d "${outpath}/lib/fonts" ]; then
2247 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2248 mkdir -p "${outpath}/lib"
2249 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2253 if [ "$OPT_FAST" = "auto" ]; then
2254 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2261 # find a make command
2262 if [ -z "$MAKE" ]; then
2264 for mk in gmake make; do
2265 if "$WHICH" $mk >/dev/null 2>&1; then
2270 if [ -z "$MAKE" ]; then
2271 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2272 echo >&2 "Cannot proceed."
2275 # export MAKE, we need it later in the config.tests
2281 #-------------------------------------------------------------------------------
2282 # auto-detect all that hasn't been specified in the arguments
2283 #-------------------------------------------------------------------------------
2285 if [ -z "$PLATFORM" ]; then
2287 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2289 OSX_VERSION=`uname -r | cut -d. -f1`
2290 # Select compiler. Use g++ unless we find a usable Clang version
2292 if [ "$OSX_VERSION" -ge 12 ]; then
2293 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2295 elif [ "$OSX_VERSION" -eq 11 ]; then
2296 # We're on Lion. Check if we have a supported Clang version
2297 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2300 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2307 #PLATFORM=aix-g++-64
2309 #PLATFORM=aix-xlc-64
2311 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2321 # PLATFORM=dynix-g++
2327 PLATFORM=freebsd-g++
2329 - Also available for FreeBSD: freebsd-icc
2333 PLATFORM=openbsd-g++
2344 #PLATFORM=irix-cc-64
2346 - Also available for IRIX: irix-g++ irix-cc-64
2350 case "$UNAME_MACHINE" in
2352 #PLATFORM=hpuxi-acc-32
2353 PLATFORM=hpuxi-acc-64
2355 - Also available for HP-UXi: hpuxi-acc-32
2361 #PLATFORM=hpux-acc-64
2363 #PLATFORM=hpux-acc-o64
2365 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2374 - Also available for Tru64: tru64-g++
2378 case "$UNAME_MACHINE" in
2380 PLATFORM=linux-g++-64
2387 - Also available for Linux: linux-kcc linux-icc linux-cxx
2391 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2392 PLATFORM="solaris-g++"
2394 #PLATFORM=solaris-g++
2396 #PLATFORM=solaris-cc64
2399 - Also available for Solaris: solaris-g++ solaris-cc-64
2402 ReliantUNIX-*:*|SINIX-*:*)
2403 PLATFORM=reliant-cds
2404 #PLATFORM=reliant-cds-64
2406 - Also available for Reliant UNIX: reliant-cds-64
2416 #PLATFORM=unixware-g++
2417 PLATFORM=unixware-cc
2419 - Also available for OpenUNIX: unixware-g++
2423 #PLATFORM=unixware-g++
2424 PLATFORM=unixware-cc
2426 - Also available for UnixWare: unixware-g++
2433 - Also available for SCO OpenServer: sco-g++
2437 PLATFORM=unixware-g++
2440 PLATFORM=unsupported/qnx-g++
2443 if [ "$OPT_HELP" != "yes" ]; then
2445 echo " The build script does not currently recognize all" >&2
2446 echo " platforms supported by Qt." >&2
2447 echo " Rerun this script with a -platform option listed to" >&2
2448 echo " set the system/compiler combination you use." >&2
2455 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2457 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2458 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2459 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2461 if [ -d "$PLATFORM" ]; then
2462 QMAKESPEC="$PLATFORM"
2464 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2466 if [ -d "$XPLATFORM" ]; then
2467 XQMAKESPEC="$XPLATFORM"
2469 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2471 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2472 QT_CROSS_COMPILE=yes
2473 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2474 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2477 if [ "$BUILD_ON_MAC" = "yes" ]; then
2478 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2480 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2481 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2482 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2483 echo " built with 'macx-g++'" >&2
2489 # check specified platforms are supported
2490 if [ '!' -d "$QMAKESPEC" ]; then
2492 echo " The specified system/compiler is not supported:"
2496 echo " Please see the README file for a complete list."
2500 if [ '!' -d "$XQMAKESPEC" ]; then
2502 echo " The specified system/compiler is not supported:"
2506 echo " Please see the README file for a complete list."
2510 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2512 echo " The specified system/compiler port is not complete:"
2514 echo " $XQMAKESPEC/qplatformdefs.h"
2516 echo " Please contact qt-info@nokia.com."
2521 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2522 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2523 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2524 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2525 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2529 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2530 case `basename "$XPLATFORM"` in
2533 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2535 echo "Please contact qt-info@nokia.com to upgrade your license to"
2536 echo "include this platform, or install the Qt Open Source Edition"
2537 echo "if you intend to develop free software."
2543 #-------------------------------------------------------------------------------
2544 # tests that don't need qmake (must be run before displaying help)
2545 #-------------------------------------------------------------------------------
2547 # detect build style
2548 if [ "$CFG_DEBUG" = "auto" ]; then
2549 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2550 CFG_DEBUG_RELEASE=yes
2552 elif [ "$CFG_DEV" = "yes" ]; then
2553 CFG_DEBUG_RELEASE=no
2556 CFG_DEBUG_RELEASE=no
2560 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2561 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2564 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2565 QT_CONFIG="$QT_CONFIG force_debug_info"
2568 # pass on $CFG_SDK to the arch/configure tests.
2569 if [ -n "$CFG_SDK" ]; then
2570 MAC_SDK_FLAG="-sdk $CFG_SDK"
2575 # find the default framework value
2576 if [ "$BUILD_ON_MAC" = "yes" ]; then
2577 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2578 CFG_FRAMEWORK="$CFG_SHARED"
2579 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2581 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2589 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2591 TEST_COMPILER=$QMAKE_CONF_COMPILER
2592 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2593 if [ -z "$TEST_COMPILER" ]; then
2594 echo "ERROR: Cannot set the compiler for the configuration tests"
2598 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2601 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2602 if [ -n "$GCC_MACHINE_DUMP" ]; then
2603 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2606 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2607 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2611 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2613 # auto-detect precompiled header support
2614 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2615 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2622 # auto-detect support for separate debug info in objcopy
2623 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2624 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2625 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2626 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2627 CFG_SEPARATE_DEBUG_INFO=no
2631 # binutils on HP-UX is buggy; default to no.
2632 CFG_SEPARATE_DEBUG_INFO=no
2635 CFG_SEPARATE_DEBUG_INFO=yes
2641 # auto-detect -fvisibility support
2642 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2643 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2644 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2645 echo "-reduce-exports was requested but this compiler does not support it"
2646 echo "Re-run configure with -v for more information"
2649 CFG_REDUCE_EXPORTS=no
2651 CFG_REDUCE_EXPORTS=yes
2655 # detect the availability of the -Bsymbolic-functions linker optimization
2656 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2657 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2658 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2659 echo "-reduce-relocations was requested but this compiler does not support it"
2660 echo "Re-run configure with -v for more information"
2663 CFG_REDUCE_RELOCATIONS=no
2665 CFG_REDUCE_RELOCATIONS=yes
2669 # auto-detect GNU make support
2670 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2674 # find the default framework value
2675 if [ "$BUILD_ON_MAC" = "yes" ]; then
2676 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2677 CFG_FRAMEWORK="$CFG_SHARED"
2678 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2680 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2688 # auto-detect default include and library search paths
2689 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2690 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2691 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2692 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2693 /^End of search/ { yup=0 }
2694 yup { print substr($0, 2) }
2695 /^\#include </ { yup=1 }
2697 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2699 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2702 #setup the build parts
2703 if [ -z "$CFG_BUILD_PARTS" ]; then
2704 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2706 # build tests by default, if a developer build
2707 if [ "$CFG_DEV" = "yes" ]; then
2708 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2711 # don't build tools by default when cross-compiling
2712 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2713 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2716 for nobuild in $CFG_NOBUILD_PARTS; do
2717 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2719 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2721 # echo "WARNING: libs is a required part of the build."
2723 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2726 #-------------------------------------------------------------------------------
2727 # post process QT_INSTALL_* variables
2728 #-------------------------------------------------------------------------------
2730 if [ -z "$QT_INSTALL_PREFIX" ]; then
2731 if [ "$CFG_DEV" = "yes" ]; then
2732 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2734 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2737 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2739 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2740 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2741 if [ "$BUILD_ON_MAC" = "yes" ]; then
2742 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2745 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2748 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2750 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2751 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2752 if [ "$BUILD_ON_MAC" = "yes" ]; then
2753 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2758 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2761 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2763 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2764 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2765 if [ "$BUILD_ON_MAC" = "yes" ]; then
2766 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2767 QT_INSTALL_LIBS="/Library/Frameworks"
2771 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2773 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2775 if [ -z "$QT_INSTALL_BINS" ]; then #default
2776 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2777 if [ "$BUILD_ON_MAC" = "yes" ]; then
2778 QT_INSTALL_BINS="/Developer/Applications/Qt"
2781 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2783 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2785 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2786 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2787 if [ "$BUILD_ON_MAC" = "yes" ]; then
2788 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2791 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2793 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2795 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2796 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2797 if [ "$BUILD_ON_MAC" = "yes" ]; then
2798 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2801 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2803 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2805 if [ -z "$QT_INSTALL_DATA" ]; then #default
2806 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2808 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2810 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2811 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2813 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2815 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2816 if [ "$BUILD_ON_MAC" = "yes" ]; then
2817 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2819 QT_INSTALL_SETTINGS=/etc/xdg
2822 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2824 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2825 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2826 if [ "$BUILD_ON_MAC" = "yes" ]; then
2827 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2830 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2832 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2835 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2836 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2837 if [ "$BUILD_ON_MAC" = "yes" ]; then
2838 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2841 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2843 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2845 #------- host paths --------
2847 if [ -z "$QT_HOST_PREFIX" ]; then
2848 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2851 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2855 if [ -z "$QT_HOST_BINS" ]; then #default
2857 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2858 if [ "$BUILD_ON_MAC" = "yes" ]; then
2859 QT_HOST_BINS="/Developer/Applications/Qt"
2862 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2864 QT_HOST_BINS="$QT_INSTALL_BINS"
2867 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2869 if [ -z "$QT_HOST_DATA" ]; then #default
2871 QT_HOST_DATA="$QT_HOST_PREFIX"
2873 QT_HOST_DATA="$QT_INSTALL_DATA"
2876 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2879 #-------------------------------------------------------------------------------
2880 # help - interactive parts of the script _after_ this section please
2881 #-------------------------------------------------------------------------------
2883 # next, emit a usage message if something failed.
2884 if [ "$OPT_HELP" = "yes" ]; then
2885 [ "x$ERROR" = "xyes" ] && echo
2886 if [ "$CFG_NIS" = "no" ]; then
2893 if [ "$CFG_CUPS" = "no" ]; then
2900 if [ "$CFG_ICONV" = "no" ]; then
2907 if [ "$CFG_LARGEFILE" = "no" ]; then
2914 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2922 if [ "$CFG_XCB" = "no" ]; then
2930 if [ "$CFG_EGLFS" = "no" ]; then
2938 if [ "$CFG_DIRECTFB" = "no" ]; then
2946 if [ "$CFG_LINUXFB" = "no" ]; then
2954 if [ "$CFG_KMS" = "no" ]; then
2962 if [ "$CFG_XINPUT2" = "no" ]; then
2970 if [ "$CFG_DBUS" = "no" ]; then
2978 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2986 if [ "$CFG_GLIB" = "no" ]; then
2995 Usage: $relconf [options]
2997 Installation options:
2999 These are optional, but you may specify install directories.
3001 -prefix <dir> ...... This will install everything relative to <dir>
3002 (default $QT_INSTALL_PREFIX)
3004 -hostprefix [dir] .. Tools and libraries needed when developing
3005 applications are installed in [dir]. If [dir] is
3006 not given, the current build directory will be used.
3009 * -prefix-install .... Force a sandboxed "local" installation of
3010 Qt. This will install into
3011 $QT_INSTALL_PREFIX, if this option is
3012 disabled then some platforms will attempt a
3013 "system" install by placing default values
3014 in a system location other than PREFIX.
3016 You may use these to separate different parts of the install:
3018 -bindir <dir> ......... Executables will be installed to <dir>
3019 (default PREFIX/bin)
3020 -libdir <dir> ......... Libraries will be installed to <dir>
3021 (default PREFIX/lib)
3022 -docdir <dir> ......... Documentation will be installed to <dir>
3023 (default PREFIX/doc)
3024 -headerdir <dir> ...... Headers will be installed to <dir>
3025 (default PREFIX/include)
3026 -plugindir <dir> ...... Plugins will be installed to <dir>
3027 (default PREFIX/plugins)
3028 -importdir <dir> ...... Imports for QML will be installed to <dir>
3029 (default PREFIX/imports)
3030 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3032 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3033 (default PREFIX/translations)
3034 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3035 (default PREFIX/etc/settings)
3036 -examplesdir <dir> .... Examples will be installed to <dir>
3037 (default PREFIX/examples)
3038 -testsdir <dir> ....... Tests will be installed to <dir>
3039 (default PREFIX/tests)
3041 -hostbindir <dir> .. Host executables will be installed to <dir>
3042 (default HOSTPREFIX/bin)
3043 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3044 (default HOSTPREFIX)
3048 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3049 that needs to be evaluated. If the evaluation succeeds, the feature is
3050 included. Here is a short explanation of each option:
3052 * -release ........... Compile and link Qt with debugging turned off.
3053 -debug ............. Compile and link Qt with debugging turned on.
3054 -debug-and-release . Compile and link two versions of Qt, with and without
3055 debugging turned on (Mac only).
3057 -force-debug-info .. Create symbol files for release builds.
3059 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3061 -opensource ........ Compile and link the Open-Source Edition of Qt.
3062 -commercial ........ Compile and link the Commercial Edition of Qt.
3064 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3065 + -c++11 ............. Compile Qt with C++11 support enabled.
3067 * -shared ............ Create and use shared Qt libraries.
3068 -static ............ Create and use static Qt libraries.
3070 * -process ........... Generate only a top-level Makefile.
3071 -fully-process ..... Generate Makefiles for the entire Qt tree.
3072 -dont-process ...... Do not generate any Makefiles.
3074 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3076 -fast .............. Configure Qt quickly by generating Makefiles only for
3077 library and subdirectory targets. All other Makefiles
3078 are created as wrappers, which will in turn run qmake.
3080 -no-largefile ...... Disables large file support.
3081 + -largefile ......... Enables Qt to access files larger than 4 GB.
3083 -no-accessibility .. Do not compile Accessibility support.
3084 + -accessibility ..... Compile Accessibility support.
3086 -no-sql-<driver> ... Disable SQL <driver> entirely.
3087 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3089 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3092 Possible values for <driver>:
3093 [ $CFG_SQL_AVAILABLE ]
3095 -system-sqlite ..... Use sqlite from the operating system.
3097 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3098 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3100 -no-qml-debug ...... Do not build the in-process QML debugging support.
3101 + -qml-debug ......... Build the QML debugging support.
3103 -platform target ... The operating system and compiler you are building
3106 See the README file for a list of supported
3107 operating systems and compilers.
3109 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3110 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3111 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3112 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3113 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3114 -no-avx ............ Do not compile with use of AVX instructions.
3115 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3116 -no-neon ........... Do not compile with use of NEON instructions.
3117 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3118 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3120 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3121 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3123 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3125 -D <string> ........ Add an explicit define to the preprocessor.
3126 -I <string> ........ Add an explicit include path.
3127 -L <string> ........ Add an explicit library path.
3129 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3130 configure determines whether to use pkg-config or not with
3131 some heuristics such as checking the environment variables.
3132 -no-pkg-config ..... Disable use of pkg-config.
3133 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3134 detection heuristic).
3136 -help, -h .......... Display this information.
3138 Third Party Libraries:
3140 -qt-zlib ........... Use the zlib bundled with Qt.
3141 + -system-zlib ....... Use zlib from the operating system.
3142 See http://www.gzip.org/zlib
3144 -no-gif ............ Do not compile GIF reading support.
3146 -no-libpng ......... Do not compile PNG support.
3147 -qt-libpng ......... Use the libpng bundled with Qt.
3148 + -system-libpng ..... Use libpng from the operating system.
3149 See http://www.libpng.org/pub/png
3151 -no-libjpeg ........ Do not compile JPEG support.
3152 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3153 + -system-libjpeg .... Use libjpeg from the operating system.
3154 See http://www.ijg.org
3156 -no-openssl ........ Do not compile support for OpenSSL.
3157 + -openssl ........... Enable run-time OpenSSL support.
3158 -openssl-linked .... Enabled linked OpenSSL support.
3160 -qt-pcre ........... Use the PCRE library bundled with Qt.
3161 + -system-pcre ....... Use the PCRE library from the operating system.
3165 -make <part> ....... Add part to the list of parts to be built at make time.
3166 ($QT_DEFAULT_BUILD_PARTS)
3167 -nomake <part> ..... Exclude part from the list of parts to be built.
3169 -R <string> ........ Add an explicit runtime library path to the Qt
3171 -l <string> ........ Add an explicit library.
3173 -no-rpath .......... Do not use the library install path as a runtime
3175 + -rpath ............. Link Qt libraries and executables using the library
3176 install path as a runtime library path. Equivalent
3177 to -R install_libpath
3179 -continue .......... Continue as far as possible if an error occurs.
3181 -verbose, -v ....... Print verbose information about each step of the
3184 -silent ............ Reduce the build output so that warnings and errors
3185 can be seen more easily.
3187 * -no-optimized-qmake ... Do not build qmake optimized.
3188 -optimized-qmake ...... Build qmake optimized.
3190 -no-gui ............ Don't build the Qt GUI library
3192 $NSN -no-nis ............ Do not compile NIS support.
3193 $NSY -nis ............... Compile NIS support.
3195 $CUN -no-cups ........... Do not compile CUPS support.
3196 $CUY -cups .............. Compile CUPS support.
3197 Requires cups/cups.h and libcups.so.2.
3199 $CIN -no-iconv .......... Do not compile support for iconv(3).
3200 $CIY -iconv ............. Compile support for iconv(3).
3202 -no-icu ............ Do not compile support for ICU libraries.
3203 + -icu ............... Compile support for ICU libraries.
3205 $PHN -no-pch ............ Do not use precompiled header support.
3206 $PHY -pch ............... Use precompiled header support.
3208 $DBN -no-dbus ........... Do not compile the QtDBus module.
3209 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3210 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3212 -reduce-relocations ..... Reduce relocations in the libraries through extra
3213 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3214 experimental; needs GNU ld >= 2.18).
3216 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3218 -device <name> ............... Cross-compile for device <name> (experimental)
3219 -device-option <key=value> ... Add device specific options for the device mkspec
3222 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3223 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3225 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3226 $XCBY -xcb ............... Compile Xcb support.
3228 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3229 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3231 $DFBN -no-directfb ....... Do not compile DirectFB support.
3232 $DFBY -directfb .......... Compile DirectFB support.
3234 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3235 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3237 $KMSN -no-kms ............ Do not compile KMS support.
3238 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3240 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3242 -xplatform target ... The target platform when cross-compiling.
3244 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3245 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3247 -no-feature-<feature> Do not compile in <feature>.
3248 -feature-<feature> .. Compile in <feature>. The available features
3249 are described in src/corelib/global/qfeatures.txt
3251 -no-freetype ........ Do not compile in Freetype2 support.
3252 -qt-freetype ........ Use the libfreetype bundled with Qt.
3253 * -system-freetype .... Use libfreetype from the operating system.
3254 See http://www.freetype.org/
3256 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3257 default ($CFG_QCONFIG).
3259 -no-opengl .......... Do not support OpenGL.
3260 -opengl <api> ....... Enable OpenGL support
3261 With no parameter, this will attempt to auto-detect
3262 OpenGL ES 2, or regular desktop OpenGL.
3263 Use es2 for <api> to override auto-detection.
3265 $GBN -no-glib ........... Do not compile Glib support.
3266 $GBY -glib .............. Compile Glib support.
3269 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3272 $X2N -no-xinput2......... Do not compile XInput2 support.
3273 $X2Y -xinput2............ Compile XInput2 support.
3279 if [ "$BUILD_ON_MAC" = "yes" ]; then
3284 -Fstring ........... Add an explicit framework path.
3285 -fw string ......... Add an explicit framework.
3287 * -framework ......... Build Qt as a series of frameworks and
3288 link tools against those frameworks.
3289 -no-framework ...... Do not build Qt as a series of frameworks.
3291 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3292 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3294 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3295 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3296 QT_ENABLE_HARFBUZZ environment variable.
3301 [ "x$ERROR" = "xyes" ] && exit 1
3306 # -----------------------------------------------------------------------------
3307 # LICENSING, INTERACTIVE PART
3308 # -----------------------------------------------------------------------------
3311 echo "This is the Qt ${EditionString} Edition."
3314 if [ "$Edition" = "OpenSource" ]; then
3316 echo "You are licensed to use this software under the terms of"
3317 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3318 if [ -f "$relpath/LICENSE.GPL3" ]; then
3319 echo "You are also licensed to use this software under the terms of"
3320 echo "the GNU General Public License (GPL) versions 3."
3326 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3327 echo "You have already accepted the terms of the $LicenseType license."
3330 if [ -f "$relpath/LICENSE.GPL3" ]; then
3331 echo "Type '3' to view the GNU General Public License version 3."
3333 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3334 echo "Type 'yes' to accept this license offer."
3335 echo "Type 'no' to decline this license offer."
3337 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3341 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3343 elif [ "$acceptance" = "no" ]; then
3344 echo "You are not licensed to use this software."
3347 elif [ "$acceptance" = "3" ]; then
3348 more "$relpath/LICENSE.GPL3"
3349 elif [ "$acceptance" = "L" ]; then
3350 more "$relpath/LICENSE.LGPL"
3353 elif [ "$Edition" = "Preview" ]; then
3354 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3357 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3358 echo "You have already accepted the terms of the $LicenseType license."
3361 echo "You are licensed to use this software under the terms of"
3362 echo "the $TheLicense"
3364 echo "Type '?' to read the Preview License."
3365 echo "Type 'yes' to accept this license offer."
3366 echo "Type 'no' to decline this license offer."
3368 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3372 if [ "$acceptance" = "yes" ]; then
3374 elif [ "$acceptance" = "no" ] ;then
3375 echo "You are not licensed to use this software."
3378 elif [ "$acceptance" = "?" ]; then
3379 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3382 elif [ "$Edition" != "OpenSource" ]; then
3383 if [ -n "$ExpiryDate" ]; then
3384 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3385 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3386 Today=`date +%Y%m%d`
3387 if [ "$Today" -gt "$ExpiryDate" ]; then
3388 case "$LicenseType" in
3389 Commercial|Academic|Educational)
3391 echo "WARNING WARNING WARNING WARNING"
3393 echo " Your support and upgrade period has expired."
3395 echo " You may continue to use your last licensed release"
3396 echo " of Qt under the terms of your existing license"
3397 echo " agreement. But you are not entitled to technical"
3398 echo " support, nor are you entitled to use any more recent"
3399 echo " Qt releases."
3401 echo " Please contact qt-info@nokia.com to renew your"
3402 echo " support and upgrades for this license."
3404 echo "WARNING WARNING WARNING WARNING"
3410 echo "NOTICE NOTICE NOTICE NOTICE"
3412 echo " Your Evaluation license has expired."
3414 echo " You are no longer licensed to use this software. Please"
3415 echo " contact qt-info@nokia.com to purchase license, or install"
3416 echo " the Qt Open Source Edition if you intend to develop free"
3419 echo "NOTICE NOTICE NOTICE NOTICE"
3426 TheLicense=`head -n 1 "$outpath/LICENSE"`
3428 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3429 echo "You have already accepted the terms of the $TheLicense."
3432 echo "You are licensed to use this software under the terms of"
3433 echo "the $TheLicense."
3435 echo "Type '?' to view the $TheLicense."
3436 echo "Type 'yes' to accept this license offer."
3437 echo "Type 'no' to decline this license offer."
3439 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3443 if [ "$acceptance" = "yes" ]; then
3445 elif [ "$acceptance" = "no" ]; then
3446 echo "You are not licensed to use this software."
3449 else [ "$acceptance" = "?" ]
3450 more "$outpath/LICENSE"
3455 # this should be moved somewhere else
3458 AIX_VERSION=`uname -v`
3459 if [ "$AIX_VERSION" -lt "5" ]; then
3460 QMakeVar add QMAKE_LIBS_X11 -lbind
3467 #-------------------------------------------------------------------------------
3468 # generate qconfig.cpp
3469 #-------------------------------------------------------------------------------
3470 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3472 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3474 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3475 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3477 /* Installation date */
3478 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3480 /* Installation Info */
3481 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3482 "qt_prfxpath=$QT_INSTALL_PREFIX",
3483 "qt_docspath=$QT_INSTALL_DOCS",
3484 "qt_hdrspath=$QT_INSTALL_HEADERS",
3485 "qt_libspath=$QT_INSTALL_LIBS",
3486 "qt_binspath=$QT_INSTALL_BINS",
3487 "qt_plugpath=$QT_INSTALL_PLUGINS",
3488 "qt_impspath=$QT_INSTALL_IMPORTS",
3489 "qt_datapath=$QT_INSTALL_DATA",
3490 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3491 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3492 "qt_tstspath=$QT_INSTALL_TESTS",
3493 #ifdef QT_BUILD_QMAKE
3494 "qt_ssrtpath=$CFG_SYSROOT",
3495 "qt_hpfxpath=$QT_HOST_PREFIX",
3496 "qt_hbinpath=$QT_HOST_BINS",
3497 "qt_hdatpath=$QT_HOST_DATA",
3500 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3503 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3505 /* strlen( "qt_lcnsxxxx" ) == 12 */
3506 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3507 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3509 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3512 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3513 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3514 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3516 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3517 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3518 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3521 # -----------------------------------------------------------------------------
3522 if [ "$LicenseType" = "Evaluation" ]; then
3523 EVALKEY=qt_qevalkey=$LicenseKeyExt
3524 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3525 EVALKEY=qt_qevalkey=
3528 if [ -n "$EVALKEY" ]; then
3529 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3530 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3531 /* Evaluation license key */
3532 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3534 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3538 # -----------------------------------------------------------------------------
3540 # -----------------------------------------------------------------------------
3543 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3544 "$outpath/bin/syncqt" -minimal "$relpath" || exit 1
3547 # $1: input variable name (awk regexp)
3548 # $2: optional output variable name
3549 # $3: optional value transformation (sed command)
3550 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3551 # is where the resulting variable is written to
3552 setBootstrapVariable()
3554 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3558 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3559 echo "Creating qmake. Please wait..."
3561 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3562 rm -rf mkspecs/default mkspecs/default-host
3563 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3564 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3565 mkdir -p "$outpath/qmake" || exit
3567 for mkfile in GNUmakefile Makefile; do
3570 in_mkfile="${mkfile}.in"
3571 if [ "$mkfile" = "Makefile" ]; then
3572 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3573 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3575 in_mkfile="${mkfile}.unix"
3577 in_mkfile="$relpath/qmake/$in_mkfile"
3578 mkfile="$outpath/qmake/$mkfile"
3579 if [ -f "$mkfile" ]; then
3580 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3583 [ -f "$in_mkfile" ] || continue
3585 echo "########################################################################" > "$mkfile"
3586 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3587 echo "########################################################################" >> "$mkfile"
3590 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3591 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3592 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3594 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3595 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3598 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3599 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3600 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3601 setBootstrapVariable QMAKE_CFLAGS
3602 setBootstrapVariable QMAKE_CXXFLAGS
3603 setBootstrapVariable QMAKE_LFLAGS
3605 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3606 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3607 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3609 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3610 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3611 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3612 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3613 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3614 elif [ "$CFG_DEBUG" = "yes" ]; then
3615 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3616 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3617 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3618 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3621 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3622 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3623 for rpath in $RPATH_FLAGS; do
3624 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3627 if [ "$BUILD_ON_MAC" = "yes" ]; then
3628 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3629 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3630 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3631 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3632 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3633 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3634 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3635 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3636 if [ '!' -z "$CFG_SDK" ]; then
3637 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3638 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3639 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3640 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3641 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3644 if [ '!' -z "$D_FLAGS" ]; then
3645 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3647 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3648 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3649 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3650 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3652 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3653 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3654 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3655 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3656 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3657 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3658 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3659 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3660 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3661 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3663 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3664 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3665 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3666 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3671 (cd "$outpath/qmake"; "$MAKE") || exit 2
3674 #-------------------------------------------------------------------------------
3675 # create a qt.conf for the Qt build tree itself
3676 #-------------------------------------------------------------------------------
3678 QTCONFFILE="$outpath/bin/qt.conf"
3679 cat > "$QTCONFFILE" <<EOF
3684 #-------------------------------------------------------------------------------
3686 #-------------------------------------------------------------------------------
3687 if [ -z "$PKG_CONFIG" ]; then
3688 # See if PKG_CONFIG is set in the mkspec:
3689 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3691 if [ -z "$PKG_CONFIG" ]; then
3692 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3695 if [ "$CFG_PKGCONFIG" = "no" ]; then
3697 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3699 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3700 echo >&2 "a correctly setup pkg-config environment!"
3702 elif [ -n "$PKG_CONFIG" ]; then
3703 # found a pkg-config
3704 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3705 # when xcompiling, check environment to see if it's actually usable
3706 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3707 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3708 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3709 if [ -n "$GCC_MACHINE_DUMP" ]; then
3710 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3712 export PKG_CONFIG_LIBDIR
3713 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3714 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3715 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3716 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3717 echo >&2 "Set this variable to the directory that contains target .pc files"
3718 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3719 echo >&2 "use -force-pkg-config to override this test."
3723 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3726 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3727 if [ -n "$CFG_SYSROOT" ]; then
3728 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3729 export PKG_CONFIG_SYSROOT_DIR
3730 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3731 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3732 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3733 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3734 echo >&2 "or use -force-pkg-config to override this test."
3738 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3742 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3743 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3747 if [ -z "$PKG_CONFIG" ]; then
3748 QT_CONFIG="$QT_CONFIG no-pkg-config"
3751 #-------------------------------------------------------------------------------
3752 # write out device config before we run the test.
3753 #-------------------------------------------------------------------------------
3754 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3755 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3756 rm -f "$DEVICE_VARS_FILE"
3758 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3759 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3762 #-------------------------------------------------------------------------------
3763 # tests that need qmake
3764 #-------------------------------------------------------------------------------
3766 # parameters: path, name, extra args
3769 path=config.tests/$1
3772 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3775 #-------------------------------------------------------------------------------
3776 # determine the target and host architectures
3777 #-------------------------------------------------------------------------------
3779 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3780 OUTFILE=$outpath/arch.result
3781 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3782 if [ $? -eq 0 ]; then
3783 eval `cat "$OUTFILE"`
3786 echo "Could not determine the target architecture!"
3787 echo "Turn on verbose messaging (-v) to see the final report."
3789 rm -f "$OUTFILE" 2>/dev/null
3790 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3792 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3793 # Do the same test again, using the host compiler
3794 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3795 if [ $? -eq 0 ]; then
3796 eval `cat "$OUTFILE"`
3799 echo "Could not determine the host architecture!"
3800 echo "Turn on verbose messaging (-v) to see the final report."
3802 rm -f "$OUTFILE" 2>/dev/null
3803 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3805 # not cross compiling, host == target
3806 CFG_HOST_ARCH="$CFG_ARCH"
3807 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3811 if [ "$OPT_VERBOSE" = "yes" ]; then
3812 echo "System architecture: '$CFG_ARCH'"
3813 echo "Host architecture: '$CFG_HOST_ARCH'"
3816 #-------------------------------------------------------------------------------
3817 # functionality tests
3818 #-------------------------------------------------------------------------------
3820 # Detect C++11 support
3821 if [ "$CFG_CXX11" != "no" ]; then
3822 if compileTest unix/c++11 "C++11"; then
3824 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3825 echo "C++11 support cannot be enabled due to functionality tests!"
3826 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3827 echo " If you believe this message is in error you may use the continue"
3828 echo " switch (-continue) to $0 to continue."
3835 # detect availability of float math.h functions
3836 if compileTest unix/floatmath "floatmath"; then
3837 CFG_USE_FLOATMATH=yes
3839 CFG_USE_FLOATMATH=no
3842 # detect sse2 support
3843 if [ "${CFG_SSE2}" = "auto" ]; then
3844 if compileTest common/sse2 "sse2"; then
3851 # detect sse3 support
3852 if [ "${CFG_SSE3}" = "auto" ]; then
3853 if compileTest common/sse3 "sse3"; then
3860 # detect ssse3 support
3861 if [ "${CFG_SSSE3}" = "auto" ]; then
3862 if compileTest common/ssse3 "ssse3"; then
3869 # detect sse4.1 support
3870 if [ "${CFG_SSE4_1}" = "auto" ]; then
3871 if compileTest common/sse4_1 "sse4_1"; then
3878 # detect sse4.2 support
3879 if [ "${CFG_SSE4_2}" = "auto" ]; then
3880 if compileTest common/sse4_2 "sse4_2"; then
3887 # detect avx support
3888 if [ "${CFG_AVX}" = "auto" ]; then
3889 if compileTest common/avx "avx"; then
3890 case "$XQMAKESPEC" in
3892 # Some clang versions produce internal compiler errors compiling Qt AVX code
3893 case `$TEST_COMPILER --version` in
3894 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3896 if [ "$OPT_VERBOSE" = "yes" ]; then
3897 echo 'AVX support disabled for blacklisted clang compiler'
3914 # detect avx2 support
3915 if [ "${CFG_AVX}" = "no" ]; then
3918 if [ "${CFG_AVX2}" = "auto" ]; then
3919 if compileTest common/avx2 "avx2"; then
3926 # check iWMMXt support
3927 if [ "$CFG_IWMMXT" = "yes" ]; then
3928 compileTest unix/iwmmxt "iwmmxt"
3929 if [ $? != "0" ]; then
3930 echo "The iWMMXt functionality test failed!"
3931 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3936 # detect neon support
3937 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3938 if compileTest unix/neon "neon"; then
3943 elif [ "$CFG_ARCH" != "arm" ]; then
3947 # detect mips_dsp support
3948 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3949 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
3954 elif [ "$CFG_ARCH" != "mips" ]; then
3958 # detect mips_dspr2 support
3959 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3960 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
3965 elif [ "$CFG_ARCH" != "mips" ]; then
3969 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3972 if [ "$CFG_ZLIB" = "no" ]; then
3973 # Note: Qt no longer support builds without zlib
3974 # So we force a "no" to be "auto" here.
3975 # If you REALLY really need no zlib support, you can still disable
3976 # it by doing the following:
3977 # add "no-zlib" to mkspecs/qconfig.pri
3978 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3980 # There's no guarantee that Qt will build under those conditions
3985 if [ "$CFG_ZLIB" = "auto" ]; then
3986 if compileTest unix/zlib "zlib"; then
3993 if [ "$CFG_LARGEFILE" = "auto" ]; then
3994 #Large files should be enabled for all Linux systems
3998 if [ "$CFG_GUI" = "no" ]; then
3999 QPA_PLATFORM_GUARD=no
4002 # detect how jpeg should be built
4003 if [ "$CFG_JPEG" = "auto" ]; then
4004 if [ "$CFG_SHARED" = "yes" ]; then
4011 if [ "$CFG_LIBJPEG" = "auto" ]; then
4012 if compileTest unix/libjpeg "libjpeg"; then
4019 # detect how gif should be built
4020 if [ "$CFG_GIF" = "auto" ]; then
4021 if [ "$CFG_SHARED" = "yes" ]; then
4029 if [ "$CFG_LIBPNG" = "auto" ]; then
4030 if compileTest unix/libpng "libpng"; then
4037 if [ "$CFG_EGLFS" = "yes" ]; then
4038 if [ "$CFG_EGL" = "no" ]; then
4039 echo "The EGLFS plugin requires EGL support and cannot be built"
4042 if [ "$CFG_OPENGL" != "es2" ]; then
4043 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4050 if [ "$CFG_KMS" = "yes" ]; then
4051 if [ "$CFG_EGL" = "no" ]; then
4052 echo "The KMS plugin requires EGL support and cannot be built"
4055 if [ "$CFG_OPENGL" != "es2" ]; then
4056 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4061 # auto-detect SQL-modules support
4062 for _SQLDR in $CFG_SQL_AVAILABLE; do
4065 if [ "$CFG_SQL_mysql" != "no" ]; then
4066 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4067 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4068 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4069 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4070 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4071 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4072 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4074 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4075 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4076 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4077 echo " You need MySql 4 or higher."
4078 echo " If you believe this message is in error you may use the continue"
4079 echo " switch (-continue) to $0 to continue."
4084 QT_LFLAGS_MYSQL_R=""
4088 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4089 QMakeVar add CONFIG use_libmysqlclient_r
4090 if [ "$CFG_SQL_mysql" = "auto" ]; then
4091 CFG_SQL_mysql=plugin
4093 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4094 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4095 if [ "$CFG_SQL_mysql" = "auto" ]; then
4096 CFG_SQL_mysql=plugin
4099 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4100 echo "MySQL support cannot be enabled due to functionality tests!"
4101 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4102 echo " If you believe this message is in error you may use the continue"
4103 echo " switch (-continue) to $0 to continue."
4108 QT_LFLAGS_MYSQL_R=""
4116 if [ "$CFG_SQL_psql" != "no" ]; then
4117 # Be careful not to use native pg_config when cross building.
4118 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4119 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4120 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4122 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4123 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4124 # But, respect PSQL_LIBS if set
4125 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4126 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4127 if [ "$CFG_SQL_psql" = "auto" ]; then
4131 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4132 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4133 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4134 echo " If you believe this message is in error you may use the continue"
4135 echo " switch (-continue) to $0 to continue."
4146 if [ "$CFG_SQL_odbc" != "no" ]; then
4147 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4148 if [ "$CFG_SQL_odbc" = "auto" ]; then
4152 if compileTest unix/iodbc "iODBC"; then
4153 QT_LFLAGS_ODBC="-liodbc"
4154 if [ "$CFG_SQL_odbc" = "auto" ]; then
4158 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4159 echo "ODBC support cannot be enabled due to functionality tests!"
4160 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4161 echo " If you believe this message is in error you may use the continue"
4162 echo " switch (-continue) to $0 to continue."
4172 if [ "$CFG_SQL_oci" != "no" ]; then
4173 if compileTest unix/oci "OCI"; then
4174 if [ "$CFG_SQL_oci" = "auto" ]; then
4178 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4179 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4180 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4181 echo " If you believe this message is in error you may use the continue"
4182 echo " switch (-continue) to $0 to continue."
4191 if [ "$CFG_SQL_tds" != "no" ]; then
4192 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4193 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4194 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4195 if [ "$CFG_SQL_tds" = "auto" ]; then
4199 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4200 echo "TDS support cannot be enabled due to functionality tests!"
4201 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4202 echo " If you believe this message is in error you may use the continue"
4203 echo " switch (-continue) to $0 to continue."
4212 if [ "$CFG_SQL_db2" != "no" ]; then
4213 if compileTest unix/db2 "DB2"; then
4214 if [ "$CFG_SQL_db2" = "auto" ]; then
4218 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4219 echo "ODBC support cannot be enabled due to functionality tests!"
4220 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4221 echo " If you believe this message is in error you may use the continue"
4222 echo " switch (-continue) to $0 to continue."
4231 if [ "$CFG_SQL_ibase" != "no" ]; then
4232 if compileTest unix/ibase "InterBase"; then
4233 if [ "$CFG_SQL_ibase" = "auto" ]; then
4234 CFG_SQL_ibase=plugin
4237 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4238 echo "InterBase support cannot be enabled due to functionality tests!"
4239 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4240 echo " If you believe this message is in error you may use the continue"
4241 echo " switch (-continue) to $0 to continue."
4250 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4251 if compileTest unix/sqlite2 "SQLite2"; then
4252 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4253 CFG_SQL_sqlite2=plugin
4256 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4257 echo "SQLite2 support cannot be enabled due to functionality tests!"
4258 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4259 echo " If you believe this message is in error you may use the continue"
4260 echo " switch (-continue) to $0 to continue."
4269 if [ "$CFG_SQL_sqlite" != "no" ]; then
4270 SQLITE_AUTODETECT_FAILED="no"
4271 if [ "$CFG_SQLITE" = "system" ]; then
4272 if [ -n "$PKG_CONFIG" ]; then
4273 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4274 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4277 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4279 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4280 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4281 CFG_SQL_sqlite=plugin
4283 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4285 SQLITE_AUTODETECT_FAILED="yes"
4288 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4289 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4290 CFG_SQL_sqlite=plugin
4293 SQLITE_AUTODETECT_FAILED="yes"
4297 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4298 echo "SQLite support cannot be enabled due to functionality tests!"
4299 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4300 echo " If you believe this message is in error you may use the continue"
4301 echo " switch (-continue) to $0 to continue."
4307 if [ "$OPT_VERBOSE" = "yes" ]; then
4308 echo "unknown SQL driver: $_SQLDR"
4314 # auto-detect NIS support
4315 if [ "$CFG_NIS" != "no" ]; then
4316 if compileTest unix/nis "NIS"; then
4319 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4320 echo "NIS support cannot be enabled due to functionality tests!"
4321 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4322 echo " If you believe this message is in error you may use the continue"
4323 echo " switch (-continue) to $0 to continue."
4331 # auto-detect CUPS support
4332 if [ "$CFG_CUPS" != "no" ]; then
4333 if compileTest unix/cups "Cups"; then
4336 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4337 echo "Cups support cannot be enabled due to functionality tests!"
4338 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4339 echo " If you believe this message is in error you may use the continue"
4340 echo " switch (-continue) to $0 to continue."
4348 # auto-detect iconv(3) support
4349 if [ "$CFG_ICONV" != "no" ]; then
4350 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4352 elif compileTest unix/iconv "POSIX iconv"; then
4354 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4356 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4359 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4360 echo "Iconv support cannot be enabled due to functionality tests!"
4361 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4362 echo " If you believe this message is in error you may use the continue"
4363 echo " switch (-continue) to $0 to continue."
4371 # auto-detect libdbus-1 support
4372 if [ "$CFG_DBUS" != "no" ]; then
4373 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4374 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4375 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4377 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4378 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4379 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4380 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4382 if [ "$CFG_DBUS" = "auto" ]; then
4384 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4385 # CFG_DBUS is "yes" or "linked" here
4387 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4388 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4389 echo " If you believe this message is in error you may use the continue"
4390 echo " switch (-continue) to $0 to continue."
4396 # auto-detect Glib support
4397 if [ "$CFG_GLIB" != "no" ]; then
4398 if [ -n "$PKG_CONFIG" ]; then
4399 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4400 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4402 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4404 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4405 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4407 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4408 echo "Glib support cannot be enabled due to functionality tests!"
4409 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4410 echo " If you believe this message is in error you may use the continue"
4411 echo " switch (-continue) to $0 to continue."
4419 # auto-detect GTK style support
4420 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4421 if [ -n "$PKG_CONFIG" ]; then
4422 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4423 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4425 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4427 QT_CONFIG="$QT_CONFIG gtkstyle"
4428 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4429 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4431 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4432 echo "Gtk theme support cannot be enabled due to functionality tests!"
4433 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4434 echo " If you believe this message is in error you may use the continue"
4435 echo " switch (-continue) to $0 to continue."
4441 elif [ "$CFG_GLIB" = "no" ]; then
4446 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4447 if [ -n "$PKG_CONFIG" ]; then
4448 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4449 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4451 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4453 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4454 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4456 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4457 echo "Gstreamer support cannot be enabled due to functionality tests!"
4458 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4459 echo " If you believe this message is in error you may use the continue"
4460 echo " switch (-continue) to $0 to continue."
4466 elif [ "$CFG_GLIB" = "no" ]; then
4470 # auto-detect libicu support
4471 if [ "$CFG_ICU" != "no" ]; then
4472 if compileTest unix/icu "ICU"; then
4473 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4475 if [ "$CFG_ICU" = "auto" ]; then
4477 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4480 echo "The ICU library support cannot be enabled."
4481 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4482 echo " If you believe this message is in error you may use the continue"
4483 echo " switch (-continue) to $0 to continue."
4489 # Auto-detect PulseAudio support
4490 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4491 if [ -n "$PKG_CONFIG" ]; then
4492 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4493 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4495 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4497 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4498 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4500 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4501 echo "PulseAudio support cannot be enabled due to functionality tests!"
4502 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4503 echo " If you believe this message is in error you may use the continue"
4504 echo " switch (-continue) to $0 to continue."
4513 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4514 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4515 if [ "$CFG_GUI" = "no" ]; then
4516 if [ "$CFG_OPENGL" = "auto" ]; then
4519 if [ "$CFG_OPENGL" != "no" ]; then
4520 echo "OpenGL enabled, but GUI disabled."
4521 echo " You might need to either enable the GUI or disable OpenGL"
4525 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4526 if compileTest x11/opengl "OpenGL"; then
4528 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4531 if [ "$CFG_OPENGL" = "yes" ]; then
4532 echo "All the OpenGL functionality tests failed!"
4533 echo " You might need to modify the include and library search paths by editing"
4534 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4535 echo " ${XQMAKESPEC}."
4542 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4543 if [ "$CFG_OPENGL" = "desktop" ]; then
4544 compileTest x11/glxfbconfig "OpenGL"
4545 if [ $? != "0" ]; then
4546 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4553 elif [ "$CFG_OPENGL" = "es2" ]; then
4555 compileTest unix/opengles2 "OpenGL ES 2.x"
4556 if [ $? != "0" ]; then
4557 echo "The OpenGL ES 2.0 functionality test failed!"
4558 echo " You might need to modify the include and library search paths by editing"
4559 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4560 echo " ${XQMAKESPEC}."
4563 elif [ "$CFG_OPENGL" = "desktop" ]; then
4564 # Desktop OpenGL support
4565 compileTest x11/opengl "OpenGL"
4566 if [ $? != "0" ]; then
4567 echo "The OpenGL functionality test failed!"
4568 echo " You might need to modify the include and library search paths by editing"
4569 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4570 echo " ${XQMAKESPEC}."
4575 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4576 compileTest x11/glxfbconfig "OpenGL"
4577 if [ $? != "0" ]; then
4578 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4585 fi # X11/MINGW OpenGL
4587 if [ "$BUILD_ON_MAC" = "yes" ]; then
4588 if [ "$CFG_COREWLAN" = "auto" ]; then
4589 if compileTest mac/corewlan "CoreWlan"; then
4597 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4598 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4599 if compileTest unix/opengldesktop "OpenGL"; then
4601 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4604 if [ "$CFG_OPENGL" = "yes" ]; then
4605 echo "All the OpenGL functionality tests failed!"
4606 echo " You might need to modify the include and library search paths by editing"
4607 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4608 echo " ${XQMAKESPEC}."
4613 elif [ "$CFG_OPENGL" = "es2" ]; then
4615 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4616 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4617 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4618 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4619 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4620 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4621 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4622 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4625 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4626 if [ $? != "0" ]; then
4627 echo "The OpenGL ES 2.0 functionality test failed!"
4628 echo " You might need to modify the include and library search paths by editing"
4629 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4630 echo " ${XQMAKESPEC}."
4633 elif [ "$CFG_OPENGL" = "desktop" ]; then
4634 # Desktop OpenGL support
4635 compileTest unix/opengldesktop "OpenGL"
4636 if [ $? != "0" ]; then
4637 echo "The OpenGL functionality test failed!"
4638 echo " You might need to modify the include and library search paths by editing"
4639 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4640 echo " ${XQMAKESPEC}."
4645 # auto-detect FontConfig support
4646 if [ "$CFG_FONTCONFIG" != "no" ]; then
4647 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4648 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4649 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4651 QT_CFLAGS_FONTCONFIG=
4652 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4654 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4655 QT_CONFIG="$QT_CONFIG fontconfig"
4656 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4657 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4659 CFG_LIBFREETYPE=system
4666 # Save these for a check later
4667 ORIG_CFG_XCB="$CFG_XCB"
4668 ORIG_CFG_EGLFS="$CFG_EGLFS"
4669 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4670 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4671 ORIG_CFG_KMS="$CFG_KMS"
4673 if [ "$CFG_LIBUDEV" != "no" ]; then
4674 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4675 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4676 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4677 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4678 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4680 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4682 QT_CONFIG="$QT_CONFIG libudev"
4683 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4684 echo "The libudev functionality test failed!"
4690 if [ "$CFG_LIBUDEV" = "no" ]; then
4691 QMakeVar add DEFINES QT_NO_LIBUDEV
4694 if [ "$CFG_EVDEV" != "no" ]; then
4695 if compileTest unix/evdev "evdev"; then
4697 QT_CONFIG="$QT_CONFIG evdev"
4698 elif [ "$CFG_EVDEV" = "yes" ]; then
4699 echo "The evdev functionality test failed!"
4705 if [ "$CFG_EVDEV" = "no" ]; then
4706 QMakeVar add DEFINES QT_NO_EVDEV
4709 # Check we actually have X11 :-)
4710 if compileTest x11/xlib "XLib"; then
4711 QT_CONFIG="$QT_CONFIG xlib"
4714 # auto-detect Xrender support
4715 if [ "$CFG_XRENDER" != "no" ]; then
4716 if compileTest x11/xrender "Xrender"; then
4718 QT_CONFIG="$QT_CONFIG xrender"
4720 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4721 echo "Xrender support cannot be enabled due to functionality tests!"
4722 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4723 echo " If you believe this message is in error you may use the continue"
4724 echo " switch (-continue) to $0 to continue."
4732 if [ "$CFG_XCB" != "no" ]; then
4733 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4734 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4735 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4737 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4739 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4740 QT_CONFIG="$QT_CONFIG xcb-render"
4743 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4745 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4748 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4749 QT_CONFIG="$QT_CONFIG xcb-xlib"
4752 # auto-detect XInput2 support. Needed by xcb too.
4753 if [ "$CFG_XINPUT2" != "no" ]; then
4754 if compileTest x11/xinput2 "XInput2"; then
4758 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4759 echo "XInput2 support cannot be enabled due to functionality tests!"
4760 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4761 echo " If you believe this message is in error you may use the continue"
4762 echo " switch (-continue) to $0 to continue."
4770 if [ "$CFG_XCB" = "yes" ]; then
4771 echo "The XCB test failed!"
4772 echo " You might need to install dependency packages."
4773 echo " See src/plugins/platforms/xcb/README."
4779 if [ "$CFG_XCB" = "no" ]; then
4780 QMakeVar add DEFINES QT_NO_XCB
4783 if [ "$CFG_DIRECTFB" != "no" ]; then
4784 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4785 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4786 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4787 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4789 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4790 echo " DirectFB support cannot be enabled due to functionality tests!"
4791 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4792 echo " If you believe this message is in error you may use the continue"
4793 echo " switch (-continue) to $0 to continue."
4803 if [ "$CFG_LINUXFB" != "no" ]; then
4804 if compileTest qpa/linuxfb "LinuxFB"; then
4806 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4807 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4808 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4809 echo " If you believe this message is in error you may use the continue"
4810 echo " switch (-continue) to $0 to continue."
4817 if [ "$CFG_KMS" != "no" ]; then
4818 if compileTest qpa/kms "KMS"; then
4820 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4821 echo " KMS support cannot be enabled due to functionality tests!"
4822 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4823 echo " If you believe this message is in error you may use the continue"
4824 echo " switch (-continue) to $0 to continue."
4831 # Detect libxkbcommon
4832 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4833 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4834 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4835 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4836 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4838 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4842 if [ "$CFG_EGL" != "no" ]; then
4843 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4844 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4845 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4846 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4847 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4848 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4849 fi # detect EGL support
4850 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4852 elif [ "$CFG_EGL" = "yes" ]; then
4853 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4854 echo " You might need to modify the include and library search paths by editing"
4855 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4860 elif [ "$CFG_OPENGL" = "desktop" ]; then
4861 if [ "$CFG_EGL" = "yes" ]; then
4862 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4863 echo "Either disable EGL support or enable OpenGL ES support."
4869 if [ "$CFG_EGLFS" != "no" ]; then
4870 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4871 CFG_EGLFS="$CFG_EGL"
4877 if [ "$CFG_KMS" = "yes" ]; then
4878 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4885 # Detect accessibility support
4886 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4887 if [ "$CFG_XCB" = "no" ]; then
4888 CFG_ACCESSIBILITY=yes
4890 # linux/xcb accessibility needs dbus and atspi-2
4891 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4892 CFG_ACCESSIBILITY=yes
4894 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4895 CFG_ACCESSIBILITY=no
4897 echo "Accessibility support needs pkg-config and libatspi2."
4904 # Determine the default QPA platform
4905 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4907 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4908 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4909 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4910 QT_QPA_DEFAULT_PLATFORM="windows"
4911 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4912 QT_QPA_DEFAULT_PLATFORM="cocoa"
4913 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4914 QT_QPA_DEFAULT_PLATFORM="qnx"
4916 QT_QPA_DEFAULT_PLATFORM="xcb"
4921 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4922 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4923 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4924 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4926 if [ "$CFG_DIRECTFB" = "yes" ]; then
4927 QT_CONFIG="$QT_CONFIG directfb"
4928 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4929 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4931 if [ "$CFG_LINUXFB" = "yes" ]; then
4932 QT_CONFIG="$QT_CONFIG linuxfb"
4934 if [ "$CFG_KMS" = "yes" ]; then
4935 QT_CONFIG="$QT_CONFIG kms"
4938 if [ "$BUILD_ON_MAC" = "yes" ]; then
4939 if compileTest mac/coreservices "CoreServices"; then
4940 QT_CONFIG="$QT_CONFIG coreservices"
4942 QMakeVar add DEFINES QT_NO_CORESERVICES
4946 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4947 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4948 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4949 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4950 echo "No QPA platform plugin enabled!"
4951 echo " If you really want to build without a QPA platform plugin you must pass"
4952 echo " -no-qpa-platform-guard to configure. Doing this will"
4953 echo " produce a Qt that can not run GUI applications."
4954 echo " The dependencies needed for xcb to build are listed in"
4955 echo " src/plugins/platforms/xcb/README"
4962 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4963 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4964 if compileTest unix/freetype "FreeType"; then
4965 CFG_LIBFREETYPE=system
4971 if ! compileTest unix/stl "STL" &&
4972 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4973 echo "STL functionality check failed! Cannot build Qt with this STL library."
4974 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4979 # detect POSIX clock_gettime()
4980 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4981 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
4982 CFG_CLOCK_GETTIME=yes
4984 CFG_CLOCK_GETTIME=no
4988 # detect POSIX monotonic clocks
4989 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4990 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
4991 CFG_CLOCK_MONOTONIC=yes
4993 CFG_CLOCK_MONOTONIC=no
4995 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4996 CFG_CLOCK_MONOTONIC=no
5000 if [ "$CFG_MREMAP" = "auto" ]; then
5001 if compileTest unix/mremap "mremap"; then
5008 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5009 if [ "$CFG_GETADDRINFO" != "no" ]; then
5010 if compileTest unix/getaddrinfo "getaddrinfo"; then
5013 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5014 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5015 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5016 echo " If you believe this message is in error you may use the continue"
5017 echo " switch (-continue) to $0 to continue."
5025 # find if the platform provides inotify
5026 if [ "$CFG_INOTIFY" != "no" ]; then
5027 if compileTest unix/inotify "inotify"; then
5030 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5031 echo "inotify support cannot be enabled due to functionality tests!"
5032 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5033 echo " If you believe this message is in error you may use the continue"
5034 echo " switch (-continue) to $0 to continue."
5042 # find if the platform provides if_nametoindex (ipv6 interface name support)
5043 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5044 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5047 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5048 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5049 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5050 echo " If you believe this message is in error you may use the continue"
5051 echo " switch (-continue) to $0 to continue."
5059 # find if the platform provides getifaddrs (network interface enumeration)
5060 if [ "$CFG_GETIFADDRS" != "no" ]; then
5061 if compileTest unix/getifaddrs "getifaddrs"; then
5064 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5065 echo "getifaddrs support cannot be enabled due to functionality tests!"
5066 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5067 echo " If you believe this message is in error you may use the continue"
5068 echo " switch (-continue) to $0 to continue."
5077 if [ "$CFG_OPENSSL" != "no" ]; then
5078 if compileTest unix/openssl "OpenSSL"; then
5079 if [ "$CFG_OPENSSL" = "auto" ]; then
5083 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5084 echo "OpenSSL support cannot be enabled due to functionality tests!"
5085 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5086 echo " If you believe this message is in error you may use the continue"
5087 echo " switch (-continue) to $0 to continue."
5096 if [ "$CFG_PCRE" != "qt" ]; then
5097 if compileTest unix/pcre "PCRE"; then
5100 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5101 echo "PCRE support cannot be enabled due to functionality tests!"
5102 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5103 echo " If you believe this message is in error you may use the continue"
5104 echo " switch (-continue) to $0 to continue."
5112 # detect OpenVG support
5113 if [ "$CFG_OPENVG" != "no" ]; then
5114 if compileTest unix/openvg "OpenVG"; then
5115 if [ "$CFG_OPENVG" = "auto" ]; then
5118 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5119 if [ "$CFG_OPENVG" = "auto" ]; then
5122 CFG_OPENVG_ON_OPENGL=yes
5123 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5124 if [ "$CFG_OPENVG" = "auto" ]; then
5127 CFG_OPENVG_LC_INCLUDES=yes
5128 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5129 if [ "$CFG_OPENVG" = "auto" ]; then
5132 CFG_OPENVG_LC_INCLUDES=yes
5133 CFG_OPENVG_ON_OPENGL=yes
5135 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5136 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5137 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5138 echo " If you believe this message is in error you may use the continue"
5139 echo " switch (-continue) to $0 to continue."
5145 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5146 CFG_OPENVG_SHIVA=yes
5150 if [ "$CFG_ALSA" = "auto" ]; then
5151 if compileTest unix/alsa "alsa"; then
5158 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5159 if [ "$CFG_ARCH" = "arm" ]; then
5160 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5161 if [ $? != "0" ]; then
5162 CFG_JAVASCRIPTCORE_JIT=no
5165 case "$XPLATFORM" in
5167 CFG_JAVASCRIPTCORE_JIT=no
5173 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5174 QMakeVar set JAVASCRIPTCORE_JIT yes
5175 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5176 QMakeVar set JAVASCRIPTCORE_JIT no
5179 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5180 CFG_AUDIO_BACKEND=yes
5183 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5184 echo "Warning: largefile support cannot be disabled for win32."
5188 #-------------------------------------------------------------------------------
5189 # ask for all that hasn't been auto-detected or specified in the arguments
5190 #-------------------------------------------------------------------------------
5192 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5194 # disable accessibility
5195 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5196 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5198 QT_CONFIG="$QT_CONFIG accessibility"
5202 if [ "$CFG_EGL" = "yes" ]; then
5203 QT_CONFIG="$QT_CONFIG egl"
5205 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5209 if [ "$CFG_EGLFS" = "yes" ]; then
5210 QT_CONFIG="$QT_CONFIG eglfs"
5212 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5216 if [ "$CFG_OPENVG" = "no" ]; then
5217 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5219 QT_CONFIG="$QT_CONFIG openvg"
5220 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5221 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5223 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5224 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5226 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5227 QT_CONFIG="$QT_CONFIG shivavg"
5228 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5233 if [ "$CFG_OPENGL" = "no" ]; then
5234 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5236 QT_CONFIG="$QT_CONFIG opengl"
5239 if [ "$CFG_OPENGL" = "es2" ]; then
5240 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5243 if [ "$CFG_OPENGL" = "es2" ]; then
5244 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5245 QT_CONFIG="$QT_CONFIG opengles2"
5248 # build up the variables for output
5249 if [ "$CFG_DEBUG" = "yes" ]; then
5250 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5251 elif [ "$CFG_DEBUG" = "no" ]; then
5252 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5254 if [ "$CFG_SHARED" = "yes" ]; then
5255 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5256 QT_CONFIG="$QT_CONFIG shared"
5257 elif [ "$CFG_SHARED" = "no" ]; then
5258 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5259 QT_CONFIG="$QT_CONFIG static"
5262 #FIXME: qpa is implicit this should all be removed
5263 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5264 QT_CONFIG="$QT_CONFIG qpa"
5265 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5266 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5268 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5269 # Do not set this here for Windows. Let qmake do it so
5270 # debug and release precompiled headers are kept separate.
5271 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5273 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5274 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5275 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5276 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5277 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5278 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5280 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5281 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5283 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5284 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5285 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5286 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5287 QMakeVar add QMAKE_CFLAGS -g
5288 QMakeVar add QMAKE_CXXFLAGS -g
5289 QT_CONFIG="$QT_CONFIG separate_debug_info"
5291 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5292 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5294 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5295 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5296 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5297 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5298 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5299 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5300 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5301 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5302 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5303 if [ "$CFG_ARCH" = "mips" ]; then
5304 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5305 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5307 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5308 QT_CONFIG="$QT_CONFIG clock-gettime"
5310 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5311 QT_CONFIG="$QT_CONFIG clock-monotonic"
5313 if [ "$CFG_MREMAP" = "yes" ]; then
5314 QT_CONFIG="$QT_CONFIG mremap"
5316 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5317 QT_CONFIG="$QT_CONFIG getaddrinfo"
5319 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5320 QT_CONFIG="$QT_CONFIG ipv6ifname"
5322 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5323 QT_CONFIG="$QT_CONFIG getifaddrs"
5325 if [ "$CFG_INOTIFY" = "yes" ]; then
5326 QT_CONFIG="$QT_CONFIG inotify"
5328 if [ "$CFG_LIBJPEG" = "no" ]; then
5330 elif [ "$CFG_LIBJPEG" = "system" ]; then
5331 QT_CONFIG="$QT_CONFIG system-jpeg"
5333 if [ "$CFG_JPEG" = "no" ]; then
5334 QT_CONFIG="$QT_CONFIG no-jpeg"
5335 elif [ "$CFG_JPEG" = "yes" ]; then
5336 QT_CONFIG="$QT_CONFIG jpeg"
5338 if [ "$CFG_LIBPNG" = "no" ]; then
5341 if [ "$CFG_LIBPNG" = "system" ]; then
5342 QT_CONFIG="$QT_CONFIG system-png"
5344 if [ "$CFG_PNG" = "no" ]; then
5345 QT_CONFIG="$QT_CONFIG no-png"
5346 elif [ "$CFG_PNG" = "yes" ]; then
5347 QT_CONFIG="$QT_CONFIG png"
5349 if [ "$CFG_GIF" = "no" ]; then
5350 QT_CONFIG="$QT_CONFIG no-gif"
5351 elif [ "$CFG_GIF" = "yes" ]; then
5352 QT_CONFIG="$QT_CONFIG gif"
5354 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5355 QT_CONFIG="$QT_CONFIG no-freetype"
5356 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5357 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5358 QT_CONFIG="$QT_CONFIG system-freetype"
5360 QT_CONFIG="$QT_CONFIG freetype"
5362 if [ "$CFG_GUI" = "auto" ]; then
5365 if [ "$CFG_GUI" = "no" ]; then
5366 QT_CONFIG="$QT_CONFIG no-gui"
5369 if [ "$CFG_WIDGETS" = "no" ]; then
5370 QT_CONFIG="$QT_CONFIG no-widgets"
5371 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5374 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5375 #On Mac we implicitly link against libz, so we
5376 #never use the 3rdparty stuff.
5377 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5379 if [ "$CFG_ZLIB" = "yes" ]; then
5380 QT_CONFIG="$QT_CONFIG zlib"
5381 elif [ "$CFG_ZLIB" = "system" ]; then
5382 QT_CONFIG="$QT_CONFIG system-zlib"
5385 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5386 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5387 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5388 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5389 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5390 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5391 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5392 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5393 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5394 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5395 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5396 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5397 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5398 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5400 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5401 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5403 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5404 if [ "$CFG_RPATH" = "yes" ]; then
5405 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5407 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5408 if [ -n "$RPATH_FLAGS" ]; then
5410 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5414 elif [ "$CFG_RPATH" = "yes" ]; then
5415 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5419 if [ -n "$RPATH_FLAGS" ]; then
5420 # add the user defined rpaths
5421 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5424 if [ "$CFG_RPATH" = "yes" ]; then
5425 QT_CONFIG="$QT_CONFIG rpath"
5428 if [ '!' -z "$I_FLAGS" ]; then
5429 # add the user define include paths
5430 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5431 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5434 if [ '!' -z "$W_FLAGS" ]; then
5435 # add the user defined warning flags
5436 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5437 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5438 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5441 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5442 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5443 # Follow default behavior of configure.exe by overriding with "rtti".
5444 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5447 if [ "$CFG_ALSA" = "yes" ]; then
5448 QT_CONFIG="$QT_CONFIG alsa"
5451 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5452 QT_CONFIG="$QT_CONFIG pulseaudio"
5455 if [ "$CFG_COREWLAN" = "yes" ]; then
5456 QT_CONFIG="$QT_CONFIG corewlan"
5459 if [ "$CFG_ICU" = "yes" ]; then
5460 QT_CONFIG="$QT_CONFIG icu"
5463 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5464 QT_CONFIG="$QT_CONFIG force_asserts"
5467 if [ "$CFG_PCRE" = "qt" ]; then
5468 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5472 # Some Qt modules are too advanced in C++ for some old compilers
5473 # Detect here the platforms where they are known to work.
5475 # See Qt documentation for more information on which features are
5476 # supported and on which compilers.
5478 canBuildQtConcurrent="yes"
5479 canUseV8Snapshot="yes"
5481 case "$XPLATFORM" in
5483 # PA-RISC's assembly is too limited
5484 # gcc 3.4 on that platform can't build QtXmlPatterns
5485 # the assembly it generates cannot be compiled
5487 # Check gcc's version
5488 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5492 canBuildQtXmlPatterns="no"
5496 canBuildQtXmlPatterns="no"
5500 unsupported/vxworks-*-g++*)
5503 unsupported/vxworks-*-dcc*)
5505 canBuildQtXmlPatterns="no"
5508 # Check gcc's version
5509 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5517 canBuildQtXmlPatterns="no"
5522 # Check the compiler version
5523 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5526 canBuildQtXmlPatterns="no"
5527 canBuildQtConcurrent="no"
5531 canBuildQtConcurrent="no"
5537 canBuildQtXmlPatterns="no"
5538 canBuildQtConcurrent="no"
5544 # Get the xlC version
5545 cat > xlcver.c <<EOF
5549 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5554 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5555 xlcver=`./xlcver 2>/dev/null`
5558 if [ "$OPT_VERBOSE" = "yes" ]; then
5559 if [ -n "$xlcver" ]; then
5560 echo Found IBM xlC version: $xlcver.
5562 echo Could not determine IBM xlC version, assuming oldest supported.
5569 canBuildQtXmlPatterns="no"
5570 canBuildQtConcurrent="no"
5574 canBuildQtConcurrent="no"
5580 canBuildQtConcurrent="no"
5584 if [ "$CFG_GUI" = "no" ]; then
5585 # WebKit requires QtGui
5589 if [ "$CFG_SHARED" = "no" ]; then
5591 echo "WARNING: Using static linking will disable the WebKit module."
5596 CFG_CONCURRENT="yes"
5597 if [ "$canBuildQtConcurrent" = "no" ]; then
5598 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5601 QT_CONFIG="$QT_CONFIG concurrent"
5605 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5606 QT_CONFIG="$QT_CONFIG audio-backend"
5610 if [ "$CFG_WEBKIT" = "debug" ]; then
5611 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5615 QT_CONFIG="$QT_CONFIG v8"
5616 # Detect snapshot support
5617 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5618 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5621 *) canUseV8Snapshot="no"
5625 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5626 # QEMU crashes when building inside Scratchbox with an ARM target
5627 canUseV8Snapshot="no"
5630 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5631 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5633 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5634 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5637 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5638 QT_CONFIG="$QT_CONFIG v8snapshot"
5642 if [ "$CFG_QML_DEBUG" = "no" ]; then
5643 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5646 case "$QMAKE_CONF_COMPILER" in
5649 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5651 case "$COMPILER_VERSION" in
5653 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5654 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5655 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5658 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5659 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5660 QT_GCC_PATCH_VERSION=0
5670 #-------------------------------------------------------------------------------
5671 # part of configuration information goes into qconfig.h
5672 #-------------------------------------------------------------------------------
5674 case "$CFG_QCONFIG" in
5676 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5679 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5680 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5681 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5682 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5683 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5684 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5686 echo "#endif" >>"$tmpconfig"
5690 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5694 # define QT_EDITION $QT_EDITION
5698 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5699 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5701 if [ "$CFG_SHARED" = "no" ]; then
5702 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5703 /* Qt was configured for a static build */
5704 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5711 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5712 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5715 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5716 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5719 if [ "$BUILD_ON_MAC" = "yes" ]; then
5720 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5721 #if defined(__LP64__)
5722 # define QT_POINTER_SIZE 8
5724 # define QT_POINTER_SIZE 4
5728 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5729 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5732 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5733 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5734 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5737 # Add compiler sub-architecture support
5738 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5739 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5740 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5742 MIPS_DSP MIPS_DSPR2; do
5743 eval "VAL=\$CFG_$SUBARCH"
5746 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5747 >>"$outpath/src/corelib/global/qconfig.h.new"
5752 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5754 if [ "$CFG_DEV" = "yes" ]; then
5755 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5758 # Add QPA to config.h
5759 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5761 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5762 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5765 # Add turned on SQL drivers
5766 for DRIVER in $CFG_SQL_AVAILABLE; do
5767 eval "VAL=\$CFG_SQL_$DRIVER"
5770 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5771 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5772 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5775 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5780 QMakeVar set sql-drivers "$SQL_DRIVERS"
5781 QMakeVar set sql-plugins "$SQL_PLUGINS"
5783 # Add other configuration options to the qconfig.h file
5784 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5785 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5786 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5787 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5788 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5790 # X11/Unix/Mac only configs
5791 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5792 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5793 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5794 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5795 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5796 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5797 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5798 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5799 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5800 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5801 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5802 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5803 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5804 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5806 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5807 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5808 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5809 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5810 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5811 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5812 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5813 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5814 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5815 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5816 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5817 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5818 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5820 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5821 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5822 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5823 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5824 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5825 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5826 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5827 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5829 # sort QCONFIG_FLAGS for neatness if we can
5830 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5831 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5833 if [ -n "$QCONFIG_FLAGS" ]; then
5834 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5835 #ifndef QT_BOOTSTRAPPED
5838 for cfg in $QCONFIG_FLAGS; do
5839 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5840 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5841 # figure out define logic, so we can output the correct
5842 # ifdefs to override the global defines in a project
5844 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5845 # QT_NO_option can be forcefully turned on by QT_option
5846 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5847 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5848 # QT_option can be forcefully turned off by QT_NO_option
5849 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5852 if [ -z $cfgdNeg ]; then
5853 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5860 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5861 #if defined($cfgd) && defined($cfgdNeg)
5863 #elif !defined($cfgd) && !defined($cfgdNeg)
5870 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5871 #endif // QT_BOOTSTRAPPED
5876 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5877 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5878 #define QT_VISIBILITY_AVAILABLE
5883 if [ -n "$QT_LIBINFIX" ]; then
5884 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5885 #define QT_LIBINFIX "$QT_LIBINFIX"
5890 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5892 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5893 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5894 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5896 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5897 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5898 chmod -w "$outpath/src/corelib/global/qconfig.h"
5899 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5900 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5904 #-------------------------------------------------------------------------------
5905 # save configuration into qconfig.pri
5906 #-------------------------------------------------------------------------------
5907 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5908 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5909 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5910 if [ "$CFG_DEBUG" = "yes" ]; then
5911 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5912 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5913 QT_CONFIG="$QT_CONFIG release"
5915 QT_CONFIG="$QT_CONFIG debug"
5916 elif [ "$CFG_DEBUG" = "no" ]; then
5917 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5918 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5919 QT_CONFIG="$QT_CONFIG debug"
5921 QT_CONFIG="$QT_CONFIG release"
5923 if [ "$CFG_FRAMEWORK" = "no" ]; then
5924 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5926 QT_CONFIG="$QT_CONFIG qt_framework"
5927 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5929 if [ "$CFG_DEV" = "yes" ]; then
5930 QT_CONFIG="$QT_CONFIG private_tests"
5933 cat >>"$QTCONFIG.tmp" <<EOF
5935 CONFIG += $QTCONFIG_CONFIG
5937 QT_HOST_ARCH = $CFG_HOST_ARCH
5938 QT_CPU_FEATURES = $CFG_CPUFEATURES
5939 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5940 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5941 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5942 QT_EDITION = $Edition
5943 QT_CONFIG += $QT_CONFIG
5946 QT_VERSION = $QT_VERSION
5947 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5948 QT_MINOR_VERSION = $QT_MINOR_VERSION
5949 QT_PATCH_VERSION = $QT_PATCH_VERSION
5952 QT_LIBINFIX = $QT_LIBINFIX
5953 QT_NAMESPACE = $QT_NAMESPACE
5957 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5958 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5959 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5960 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5961 echo >> "$QTCONFIG.tmp"
5964 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5965 echo "# sysroot" >>"$QTCONFIG.tmp"
5966 echo "!host_build {" >>"$QTCONFIG.tmp"
5967 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5968 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5969 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5970 echo "}" >> "$QTCONFIG.tmp"
5971 echo >> "$QTCONFIG.tmp"
5973 if [ -n "$RPATH_FLAGS" ]; then
5974 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5976 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5977 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5978 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5979 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5982 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5983 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5984 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5987 # replace qconfig.pri if it differs from the newly created temp file
5988 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5989 rm -f "$QTCONFIG.tmp"
5991 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5994 #-------------------------------------------------------------------------------
5995 # save configuration into qmodule.pri
5996 #-------------------------------------------------------------------------------
5997 QTMODULE="$outpath/mkspecs/qmodule.pri"
5999 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6000 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6002 if [ -n "$QT_CFLAGS_PSQL" ]; then
6003 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6005 if [ -n "$QT_LFLAGS_PSQL" ]; then
6006 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6008 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6009 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6011 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6012 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6014 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6015 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6017 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6018 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6020 if [ -n "$QT_LFLAGS_ODBC" ]; then
6021 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6023 if [ -n "$QT_LFLAGS_TDS" ]; then
6024 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6027 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6028 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6031 #dump in the OPENSSL_LIBS info
6032 if [ '!' -z "$OPENSSL_LIBS" ]; then
6033 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6034 elif [ "$CFG_OPENSSL" = "linked" ]; then
6035 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6038 #dump in the SDK info
6039 if [ '!' -z "$CFG_SDK" ]; then
6040 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6044 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6045 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6047 # replace qmodule.pri if it differs from the newly created temp file
6048 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6049 rm -f "$QTMODULE.tmp"
6051 mv -f "$QTMODULE.tmp" "$QTMODULE"
6054 #-------------------------------------------------------------------------------
6055 # save configuration into .qmake.cache
6056 #-------------------------------------------------------------------------------
6058 CACHEFILE="$outpath/.qmake.cache"
6059 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6060 cat >>"$CACHEFILE.tmp" <<EOF
6062 QT_SOURCE_TREE = \$\$quote($relpath)
6063 QT_BUILD_TREE = \$\$quote($outpath)
6065 include(\$\$PWD/mkspecs/qmodule.pri)
6066 CONFIG += dylib fix_output_dirs no_private_qt_headers_warning QTDIR_build
6070 # replace .qmake.cache if it differs from the newly created temp file
6071 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6072 rm -f "$CACHEFILE.tmp"
6074 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6077 #-------------------------------------------------------------------------------
6078 # give feedback on configuration
6079 #-------------------------------------------------------------------------------
6080 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6083 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6084 echo "Build type: $PLATFORM"
6086 echo "Building on: $PLATFORM"
6087 echo "Building for: $XPLATFORM"
6090 # the missing space before $CFG_FEATURES is intentional
6091 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6092 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6094 if [ -n "$PLATFORM_NOTES" ]; then
6095 echo "Platform notes:"
6096 echo "$PLATFORM_NOTES"
6101 if [ "$OPT_VERBOSE" = "yes" ]; then
6102 echo $ECHO_N "qmake vars .......... $ECHO_C"
6103 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6104 echo "qmake switches ......... $QMAKE_SWITCHES"
6107 echo "Build .................. $CFG_BUILD_PARTS"
6108 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6109 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6110 echo "Debug .................. yes (combined)"
6111 if [ "$CFG_DEBUG" = "yes" ]; then
6112 echo "Default Link ........... debug"
6114 echo "Default Link ........... release"
6117 echo "Debug .................. $CFG_DEBUG"
6119 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6120 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6122 echo "C++11 support .......... $CFG_CXX11"
6123 if [ -n "$PKG_CONFIG" ]; then
6124 echo "pkg-config ............. yes"
6126 echo "pkg-config ............. no"
6128 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6129 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6130 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6131 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6132 echo "QtGui module ........... $CFG_GUI"
6133 echo "QtWidgets module ....... $CFG_WIDGETS"
6134 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6135 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6137 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6139 echo "QML debugging .......... $CFG_QML_DEBUG"
6140 echo "PCH support ............ $CFG_PRECOMPILE"
6141 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6142 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6143 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6144 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6145 elif [ "$CFG_ARCH" = "arm" ]; then
6146 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6147 echo "NEON support ........... ${CFG_NEON}"
6149 if [ "$CFG_ARCH" = "mips" ]; then
6150 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6152 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6153 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6154 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6155 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6156 echo "NIS support ............ $CFG_NIS"
6157 echo "CUPS support ........... $CFG_CUPS"
6158 echo "Iconv support .......... $CFG_ICONV"
6159 echo "Glib support ........... $CFG_GLIB"
6160 echo "GStreamer support ...... $CFG_GSTREAMER"
6161 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6162 echo "Large File support ..... $CFG_LARGEFILE"
6163 echo "GIF support ............ $CFG_GIF"
6164 if [ "$CFG_JPEG" = "no" ]; then
6165 echo "JPEG support ........... $CFG_JPEG"
6167 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6169 if [ "$CFG_PNG" = "no" ]; then
6170 echo "PNG support ............ $CFG_PNG"
6172 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6174 echo "zlib support ........... $CFG_ZLIB"
6175 echo "Session management ..... $CFG_SM"
6176 echo "libudev support ........ $CFG_LIBUDEV"
6178 if [ "$CFG_OPENGL" = "desktop" ]; then
6179 echo "OpenGL support ......... yes (Desktop OpenGL)"
6180 elif [ "$CFG_OPENGL" = "es2" ]; then
6181 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6183 echo "OpenGL support ......... no"
6186 if [ "$CFG_OPENVG" ]; then
6187 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6188 echo "OpenVG support ......... ShivaVG"
6190 echo "OpenVG support ......... $CFG_OPENVG"
6194 echo "XShape support ......... $CFG_XSHAPE"
6195 echo "XVideo support ......... $CFG_XVIDEO"
6196 echo "XSync support .......... $CFG_XSYNC"
6197 echo "Xinerama support ....... $CFG_XINERAMA"
6198 echo "Xcursor support ........ $CFG_XCURSOR"
6199 echo "Xfixes support ......... $CFG_XFIXES"
6200 echo "Xrandr support ......... $CFG_XRANDR"
6201 echo "Xi support ............. $CFG_XINPUT"
6202 echo "Xi2 support ............ $CFG_XINPUT2"
6203 echo "MIT-SHM support ........ $CFG_MITSHM"
6204 echo "FontConfig support ..... $CFG_FONTCONFIG"
6205 echo "XKB Support ............ $CFG_XKB"
6206 echo "immodule support ....... $CFG_IM"
6207 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6209 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6210 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6211 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6212 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6213 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6214 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6215 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6216 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6217 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6220 if [ "$CFG_OPENSSL" = "yes" ]; then
6221 OPENSSL_LINKAGE="(run-time)"
6222 elif [ "$CFG_OPENSSL" = "linked" ]; then
6223 OPENSSL_LINKAGE="(linked)"
6225 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6226 echo "Alsa support ........... $CFG_ALSA"
6227 if [ "$BUILD_ON_MAC" = "yes" ]; then
6228 echo "CoreWlan support ....... $CFG_COREWLAN"
6230 echo "libICU support ......... $CFG_ICU"
6231 echo "PCRE support ........... $CFG_PCRE"
6232 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6233 echo "Xcb support ............ limited (old version)"
6235 echo "Xcb support ............ $CFG_XCB"
6237 echo "Xrender support ........ $CFG_XRENDER"
6238 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6239 echo "XInput2 support ........ $CFG_XINPUT2"
6241 echo "EGLFS support .......... $CFG_EGLFS"
6242 echo "DirectFB support ....... $CFG_DIRECTFB"
6243 echo "LinuxFB support ........ $CFG_LINUXFB"
6244 echo "KMS support ............ $CFG_KMS"
6247 # complain about not being able to use dynamic plugins if we are using a static build
6248 if [ "$CFG_SHARED" = "no" ]; then
6250 echo "WARNING: Using static linking will disable the use of dynamically"
6251 echo "loaded plugins. Make sure to import all needed static plugins,"
6252 echo "or compile needed modules into the library."
6255 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6257 echo "NOTE: When linking against OpenSSL, you can override the default"
6258 echo "library names through OPENSSL_LIBS."
6260 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6264 exec 1>&3 3>&- # restore stdout
6265 cat $outpath/config.summary # display config feedback to user
6267 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6269 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6270 echo "if you want a pure debug build."
6275 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6280 #-------------------------------------------------------------------------------
6281 # build makefiles based on the configuration
6282 #-------------------------------------------------------------------------------
6284 if [ "$CFG_PROCESS" != "no" ]; then
6286 if [ "$CFG_PROCESS" = "full" ]; then
6287 echo "Creating makefiles. Please wait..."
6288 "$outpath/bin/qmake" -r "$relpath"
6291 "$outpath/bin/qmake" "$relpath"
6294 if [ "$OPT_FAST" = "yes" ]; then
6296 for part in $CFG_BUILD_PARTS; do
6298 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6301 if [ "x$PART_ROOTS" != "x" ]; then
6303 echo "Creating stub makefiles. Please wait..."
6304 QMAKE="$outpath/bin/qmake"
6305 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6306 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6308 test -f "$outpath/$d/Makefile" && continue
6309 echo " for $relpath/$p"
6311 mkdir -p "$outpath/$d" || exit
6312 cat > "$outpath/$d/Makefile" <<EOF || exit
6313 # $outpath/$d/Makefile: generated by configure
6315 # WARNING: This makefile will be replaced with a real makefile.
6316 # All changes made to this file will be lost.
6321 all clean install qmake first Makefile: FORCE
6322 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6332 #-------------------------------------------------------------------------------
6333 # check for platforms that we don't yet know about
6334 #-------------------------------------------------------------------------------
6335 if [ "$CFG_ARCH" = "unknown" ]; then
6338 NOTICE: configure was unable to determine the architecture
6339 for the $XQMAKESPEC target.
6341 Qt will not use a specialized implementation for any atomic
6342 operations. Instead a generic implemention based on either GCC
6343 intrinsics or C++11 std::atomic<T> will be used (when
6344 available). The generic implementations are generally as fast
6345 as and always as safe as a specialized implementation.
6347 If no generic implementation is available, Qt will use a
6348 fallback UNIX implementation which uses a single
6349 pthread_mutex_t to protect all atomic operations. This
6350 implementation is the slow (but safe) fallback implementation
6351 for architectures Qt does not yet support.
6355 #-------------------------------------------------------------------------------
6356 # check if the user passed the -no-zlib option, which is no longer supported
6357 #-------------------------------------------------------------------------------
6358 if [ -n "$ZLIB_FORCED" ]; then
6359 which_zlib="supplied"
6360 if [ "$CFG_ZLIB" = "system" ]; then
6366 NOTICE: The -no-zlib option was supplied but is no longer
6369 Qt now requires zlib support in all builds, so the -no-zlib
6370 option was ignored. Qt will be built using the $which_zlib
6375 #-------------------------------------------------------------------------------
6376 # check if the user passed the obsoleted -wayland or -no-wayland flag
6377 #-------------------------------------------------------------------------------
6378 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6381 NOTICE: The -wayland and -no-wayland flags are now obsolete
6383 All configuring of QtWayland plugin and QtCompositor happens in the module
6387 #-------------------------------------------------------------------------------
6388 # check if the user passed the obsoleted -arch or -host-arch options
6389 #-------------------------------------------------------------------------------
6390 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6393 NOTICE: The -arch and -host-arch options are obsolete.
6395 Qt now detects the target and host architectures based on compiler
6396 output. Qt will be built using $CFG_ARCH for the target architecture
6397 and $CFG_HOST_ARCH for the host architecture (note that these two
6398 will be the same unless you are cross-compiling).
6402 #-------------------------------------------------------------------------------
6403 # finally save the executed command to another script
6404 #-------------------------------------------------------------------------------
6405 if [ `basename $0` != "config.status" ]; then
6406 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6408 # add the system variables
6409 for varname in $SYSTEM_VARIABLES; do
6411 'if [ -n "\$'${varname}'" ]; then
6412 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6417 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6419 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6420 echo "#!/bin/sh" > "$outpath/config.status"
6421 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6422 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6423 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6424 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6425 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6426 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6427 echo "else" >> "$outpath/config.status"
6428 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6429 echo "fi" >> "$outpath/config.status"
6430 chmod +x "$outpath/config.status"
6433 if [ -n "$RPATH_MESSAGE" ]; then
6435 echo "$RPATH_MESSAGE"
6438 MAKE=`basename "$MAKE"`
6440 echo Qt is now configured for building. Just run \'$MAKE\'.
6441 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6442 echo Once everything is built, Qt is installed.
6443 echo You should not run \'$MAKE install\'.
6445 echo Once everything is built, you must run \'$MAKE install\'.
6446 echo Qt will be installed into $QT_INSTALL_PREFIX
6449 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.