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 to
3014 be placed in a system location other than
3017 You may use these to separate different parts of the install:
3019 -bindir <dir> ......... Executables will be installed to <dir>
3020 (default PREFIX/bin)
3021 -libdir <dir> ......... Libraries will be installed to <dir>
3022 (default PREFIX/lib)
3023 -docdir <dir> ......... Documentation will be installed to <dir>
3024 (default PREFIX/doc)
3025 -headerdir <dir> ...... Headers will be installed to <dir>
3026 (default PREFIX/include)
3027 -plugindir <dir> ...... Plugins will be installed to <dir>
3028 (default PREFIX/plugins)
3029 -importdir <dir> ...... Imports for QML will be installed to <dir>
3030 (default PREFIX/imports)
3031 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3033 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3034 (default PREFIX/translations)
3035 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3036 (default PREFIX/etc/settings)
3037 -examplesdir <dir> .... Examples will be installed to <dir>
3038 (default PREFIX/examples)
3039 -testsdir <dir> ....... Tests will be installed to <dir>
3040 (default PREFIX/tests)
3042 -hostbindir <dir> .. Host executables will be installed to <dir>
3043 (default HOSTPREFIX/bin)
3044 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3045 (default HOSTPREFIX)
3049 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3050 that needs to be evaluated. If the evaluation succeeds, the feature is
3051 included. Here is a short explanation of each option:
3053 * -release ........... Compile and link Qt with debugging turned off.
3054 -debug ............. Compile and link Qt with debugging turned on.
3055 -debug-and-release . Compile and link two versions of Qt, with and without
3056 debugging turned on (Mac only).
3058 -force-debug-info .. Create symbol files for release builds.
3060 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3062 -opensource ........ Compile and link the Open-Source Edition of Qt.
3063 -commercial ........ Compile and link the Commercial Edition of Qt.
3065 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3066 + -c++11 ............. Compile Qt with C++11 support enabled.
3068 * -shared ............ Create and use shared Qt libraries.
3069 -static ............ Create and use static Qt libraries.
3071 * -process ........... Generate only a top-level Makefile.
3072 -fully-process ..... Generate Makefiles for the entire Qt tree.
3073 -dont-process ...... Do not generate any Makefiles.
3075 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3077 -fast .............. Configure Qt quickly by generating Makefiles only for
3078 library and subdirectory targets. All other Makefiles
3079 are created as wrappers, which will in turn run qmake.
3081 -no-largefile ...... Disables large file support.
3082 + -largefile ......... Enables Qt to access files larger than 4 GB.
3084 -no-accessibility .. Do not compile Accessibility support.
3085 + -accessibility ..... Compile Accessibility support.
3087 -no-sql-<driver> ... Disable SQL <driver> entirely.
3088 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3090 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3093 Possible values for <driver>:
3094 [ $CFG_SQL_AVAILABLE ]
3096 -system-sqlite ..... Use sqlite from the operating system.
3098 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3099 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3101 -no-qml-debug ...... Do not build the in-process QML debugging support.
3102 + -qml-debug ......... Build the QML debugging support.
3104 -platform target ... The operating system and compiler you are building
3107 See the README file for a list of supported
3108 operating systems and compilers.
3110 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3111 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3112 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3113 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3114 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3115 -no-avx ............ Do not compile with use of AVX instructions.
3116 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3117 -no-neon ........... Do not compile with use of NEON instructions.
3118 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3119 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3121 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3122 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3124 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3126 -D <string> ........ Add an explicit define to the preprocessor.
3127 -I <string> ........ Add an explicit include path.
3128 -L <string> ........ Add an explicit library path.
3130 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3131 configure determines whether to use pkg-config or not with
3132 some heuristics such as checking the environment variables.
3133 -no-pkg-config ..... Disable use of pkg-config.
3134 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3135 detection heuristic).
3137 -help, -h .......... Display this information.
3139 Third Party Libraries:
3141 -qt-zlib ........... Use the zlib bundled with Qt.
3142 + -system-zlib ....... Use zlib from the operating system.
3143 See http://www.gzip.org/zlib
3145 -no-gif ............ Do not compile GIF reading support.
3147 -no-libpng ......... Do not compile PNG support.
3148 -qt-libpng ......... Use the libpng bundled with Qt.
3149 + -system-libpng ..... Use libpng from the operating system.
3150 See http://www.libpng.org/pub/png
3152 -no-libjpeg ........ Do not compile JPEG support.
3153 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3154 + -system-libjpeg .... Use libjpeg from the operating system.
3155 See http://www.ijg.org
3157 -no-openssl ........ Do not compile support for OpenSSL.
3158 + -openssl ........... Enable run-time OpenSSL support.
3159 -openssl-linked .... Enabled linked OpenSSL support.
3161 -qt-pcre ........... Use the PCRE library bundled with Qt.
3162 + -system-pcre ....... Use the PCRE library from the operating system.
3166 -make <part> ....... Add part to the list of parts to be built at make time.
3167 ($QT_DEFAULT_BUILD_PARTS)
3168 -nomake <part> ..... Exclude part from the list of parts to be built.
3170 -R <string> ........ Add an explicit runtime library path to the Qt
3172 -l <string> ........ Add an explicit library.
3174 -no-rpath .......... Do not use the library install path as a runtime
3176 + -rpath ............. Link Qt libraries and executables using the library
3177 install path as a runtime library path. Equivalent
3178 to -R install_libpath
3180 -continue .......... Continue as far as possible if an error occurs.
3182 -verbose, -v ....... Print verbose information about each step of the
3185 -silent ............ Reduce the build output so that warnings and errors
3186 can be seen more easily.
3188 * -no-optimized-qmake ... Do not build qmake optimized.
3189 -optimized-qmake ...... Build qmake optimized.
3191 -no-gui ............ Don't build the Qt GUI library
3193 $NSN -no-nis ............ Do not compile NIS support.
3194 $NSY -nis ............... Compile NIS support.
3196 $CUN -no-cups ........... Do not compile CUPS support.
3197 $CUY -cups .............. Compile CUPS support.
3198 Requires cups/cups.h and libcups.so.2.
3200 $CIN -no-iconv .......... Do not compile support for iconv(3).
3201 $CIY -iconv ............. Compile support for iconv(3).
3203 $PHN -no-pch ............ Do not use precompiled header support.
3204 $PHY -pch ............... Use precompiled header support.
3206 $DBN -no-dbus ........... Do not compile the QtDBus module.
3207 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3208 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3210 -reduce-relocations ..... Reduce relocations in the libraries through extra
3211 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3212 experimental; needs GNU ld >= 2.18).
3214 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3216 -device <name> ............... Cross-compile for device <name> (experimental)
3217 -device-option <key=value> ... Add device specific options for the device mkspec
3220 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3221 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3223 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3224 $XCBY -xcb ............... Compile Xcb support.
3226 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3227 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3229 $DFBN -no-directfb ....... Do not compile DirectFB support.
3230 $DFBY -directfb .......... Compile DirectFB support.
3232 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3233 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3235 $KMSN -no-kms ............ Do not compile KMS support.
3236 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3238 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3240 -xplatform target ... The target platform when cross-compiling.
3242 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3243 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3245 -no-feature-<feature> Do not compile in <feature>.
3246 -feature-<feature> .. Compile in <feature>. The available features
3247 are described in src/corelib/global/qfeatures.txt
3249 -no-freetype ........ Do not compile in Freetype2 support.
3250 -qt-freetype ........ Use the libfreetype bundled with Qt.
3251 * -system-freetype .... Use libfreetype from the operating system.
3252 See http://www.freetype.org/
3254 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3255 default ($CFG_QCONFIG).
3257 -no-opengl .......... Do not support OpenGL.
3258 -opengl <api> ....... Enable OpenGL support
3259 With no parameter, this will attempt to auto-detect
3260 OpenGL ES 2, or regular desktop OpenGL.
3261 Use es2 for <api> to override auto-detection.
3263 $GBN -no-glib ........... Do not compile Glib support.
3264 $GBY -glib .............. Compile Glib support.
3267 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3270 $X2N -no-xinput2......... Do not compile XInput2 support.
3271 $X2Y -xinput2............ Compile XInput2 support.
3277 if [ "$BUILD_ON_MAC" = "yes" ]; then
3282 -Fstring ........... Add an explicit framework path.
3283 -fw string ......... Add an explicit framework.
3285 * -framework ......... Build Qt as a series of frameworks and
3286 link tools against those frameworks.
3287 -no-framework ...... Do not build Qt as a series of frameworks.
3289 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3290 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3292 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3293 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3294 QT_ENABLE_HARFBUZZ environment variable.
3299 [ "x$ERROR" = "xyes" ] && exit 1
3304 # -----------------------------------------------------------------------------
3305 # LICENSING, INTERACTIVE PART
3306 # -----------------------------------------------------------------------------
3309 echo "This is the Qt ${EditionString} Edition."
3312 if [ "$Edition" = "OpenSource" ]; then
3314 echo "You are licensed to use this software under the terms of"
3315 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3316 if [ -f "$relpath/LICENSE.GPL3" ]; then
3317 echo "You are also licensed to use this software under the terms of"
3318 echo "the GNU General Public License (GPL) versions 3."
3324 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3325 echo "You have already accepted the terms of the $LicenseType license."
3328 if [ -f "$relpath/LICENSE.GPL3" ]; then
3329 echo "Type '3' to view the GNU General Public License version 3."
3331 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3332 echo "Type 'yes' to accept this license offer."
3333 echo "Type 'no' to decline this license offer."
3335 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3339 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3341 elif [ "$acceptance" = "no" ]; then
3342 echo "You are not licensed to use this software."
3345 elif [ "$acceptance" = "3" ]; then
3346 more "$relpath/LICENSE.GPL3"
3347 elif [ "$acceptance" = "L" ]; then
3348 more "$relpath/LICENSE.LGPL"
3351 elif [ "$Edition" = "Preview" ]; then
3352 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3355 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3356 echo "You have already accepted the terms of the $LicenseType license."
3359 echo "You are licensed to use this software under the terms of"
3360 echo "the $TheLicense"
3362 echo "Type '?' to read the Preview License."
3363 echo "Type 'yes' to accept this license offer."
3364 echo "Type 'no' to decline this license offer."
3366 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3370 if [ "$acceptance" = "yes" ]; then
3372 elif [ "$acceptance" = "no" ] ;then
3373 echo "You are not licensed to use this software."
3376 elif [ "$acceptance" = "?" ]; then
3377 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3380 elif [ "$Edition" != "OpenSource" ]; then
3381 if [ -n "$ExpiryDate" ]; then
3382 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3383 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3384 Today=`date +%Y%m%d`
3385 if [ "$Today" -gt "$ExpiryDate" ]; then
3386 case "$LicenseType" in
3387 Commercial|Academic|Educational)
3389 echo "WARNING WARNING WARNING WARNING"
3391 echo " Your support and upgrade period has expired."
3393 echo " You may continue to use your last licensed release"
3394 echo " of Qt under the terms of your existing license"
3395 echo " agreement. But you are not entitled to technical"
3396 echo " support, nor are you entitled to use any more recent"
3397 echo " Qt releases."
3399 echo " Please contact qt-info@nokia.com to renew your"
3400 echo " support and upgrades for this license."
3402 echo "WARNING WARNING WARNING WARNING"
3408 echo "NOTICE NOTICE NOTICE NOTICE"
3410 echo " Your Evaluation license has expired."
3412 echo " You are no longer licensed to use this software. Please"
3413 echo " contact qt-info@nokia.com to purchase license, or install"
3414 echo " the Qt Open Source Edition if you intend to develop free"
3417 echo "NOTICE NOTICE NOTICE NOTICE"
3424 TheLicense=`head -n 1 "$outpath/LICENSE"`
3426 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3427 echo "You have already accepted the terms of the $TheLicense."
3430 echo "You are licensed to use this software under the terms of"
3431 echo "the $TheLicense."
3433 echo "Type '?' to view the $TheLicense."
3434 echo "Type 'yes' to accept this license offer."
3435 echo "Type 'no' to decline this license offer."
3437 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3441 if [ "$acceptance" = "yes" ]; then
3443 elif [ "$acceptance" = "no" ]; then
3444 echo "You are not licensed to use this software."
3447 else [ "$acceptance" = "?" ]
3448 more "$outpath/LICENSE"
3453 # this should be moved somewhere else
3456 AIX_VERSION=`uname -v`
3457 if [ "$AIX_VERSION" -lt "5" ]; then
3458 QMakeVar add QMAKE_LIBS_X11 -lbind
3465 #-------------------------------------------------------------------------------
3466 # generate qconfig.cpp
3467 #-------------------------------------------------------------------------------
3468 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3470 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3472 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3473 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3475 /* Installation date */
3476 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3478 /* Installation Info */
3479 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3480 "qt_prfxpath=$QT_INSTALL_PREFIX",
3481 "qt_docspath=$QT_INSTALL_DOCS",
3482 "qt_hdrspath=$QT_INSTALL_HEADERS",
3483 "qt_libspath=$QT_INSTALL_LIBS",
3484 "qt_binspath=$QT_INSTALL_BINS",
3485 "qt_plugpath=$QT_INSTALL_PLUGINS",
3486 "qt_impspath=$QT_INSTALL_IMPORTS",
3487 "qt_datapath=$QT_INSTALL_DATA",
3488 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3489 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3490 "qt_tstspath=$QT_INSTALL_TESTS",
3491 #ifdef QT_BUILD_QMAKE
3492 "qt_ssrtpath=$CFG_SYSROOT",
3493 "qt_hpfxpath=$QT_HOST_PREFIX",
3494 "qt_hbinpath=$QT_HOST_BINS",
3495 "qt_hdatpath=$QT_HOST_DATA",
3498 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3501 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3503 /* strlen( "qt_lcnsxxxx" ) == 12 */
3504 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3505 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3507 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3510 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3511 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3512 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3514 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3515 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3516 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3519 # -----------------------------------------------------------------------------
3520 if [ "$LicenseType" = "Evaluation" ]; then
3521 EVALKEY=qt_qevalkey=$LicenseKeyExt
3522 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3523 EVALKEY=qt_qevalkey=
3526 if [ -n "$EVALKEY" ]; then
3527 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3528 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3529 /* Evaluation license key */
3530 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3532 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3536 # -----------------------------------------------------------------------------
3538 # -----------------------------------------------------------------------------
3541 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3542 "$outpath/bin/syncqt" -minimal "$relpath" || exit 1
3545 # $1: input variable name (awk regexp)
3546 # $2: optional output variable name
3547 # $3: optional value transformation (sed command)
3548 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3549 # is where the resulting variable is written to
3550 setBootstrapVariable()
3552 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3556 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3557 echo "Creating qmake. Please wait..."
3559 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3560 rm -rf mkspecs/default mkspecs/default-host
3561 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3562 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3563 mkdir -p "$outpath/qmake" || exit
3565 for mkfile in GNUmakefile Makefile; do
3568 in_mkfile="${mkfile}.in"
3569 if [ "$mkfile" = "Makefile" ]; then
3570 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3571 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3573 in_mkfile="${mkfile}.unix"
3575 in_mkfile="$relpath/qmake/$in_mkfile"
3576 mkfile="$outpath/qmake/$mkfile"
3577 if [ -f "$mkfile" ]; then
3578 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3581 [ -f "$in_mkfile" ] || continue
3583 echo "########################################################################" > "$mkfile"
3584 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3585 echo "########################################################################" >> "$mkfile"
3588 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3589 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3590 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3592 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3593 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3596 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3597 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3598 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3599 setBootstrapVariable QMAKE_CFLAGS
3600 setBootstrapVariable QMAKE_CXXFLAGS
3601 setBootstrapVariable QMAKE_LFLAGS
3603 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3604 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3605 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3607 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3608 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3609 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3610 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3611 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3612 elif [ "$CFG_DEBUG" = "yes" ]; then
3613 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3614 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3615 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3616 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3619 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3620 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3621 for rpath in $RPATH_FLAGS; do
3622 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3625 if [ "$BUILD_ON_MAC" = "yes" ]; then
3626 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3627 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3628 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3629 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3630 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3631 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3632 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3633 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3634 if [ '!' -z "$CFG_SDK" ]; then
3635 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3636 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3637 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3638 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3639 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3642 if [ '!' -z "$D_FLAGS" ]; then
3643 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3645 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3646 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3647 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3648 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3650 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3651 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3652 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3653 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3654 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3655 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3656 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3657 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3658 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3659 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3661 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3662 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3663 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3664 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3669 (cd "$outpath/qmake"; "$MAKE") || exit 2
3672 #-------------------------------------------------------------------------------
3673 # create a qt.conf for the Qt build tree itself
3674 #-------------------------------------------------------------------------------
3676 QTCONFFILE="$outpath/bin/qt.conf"
3677 cat > "$QTCONFFILE" <<EOF
3682 #-------------------------------------------------------------------------------
3684 #-------------------------------------------------------------------------------
3685 if [ -z "$PKG_CONFIG" ]; then
3686 # See if PKG_CONFIG is set in the mkspec:
3687 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3689 if [ -z "$PKG_CONFIG" ]; then
3690 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3693 if [ "$CFG_PKGCONFIG" = "no" ]; then
3695 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3697 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3698 echo >&2 "a correctly setup pkg-config environment!"
3700 elif [ -n "$PKG_CONFIG" ]; then
3701 # found a pkg-config
3702 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3703 # when xcompiling, check environment to see if it's actually usable
3704 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3705 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3706 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3707 if [ -n "$GCC_MACHINE_DUMP" ]; then
3708 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3710 export PKG_CONFIG_LIBDIR
3711 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3712 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3713 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3714 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3715 echo >&2 "Set this variable to the directory that contains target .pc files"
3716 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3717 echo >&2 "use -force-pkg-config to override this test."
3721 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3724 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3725 if [ -n "$CFG_SYSROOT" ]; then
3726 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3727 export PKG_CONFIG_SYSROOT_DIR
3728 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3729 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3730 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3731 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3732 echo >&2 "or use -force-pkg-config to override this test."
3736 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3740 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3741 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3745 if [ -z "$PKG_CONFIG" ]; then
3746 QT_CONFIG="$QT_CONFIG no-pkg-config"
3749 #-------------------------------------------------------------------------------
3750 # write out device config before we run the test.
3751 #-------------------------------------------------------------------------------
3752 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3753 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3754 rm -f "$DEVICE_VARS_FILE"
3756 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3757 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3760 #-------------------------------------------------------------------------------
3761 # tests that need qmake
3762 #-------------------------------------------------------------------------------
3764 # parameters: path, name, extra args
3767 path=config.tests/$1
3770 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3773 #-------------------------------------------------------------------------------
3774 # determine the target and host architectures
3775 #-------------------------------------------------------------------------------
3777 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3778 OUTFILE=$outpath/arch.result
3779 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3780 if [ $? -eq 0 ]; then
3781 eval `cat "$OUTFILE"`
3784 echo "Could not determine the target architecture!"
3785 echo "Turn on verbose messaging (-v) to see the final report."
3787 rm -f "$OUTFILE" 2>/dev/null
3788 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3790 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3791 # Do the same test again, using the host compiler
3792 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3793 if [ $? -eq 0 ]; then
3794 eval `cat "$OUTFILE"`
3797 echo "Could not determine the host architecture!"
3798 echo "Turn on verbose messaging (-v) to see the final report."
3800 rm -f "$OUTFILE" 2>/dev/null
3801 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3803 # not cross compiling, host == target
3804 CFG_HOST_ARCH="$CFG_ARCH"
3805 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3809 if [ "$OPT_VERBOSE" = "yes" ]; then
3810 echo "System architecture: '$CFG_ARCH'"
3811 echo "Host architecture: '$CFG_HOST_ARCH'"
3814 #-------------------------------------------------------------------------------
3815 # functionality tests
3816 #-------------------------------------------------------------------------------
3818 # Detect C++11 support
3819 if [ "$CFG_CXX11" != "no" ]; then
3820 if compileTest unix/c++11 "C++11"; then
3822 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3823 echo "C++11 support cannot be enabled due to functionality tests!"
3824 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3825 echo " If you believe this message is in error you may use the continue"
3826 echo " switch (-continue) to $0 to continue."
3833 # detect availability of float math.h functions
3834 if compileTest unix/floatmath "floatmath"; then
3835 CFG_USE_FLOATMATH=yes
3837 CFG_USE_FLOATMATH=no
3840 # detect sse2 support
3841 if [ "${CFG_SSE2}" = "auto" ]; then
3842 if compileTest common/sse2 "sse2"; then
3849 # detect sse3 support
3850 if [ "${CFG_SSE3}" = "auto" ]; then
3851 if compileTest common/sse3 "sse3"; then
3858 # detect ssse3 support
3859 if [ "${CFG_SSSE3}" = "auto" ]; then
3860 if compileTest common/ssse3 "ssse3"; then
3867 # detect sse4.1 support
3868 if [ "${CFG_SSE4_1}" = "auto" ]; then
3869 if compileTest common/sse4_1 "sse4_1"; then
3876 # detect sse4.2 support
3877 if [ "${CFG_SSE4_2}" = "auto" ]; then
3878 if compileTest common/sse4_2 "sse4_2"; then
3885 # detect avx support
3886 if [ "${CFG_AVX}" = "auto" ]; then
3887 if compileTest common/avx "avx"; then
3888 case "$XQMAKESPEC" in
3890 # Some clang versions produce internal compiler errors compiling Qt AVX code
3891 case `$TEST_COMPILER --version` in
3892 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3894 if [ "$OPT_VERBOSE" = "yes" ]; then
3895 echo 'AVX support disabled for blacklisted clang compiler'
3912 # detect avx2 support
3913 if [ "${CFG_AVX}" = "no" ]; then
3916 if [ "${CFG_AVX2}" = "auto" ]; then
3917 if compileTest common/avx2 "avx2"; then
3924 # check iWMMXt support
3925 if [ "$CFG_IWMMXT" = "yes" ]; then
3926 compileTest unix/iwmmxt "iwmmxt"
3927 if [ $? != "0" ]; then
3928 echo "The iWMMXt functionality test failed!"
3929 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3934 # detect neon support
3935 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3936 if compileTest unix/neon "neon"; then
3941 elif [ "$CFG_ARCH" != "arm" ]; then
3945 # detect mips_dsp support
3946 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3947 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
3952 elif [ "$CFG_ARCH" != "mips" ]; then
3956 # detect mips_dspr2 support
3957 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3958 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
3963 elif [ "$CFG_ARCH" != "mips" ]; then
3967 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3970 if [ "$CFG_ZLIB" = "no" ]; then
3971 # Note: Qt no longer support builds without zlib
3972 # So we force a "no" to be "auto" here.
3973 # If you REALLY really need no zlib support, you can still disable
3974 # it by doing the following:
3975 # add "no-zlib" to mkspecs/qconfig.pri
3976 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3978 # There's no guarantee that Qt will build under those conditions
3983 if [ "$CFG_ZLIB" = "auto" ]; then
3984 if compileTest unix/zlib "zlib"; then
3991 if [ "$CFG_LARGEFILE" = "auto" ]; then
3992 #Large files should be enabled for all Linux systems
3996 if [ "$CFG_GUI" = "no" ]; then
3997 QPA_PLATFORM_GUARD=no
4000 # detect how jpeg should be built
4001 if [ "$CFG_JPEG" = "auto" ]; then
4002 if [ "$CFG_SHARED" = "yes" ]; then
4009 if [ "$CFG_LIBJPEG" = "auto" ]; then
4010 if compileTest unix/libjpeg "libjpeg"; then
4017 # detect how gif should be built
4018 if [ "$CFG_GIF" = "auto" ]; then
4019 if [ "$CFG_SHARED" = "yes" ]; then
4027 if [ "$CFG_LIBPNG" = "auto" ]; then
4028 if compileTest unix/libpng "libpng"; then
4035 if [ "$CFG_EGLFS" = "yes" ]; then
4036 if [ "$CFG_EGL" = "no" ]; then
4037 echo "The EGLFS plugin requires EGL support and cannot be built"
4040 if [ "$CFG_OPENGL" != "es2" ]; then
4041 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4048 if [ "$CFG_KMS" = "yes" ]; then
4049 if [ "$CFG_EGL" = "no" ]; then
4050 echo "The KMS plugin requires EGL support and cannot be built"
4053 if [ "$CFG_OPENGL" != "es2" ]; then
4054 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4059 # auto-detect SQL-modules support
4060 for _SQLDR in $CFG_SQL_AVAILABLE; do
4063 if [ "$CFG_SQL_mysql" != "no" ]; then
4064 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4065 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4066 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4067 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4068 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4069 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4070 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4072 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4073 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4074 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4075 echo " You need MySql 4 or higher."
4076 echo " If you believe this message is in error you may use the continue"
4077 echo " switch (-continue) to $0 to continue."
4082 QT_LFLAGS_MYSQL_R=""
4086 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4087 QMakeVar add CONFIG use_libmysqlclient_r
4088 if [ "$CFG_SQL_mysql" = "auto" ]; then
4089 CFG_SQL_mysql=plugin
4091 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4092 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4093 if [ "$CFG_SQL_mysql" = "auto" ]; then
4094 CFG_SQL_mysql=plugin
4097 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4098 echo "MySQL support cannot be enabled due to functionality tests!"
4099 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4100 echo " If you believe this message is in error you may use the continue"
4101 echo " switch (-continue) to $0 to continue."
4106 QT_LFLAGS_MYSQL_R=""
4114 if [ "$CFG_SQL_psql" != "no" ]; then
4115 # Be careful not to use native pg_config when cross building.
4116 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4117 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4118 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4120 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4121 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4122 # But, respect PSQL_LIBS if set
4123 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4124 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4125 if [ "$CFG_SQL_psql" = "auto" ]; then
4129 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4130 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4131 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4132 echo " If you believe this message is in error you may use the continue"
4133 echo " switch (-continue) to $0 to continue."
4144 if [ "$CFG_SQL_odbc" != "no" ]; then
4145 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4146 if [ "$CFG_SQL_odbc" = "auto" ]; then
4150 if compileTest unix/iodbc "iODBC"; then
4151 QT_LFLAGS_ODBC="-liodbc"
4152 if [ "$CFG_SQL_odbc" = "auto" ]; then
4156 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4157 echo "ODBC support cannot be enabled due to functionality tests!"
4158 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4159 echo " If you believe this message is in error you may use the continue"
4160 echo " switch (-continue) to $0 to continue."
4170 if [ "$CFG_SQL_oci" != "no" ]; then
4171 if compileTest unix/oci "OCI"; then
4172 if [ "$CFG_SQL_oci" = "auto" ]; then
4176 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4177 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4178 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4179 echo " If you believe this message is in error you may use the continue"
4180 echo " switch (-continue) to $0 to continue."
4189 if [ "$CFG_SQL_tds" != "no" ]; then
4190 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4191 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4192 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4193 if [ "$CFG_SQL_tds" = "auto" ]; then
4197 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4198 echo "TDS support cannot be enabled due to functionality tests!"
4199 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4200 echo " If you believe this message is in error you may use the continue"
4201 echo " switch (-continue) to $0 to continue."
4210 if [ "$CFG_SQL_db2" != "no" ]; then
4211 if compileTest unix/db2 "DB2"; then
4212 if [ "$CFG_SQL_db2" = "auto" ]; then
4216 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4217 echo "ODBC support cannot be enabled due to functionality tests!"
4218 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4219 echo " If you believe this message is in error you may use the continue"
4220 echo " switch (-continue) to $0 to continue."
4229 if [ "$CFG_SQL_ibase" != "no" ]; then
4230 if compileTest unix/ibase "InterBase"; then
4231 if [ "$CFG_SQL_ibase" = "auto" ]; then
4232 CFG_SQL_ibase=plugin
4235 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4236 echo "InterBase support cannot be enabled due to functionality tests!"
4237 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4238 echo " If you believe this message is in error you may use the continue"
4239 echo " switch (-continue) to $0 to continue."
4248 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4249 if compileTest unix/sqlite2 "SQLite2"; then
4250 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4251 CFG_SQL_sqlite2=plugin
4254 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4255 echo "SQLite2 support cannot be enabled due to functionality tests!"
4256 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4257 echo " If you believe this message is in error you may use the continue"
4258 echo " switch (-continue) to $0 to continue."
4267 if [ "$CFG_SQL_sqlite" != "no" ]; then
4268 SQLITE_AUTODETECT_FAILED="no"
4269 if [ "$CFG_SQLITE" = "system" ]; then
4270 if [ -n "$PKG_CONFIG" ]; then
4271 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4272 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4275 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4277 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4278 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4279 CFG_SQL_sqlite=plugin
4281 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4283 SQLITE_AUTODETECT_FAILED="yes"
4286 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4287 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4288 CFG_SQL_sqlite=plugin
4291 SQLITE_AUTODETECT_FAILED="yes"
4295 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4296 echo "SQLite support cannot be enabled due to functionality tests!"
4297 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4298 echo " If you believe this message is in error you may use the continue"
4299 echo " switch (-continue) to $0 to continue."
4305 if [ "$OPT_VERBOSE" = "yes" ]; then
4306 echo "unknown SQL driver: $_SQLDR"
4312 # auto-detect NIS support
4313 if [ "$CFG_NIS" != "no" ]; then
4314 if compileTest unix/nis "NIS"; then
4317 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4318 echo "NIS support cannot be enabled due to functionality tests!"
4319 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4320 echo " If you believe this message is in error you may use the continue"
4321 echo " switch (-continue) to $0 to continue."
4329 # auto-detect CUPS support
4330 if [ "$CFG_CUPS" != "no" ]; then
4331 if compileTest unix/cups "Cups"; then
4334 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4335 echo "Cups support cannot be enabled due to functionality tests!"
4336 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4337 echo " If you believe this message is in error you may use the continue"
4338 echo " switch (-continue) to $0 to continue."
4346 # auto-detect iconv(3) support
4347 if [ "$CFG_ICONV" != "no" ]; then
4348 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4350 elif compileTest unix/iconv "POSIX iconv"; then
4352 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4354 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4357 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4358 echo "Iconv support cannot be enabled due to functionality tests!"
4359 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4360 echo " If you believe this message is in error you may use the continue"
4361 echo " switch (-continue) to $0 to continue."
4369 # auto-detect libdbus-1 support
4370 if [ "$CFG_DBUS" != "no" ]; then
4371 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4372 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4373 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4375 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4376 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4377 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4378 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4380 if [ "$CFG_DBUS" = "auto" ]; then
4382 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4383 # CFG_DBUS is "yes" or "linked" here
4385 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4386 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4387 echo " If you believe this message is in error you may use the continue"
4388 echo " switch (-continue) to $0 to continue."
4394 # auto-detect Glib support
4395 if [ "$CFG_GLIB" != "no" ]; then
4396 if [ -n "$PKG_CONFIG" ]; then
4397 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4398 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4400 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4402 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4403 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4405 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4406 echo "Glib support cannot be enabled due to functionality tests!"
4407 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4408 echo " If you believe this message is in error you may use the continue"
4409 echo " switch (-continue) to $0 to continue."
4417 # auto-detect GTK style support
4418 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4419 if [ -n "$PKG_CONFIG" ]; then
4420 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4421 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4423 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4425 QT_CONFIG="$QT_CONFIG gtkstyle"
4426 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4427 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4429 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4430 echo "Gtk theme support cannot be enabled due to functionality tests!"
4431 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4432 echo " If you believe this message is in error you may use the continue"
4433 echo " switch (-continue) to $0 to continue."
4439 elif [ "$CFG_GLIB" = "no" ]; then
4444 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4445 if [ -n "$PKG_CONFIG" ]; then
4446 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4447 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4449 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4451 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4452 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4454 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4455 echo "Gstreamer support cannot be enabled due to functionality tests!"
4456 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4457 echo " If you believe this message is in error you may use the continue"
4458 echo " switch (-continue) to $0 to continue."
4464 elif [ "$CFG_GLIB" = "no" ]; then
4468 # auto-detect libicu support
4469 if [ "$CFG_ICU" != "no" ]; then
4470 if compileTest unix/icu "ICU"; then
4471 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4473 if [ "$CFG_ICU" = "auto" ]; then
4475 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4478 echo "The ICU library support cannot be enabled."
4479 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4480 echo " If you believe this message is in error you may use the continue"
4481 echo " switch (-continue) to $0 to continue."
4487 # Auto-detect PulseAudio support
4488 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4489 if [ -n "$PKG_CONFIG" ]; then
4490 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4491 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4493 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4495 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4496 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4498 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4499 echo "PulseAudio support cannot be enabled due to functionality tests!"
4500 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4501 echo " If you believe this message is in error you may use the continue"
4502 echo " switch (-continue) to $0 to continue."
4511 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4512 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4513 if [ "$CFG_GUI" = "no" ]; then
4514 if [ "$CFG_OPENGL" = "auto" ]; then
4517 if [ "$CFG_OPENGL" != "no" ]; then
4518 echo "OpenGL enabled, but GUI disabled."
4519 echo " You might need to either enable the GUI or disable OpenGL"
4523 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4524 if compileTest x11/opengl "OpenGL"; then
4526 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4529 if [ "$CFG_OPENGL" = "yes" ]; then
4530 echo "All the OpenGL functionality tests failed!"
4531 echo " You might need to modify the include and library search paths by editing"
4532 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4533 echo " ${XQMAKESPEC}."
4540 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4541 if [ "$CFG_OPENGL" = "desktop" ]; then
4542 compileTest x11/glxfbconfig "OpenGL"
4543 if [ $? != "0" ]; then
4544 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4551 elif [ "$CFG_OPENGL" = "es2" ]; then
4553 compileTest unix/opengles2 "OpenGL ES 2.x"
4554 if [ $? != "0" ]; then
4555 echo "The OpenGL ES 2.0 functionality test failed!"
4556 echo " You might need to modify the include and library search paths by editing"
4557 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4558 echo " ${XQMAKESPEC}."
4561 elif [ "$CFG_OPENGL" = "desktop" ]; then
4562 # Desktop OpenGL support
4563 compileTest x11/opengl "OpenGL"
4564 if [ $? != "0" ]; then
4565 echo "The OpenGL functionality test failed!"
4566 echo " You might need to modify the include and library search paths by editing"
4567 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4568 echo " ${XQMAKESPEC}."
4573 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4574 compileTest x11/glxfbconfig "OpenGL"
4575 if [ $? != "0" ]; then
4576 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4583 fi # X11/MINGW OpenGL
4585 if [ "$BUILD_ON_MAC" = "yes" ]; then
4586 if [ "$CFG_COREWLAN" = "auto" ]; then
4587 if compileTest mac/corewlan "CoreWlan"; then
4595 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4596 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4597 if compileTest unix/opengldesktop "OpenGL"; then
4599 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4602 if [ "$CFG_OPENGL" = "yes" ]; then
4603 echo "All the OpenGL functionality tests failed!"
4604 echo " You might need to modify the include and library search paths by editing"
4605 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4606 echo " ${XQMAKESPEC}."
4611 elif [ "$CFG_OPENGL" = "es2" ]; then
4613 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4614 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4615 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4616 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4617 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4618 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4619 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4620 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4623 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4624 if [ $? != "0" ]; then
4625 echo "The OpenGL ES 2.0 functionality test failed!"
4626 echo " You might need to modify the include and library search paths by editing"
4627 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4628 echo " ${XQMAKESPEC}."
4631 elif [ "$CFG_OPENGL" = "desktop" ]; then
4632 # Desktop OpenGL support
4633 compileTest unix/opengldesktop "OpenGL"
4634 if [ $? != "0" ]; then
4635 echo "The OpenGL functionality test failed!"
4636 echo " You might need to modify the include and library search paths by editing"
4637 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4638 echo " ${XQMAKESPEC}."
4643 # auto-detect FontConfig support
4644 if [ "$CFG_FONTCONFIG" != "no" ]; then
4645 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4646 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4647 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4649 QT_CFLAGS_FONTCONFIG=
4650 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4652 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4653 QT_CONFIG="$QT_CONFIG fontconfig"
4654 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4655 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4657 CFG_LIBFREETYPE=system
4664 # Save these for a check later
4665 ORIG_CFG_XCB="$CFG_XCB"
4666 ORIG_CFG_EGLFS="$CFG_EGLFS"
4667 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4668 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4669 ORIG_CFG_KMS="$CFG_KMS"
4671 if [ "$CFG_LIBUDEV" != "no" ]; then
4672 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4673 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4674 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4675 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4676 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4678 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4680 QT_CONFIG="$QT_CONFIG libudev"
4681 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4682 echo "The libudev functionality test failed!"
4688 if [ "$CFG_LIBUDEV" = "no" ]; then
4689 QMakeVar add DEFINES QT_NO_LIBUDEV
4692 if [ "$CFG_EVDEV" != "no" ]; then
4693 if compileTest unix/evdev "evdev"; then
4695 QT_CONFIG="$QT_CONFIG evdev"
4696 elif [ "$CFG_EVDEV" = "yes" ]; then
4697 echo "The evdev functionality test failed!"
4703 if [ "$CFG_EVDEV" = "no" ]; then
4704 QMakeVar add DEFINES QT_NO_EVDEV
4707 # Check we actually have X11 :-)
4708 if compileTest x11/xlib "XLib"; then
4709 QT_CONFIG="$QT_CONFIG xlib"
4712 # auto-detect Xrender support
4713 if [ "$CFG_XRENDER" != "no" ]; then
4714 if compileTest x11/xrender "Xrender"; then
4716 QT_CONFIG="$QT_CONFIG xrender"
4718 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4719 echo "Xrender support cannot be enabled due to functionality tests!"
4720 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4721 echo " If you believe this message is in error you may use the continue"
4722 echo " switch (-continue) to $0 to continue."
4730 if [ "$CFG_XCB" != "no" ]; then
4731 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4732 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4733 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4735 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4737 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4738 QT_CONFIG="$QT_CONFIG xcb-render"
4741 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4743 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4746 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4747 QT_CONFIG="$QT_CONFIG xcb-xlib"
4750 # auto-detect XInput2 support. Needed by xcb too.
4751 if [ "$CFG_XINPUT2" != "no" ]; then
4752 if compileTest x11/xinput2 "XInput2"; then
4756 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4757 echo "XInput2 support cannot be enabled due to functionality tests!"
4758 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4759 echo " If you believe this message is in error you may use the continue"
4760 echo " switch (-continue) to $0 to continue."
4768 if [ "$CFG_XCB" = "yes" ]; then
4769 echo "The XCB test failed!"
4770 echo " You might need to install dependency packages."
4771 echo " See src/plugins/platforms/xcb/README."
4777 if [ "$CFG_XCB" = "no" ]; then
4778 QMakeVar add DEFINES QT_NO_XCB
4781 if [ "$CFG_DIRECTFB" != "no" ]; then
4782 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4783 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4784 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4785 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4787 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4788 echo " DirectFB support cannot be enabled due to functionality tests!"
4789 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4790 echo " If you believe this message is in error you may use the continue"
4791 echo " switch (-continue) to $0 to continue."
4801 if [ "$CFG_LINUXFB" != "no" ]; then
4802 if compileTest qpa/linuxfb "LinuxFB"; then
4804 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4805 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4806 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4807 echo " If you believe this message is in error you may use the continue"
4808 echo " switch (-continue) to $0 to continue."
4815 if [ "$CFG_KMS" != "no" ]; then
4816 if compileTest qpa/kms "KMS"; then
4818 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4819 echo " KMS support cannot be enabled due to functionality tests!"
4820 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4821 echo " If you believe this message is in error you may use the continue"
4822 echo " switch (-continue) to $0 to continue."
4829 # Detect libxkbcommon
4830 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4831 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4832 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4833 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4834 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4836 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4840 if [ "$CFG_EGL" != "no" ]; then
4841 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4842 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4843 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4844 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4845 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4846 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4847 fi # detect EGL support
4848 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4850 elif [ "$CFG_EGL" = "yes" ]; then
4851 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4852 echo " You might need to modify the include and library search paths by editing"
4853 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4858 elif [ "$CFG_OPENGL" = "desktop" ]; then
4859 if [ "$CFG_EGL" = "yes" ]; then
4860 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4861 echo "Either disable EGL support or enable OpenGL ES support."
4867 if [ "$CFG_EGLFS" != "no" ]; then
4868 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4869 CFG_EGLFS="$CFG_EGL"
4875 if [ "$CFG_KMS" = "yes" ]; then
4876 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4883 # Detect accessibility support
4884 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4885 if [ "$CFG_XCB" = "no" ]; then
4886 CFG_ACCESSIBILITY=yes
4888 # linux/xcb accessibility needs dbus and atspi-2
4889 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4890 CFG_ACCESSIBILITY=yes
4892 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4893 CFG_ACCESSIBILITY=no
4895 echo "Accessibility support needs pkg-config and libatspi2."
4902 # Determine the default QPA platform
4903 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4905 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4906 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4907 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4908 QT_QPA_DEFAULT_PLATFORM="windows"
4909 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4910 QT_QPA_DEFAULT_PLATFORM="cocoa"
4911 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4912 QT_QPA_DEFAULT_PLATFORM="qnx"
4914 QT_QPA_DEFAULT_PLATFORM="xcb"
4919 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4920 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4921 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4922 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4924 if [ "$CFG_DIRECTFB" = "yes" ]; then
4925 QT_CONFIG="$QT_CONFIG directfb"
4926 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4927 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4929 if [ "$CFG_LINUXFB" = "yes" ]; then
4930 QT_CONFIG="$QT_CONFIG linuxfb"
4932 if [ "$CFG_KMS" = "yes" ]; then
4933 QT_CONFIG="$QT_CONFIG kms"
4936 if [ "$BUILD_ON_MAC" = "yes" ]; then
4937 if compileTest mac/coreservices "CoreServices"; then
4938 QT_CONFIG="$QT_CONFIG coreservices"
4940 QMakeVar add DEFINES QT_NO_CORESERVICES
4944 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4945 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4946 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4947 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4948 echo "No QPA platform plugin enabled!"
4949 echo " If you really want to build without a QPA platform plugin you must pass"
4950 echo " -no-qpa-platform-guard to configure. Doing this will"
4951 echo " produce a Qt that can not run GUI applications."
4952 echo " The dependencies needed for xcb to build are listed in"
4953 echo " src/plugins/platforms/xcb/README"
4960 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4961 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4962 if compileTest unix/freetype "FreeType"; then
4963 CFG_LIBFREETYPE=system
4969 if ! compileTest unix/stl "STL" &&
4970 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4971 echo "STL functionality check failed! Cannot build Qt with this STL library."
4972 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4977 # detect POSIX clock_gettime()
4978 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4979 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
4980 CFG_CLOCK_GETTIME=yes
4982 CFG_CLOCK_GETTIME=no
4986 # detect POSIX monotonic clocks
4987 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4988 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
4989 CFG_CLOCK_MONOTONIC=yes
4991 CFG_CLOCK_MONOTONIC=no
4993 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4994 CFG_CLOCK_MONOTONIC=no
4998 if [ "$CFG_MREMAP" = "auto" ]; then
4999 if compileTest unix/mremap "mremap"; then
5006 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5007 if [ "$CFG_GETADDRINFO" != "no" ]; then
5008 if compileTest unix/getaddrinfo "getaddrinfo"; then
5011 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5012 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5013 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5014 echo " If you believe this message is in error you may use the continue"
5015 echo " switch (-continue) to $0 to continue."
5023 # find if the platform provides inotify
5024 if [ "$CFG_INOTIFY" != "no" ]; then
5025 if compileTest unix/inotify "inotify"; then
5028 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5029 echo "inotify support cannot be enabled due to functionality tests!"
5030 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5031 echo " If you believe this message is in error you may use the continue"
5032 echo " switch (-continue) to $0 to continue."
5040 # find if the platform provides if_nametoindex (ipv6 interface name support)
5041 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5042 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5045 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5046 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5047 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5048 echo " If you believe this message is in error you may use the continue"
5049 echo " switch (-continue) to $0 to continue."
5057 # find if the platform provides getifaddrs (network interface enumeration)
5058 if [ "$CFG_GETIFADDRS" != "no" ]; then
5059 if compileTest unix/getifaddrs "getifaddrs"; then
5062 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5063 echo "getifaddrs support cannot be enabled due to functionality tests!"
5064 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5065 echo " If you believe this message is in error you may use the continue"
5066 echo " switch (-continue) to $0 to continue."
5075 if [ "$CFG_OPENSSL" != "no" ]; then
5076 if compileTest unix/openssl "OpenSSL"; then
5077 if [ "$CFG_OPENSSL" = "auto" ]; then
5081 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5082 echo "OpenSSL support cannot be enabled due to functionality tests!"
5083 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5084 echo " If you believe this message is in error you may use the continue"
5085 echo " switch (-continue) to $0 to continue."
5094 if [ "$CFG_PCRE" != "qt" ]; then
5095 if compileTest unix/pcre "PCRE"; then
5098 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5099 echo "PCRE support cannot be enabled due to functionality tests!"
5100 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5101 echo " If you believe this message is in error you may use the continue"
5102 echo " switch (-continue) to $0 to continue."
5110 # detect OpenVG support
5111 if [ "$CFG_OPENVG" != "no" ]; then
5112 if compileTest unix/openvg "OpenVG"; then
5113 if [ "$CFG_OPENVG" = "auto" ]; then
5116 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5117 if [ "$CFG_OPENVG" = "auto" ]; then
5120 CFG_OPENVG_ON_OPENGL=yes
5121 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5122 if [ "$CFG_OPENVG" = "auto" ]; then
5125 CFG_OPENVG_LC_INCLUDES=yes
5126 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5127 if [ "$CFG_OPENVG" = "auto" ]; then
5130 CFG_OPENVG_LC_INCLUDES=yes
5131 CFG_OPENVG_ON_OPENGL=yes
5133 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5134 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5135 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5136 echo " If you believe this message is in error you may use the continue"
5137 echo " switch (-continue) to $0 to continue."
5143 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5144 CFG_OPENVG_SHIVA=yes
5148 if [ "$CFG_ALSA" = "auto" ]; then
5149 if compileTest unix/alsa "alsa"; then
5156 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5157 if [ "$CFG_ARCH" = "arm" ]; then
5158 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5159 if [ $? != "0" ]; then
5160 CFG_JAVASCRIPTCORE_JIT=no
5163 case "$XPLATFORM" in
5165 CFG_JAVASCRIPTCORE_JIT=no
5171 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5172 QMakeVar set JAVASCRIPTCORE_JIT yes
5173 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5174 QMakeVar set JAVASCRIPTCORE_JIT no
5177 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5178 CFG_AUDIO_BACKEND=yes
5181 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5182 echo "Warning: largefile support cannot be disabled for win32."
5186 #-------------------------------------------------------------------------------
5187 # ask for all that hasn't been auto-detected or specified in the arguments
5188 #-------------------------------------------------------------------------------
5190 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5192 # disable accessibility
5193 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5194 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5196 QT_CONFIG="$QT_CONFIG accessibility"
5200 if [ "$CFG_EGL" = "yes" ]; then
5201 QT_CONFIG="$QT_CONFIG egl"
5203 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5207 if [ "$CFG_EGLFS" = "yes" ]; then
5208 QT_CONFIG="$QT_CONFIG eglfs"
5210 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5214 if [ "$CFG_OPENVG" = "no" ]; then
5215 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5217 QT_CONFIG="$QT_CONFIG openvg"
5218 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5219 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5221 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5222 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5224 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5225 QT_CONFIG="$QT_CONFIG shivavg"
5226 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5231 if [ "$CFG_OPENGL" = "no" ]; then
5232 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5234 QT_CONFIG="$QT_CONFIG opengl"
5237 if [ "$CFG_OPENGL" = "es2" ]; then
5238 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5241 if [ "$CFG_OPENGL" = "es2" ]; then
5242 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5243 QT_CONFIG="$QT_CONFIG opengles2"
5246 # build up the variables for output
5247 if [ "$CFG_DEBUG" = "yes" ]; then
5248 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5249 elif [ "$CFG_DEBUG" = "no" ]; then
5250 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5252 if [ "$CFG_SHARED" = "yes" ]; then
5253 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5254 QT_CONFIG="$QT_CONFIG shared"
5255 elif [ "$CFG_SHARED" = "no" ]; then
5256 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5257 QT_CONFIG="$QT_CONFIG static"
5260 #FIXME: qpa is implicit this should all be removed
5261 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5262 QT_CONFIG="$QT_CONFIG qpa"
5263 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5264 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5266 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5267 # Do not set this here for Windows. Let qmake do it so
5268 # debug and release precompiled headers are kept separate.
5269 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5271 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5272 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5273 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5274 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5275 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5276 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5278 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5279 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5281 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5282 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5283 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5284 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5285 QMakeVar add QMAKE_CFLAGS -g
5286 QMakeVar add QMAKE_CXXFLAGS -g
5287 QT_CONFIG="$QT_CONFIG separate_debug_info"
5289 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5290 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5292 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5293 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5294 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5295 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5296 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5297 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5298 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5299 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5300 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5301 if [ "$CFG_ARCH" = "mips" ]; then
5302 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5303 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5305 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5306 QT_CONFIG="$QT_CONFIG clock-gettime"
5308 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5309 QT_CONFIG="$QT_CONFIG clock-monotonic"
5311 if [ "$CFG_MREMAP" = "yes" ]; then
5312 QT_CONFIG="$QT_CONFIG mremap"
5314 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5315 QT_CONFIG="$QT_CONFIG getaddrinfo"
5317 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5318 QT_CONFIG="$QT_CONFIG ipv6ifname"
5320 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5321 QT_CONFIG="$QT_CONFIG getifaddrs"
5323 if [ "$CFG_INOTIFY" = "yes" ]; then
5324 QT_CONFIG="$QT_CONFIG inotify"
5326 if [ "$CFG_LIBJPEG" = "no" ]; then
5328 elif [ "$CFG_LIBJPEG" = "system" ]; then
5329 QT_CONFIG="$QT_CONFIG system-jpeg"
5331 if [ "$CFG_JPEG" = "no" ]; then
5332 QT_CONFIG="$QT_CONFIG no-jpeg"
5333 elif [ "$CFG_JPEG" = "yes" ]; then
5334 QT_CONFIG="$QT_CONFIG jpeg"
5336 if [ "$CFG_LIBPNG" = "no" ]; then
5339 if [ "$CFG_LIBPNG" = "system" ]; then
5340 QT_CONFIG="$QT_CONFIG system-png"
5342 if [ "$CFG_PNG" = "no" ]; then
5343 QT_CONFIG="$QT_CONFIG no-png"
5344 elif [ "$CFG_PNG" = "yes" ]; then
5345 QT_CONFIG="$QT_CONFIG png"
5347 if [ "$CFG_GIF" = "no" ]; then
5348 QT_CONFIG="$QT_CONFIG no-gif"
5349 elif [ "$CFG_GIF" = "yes" ]; then
5350 QT_CONFIG="$QT_CONFIG gif"
5352 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5353 QT_CONFIG="$QT_CONFIG no-freetype"
5354 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5355 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5356 QT_CONFIG="$QT_CONFIG system-freetype"
5358 QT_CONFIG="$QT_CONFIG freetype"
5360 if [ "$CFG_GUI" = "auto" ]; then
5363 if [ "$CFG_GUI" = "no" ]; then
5364 QT_CONFIG="$QT_CONFIG no-gui"
5367 if [ "$CFG_WIDGETS" = "no" ]; then
5368 QT_CONFIG="$QT_CONFIG no-widgets"
5369 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5372 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5373 #On Mac we implicitly link against libz, so we
5374 #never use the 3rdparty stuff.
5375 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5377 if [ "$CFG_ZLIB" = "yes" ]; then
5378 QT_CONFIG="$QT_CONFIG zlib"
5379 elif [ "$CFG_ZLIB" = "system" ]; then
5380 QT_CONFIG="$QT_CONFIG system-zlib"
5383 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5384 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5385 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5386 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5387 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5388 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5389 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5390 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5391 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5392 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5393 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5394 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5395 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5396 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5398 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5399 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5401 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5402 if [ "$CFG_RPATH" = "yes" ]; then
5403 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5405 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5406 if [ -n "$RPATH_FLAGS" ]; then
5408 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5412 elif [ "$CFG_RPATH" = "yes" ]; then
5413 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5417 if [ -n "$RPATH_FLAGS" ]; then
5418 # add the user defined rpaths
5419 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5422 if [ "$CFG_RPATH" = "yes" ]; then
5423 QT_CONFIG="$QT_CONFIG rpath"
5426 if [ '!' -z "$I_FLAGS" ]; then
5427 # add the user define include paths
5428 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5429 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5432 if [ '!' -z "$W_FLAGS" ]; then
5433 # add the user defined warning flags
5434 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5435 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5436 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5439 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5440 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5441 # Follow default behavior of configure.exe by overriding with "rtti".
5442 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5445 if [ "$CFG_ALSA" = "yes" ]; then
5446 QT_CONFIG="$QT_CONFIG alsa"
5449 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5450 QT_CONFIG="$QT_CONFIG pulseaudio"
5453 if [ "$CFG_COREWLAN" = "yes" ]; then
5454 QT_CONFIG="$QT_CONFIG corewlan"
5457 if [ "$CFG_ICU" = "yes" ]; then
5458 QT_CONFIG="$QT_CONFIG icu"
5461 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5462 QT_CONFIG="$QT_CONFIG force_asserts"
5465 if [ "$CFG_PCRE" = "qt" ]; then
5466 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5470 # Some Qt modules are too advanced in C++ for some old compilers
5471 # Detect here the platforms where they are known to work.
5473 # See Qt documentation for more information on which features are
5474 # supported and on which compilers.
5476 canBuildQtConcurrent="yes"
5477 canUseV8Snapshot="yes"
5479 case "$XPLATFORM" in
5481 # PA-RISC's assembly is too limited
5482 # gcc 3.4 on that platform can't build QtXmlPatterns
5483 # the assembly it generates cannot be compiled
5485 # Check gcc's version
5486 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5490 canBuildQtXmlPatterns="no"
5494 canBuildQtXmlPatterns="no"
5498 unsupported/vxworks-*-g++*)
5501 unsupported/vxworks-*-dcc*)
5503 canBuildQtXmlPatterns="no"
5506 # Check gcc's version
5507 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5515 canBuildQtXmlPatterns="no"
5520 # Check the compiler version
5521 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5524 canBuildQtXmlPatterns="no"
5525 canBuildQtConcurrent="no"
5529 canBuildQtConcurrent="no"
5535 canBuildQtXmlPatterns="no"
5536 canBuildQtConcurrent="no"
5542 # Get the xlC version
5543 cat > xlcver.c <<EOF
5547 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5552 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5553 xlcver=`./xlcver 2>/dev/null`
5556 if [ "$OPT_VERBOSE" = "yes" ]; then
5557 if [ -n "$xlcver" ]; then
5558 echo Found IBM xlC version: $xlcver.
5560 echo Could not determine IBM xlC version, assuming oldest supported.
5567 canBuildQtXmlPatterns="no"
5568 canBuildQtConcurrent="no"
5572 canBuildQtConcurrent="no"
5578 canBuildQtConcurrent="no"
5582 if [ "$CFG_GUI" = "no" ]; then
5583 # WebKit requires QtGui
5587 if [ "$CFG_SHARED" = "no" ]; then
5589 echo "WARNING: Using static linking will disable the WebKit module."
5594 CFG_CONCURRENT="yes"
5595 if [ "$canBuildQtConcurrent" = "no" ]; then
5596 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5599 QT_CONFIG="$QT_CONFIG concurrent"
5603 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5604 QT_CONFIG="$QT_CONFIG audio-backend"
5608 if [ "$CFG_WEBKIT" = "debug" ]; then
5609 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5613 QT_CONFIG="$QT_CONFIG v8"
5614 # Detect snapshot support
5615 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5616 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5619 *) canUseV8Snapshot="no"
5623 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5624 # QEMU crashes when building inside Scratchbox with an ARM target
5625 canUseV8Snapshot="no"
5628 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5629 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5631 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5632 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5635 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5636 QT_CONFIG="$QT_CONFIG v8snapshot"
5640 if [ "$CFG_QML_DEBUG" = "no" ]; then
5641 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5644 case "$QMAKE_CONF_COMPILER" in
5647 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5649 case "$COMPILER_VERSION" in
5651 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5652 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5653 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5656 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5657 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5658 QT_GCC_PATCH_VERSION=0
5668 #-------------------------------------------------------------------------------
5669 # part of configuration information goes into qconfig.h
5670 #-------------------------------------------------------------------------------
5672 case "$CFG_QCONFIG" in
5674 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5677 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5678 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5679 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5680 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5681 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5682 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5684 echo "#endif" >>"$tmpconfig"
5688 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5692 # define QT_EDITION $QT_EDITION
5696 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5697 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5699 if [ "$CFG_SHARED" = "no" ]; then
5700 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5701 /* Qt was configured for a static build */
5702 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5709 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5710 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5713 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5714 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5717 if [ "$BUILD_ON_MAC" = "yes" ]; then
5718 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5719 #if defined(__LP64__)
5720 # define QT_POINTER_SIZE 8
5722 # define QT_POINTER_SIZE 4
5726 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5727 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5730 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5731 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5732 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5735 # Add compiler sub-architecture support
5736 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5737 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5738 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5740 MIPS_DSP MIPS_DSPR2; do
5741 eval "VAL=\$CFG_$SUBARCH"
5744 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5745 >>"$outpath/src/corelib/global/qconfig.h.new"
5750 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5752 if [ "$CFG_DEV" = "yes" ]; then
5753 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5756 # Add QPA to config.h
5757 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5759 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5760 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5763 # Add turned on SQL drivers
5764 for DRIVER in $CFG_SQL_AVAILABLE; do
5765 eval "VAL=\$CFG_SQL_$DRIVER"
5768 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5769 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5770 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5773 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5778 QMakeVar set sql-drivers "$SQL_DRIVERS"
5779 QMakeVar set sql-plugins "$SQL_PLUGINS"
5781 # Add other configuration options to the qconfig.h file
5782 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5783 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5784 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5785 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5786 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5788 # X11/Unix/Mac only configs
5789 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5790 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5791 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5792 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5793 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5794 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5795 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5796 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5797 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5798 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5799 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5800 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5801 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5802 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5804 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5805 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5806 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5807 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5808 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5809 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5810 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5811 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5812 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5813 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5814 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5815 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5816 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5818 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5819 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5820 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5821 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5822 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5823 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5824 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5825 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5827 # sort QCONFIG_FLAGS for neatness if we can
5828 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5829 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5831 if [ -n "$QCONFIG_FLAGS" ]; then
5832 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5833 #ifndef QT_BOOTSTRAPPED
5836 for cfg in $QCONFIG_FLAGS; do
5837 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5838 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5839 # figure out define logic, so we can output the correct
5840 # ifdefs to override the global defines in a project
5842 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5843 # QT_NO_option can be forcefully turned on by QT_option
5844 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5845 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5846 # QT_option can be forcefully turned off by QT_NO_option
5847 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5850 if [ -z $cfgdNeg ]; then
5851 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5858 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5859 #if defined($cfgd) && defined($cfgdNeg)
5861 #elif !defined($cfgd) && !defined($cfgdNeg)
5868 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5869 #endif // QT_BOOTSTRAPPED
5874 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5875 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5876 #define QT_VISIBILITY_AVAILABLE
5881 if [ -n "$QT_LIBINFIX" ]; then
5882 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5883 #define QT_LIBINFIX "$QT_LIBINFIX"
5888 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5890 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5891 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5892 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5894 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5895 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5896 chmod -w "$outpath/src/corelib/global/qconfig.h"
5897 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5898 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5902 #-------------------------------------------------------------------------------
5903 # save configuration into qconfig.pri
5904 #-------------------------------------------------------------------------------
5905 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5906 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5907 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5908 if [ "$CFG_DEBUG" = "yes" ]; then
5909 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5910 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5911 QT_CONFIG="$QT_CONFIG release"
5913 QT_CONFIG="$QT_CONFIG debug"
5914 elif [ "$CFG_DEBUG" = "no" ]; then
5915 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5916 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5917 QT_CONFIG="$QT_CONFIG debug"
5919 QT_CONFIG="$QT_CONFIG release"
5921 if [ "$CFG_FRAMEWORK" = "no" ]; then
5922 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5924 QT_CONFIG="$QT_CONFIG qt_framework"
5925 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5927 if [ "$CFG_DEV" = "yes" ]; then
5928 QT_CONFIG="$QT_CONFIG private_tests"
5931 cat >>"$QTCONFIG.tmp" <<EOF
5933 CONFIG += $QTCONFIG_CONFIG
5935 QT_HOST_ARCH = $CFG_HOST_ARCH
5936 QT_CPU_FEATURES = $CFG_CPUFEATURES
5937 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5938 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5939 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5940 QT_EDITION = $Edition
5941 QT_CONFIG += $QT_CONFIG
5944 QT_VERSION = $QT_VERSION
5945 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5946 QT_MINOR_VERSION = $QT_MINOR_VERSION
5947 QT_PATCH_VERSION = $QT_PATCH_VERSION
5950 QT_LIBINFIX = $QT_LIBINFIX
5951 QT_NAMESPACE = $QT_NAMESPACE
5955 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5956 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5957 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5958 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5959 echo >> "$QTCONFIG.tmp"
5962 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5963 echo "# sysroot" >>"$QTCONFIG.tmp"
5964 echo "!host_build {" >>"$QTCONFIG.tmp"
5965 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5966 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5967 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5968 echo "}" >> "$QTCONFIG.tmp"
5969 echo >> "$QTCONFIG.tmp"
5971 if [ -n "$RPATH_FLAGS" ]; then
5972 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5974 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5975 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5976 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5977 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5980 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5981 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5982 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5985 # replace qconfig.pri if it differs from the newly created temp file
5986 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5987 rm -f "$QTCONFIG.tmp"
5989 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5992 #-------------------------------------------------------------------------------
5993 # save configuration into qmodule.pri
5994 #-------------------------------------------------------------------------------
5995 QTMODULE="$outpath/mkspecs/qmodule.pri"
5997 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5998 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6000 if [ -n "$QT_CFLAGS_PSQL" ]; then
6001 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6003 if [ -n "$QT_LFLAGS_PSQL" ]; then
6004 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6006 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6007 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6009 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6010 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6012 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6013 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6015 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6016 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6018 if [ -n "$QT_LFLAGS_ODBC" ]; then
6019 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6021 if [ -n "$QT_LFLAGS_TDS" ]; then
6022 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6025 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6026 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6029 #dump in the OPENSSL_LIBS info
6030 if [ '!' -z "$OPENSSL_LIBS" ]; then
6031 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6032 elif [ "$CFG_OPENSSL" = "linked" ]; then
6033 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6036 #dump in the SDK info
6037 if [ '!' -z "$CFG_SDK" ]; then
6038 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6042 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6043 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6045 # replace qmodule.pri if it differs from the newly created temp file
6046 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6047 rm -f "$QTMODULE.tmp"
6049 mv -f "$QTMODULE.tmp" "$QTMODULE"
6052 #-------------------------------------------------------------------------------
6053 # save configuration into .qmake.cache
6054 #-------------------------------------------------------------------------------
6056 CACHEFILE="$outpath/.qmake.cache"
6057 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6058 cat >>"$CACHEFILE.tmp" <<EOF
6060 QT_SOURCE_TREE = \$\$quote($relpath)
6061 QT_BUILD_TREE = \$\$quote($outpath)
6063 include(\$\$PWD/mkspecs/qmodule.pri)
6064 CONFIG += dylib fix_output_dirs no_private_qt_headers_warning QTDIR_build
6068 # replace .qmake.cache if it differs from the newly created temp file
6069 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6070 rm -f "$CACHEFILE.tmp"
6072 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6075 #-------------------------------------------------------------------------------
6076 # give feedback on configuration
6077 #-------------------------------------------------------------------------------
6078 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6081 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6082 echo "Build type: $PLATFORM"
6084 echo "Building on: $PLATFORM"
6085 echo "Building for: $XPLATFORM"
6088 # the missing space before $CFG_FEATURES is intentional
6089 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6090 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6092 if [ -n "$PLATFORM_NOTES" ]; then
6093 echo "Platform notes:"
6094 echo "$PLATFORM_NOTES"
6099 if [ "$OPT_VERBOSE" = "yes" ]; then
6100 echo $ECHO_N "qmake vars .......... $ECHO_C"
6101 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6102 echo "qmake switches ......... $QMAKE_SWITCHES"
6105 echo "Build .................. $CFG_BUILD_PARTS"
6106 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6107 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6108 echo "Debug .................. yes (combined)"
6109 if [ "$CFG_DEBUG" = "yes" ]; then
6110 echo "Default Link ........... debug"
6112 echo "Default Link ........... release"
6115 echo "Debug .................. $CFG_DEBUG"
6117 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6118 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6120 echo "C++11 support .......... $CFG_CXX11"
6121 if [ -n "$PKG_CONFIG" ]; then
6122 echo "pkg-config ............. yes"
6124 echo "pkg-config ............. no"
6126 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6127 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6128 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6129 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6130 echo "QtGui module ........... $CFG_GUI"
6131 echo "QtWidgets module ....... $CFG_WIDGETS"
6132 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6133 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6135 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6137 echo "QML debugging .......... $CFG_QML_DEBUG"
6138 echo "PCH support ............ $CFG_PRECOMPILE"
6139 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6140 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6141 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6142 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6143 elif [ "$CFG_ARCH" = "arm" ]; then
6144 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6145 echo "NEON support ........... ${CFG_NEON}"
6147 if [ "$CFG_ARCH" = "mips" ]; then
6148 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6150 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6151 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6152 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6153 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6154 echo "NIS support ............ $CFG_NIS"
6155 echo "CUPS support ........... $CFG_CUPS"
6156 echo "Iconv support .......... $CFG_ICONV"
6157 echo "Glib support ........... $CFG_GLIB"
6158 echo "GStreamer support ...... $CFG_GSTREAMER"
6159 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6160 echo "Large File support ..... $CFG_LARGEFILE"
6161 echo "GIF support ............ $CFG_GIF"
6162 if [ "$CFG_JPEG" = "no" ]; then
6163 echo "JPEG support ........... $CFG_JPEG"
6165 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6167 if [ "$CFG_PNG" = "no" ]; then
6168 echo "PNG support ............ $CFG_PNG"
6170 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6172 echo "zlib support ........... $CFG_ZLIB"
6173 echo "Session management ..... $CFG_SM"
6174 echo "libudev support ........ $CFG_LIBUDEV"
6176 if [ "$CFG_OPENGL" = "desktop" ]; then
6177 echo "OpenGL support ......... yes (Desktop OpenGL)"
6178 elif [ "$CFG_OPENGL" = "es2" ]; then
6179 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6181 echo "OpenGL support ......... no"
6184 if [ "$CFG_OPENVG" ]; then
6185 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6186 echo "OpenVG support ......... ShivaVG"
6188 echo "OpenVG support ......... $CFG_OPENVG"
6192 echo "XShape support ......... $CFG_XSHAPE"
6193 echo "XVideo support ......... $CFG_XVIDEO"
6194 echo "XSync support .......... $CFG_XSYNC"
6195 echo "Xinerama support ....... $CFG_XINERAMA"
6196 echo "Xcursor support ........ $CFG_XCURSOR"
6197 echo "Xfixes support ......... $CFG_XFIXES"
6198 echo "Xrandr support ......... $CFG_XRANDR"
6199 echo "Xi support ............. $CFG_XINPUT"
6200 echo "Xi2 support ............ $CFG_XINPUT2"
6201 echo "MIT-SHM support ........ $CFG_MITSHM"
6202 echo "FontConfig support ..... $CFG_FONTCONFIG"
6203 echo "XKB Support ............ $CFG_XKB"
6204 echo "immodule support ....... $CFG_IM"
6205 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6207 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6208 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6209 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6210 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6211 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6212 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6213 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6214 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6215 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6218 if [ "$CFG_OPENSSL" = "yes" ]; then
6219 OPENSSL_LINKAGE="(run-time)"
6220 elif [ "$CFG_OPENSSL" = "linked" ]; then
6221 OPENSSL_LINKAGE="(linked)"
6223 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6224 echo "Alsa support ........... $CFG_ALSA"
6225 if [ "$BUILD_ON_MAC" = "yes" ]; then
6226 echo "CoreWlan support ....... $CFG_COREWLAN"
6228 echo "libICU support ......... $CFG_ICU"
6229 echo "PCRE support ........... $CFG_PCRE"
6230 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6231 echo "Xcb support ............ limited (old version)"
6233 echo "Xcb support ............ $CFG_XCB"
6235 echo "Xrender support ........ $CFG_XRENDER"
6236 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6237 echo "XInput2 support ........ $CFG_XINPUT2"
6239 echo "EGLFS support .......... $CFG_EGLFS"
6240 echo "DirectFB support ....... $CFG_DIRECTFB"
6241 echo "LinuxFB support ........ $CFG_LINUXFB"
6242 echo "KMS support ............ $CFG_KMS"
6245 # complain about not being able to use dynamic plugins if we are using a static build
6246 if [ "$CFG_SHARED" = "no" ]; then
6248 echo "WARNING: Using static linking will disable the use of dynamically"
6249 echo "loaded plugins. Make sure to import all needed static plugins,"
6250 echo "or compile needed modules into the library."
6253 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6255 echo "NOTE: When linking against OpenSSL, you can override the default"
6256 echo "library names through OPENSSL_LIBS."
6258 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6262 exec 1>&3 3>&- # restore stdout
6263 cat $outpath/config.summary # display config feedback to user
6265 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6267 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6268 echo "if you want a pure debug build."
6273 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6278 #-------------------------------------------------------------------------------
6279 # build makefiles based on the configuration
6280 #-------------------------------------------------------------------------------
6282 if [ "$CFG_PROCESS" != "no" ]; then
6284 if [ "$CFG_PROCESS" = "full" ]; then
6285 echo "Creating makefiles. Please wait..."
6286 "$outpath/bin/qmake" -r "$relpath"
6289 "$outpath/bin/qmake" "$relpath"
6292 if [ "$OPT_FAST" = "yes" ]; then
6294 for part in $CFG_BUILD_PARTS; do
6296 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6299 if [ "x$PART_ROOTS" != "x" ]; then
6301 echo "Creating stub makefiles. Please wait..."
6302 QMAKE="$outpath/bin/qmake"
6303 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6304 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6306 test -f "$outpath/$d/Makefile" && continue
6307 echo " for $relpath/$p"
6309 mkdir -p "$outpath/$d" || exit
6310 cat > "$outpath/$d/Makefile" <<EOF || exit
6311 # $outpath/$d/Makefile: generated by configure
6313 # WARNING: This makefile will be replaced with a real makefile.
6314 # All changes made to this file will be lost.
6319 all clean install qmake first Makefile: FORCE
6320 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6330 #-------------------------------------------------------------------------------
6331 # check for platforms that we don't yet know about
6332 #-------------------------------------------------------------------------------
6333 if [ "$CFG_ARCH" = "unknown" ]; then
6336 NOTICE: configure was unable to determine the architecture
6337 for the $XQMAKESPEC target.
6339 Qt will not use a specialized implementation for any atomic
6340 operations. Instead a generic implemention based on either GCC
6341 intrinsics or C++11 std::atomic<T> will be used (when
6342 available). The generic implementations are generally as fast
6343 as and always as safe as a specialized implementation.
6345 If no generic implementation is available, Qt will use a
6346 fallback UNIX implementation which uses a single
6347 pthread_mutex_t to protect all atomic operations. This
6348 implementation is the slow (but safe) fallback implementation
6349 for architectures Qt does not yet support.
6353 #-------------------------------------------------------------------------------
6354 # check if the user passed the -no-zlib option, which is no longer supported
6355 #-------------------------------------------------------------------------------
6356 if [ -n "$ZLIB_FORCED" ]; then
6357 which_zlib="supplied"
6358 if [ "$CFG_ZLIB" = "system" ]; then
6364 NOTICE: The -no-zlib option was supplied but is no longer
6367 Qt now requires zlib support in all builds, so the -no-zlib
6368 option was ignored. Qt will be built using the $which_zlib
6373 #-------------------------------------------------------------------------------
6374 # check if the user passed the obsoleted -wayland or -no-wayland flag
6375 #-------------------------------------------------------------------------------
6376 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6379 NOTICE: The -wayland and -no-wayland flags are now obsolete
6381 All configuring of QtWayland plugin and QtCompositor happens in the module
6385 #-------------------------------------------------------------------------------
6386 # check if the user passed the obsoleted -arch or -host-arch options
6387 #-------------------------------------------------------------------------------
6388 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6391 NOTICE: The -arch and -host-arch options are obsolete.
6393 Qt now detects the target and host architectures based on compiler
6394 output. Qt will be built using $CFG_ARCH for the target architecture
6395 and $CFG_HOST_ARCH for the host architecture (note that these two
6396 will be the same unless you are cross-compiling).
6400 #-------------------------------------------------------------------------------
6401 # finally save the executed command to another script
6402 #-------------------------------------------------------------------------------
6403 if [ `basename $0` != "config.status" ]; then
6404 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6406 # add the system variables
6407 for varname in $SYSTEM_VARIABLES; do
6409 'if [ -n "\$'${varname}'" ]; then
6410 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6415 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6417 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6418 echo "#!/bin/sh" > "$outpath/config.status"
6419 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6420 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6421 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6422 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6423 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6424 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6425 echo "else" >> "$outpath/config.status"
6426 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6427 echo "fi" >> "$outpath/config.status"
6428 chmod +x "$outpath/config.status"
6431 if [ -n "$RPATH_MESSAGE" ]; then
6433 echo "$RPATH_MESSAGE"
6436 MAKE=`basename "$MAKE"`
6438 echo Qt is now configured for building. Just run \'$MAKE\'.
6439 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6440 echo Once everything is built, Qt is installed.
6441 echo You should not run \'$MAKE install\'.
6443 echo Once everything is built, you must run \'$MAKE install\'.
6444 echo Qt will be installed into $QT_INSTALL_PREFIX
6447 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.