2 #############################################################################
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia. For licensing terms and
15 ## conditions see http://qt.digia.com/licensing. For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file. Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights. These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
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 compilerSupportsFlag()
229 cat >conftest.cpp <<EOF
230 int main() { return 0; }
232 "$@" -o conftest-out.o conftest.cpp
234 rm -f conftest.cpp conftest-out.o
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag $compiler $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 Digia,"
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 use the contact form at http://qt.digia.com/contact-us"
621 echo "to upgrade your license to include the $Platform platform, or install"
622 echo "the Qt Open Source Edition 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 "mac fusion 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
742 CFG_GUI=auto # (yes|no|auto)
748 CFG_FORCEDEBUGINFO=no
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
781 CFG_AUDIO_BACKEND=auto
784 CFG_JAVASCRIPTCORE_JIT=auto
786 CFG_STACK_PROTECTOR_STRONG=auto
788 CFG_SYSTEM_PROXIES=no
790 # Target architecture
793 # Host architecture, same as CFG_ARCH when not cross-compiling
795 CFG_HOST_CPUFEATURES=
796 # Set when the -arch or -host-arch arguments are used
797 OPT_OBSOLETE_HOST_ARG=no
811 CFG_OBSOLETE_WAYLAND=no
823 CFG_SEPARATE_DEBUG_INFO=no
824 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
825 CFG_REDUCE_EXPORTS=auto
833 CFG_REDUCE_RELOCATIONS=auto
834 CFG_ACCESSIBILITY=auto
839 CFG_CLOCK_GETTIME=auto
840 CFG_CLOCK_MONOTONIC=auto
857 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
858 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
863 OPT_CONFIRM_LICENSE=no
876 QPA_PLATFORM_GUARD=yes
879 # initalize variables used for installation
888 QT_INSTALL_TRANSLATIONS=
893 CFG_GCC_SYSROOT="yes"
898 #flags for SQL drivers
906 QT_LFLAGS_ODBC="-lodbc"
909 # flags for libdbus-1
913 # flags for Glib (X11 only)
917 # flags for GStreamer (X11 only)
921 # default qpa platform
922 QT_QPA_DEFAULT_PLATFORM=
924 #-------------------------------------------------------------------------------
925 # check SQL drivers available in this package
926 #-------------------------------------------------------------------------------
928 # opensource version removes some drivers, so force them to be off
934 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
935 for a in "$relpath/src/plugins/sqldrivers/"*; do
937 base_a=`basename "$a"`
938 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
939 eval "CFG_SQL_${base_a}=auto"
944 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
945 if [ -d "$relpath/src/plugins/imageformats" ]; then
946 for a in "$relpath/src/plugins/imageformats/"*; do
948 base_a=`basename "$a"`
949 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
954 #-------------------------------------------------------------------------------
955 # parse command line arguments
956 #-------------------------------------------------------------------------------
958 # parse the arguments, setting things to "yes" or "no"
959 while [ "$#" -gt 0 ]; do
963 #Autoconf style options
965 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
969 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
973 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
974 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
977 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
981 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
985 -no-*-*|-plugin-*-*|-qt-*-*)
986 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
987 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
991 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
994 #Qt style options that pass an argument
995 -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)
996 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1000 #Qt style complex options in one command
1001 -enable-*|-disable-*)
1002 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1003 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1013 #Qt Builtin/System style options
1014 -no-*|-system-*|-qt-*)
1015 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1016 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1018 #Options that cannot be generalized
1025 # this option may or may not be followed by an argument
1026 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1035 # this option may or may not be followed by an argument
1036 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1044 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1045 # this option may or may not be followed by an argument
1046 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1065 if [ "$1" = "-D" ]; then
1069 VAL=`echo $1 | sed 's,-D,,'`
1074 # this option may or may not be followed by an argument
1075 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1084 if [ "$1" = "-I" ]; then
1088 VAL=`echo $1 | sed 's,-I,,'`
1093 if [ "$1" = "-L" ]; then
1097 VAL=`echo $1 | sed 's,-L,,'`
1102 if [ "$1" = "-R" ]; then
1106 VAL=`echo $1 | sed 's,-R,,'`
1111 if [ "$1" = "-l" ]; then
1115 VAL=`echo $1 | sed 's,-l,,'`
1120 if [ "$1" = "-F" ]; then
1124 VAL=`echo $1 | sed 's,-F,,'`
1129 if [ "$1" = "-fw" ]; then
1133 VAL=`echo $1 | sed 's,-fw,,'`
1140 #General options, including Qt style yes options
1142 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1149 if [ "$UNKNOWN_ARG" = "yes" ]; then
1150 echo "$1: unknown argument"
1161 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1162 CFG_ACCESSIBILITY="$VAL"
1171 CFG_USE_GNUMAKE="$VAL"
1174 CFG_MYSQL_CONFIG="$VAL"
1177 QT_INSTALL_PREFIX="$VAL"
1180 QT_HOST_PREFIX="$VAL"
1189 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1190 CFG_PKGCONFIG="$VAL"
1196 CFG_PKGCONFIG="force"
1199 QT_INSTALL_DOCS="$VAL"
1202 QT_INSTALL_HEADERS="$VAL"
1205 QT_INSTALL_PLUGINS="$VAL"
1208 QT_INSTALL_IMPORTS="$VAL"
1211 QT_INSTALL_DATA="$VAL"
1214 QT_INSTALL_LIBS="$VAL"
1223 QT_INSTALL_TRANSLATIONS="$VAL"
1225 sysconfdir|settingsdir)
1226 QT_INSTALL_SETTINGS="$VAL"
1229 QT_INSTALL_EXAMPLES="$VAL"
1232 QT_INSTALL_TESTS="$VAL"
1241 CFG_GCC_SYSROOT="$VAL"
1244 QT_INSTALL_BINS="$VAL"
1247 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1254 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1255 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1256 [ "$VAL" = "es2" ]; then
1263 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1270 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1273 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1276 if [ "$BUILD_ON_MAC" = "yes" ]; then
1283 OPT_OBSOLETE_HOST_ARG=yes
1286 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1287 CFG_MAC_HARFBUZZ="$VAL"
1294 if [ "$BUILD_ON_MAC" = "yes" ]; then
1295 CFG_FRAMEWORK="$VAL"
1301 if [ "$VAL" = "yes" ]; then
1303 QMakeVar add QMAKE_CFLAGS -pg
1304 QMakeVar add QMAKE_CXXFLAGS -pg
1305 QMakeVar add QMAKE_LFLAGS -pg
1306 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1312 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1319 if [ "$VAL" = "yes" ]; then
1320 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1325 # keep compatibility with old platform names
1331 PLATFORM=hpux-acc-o64
1334 PLATFORM=hpux-acc-64
1337 PLATFORM=hpux-acc-64
1349 PLATFORM=reliant-cds-64
1352 PLATFORM=solaris-cc-64
1355 PLATFORM=unixware-cc
1358 PLATFORM=unixware-g++
1361 PLATFORM=unixware-cc
1364 PLATFORM=unixware-g++
1370 i386) NATIVE_64_ARCH="x86_64" ;;
1371 powerpc) NATIVE_64_ARCH="ppc64" ;;
1372 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1374 if [ ! -z "$NATIVE_64_ARCH" ]; then
1375 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1382 case `basename "$XPLATFORM"` in win32-g++*)
1385 CFG_REDUCE_EXPORTS=no
1390 XPLATFORM=`resolveDeviceMkspec $VAL`
1391 [ "$XPLATFORM" = "undefined" ] && exit 101
1394 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1395 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1396 DeviceVar set $DEV_VAR $DEV_VAL
1399 QT_QPA_DEFAULT_PLATFORM="$VAL"
1402 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1403 CFG_DEBUG_RELEASE="$VAL"
1409 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1410 CFG_RELEASE_QMAKE="$VAL"
1416 if [ "$VAL" = "yes" ]; then
1418 elif [ "$VAL" = "no" ]; then
1428 CFG_FORCEDEBUGINFO="$VAL"
1430 developer-build|commercial|opensource)
1431 # These switches have been dealt with already
1434 if [ "$VAL" = "yes" ]; then
1436 elif [ "$VAL" = "no" ]; then
1443 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1444 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1450 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1451 if [ "$VAL" = "no" ]; then
1452 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1453 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1454 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1460 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1467 if [ "$VAL" = "no" ]; then
1474 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1482 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1489 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1496 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1503 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1510 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1517 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1524 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1531 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1532 CFG_PRECOMPILE="$VAL"
1537 separate-debug-info)
1538 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1539 CFG_SEPARATE_DEBUG_INFO="$VAL"
1540 elif [ "$VAL" = "nocopy" ] ; then
1541 CFG_SEPARATE_DEBUG_INFO="yes"
1542 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1548 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1549 CFG_REDUCE_EXPORTS="$VAL"
1555 if [ "$VAL" = "no" ]; then
1562 if [ "$VAL" = "no" ]; then
1569 if [ "$VAL" = "no" ]; then
1576 if [ "$VAL" = "no" ]; then
1583 if [ "$VAL" = "no" ]; then
1590 if [ "$VAL" = "no" ]; then
1597 if [ "$VAL" = "no" ]; then
1607 if [ "$VAL" = "no" ]; then
1614 if [ "$VAL" = "no" ]; then
1621 if [ "$VAL" = "no" ]; then
1622 CFG_MIPS_DSPR2="$VAL"
1628 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1629 CFG_REDUCE_RELOCATIONS="$VAL"
1635 [ "$VAL" = "qt" ] && VAL=yes
1636 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1641 # No longer supported:
1642 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1645 if [ "$VAL" = "system" ]; then
1652 [ "$VAL" = "yes" ] && VAL=qt
1653 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1660 [ "$VAL" = "yes" ] && VAL=qt
1661 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1668 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1675 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1682 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1689 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1696 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1703 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1704 CFG_FONTCONFIG="$VAL"
1710 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1717 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ] || [ "$VAL" = "qt" ]; then
1719 if [ "$VAL" = "yes" ]; then
1727 CFG_OBSOLETE_WAYLAND=yes
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
1786 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1793 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1800 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1801 CFG_GSTREAMER="$VAL"
1807 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1808 CFG_QGTKSTYLE="$VAL"
1814 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1817 if [ "$VAL" = "no" ]; then
1825 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1827 elif [ "$VAL" = "no" ]; then
1834 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1835 QPA_PLATFORM_GUARD="$VAL"
1841 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1843 elif [ "$VAL" = "runtime" ]; then
1850 if [ "$VAL" = "yes" ]; then
1857 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1864 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1865 CFG_LARGEFILE="$VAL"
1871 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1878 if [ "$VAL" = "yes" ]; then
1879 CFG_OPENSSL="linked"
1885 if [ "$VAL" = "yes" ]; then
1888 if [ "$VAL" = "no" ]; then
1896 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1897 CFG_JAVASCRIPTCORE_JIT="$VAL"
1903 if [ "$VAL" = "yes" ]; then
1904 OPT_CONFIRM_LICENSE="$VAL"
1910 if [ "$VAL" = "yes" ]; then
1916 sql-*|imageformat-*)
1917 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1918 # if autoconf style options were used, $VAL can be "yes" or "no"
1919 [ "$VAL" = "yes" ] && VAL=qt
1920 # now $VAL should be "no", "qt", or "plugin"... double-check
1921 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1924 # now $VAL is "no", "qt", or "plugin"
1926 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1927 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1929 # Grab the available values
1932 avail="$CFG_SQL_AVAILABLE"
1935 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1936 if [ "$OPT" != "plugin" ]; then
1937 # png is always built in
1943 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1947 # Check that that user's value is available.
1950 if [ "$VAL" = "$d" ]; then
1955 [ "$found" = yes ] || ERROR=yes
1957 if [ "$VAR" = "sql" ]; then
1958 # set the CFG_SQL_driver
1959 eval "CFG_SQL_$VAL=\$OPT"
1961 elif [ "$VAR" = "imageformat" ]; then
1962 [ "$OPT" = "qt" ] && OPT=yes
1963 VAL="`echo $VAL |tr a-z A-Z`"
1964 eval "CFG_$VAL=$OPT"
1968 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1969 if [ "$OPT" = "plugin" ]; then
1972 QMakeVar add "${VAR}s" "${VAL}"
1973 elif [ "$OPT" = "no" ]; then
1974 PLUG_VAR="${VAR}-plugin"
1976 QMakeVar del "${IN_VAR}s" "$VAL"
1977 QMakeVar del "${PLUG_VAR}s" "$VAL"
1979 if [ "$ERROR" = "yes" ]; then
1980 echo "$CURRENT_OPT: unknown argument"
1985 if [ "$VAL" = "yes" ]; then
1986 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1987 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1991 elif [ "$VAL" = "no" ]; then
1992 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1993 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2002 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2009 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2016 DEFINES="$DEFINES \"$VAL\""
2017 D_FLAGS="$D_FLAGS -D\"$VAL\""
2020 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2023 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2026 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2029 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2032 if [ "$BUILD_ON_MAC" = "yes" ]; then
2033 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2034 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2040 if [ "$BUILD_ON_MAC" = "yes" ]; then
2041 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2047 W_FLAGS="$W_FLAGS \"${VAL}\""
2062 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2063 CFG_AUDIO_BACKEND="$VAL"
2069 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2076 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2077 CFG_FORCE_ASSERTS="$VAL"
2083 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2090 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2097 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2098 CFG_SYSTEM_PROXIES="$VAL"
2107 if [ "$UNKNOWN_OPT" = "yes" ]; then
2108 echo "${CURRENT_OPT}: invalid command-line switch"
2114 # update QT_CONFIG to show our current predefined configuration
2115 case "$CFG_QCONFIG" in
2116 minimal|small|medium|large|full)
2117 # these are a sequence of increasing functionality
2118 for c in minimal small medium large full; do
2119 QT_CONFIG="$QT_CONFIG $c-config"
2120 [ "$CFG_QCONFIG" = $c ] && break
2124 # not known to be sufficient for anything
2125 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2126 echo >&2 "Error: configuration file not found:"
2127 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2129 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2134 #-------------------------------------------------------------------------------
2135 # build tree initialization
2136 #-------------------------------------------------------------------------------
2138 # where to find which..
2139 unixtests="$relpath/config.tests/unix"
2140 mactests="$relpath/config.tests/mac"
2141 WHICH="$unixtests/which.test"
2143 PERL=`$WHICH perl 2>/dev/null`
2145 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2147 for e in gawk nawk awk; do
2148 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2155 PERL="/usr/bin/perl"
2156 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2160 ### skip this if the user just needs help...
2161 if [ "$OPT_HELP" != "yes" ]; then
2163 # is this a shadow build?
2164 if [ "$OPT_SHADOW" = "maybe" ]; then
2166 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2167 if [ -h "$outpath" ]; then
2168 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2174 if [ "$OPT_SHADOW" = "yes" ]; then
2175 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2176 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2177 echo >&2 "Cannot proceed."
2180 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2183 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2185 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2186 echo "Qt can be built in release mode with separate debug information, so"
2187 echo "-debug-and-release is not necessary anymore"
2191 if [ "$CFG_SILENT" = "yes" ]; then
2192 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2195 # if the source tree is different from the build tree,
2196 # symlink or copy part of the sources
2197 if [ "$OPT_SHADOW" = "yes" ]; then
2198 echo "Preparing build tree..."
2200 if [ -z "$PERL" ]; then
2202 echo "You need perl in your PATH to make a shadow build."
2203 echo "Cannot proceed."
2207 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2209 # make a syncqt script that can be used in the shadow
2210 rm -f "$outpath/bin/syncqt"
2211 if [ -x "$relpath/bin/syncqt" ]; then
2212 mkdir -p "$outpath/bin"
2213 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2214 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2215 chmod 755 "$outpath/bin/syncqt"
2218 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2219 rm -f "$outpath/bin/$i"
2220 if [ -x "$relpath/bin/$i" ]; then
2221 mkdir -p "$outpath/bin"
2222 echo "#!/bin/sh" >"$outpath/bin/$i"
2223 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2224 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2225 chmod 755 "$outpath/bin/$i"
2229 # save a pre-existing mkspecs/modules dir
2230 test -d "$outpath/mkspecs/modules" && \
2231 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2232 # ditto for mkspecs/modules-inst
2233 test -d "$outpath/mkspecs/modules-inst" && \
2234 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2236 # symlink the mkspecs directory
2237 mkdir -p "$outpath/mkspecs"
2238 rm -rf "$outpath"/mkspecs/*
2239 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2243 rm -rf "$outpath/mkspecs/$1"
2244 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2245 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2248 # Special case for mkspecs/features directory.
2249 # To be able to place .prf files into a shadow build directory,
2250 # we're creating links for files only. The directory structure is reproduced.
2251 ShadowMkspecs features
2253 # The modules dir is special, too.
2254 if test -d "$outpath/mkspecs-modules"; then
2255 rm -rf "$outpath/mkspecs/modules"
2256 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2258 ShadowMkspecs modules
2261 # The modules-inst dir is not quite as special, but still.
2262 if test -d "$outpath/mkspecs-modules-inst"; then
2263 rm -rf "$outpath/mkspecs/modules-inst"
2264 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2267 # Prepare doc directory
2268 mkdir -p "$outpath/doc"
2269 ln -f -s "$relpath"/doc/global "$outpath/doc"
2272 # symlink fonts to be able to run application from build directory
2273 if [ ! -d "${outpath}/lib/fonts" ]; then
2274 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2275 mkdir -p "${outpath}/lib"
2276 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2280 if [ "$OPT_FAST" = "auto" ]; then
2281 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2288 # find a make command
2289 if [ -z "$MAKE" ]; then
2291 for mk in gmake make; do
2292 if "$WHICH" $mk >/dev/null 2>&1; then
2297 if [ -z "$MAKE" ]; then
2298 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2299 echo >&2 "Cannot proceed."
2302 # export MAKE, we need it later in the config.tests
2308 #-------------------------------------------------------------------------------
2309 # auto-detect all that hasn't been specified in the arguments
2310 #-------------------------------------------------------------------------------
2312 if [ -z "$PLATFORM" ]; then
2314 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2316 OSX_VERSION=`uname -r | cut -d. -f1`
2317 # Select compiler. Use g++ unless we find a usable Clang version
2319 if [ "$OSX_VERSION" -ge 12 ]; then
2320 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2322 elif [ "$OSX_VERSION" -eq 11 ]; then
2323 # We're on Lion. Check if we have a supported Clang version
2324 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2326 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2332 #PLATFORM=aix-g++-64
2334 #PLATFORM=aix-xlc-64
2336 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2346 # PLATFORM=dynix-g++
2352 PLATFORM=freebsd-g++
2354 - Also available for FreeBSD: freebsd-icc
2358 PLATFORM=openbsd-g++
2369 #PLATFORM=irix-cc-64
2371 - Also available for IRIX: irix-g++ irix-cc-64
2375 case "$UNAME_MACHINE" in
2377 #PLATFORM=hpuxi-acc-32
2378 PLATFORM=hpuxi-acc-64
2380 - Also available for HP-UXi: hpuxi-acc-32
2386 #PLATFORM=hpux-acc-64
2388 #PLATFORM=hpux-acc-o64
2390 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2399 - Also available for Tru64: tru64-g++
2403 case "$UNAME_MACHINE" in
2405 PLATFORM=linux-g++-64
2412 - Also available for Linux: linux-kcc linux-icc linux-cxx
2416 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2417 PLATFORM="solaris-g++"
2419 #PLATFORM=solaris-g++
2421 #PLATFORM=solaris-cc64
2424 - Also available for Solaris: solaris-g++ solaris-cc-64
2427 ReliantUNIX-*:*|SINIX-*:*)
2428 PLATFORM=reliant-cds
2429 #PLATFORM=reliant-cds-64
2431 - Also available for Reliant UNIX: reliant-cds-64
2441 #PLATFORM=unixware-g++
2442 PLATFORM=unixware-cc
2444 - Also available for OpenUNIX: unixware-g++
2448 #PLATFORM=unixware-g++
2449 PLATFORM=unixware-cc
2451 - Also available for UnixWare: unixware-g++
2458 - Also available for SCO OpenServer: sco-g++
2462 PLATFORM=unixware-g++
2465 PLATFORM=unsupported/qnx-g++
2468 if [ "$OPT_HELP" != "yes" ]; then
2470 echo " The build script does not currently recognize all" >&2
2471 echo " platforms supported by Qt." >&2
2472 echo " Rerun this script with a -platform option listed to" >&2
2473 echo " set the system/compiler combination you use." >&2
2480 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2482 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2483 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2484 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2486 if [ -d "$PLATFORM" ]; then
2487 QMAKESPEC="$PLATFORM"
2489 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2491 if [ -d "$XPLATFORM" ]; then
2492 XQMAKESPEC="$XPLATFORM"
2494 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2496 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2497 QT_CROSS_COMPILE=yes
2498 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2499 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2502 if [ "$BUILD_ON_MAC" = "yes" ]; then
2503 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2505 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2506 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2507 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2508 echo " built with 'macx-g++'" >&2
2514 # check specified platforms are supported
2515 if [ '!' -d "$QMAKESPEC" ]; then
2517 echo " The specified system/compiler is not supported:"
2521 echo " Please see the README file for a complete list."
2525 if [ '!' -d "$XQMAKESPEC" ]; then
2527 echo " The specified system/compiler is not supported:"
2531 echo " Please see the README file for a complete list."
2535 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2537 echo " The specified system/compiler port is not complete:"
2539 echo " $XQMAKESPEC/qplatformdefs.h"
2541 echo " Please use the contact form at http://qt.digia.com/contact-us"
2546 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2547 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2548 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2549 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2550 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2554 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2555 case `basename "$XPLATFORM"` in
2558 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2560 echo "Please use the contact form at http://qt.digia.com/contact-us"
2561 echo "to upgrade your license to include this platform, or install"
2562 echo "the Qt Open Source Edition if you intend to develop free software."
2568 #-------------------------------------------------------------------------------
2569 # tests that don't need qmake (must be run before displaying help)
2570 #-------------------------------------------------------------------------------
2572 # detect build style
2573 if [ "$CFG_DEBUG" = "auto" ]; then
2574 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2575 CFG_DEBUG_RELEASE=yes
2577 elif [ "$CFG_DEV" = "yes" ]; then
2578 CFG_DEBUG_RELEASE=no
2581 CFG_DEBUG_RELEASE=no
2585 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2586 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2589 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2590 QT_CONFIG="$QT_CONFIG force_debug_info"
2593 # pass on $CFG_SDK to the arch/configure tests.
2594 if [ -n "$CFG_SDK" ]; then
2595 MAC_SDK_FLAG="-sdk $CFG_SDK"
2600 # find the default framework value
2601 if [ "$BUILD_ON_MAC" = "yes" ]; then
2602 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2603 CFG_FRAMEWORK="$CFG_SHARED"
2604 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2606 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2614 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2616 TEST_COMPILER=$QMAKE_CONF_COMPILER
2617 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2618 if [ -z "$TEST_COMPILER" ]; then
2619 echo "ERROR: Cannot set the compiler for the configuration tests"
2623 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2626 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2627 if [ -n "$GCC_MACHINE_DUMP" ]; then
2628 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2631 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2632 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2636 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2638 # auto-detect precompiled header support
2639 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2640 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2647 # auto-detect support for separate debug info in objcopy
2648 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2649 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2650 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2651 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2652 CFG_SEPARATE_DEBUG_INFO=no
2656 # binutils on HP-UX is buggy; default to no.
2657 CFG_SEPARATE_DEBUG_INFO=no
2660 CFG_SEPARATE_DEBUG_INFO=yes
2666 # auto-detect -fvisibility support
2667 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2668 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2669 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2670 echo "-reduce-exports was requested but this compiler does not support it"
2671 echo "Re-run configure with -v for more information"
2674 CFG_REDUCE_EXPORTS=no
2676 CFG_REDUCE_EXPORTS=yes
2680 # auto-detect -fstack-protector-strong support (for QNX only currently)
2681 if [ "$XPLATFORM_QNX" = "yes" ]; then
2682 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2683 CFG_STACK_PROTECTOR_STRONG=yes
2685 CFG_STACK_PROTECTOR_STRONG=no
2688 CFG_STACK_PROTECTOR_STRONG=no
2691 # detect the availability of the -Bsymbolic-functions linker optimization
2692 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2693 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2694 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2695 echo "-reduce-relocations was requested but this compiler does not support it"
2696 echo "Re-run configure with -v for more information"
2699 CFG_REDUCE_RELOCATIONS=no
2701 CFG_REDUCE_RELOCATIONS=yes
2705 # auto-detect GNU make support
2706 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2710 # find the default framework value
2711 if [ "$BUILD_ON_MAC" = "yes" ]; then
2712 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2713 CFG_FRAMEWORK="$CFG_SHARED"
2714 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2716 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2724 # auto-detect default include and library search paths
2725 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2726 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2727 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2728 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2729 /^End of search/ { yup=0 }
2730 yup { print substr($0, 2) }
2731 /^\#include </ { yup=1 }
2733 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2735 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2738 #setup the build parts
2739 if [ -z "$CFG_BUILD_PARTS" ]; then
2740 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2742 # build tests by default, if a developer build
2743 if [ "$CFG_DEV" = "yes" ]; then
2744 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2747 # don't build tools by default when cross-compiling
2748 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2749 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2752 for nobuild in $CFG_NOBUILD_PARTS; do
2753 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2755 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2757 # echo "WARNING: libs is a required part of the build."
2759 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2762 #-------------------------------------------------------------------------------
2763 # post process QT_INSTALL_* variables
2764 #-------------------------------------------------------------------------------
2766 if [ -z "$QT_INSTALL_PREFIX" ]; then
2767 if [ "$CFG_DEV" = "yes" ]; then
2768 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2770 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2773 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2775 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2776 QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2778 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2780 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2781 QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2783 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2785 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2786 QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2788 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2790 if [ -z "$QT_INSTALL_BINS" ]; then #default
2791 QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2793 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2795 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2796 QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2798 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2800 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2801 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 QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2827 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2830 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2831 QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2833 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2835 #------- host paths --------
2837 if [ -z "$QT_HOST_PREFIX" ]; then
2838 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2841 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2845 if [ -z "$QT_HOST_BINS" ]; then #default
2847 QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2849 QT_HOST_BINS="$QT_INSTALL_BINS"
2852 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2854 if [ -z "$QT_HOST_DATA" ]; then #default
2856 QT_HOST_DATA="$QT_HOST_PREFIX"
2858 QT_HOST_DATA="$QT_INSTALL_DATA"
2861 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2864 #-------------------------------------------------------------------------------
2865 # help - interactive parts of the script _after_ this section please
2866 #-------------------------------------------------------------------------------
2868 # next, emit a usage message if something failed.
2869 if [ "$OPT_HELP" = "yes" ]; then
2870 [ "x$ERROR" = "xyes" ] && echo
2871 if [ "$CFG_NIS" = "no" ]; then
2878 if [ "$CFG_CUPS" = "no" ]; then
2885 if [ "$CFG_ICONV" = "no" ]; then
2892 if [ "$CFG_LARGEFILE" = "no" ]; then
2899 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2907 if [ "$CFG_XCB" = "no" ]; then
2915 if [ "$CFG_EGLFS" = "no" ]; then
2923 if [ "$CFG_DIRECTFB" = "no" ]; then
2931 if [ "$CFG_LINUXFB" = "no" ]; then
2939 if [ "$CFG_KMS" = "no" ]; then
2947 if [ "$CFG_XINPUT2" = "no" ]; then
2955 if [ "$CFG_DBUS" = "no" ]; then
2963 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2971 if [ "$CFG_GLIB" = "no" ]; then
2980 Usage: $relconf [options]
2982 Installation options:
2984 These are optional, but you may specify install directories.
2986 -prefix <dir> ...... This will install everything relative to <dir>
2987 (default $QT_INSTALL_PREFIX)
2989 -hostprefix [dir] .. Tools and libraries needed when developing
2990 applications are installed in [dir]. If [dir] is
2991 not given, the current build directory will be used.
2994 You may use these to separate different parts of the install:
2996 -bindir <dir> ......... Executables will be installed to <dir>
2997 (default PREFIX/bin)
2998 -libdir <dir> ......... Libraries will be installed to <dir>
2999 (default PREFIX/lib)
3000 -docdir <dir> ......... Documentation will be installed to <dir>
3001 (default PREFIX/doc)
3002 -headerdir <dir> ...... Headers will be installed to <dir>
3003 (default PREFIX/include)
3004 -plugindir <dir> ...... Plugins will be installed to <dir>
3005 (default PREFIX/plugins)
3006 -importdir <dir> ...... Imports for QML will be installed to <dir>
3007 (default PREFIX/imports)
3008 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3010 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3011 (default PREFIX/translations)
3012 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3013 (default PREFIX/etc/settings)
3014 -examplesdir <dir> .... Examples will be installed to <dir>
3015 (default PREFIX/examples)
3016 -testsdir <dir> ....... Tests will be installed to <dir>
3017 (default PREFIX/tests)
3019 -hostbindir <dir> .. Host executables will be installed to <dir>
3020 (default HOSTPREFIX/bin)
3021 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3022 (default HOSTPREFIX)
3026 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3027 that needs to be evaluated. If the evaluation succeeds, the feature is
3028 included. Here is a short explanation of each option:
3030 * -release ........... Compile and link Qt with debugging turned off.
3031 -debug ............. Compile and link Qt with debugging turned on.
3032 -debug-and-release . Compile and link two versions of Qt, with and without
3033 debugging turned on (Mac only).
3035 -force-debug-info .. Create symbol files for release builds.
3037 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3039 -opensource ........ Compile and link the Open-Source Edition of Qt.
3040 -commercial ........ Compile and link the Commercial Edition of Qt.
3042 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3043 + -c++11 ............. Compile Qt with C++11 support enabled.
3045 * -shared ............ Create and use shared Qt libraries.
3046 -static ............ Create and use static Qt libraries.
3048 * -process ........... Generate only a top-level Makefile.
3049 -fully-process ..... Generate Makefiles for the entire Qt tree.
3050 -dont-process ...... Do not generate any Makefiles.
3052 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3054 -fast .............. Configure Qt quickly by generating Makefiles only for
3055 library and subdirectory targets. All other Makefiles
3056 are created as wrappers, which will in turn run qmake.
3058 -no-largefile ...... Disables large file support.
3059 + -largefile ......... Enables Qt to access files larger than 4 GB.
3061 -no-accessibility .. Do not compile Accessibility support.
3062 + -accessibility ..... Compile Accessibility support.
3064 -no-sql-<driver> ... Disable SQL <driver> entirely.
3065 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3067 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3070 Possible values for <driver>:
3071 [ $CFG_SQL_AVAILABLE ]
3073 -system-sqlite ..... Use sqlite from the operating system.
3075 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3076 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3078 -no-qml-debug ...... Do not build the in-process QML debugging support.
3079 + -qml-debug ......... Build the QML debugging support.
3081 -platform target ... The operating system and compiler you are building
3084 See the README file for a list of supported
3085 operating systems and compilers.
3087 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3088 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3089 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3090 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3091 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3092 -no-avx ............ Do not compile with use of AVX instructions.
3093 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3094 -no-neon ........... Do not compile with use of NEON instructions.
3095 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3096 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3098 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3099 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3101 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3103 -D <string> ........ Add an explicit define to the preprocessor.
3104 -I <string> ........ Add an explicit include path.
3105 -L <string> ........ Add an explicit library path.
3107 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3108 configure determines whether to use pkg-config or not with
3109 some heuristics such as checking the environment variables.
3110 -no-pkg-config ..... Disable use of pkg-config.
3111 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3112 detection heuristic).
3114 -help, -h .......... Display this information.
3116 Third Party Libraries:
3118 -qt-zlib ........... Use the zlib bundled with Qt.
3119 + -system-zlib ....... Use zlib from the operating system.
3120 See http://www.gzip.org/zlib
3122 -no-gif ............ Do not compile GIF reading support.
3124 -no-libpng ......... Do not compile PNG support.
3125 -qt-libpng ......... Use the libpng bundled with Qt.
3126 + -system-libpng ..... Use libpng from the operating system.
3127 See http://www.libpng.org/pub/png
3129 -no-libjpeg ........ Do not compile JPEG support.
3130 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3131 + -system-libjpeg .... Use libjpeg from the operating system.
3132 See http://www.ijg.org
3134 -no-openssl ........ Do not compile support for OpenSSL.
3135 + -openssl ........... Enable run-time OpenSSL support.
3136 -openssl-linked .... Enabled linked OpenSSL support.
3138 -qt-pcre ........... Use the PCRE library bundled with Qt.
3139 + -system-pcre ....... Use the PCRE library from the operating system.
3141 -qt-xcb ............ Use xcb- libraries bundled with Qt.
3142 (libxcb.so will still be used from operating system).
3143 + -system-xcb ........ Use xcb- libraries from the operating system.
3147 -make <part> ....... Add part to the list of parts to be built at make time.
3148 ($QT_DEFAULT_BUILD_PARTS)
3149 -nomake <part> ..... Exclude part from the list of parts to be built.
3151 -no-gui ............ Don't build the QtGui library and dependencies.
3152 + -gui ............... Build the QtGui library and dependencies.
3154 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3155 + -widgets ........... Build the QtWidgets library and dependencies.
3157 -R <string> ........ Add an explicit runtime library path to the Qt
3159 -l <string> ........ Add an explicit library.
3161 -no-rpath .......... Do not use the library install path as a runtime
3163 + -rpath ............. Link Qt libraries and executables using the library
3164 install path as a runtime library path. Equivalent
3165 to -R install_libpath
3167 -continue .......... Continue as far as possible if an error occurs.
3169 -verbose, -v ....... Print verbose information about each step of the
3172 -silent ............ Reduce the build output so that warnings and errors
3173 can be seen more easily.
3175 * -no-optimized-qmake ... Do not build qmake optimized.
3176 -optimized-qmake ...... Build qmake optimized.
3178 $NSN -no-nis ............ Do not compile NIS support.
3179 $NSY -nis ............... Compile NIS support.
3181 $CUN -no-cups ........... Do not compile CUPS support.
3182 $CUY -cups .............. Compile CUPS support.
3183 Requires cups/cups.h and libcups.so.2.
3185 $CIN -no-iconv .......... Do not compile support for iconv(3).
3186 $CIY -iconv ............. Compile support for iconv(3).
3188 -no-icu ............ Do not compile support for ICU libraries.
3189 + -icu ............... Compile support for ICU libraries.
3191 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3192 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3194 $PHN -no-pch ............ Do not use precompiled header support.
3195 $PHY -pch ............... Use precompiled header support.
3197 $DBN -no-dbus ........... Do not compile the QtDBus module.
3198 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3199 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3201 -reduce-relocations ..... Reduce relocations in the libraries through extra
3202 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3203 experimental; needs GNU ld >= 2.18).
3205 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3207 -device <name> ............... Cross-compile for device <name> (experimental)
3208 -device-option <key=value> ... Add device specific options for the device mkspec
3211 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3212 $SBY -separate-debug-info .... Strip debug information into a separate file.
3214 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3215 $XCBY -xcb ............... Compile Xcb support.
3217 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3218 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3220 $DFBN -no-directfb ....... Do not compile DirectFB support.
3221 $DFBY -directfb .......... Compile DirectFB support.
3223 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3224 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3226 $KMSN -no-kms ............ Do not compile KMS support.
3227 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3229 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3231 -xplatform target ... The target platform when cross-compiling.
3233 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3234 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3236 -no-feature-<feature> Do not compile in <feature>.
3237 -feature-<feature> .. Compile in <feature>. The available features
3238 are described in src/corelib/global/qfeatures.txt
3240 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3241 default ($CFG_QCONFIG).
3243 -no-opengl .......... Do not support OpenGL.
3244 -opengl <api> ....... Enable OpenGL support
3245 With no parameter, this will attempt to auto-detect
3246 OpenGL ES 2, or regular desktop OpenGL.
3247 Use es2 for <api> to override auto-detection.
3249 * -no-system-proxies .. Do not use system network proxies by default.
3250 -system-proxies ..... Use system network proxies by default.
3252 $GBN -no-glib ........... Do not compile Glib support.
3253 $GBY -glib .............. Compile Glib support.
3256 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3259 $X2N -no-xinput2......... Do not compile XInput2 support.
3260 $X2Y -xinput2............ Compile XInput2 support.
3266 if [ "$XPLATFORM_QNX" = "yes" ]; then
3269 -no-slog2 .......... Do not compile with slog2 support.
3270 -slog2 ............. Compile with slog2 support.
3276 if [ "$BUILD_ON_MAC" = "yes" ]; then
3281 -Fstring ........... Add an explicit framework path.
3282 -fw string ......... Add an explicit framework.
3284 * -framework ......... Build Qt as a series of frameworks and
3285 link tools against those frameworks.
3286 -no-framework ...... Do not build Qt as a series of frameworks.
3288 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3289 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3291 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3292 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3293 QT_ENABLE_HARFBUZZ environment variable.
3298 [ "x$ERROR" = "xyes" ] && exit 1
3303 # -----------------------------------------------------------------------------
3304 # LICENSING, INTERACTIVE PART
3305 # -----------------------------------------------------------------------------
3308 echo "This is the Qt ${EditionString} Edition."
3311 if [ "$Edition" = "OpenSource" ]; then
3313 echo "You are licensed to use this software under the terms of"
3314 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3315 if [ -f "$relpath/LICENSE.GPL3" ]; then
3316 echo "You are also licensed to use this software under the terms of"
3317 echo "the GNU General Public License (GPL) versions 3."
3323 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3324 echo "You have already accepted the terms of the $LicenseType license."
3327 if [ -f "$relpath/LICENSE.GPL3" ]; then
3328 echo "Type '3' to view the GNU General Public License version 3."
3330 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3331 echo "Type 'yes' to accept this license offer."
3332 echo "Type 'no' to decline this license offer."
3334 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3338 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3340 elif [ "$acceptance" = "no" ]; then
3341 echo "You are not licensed to use this software."
3344 elif [ "$acceptance" = "3" ]; then
3345 more "$relpath/LICENSE.GPL3"
3346 elif [ "$acceptance" = "L" ]; then
3347 more "$relpath/LICENSE.LGPL"
3350 elif [ "$Edition" = "Preview" ]; then
3351 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3354 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3355 echo "You have already accepted the terms of the $LicenseType license."
3358 echo "You are licensed to use this software under the terms of"
3359 echo "the $TheLicense"
3361 echo "Type '?' to read the Preview License."
3362 echo "Type 'yes' to accept this license offer."
3363 echo "Type 'no' to decline this license offer."
3365 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3369 if [ "$acceptance" = "yes" ]; then
3371 elif [ "$acceptance" = "no" ] ;then
3372 echo "You are not licensed to use this software."
3375 elif [ "$acceptance" = "?" ]; then
3376 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3379 elif [ "$Edition" != "OpenSource" ]; then
3380 if [ -n "$ExpiryDate" ]; then
3381 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3382 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3383 Today=`date +%Y%m%d`
3384 if [ "$Today" -gt "$ExpiryDate" ]; then
3385 case "$LicenseType" in
3386 Commercial|Academic|Educational)
3388 echo "WARNING WARNING WARNING WARNING"
3390 echo " Your support and upgrade period has expired."
3392 echo " You may continue to use your last licensed release"
3393 echo " of Qt under the terms of your existing license"
3394 echo " agreement. But you are not entitled to technical"
3395 echo " support, nor are you entitled to use any more recent"
3396 echo " Qt releases."
3398 echo " Please use the contact form at http://qt.digia.com/contact-us"
3399 echo " to renew your support and upgrades for this license."
3401 echo "WARNING WARNING WARNING WARNING"
3407 echo "NOTICE NOTICE NOTICE NOTICE"
3409 echo " Your Evaluation license has expired."
3411 echo " You are no longer licensed to use this software. Please"
3412 echo " use the contact form at http://qt.digia.com/contact-us to"
3413 echo " purchase license, or install the Qt Open Source Edition"
3414 echo " if you intend to develop free software."
3416 echo "NOTICE NOTICE NOTICE NOTICE"
3423 TheLicense=`head -n 1 "$outpath/LICENSE"`
3425 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3426 echo "You have already accepted the terms of the $TheLicense."
3429 echo "You are licensed to use this software under the terms of"
3430 echo "the $TheLicense."
3432 echo "Type '?' to view the $TheLicense."
3433 echo "Type 'yes' to accept this license offer."
3434 echo "Type 'no' to decline this license offer."
3436 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3440 if [ "$acceptance" = "yes" ]; then
3442 elif [ "$acceptance" = "no" ]; then
3443 echo "You are not licensed to use this software."
3446 else [ "$acceptance" = "?" ]
3447 more "$outpath/LICENSE"
3452 # this should be moved somewhere else
3455 AIX_VERSION=`uname -v`
3456 if [ "$AIX_VERSION" -lt "5" ]; then
3457 QMakeVar add QMAKE_LIBS_X11 -lbind
3464 #-------------------------------------------------------------------------------
3465 # generate qconfig.cpp
3466 #-------------------------------------------------------------------------------
3467 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3469 shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3470 shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3472 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3474 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3475 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3477 /* Installation date */
3478 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3480 /* Installation Info */
3481 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3482 "qt_prfxpath=$QT_INSTALL_PREFIX",
3483 "qt_docspath=$QT_INSTALL_DOCS",
3484 "qt_hdrspath=$QT_INSTALL_HEADERS",
3485 "qt_libspath=$QT_INSTALL_LIBS",
3486 "qt_binspath=$QT_INSTALL_BINS",
3487 "qt_plugpath=$QT_INSTALL_PLUGINS",
3488 "qt_impspath=$QT_INSTALL_IMPORTS",
3489 "qt_datapath=$QT_INSTALL_DATA",
3490 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3491 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3492 "qt_tstspath=$QT_INSTALL_TESTS",
3493 #ifdef QT_BUILD_QMAKE
3494 "qt_ssrtpath=$CFG_SYSROOT",
3495 "qt_hpfxpath=$QT_HOST_PREFIX",
3496 "qt_hbinpath=$QT_HOST_BINS",
3497 "qt_hdatpath=$QT_HOST_DATA",
3498 "qt_targspec=$shortxspec",
3499 "qt_hostspec=$shortspec",
3502 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3505 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3507 /* strlen( "qt_lcnsxxxx" ) == 12 */
3508 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3509 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3511 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3514 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3515 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3516 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3518 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3519 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3520 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3523 # -----------------------------------------------------------------------------
3524 if [ "$LicenseType" = "Evaluation" ]; then
3525 EVALKEY=qt_qevalkey=$LicenseKeyExt
3526 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3527 EVALKEY=qt_qevalkey=
3530 if [ -n "$EVALKEY" ]; then
3531 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3532 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3533 /* Evaluation license key */
3534 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3536 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3540 # -----------------------------------------------------------------------------
3542 # -----------------------------------------------------------------------------
3545 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3546 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3549 # $1: input variable name (awk regexp)
3550 # $2: optional output variable name
3551 # $3: optional value transformation (sed command)
3552 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3553 # is where the resulting variable is written to
3554 setBootstrapVariable()
3556 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3560 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3561 echo "Creating qmake. Please wait..."
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 #-------------------------------------------------------------------------------
3683 # write out device config before we run the test.
3684 #-------------------------------------------------------------------------------
3685 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3686 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3687 rm -f "$DEVICE_VARS_FILE"
3689 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3690 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3693 #-------------------------------------------------------------------------------
3695 #-------------------------------------------------------------------------------
3696 if [ -z "$PKG_CONFIG" ]; then
3697 # See if PKG_CONFIG is set in the mkspec:
3698 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3700 if [ -z "$PKG_CONFIG" ]; then
3701 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3704 if [ "$CFG_PKGCONFIG" = "no" ]; then
3706 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3708 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3709 echo >&2 "a correctly setup pkg-config environment!"
3711 elif [ -n "$PKG_CONFIG" ]; then
3712 # found a pkg-config
3713 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3714 # when xcompiling, check environment to see if it's actually usable
3715 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3716 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3717 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3718 if [ -n "$GCC_MACHINE_DUMP" ]; then
3719 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3721 export PKG_CONFIG_LIBDIR
3722 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3723 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3724 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3725 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3726 echo >&2 "Set this variable to the directory that contains target .pc files"
3727 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3728 echo >&2 "use -force-pkg-config to override this test."
3732 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3735 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3736 if [ -n "$CFG_SYSROOT" ]; then
3737 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3738 export PKG_CONFIG_SYSROOT_DIR
3739 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3740 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3741 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3742 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3743 echo >&2 "or use -force-pkg-config to override this test."
3747 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3751 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3752 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3756 if [ -z "$PKG_CONFIG" ]; then
3757 QT_CONFIG="$QT_CONFIG no-pkg-config"
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 common/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
3984 if [ "$XPLATFORM_QNX" = "yes" ]; then
3985 if [ "$CFG_SLOG2" != "no" ]; then
3986 if compileTest unix/slog2 "slog2"; then
3988 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
3995 if [ "$CFG_ZLIB" = "auto" ]; then
3996 if compileTest unix/zlib "zlib"; then
4003 if [ "$CFG_LARGEFILE" = "auto" ]; then
4004 #Large files should be enabled for all Linux systems
4008 if [ "$CFG_GUI" = "no" ]; then
4009 QPA_PLATFORM_GUARD=no
4012 # detect how jpeg should be built
4013 if [ "$CFG_JPEG" = "auto" ]; then
4014 if [ "$CFG_SHARED" = "yes" ]; then
4021 if [ "$CFG_LIBJPEG" = "auto" ]; then
4022 if compileTest unix/libjpeg "libjpeg"; then
4029 # detect how gif should be built
4030 if [ "$CFG_GIF" = "auto" ]; then
4031 if [ "$CFG_SHARED" = "yes" ]; then
4039 if [ "$CFG_LIBPNG" = "auto" ]; then
4040 if compileTest unix/libpng "libpng"; then
4047 if [ "$CFG_EGLFS" = "yes" ]; then
4048 if [ "$CFG_EGL" = "no" ]; then
4049 echo "The EGLFS plugin requires EGL support and cannot be built"
4052 if [ "$CFG_OPENGL" != "es2" ]; then
4053 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4060 if [ "$CFG_KMS" = "yes" ]; then
4061 if [ "$CFG_EGL" = "no" ]; then
4062 echo "The KMS plugin requires EGL support and cannot be built"
4065 if [ "$CFG_OPENGL" != "es2" ]; then
4066 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4071 # auto-detect SQL-modules support
4072 for _SQLDR in $CFG_SQL_AVAILABLE; do
4075 if [ "$CFG_SQL_mysql" != "no" ]; then
4076 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4077 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4078 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4079 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4080 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4081 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4082 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4084 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4085 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4086 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4087 echo " You need MySql 4 or higher."
4088 echo " If you believe this message is in error you may use the continue"
4089 echo " switch (-continue) to $0 to continue."
4094 QT_LFLAGS_MYSQL_R=""
4098 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4099 QMakeVar add CONFIG use_libmysqlclient_r
4100 if [ "$CFG_SQL_mysql" = "auto" ]; then
4101 CFG_SQL_mysql=plugin
4103 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4104 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4105 if [ "$CFG_SQL_mysql" = "auto" ]; then
4106 CFG_SQL_mysql=plugin
4109 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4110 echo "MySQL support cannot be enabled due to functionality tests!"
4111 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4112 echo " If you believe this message is in error you may use the continue"
4113 echo " switch (-continue) to $0 to continue."
4118 QT_LFLAGS_MYSQL_R=""
4126 if [ "$CFG_SQL_psql" != "no" ]; then
4127 # Be careful not to use native pg_config when cross building.
4128 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4129 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4130 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4132 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4133 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4134 # But, respect PSQL_LIBS if set
4135 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4136 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4137 if [ "$CFG_SQL_psql" = "auto" ]; then
4141 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4142 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4143 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4144 echo " If you believe this message is in error you may use the continue"
4145 echo " switch (-continue) to $0 to continue."
4156 if [ "$CFG_SQL_odbc" != "no" ]; then
4157 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4158 if [ "$CFG_SQL_odbc" = "auto" ]; then
4162 if compileTest unix/iodbc "iODBC"; then
4163 QT_LFLAGS_ODBC="-liodbc"
4164 if [ "$CFG_SQL_odbc" = "auto" ]; then
4168 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4169 echo "ODBC support cannot be enabled due to functionality tests!"
4170 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4171 echo " If you believe this message is in error you may use the continue"
4172 echo " switch (-continue) to $0 to continue."
4182 if [ "$CFG_SQL_oci" != "no" ]; then
4183 if compileTest unix/oci "OCI"; then
4184 if [ "$CFG_SQL_oci" = "auto" ]; then
4188 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4189 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4190 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4191 echo " If you believe this message is in error you may use the continue"
4192 echo " switch (-continue) to $0 to continue."
4201 if [ "$CFG_SQL_tds" != "no" ]; then
4202 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4203 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4204 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4205 if [ "$CFG_SQL_tds" = "auto" ]; then
4209 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4210 echo "TDS support cannot be enabled due to functionality tests!"
4211 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4212 echo " If you believe this message is in error you may use the continue"
4213 echo " switch (-continue) to $0 to continue."
4222 if [ "$CFG_SQL_db2" != "no" ]; then
4223 if compileTest unix/db2 "DB2"; then
4224 if [ "$CFG_SQL_db2" = "auto" ]; then
4228 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4229 echo "ODBC support cannot be enabled due to functionality tests!"
4230 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4231 echo " If you believe this message is in error you may use the continue"
4232 echo " switch (-continue) to $0 to continue."
4241 if [ "$CFG_SQL_ibase" != "no" ]; then
4242 if compileTest unix/ibase "InterBase"; then
4243 if [ "$CFG_SQL_ibase" = "auto" ]; then
4244 CFG_SQL_ibase=plugin
4247 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4248 echo "InterBase support cannot be enabled due to functionality tests!"
4249 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4250 echo " If you believe this message is in error you may use the continue"
4251 echo " switch (-continue) to $0 to continue."
4260 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4261 if compileTest unix/sqlite2 "SQLite2"; then
4262 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4263 CFG_SQL_sqlite2=plugin
4266 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4267 echo "SQLite2 support cannot be enabled due to functionality tests!"
4268 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4269 echo " If you believe this message is in error you may use the continue"
4270 echo " switch (-continue) to $0 to continue."
4279 if [ "$CFG_SQL_sqlite" != "no" ]; then
4280 SQLITE_AUTODETECT_FAILED="no"
4281 if [ "$CFG_SQLITE" = "system" ]; then
4282 if [ -n "$PKG_CONFIG" ]; then
4283 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4284 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4287 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4289 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4290 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4291 CFG_SQL_sqlite=plugin
4293 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4295 SQLITE_AUTODETECT_FAILED="yes"
4298 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4299 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4300 CFG_SQL_sqlite=plugin
4303 SQLITE_AUTODETECT_FAILED="yes"
4307 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4308 echo "SQLite support cannot be enabled due to functionality tests!"
4309 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4310 echo " If you believe this message is in error you may use the continue"
4311 echo " switch (-continue) to $0 to continue."
4317 if [ "$OPT_VERBOSE" = "yes" ]; then
4318 echo "unknown SQL driver: $_SQLDR"
4324 # auto-detect NIS support
4325 if [ "$CFG_NIS" != "no" ]; then
4326 if compileTest unix/nis "NIS"; then
4329 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4330 echo "NIS support cannot be enabled due to functionality tests!"
4331 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4332 echo " If you believe this message is in error you may use the continue"
4333 echo " switch (-continue) to $0 to continue."
4341 # auto-detect CUPS support
4342 if [ "$CFG_CUPS" != "no" ]; then
4343 if compileTest unix/cups "Cups"; then
4346 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4347 echo "Cups support cannot be enabled due to functionality tests!"
4348 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4349 echo " If you believe this message is in error you may use the continue"
4350 echo " switch (-continue) to $0 to continue."
4358 # auto-detect iconv(3) support
4359 if [ "$CFG_ICONV" != "no" ]; then
4360 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4362 elif compileTest unix/iconv "POSIX iconv"; then
4364 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4366 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4369 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4370 echo "Iconv support cannot be enabled due to functionality tests!"
4371 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4372 echo " If you believe this message is in error you may use the continue"
4373 echo " switch (-continue) to $0 to continue."
4381 # auto-detect libdbus-1 support
4382 if [ "$CFG_DBUS" != "no" ]; then
4383 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4384 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4385 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4387 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4388 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4389 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4390 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4392 if [ "$CFG_DBUS" = "auto" ]; then
4394 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4395 # CFG_DBUS is "yes" or "linked" here
4397 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4398 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4399 echo " If you believe this message is in error you may use the continue"
4400 echo " switch (-continue) to $0 to continue."
4406 # auto-detect Glib support
4407 if [ "$CFG_GLIB" != "no" ]; then
4408 if [ -n "$PKG_CONFIG" ]; then
4409 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4410 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4412 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4414 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4415 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4417 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4418 echo "Glib support cannot be enabled due to functionality tests!"
4419 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4420 echo " If you believe this message is in error you may use the continue"
4421 echo " switch (-continue) to $0 to continue."
4429 # auto-detect GTK style support
4430 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4431 if [ -n "$PKG_CONFIG" ]; then
4432 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4433 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4435 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4437 QT_CONFIG="$QT_CONFIG gtkstyle"
4438 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4439 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4441 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4442 echo "Gtk theme support cannot be enabled due to functionality tests!"
4443 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4444 echo " If you believe this message is in error you may use the continue"
4445 echo " switch (-continue) to $0 to continue."
4451 elif [ "$CFG_GLIB" = "no" ]; then
4456 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4457 if [ -n "$PKG_CONFIG" ]; then
4458 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4459 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4461 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4463 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4464 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4466 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4467 echo "Gstreamer support cannot be enabled due to functionality tests!"
4468 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4469 echo " If you believe this message is in error you may use the continue"
4470 echo " switch (-continue) to $0 to continue."
4476 elif [ "$CFG_GLIB" = "no" ]; then
4480 # auto-detect libicu support
4481 if [ "$CFG_ICU" != "no" ]; then
4482 if compileTest unix/icu "ICU"; then
4483 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4485 if [ "$CFG_ICU" = "auto" ]; then
4487 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4490 echo "The ICU library support cannot be enabled."
4491 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4492 echo " If you believe this message is in error you may use the continue"
4493 echo " switch (-continue) to $0 to continue."
4499 # Auto-detect PulseAudio support
4500 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4501 if [ -n "$PKG_CONFIG" ]; then
4502 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4503 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4505 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4507 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4508 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4510 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4511 echo "PulseAudio support cannot be enabled due to functionality tests!"
4512 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4513 echo " If you believe this message is in error you may use the continue"
4514 echo " switch (-continue) to $0 to continue."
4523 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4524 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4525 if [ "$CFG_GUI" = "no" ]; then
4526 if [ "$CFG_OPENGL" = "auto" ]; then
4529 if [ "$CFG_OPENGL" != "no" ]; then
4530 echo "OpenGL enabled, but GUI disabled."
4531 echo " You might need to either enable the GUI or disable OpenGL"
4535 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4536 if compileTest x11/opengl "OpenGL"; then
4538 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4541 if [ "$CFG_OPENGL" = "yes" ]; then
4542 echo "All the OpenGL functionality tests failed!"
4543 echo " You might need to modify the include and library search paths by editing"
4544 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4545 echo " ${XQMAKESPEC}."
4552 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4553 if [ "$CFG_OPENGL" = "desktop" ]; then
4554 compileTest x11/glxfbconfig "OpenGL"
4555 if [ $? != "0" ]; then
4556 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4563 elif [ "$CFG_OPENGL" = "es2" ]; then
4565 compileTest unix/opengles2 "OpenGL ES 2.x"
4566 if [ $? != "0" ]; then
4567 echo "The OpenGL ES 2.0 functionality test failed!"
4568 echo " You might need to modify the include and library search paths by editing"
4569 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4570 echo " ${XQMAKESPEC}."
4573 elif [ "$CFG_OPENGL" = "desktop" ]; then
4574 # Desktop OpenGL support
4575 compileTest x11/opengl "OpenGL"
4576 if [ $? != "0" ]; then
4577 echo "The OpenGL functionality test failed!"
4578 echo " You might need to modify the include and library search paths by editing"
4579 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4580 echo " ${XQMAKESPEC}."
4585 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4586 compileTest x11/glxfbconfig "OpenGL"
4587 if [ $? != "0" ]; then
4588 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4595 fi # X11/MINGW OpenGL
4597 if [ "$BUILD_ON_MAC" = "yes" ]; then
4598 if [ "$CFG_COREWLAN" = "auto" ]; then
4599 if compileTest mac/corewlan "CoreWlan"; then
4607 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4608 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4609 if compileTest unix/opengldesktop "OpenGL"; then
4611 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4614 if [ "$CFG_OPENGL" = "yes" ]; then
4615 echo "All the OpenGL functionality tests failed!"
4616 echo " You might need to modify the include and library search paths by editing"
4617 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4618 echo " ${XQMAKESPEC}."
4623 elif [ "$CFG_OPENGL" = "es2" ]; then
4625 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4626 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4627 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4628 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4629 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4630 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4631 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4632 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4635 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4636 if [ $? != "0" ]; then
4637 echo "The OpenGL ES 2.0 functionality test failed!"
4638 echo " You might need to modify the include and library search paths by editing"
4639 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4640 echo " ${XQMAKESPEC}."
4643 elif [ "$CFG_OPENGL" = "desktop" ]; then
4644 # Desktop OpenGL support
4645 compileTest unix/opengldesktop "OpenGL"
4646 if [ $? != "0" ]; then
4647 echo "The OpenGL functionality test failed!"
4648 echo " You might need to modify the include and library search paths by editing"
4649 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4650 echo " ${XQMAKESPEC}."
4655 # auto-detect FontConfig support
4656 if [ "$CFG_FONTCONFIG" != "no" ]; then
4657 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4658 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4659 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4661 QT_CFLAGS_FONTCONFIG=
4662 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4664 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4665 QT_CONFIG="$QT_CONFIG fontconfig"
4666 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4667 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4669 CFG_LIBFREETYPE=system
4676 # Save these for a check later
4677 ORIG_CFG_XCB="$CFG_XCB"
4678 ORIG_CFG_EGLFS="$CFG_EGLFS"
4679 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4680 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4681 ORIG_CFG_KMS="$CFG_KMS"
4683 if [ "$CFG_LIBUDEV" != "no" ]; then
4684 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4685 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4686 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4687 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4688 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4690 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4692 QT_CONFIG="$QT_CONFIG libudev"
4693 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4694 echo "The libudev functionality test failed!"
4700 if [ "$CFG_LIBUDEV" = "no" ]; then
4701 QMakeVar add DEFINES QT_NO_LIBUDEV
4704 if [ "$CFG_EVDEV" != "no" ]; then
4705 if compileTest unix/evdev "evdev"; then
4707 QT_CONFIG="$QT_CONFIG evdev"
4708 elif [ "$CFG_EVDEV" = "yes" ]; then
4709 echo "The evdev functionality test failed!"
4715 if [ "$CFG_EVDEV" = "no" ]; then
4716 QMakeVar add DEFINES QT_NO_EVDEV
4719 # Check we actually have X11 :-)
4720 if compileTest x11/xlib "XLib"; then
4721 QT_CONFIG="$QT_CONFIG xlib"
4724 # auto-detect Xrender support
4725 if [ "$CFG_XRENDER" != "no" ]; then
4726 if compileTest x11/xrender "Xrender"; then
4728 QT_CONFIG="$QT_CONFIG xrender"
4730 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4731 echo "Xrender support cannot be enabled due to functionality tests!"
4732 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4733 echo " If you believe this message is in error you may use the continue"
4734 echo " switch (-continue) to $0 to continue."
4742 if [ "$CFG_XCB" != "no" ]; then
4743 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4744 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4745 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4747 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4749 if [ "$CFG_XCB" = "qt" ]; then
4750 QT_CONFIG="$QT_CONFIG xcb-qt"
4754 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4755 XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm"
4756 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
4757 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
4760 if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4761 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4762 QT_CONFIG="$QT_CONFIG xcb-render"
4765 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4767 QT_CONFIG="$QT_CONFIG xcb-glx"
4770 echo "The test for linking against libxcb and support libraries failed!"
4771 echo " You might need install dependency packages, or pass -qt-xcb."
4772 echo " See src/plugins/platforms/xcb/README."
4777 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4778 QT_CONFIG="$QT_CONFIG xcb-xlib"
4781 # auto-detect XInput2 support. Needed by xcb too.
4782 if [ "$CFG_XINPUT2" != "no" ]; then
4783 if compileTest x11/xinput2 "XInput2"; then
4787 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4788 echo "XInput2 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."
4799 if [ "$CFG_XCB" != "auto" ]; then
4800 echo "The test for linking against libxcb failed!"
4801 echo " You might need to install dependency packages for libxcb."
4802 echo " See src/plugins/platforms/xcb/README."
4808 if [ "$CFG_XCB" = "no" ]; then
4809 QMakeVar add DEFINES QT_NO_XCB
4812 if [ "$CFG_DIRECTFB" != "no" ]; then
4813 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4814 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4815 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4816 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4818 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4819 echo " DirectFB 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."
4832 if [ "$CFG_LINUXFB" != "no" ]; then
4833 if compileTest qpa/linuxfb "LinuxFB"; then
4835 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4836 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4837 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4838 echo " If you believe this message is in error you may use the continue"
4839 echo " switch (-continue) to $0 to continue."
4846 if [ "$CFG_KMS" != "no" ]; then
4847 if compileTest qpa/kms "KMS"; then
4849 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4850 echo " KMS support cannot be enabled due to functionality tests!"
4851 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4852 echo " If you believe this message is in error you may use the continue"
4853 echo " switch (-continue) to $0 to continue."
4860 # Detect libxkbcommon
4861 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4862 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4863 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4864 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4865 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4867 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4871 if [ "$CFG_EGL" != "no" ]; then
4872 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4873 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4874 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4875 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4876 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4877 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4878 fi # detect EGL support
4879 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4881 elif [ "$CFG_EGL" = "yes" ]; then
4882 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4883 echo " You might need to modify the include and library search paths by editing"
4884 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4889 elif [ "$CFG_OPENGL" = "desktop" ]; then
4890 if [ "$CFG_EGL" = "yes" ]; then
4891 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4892 echo "Either disable EGL support or enable OpenGL ES support."
4898 if [ "$CFG_EGLFS" != "no" ]; then
4899 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4900 CFG_EGLFS="$CFG_EGL"
4906 if [ "$CFG_KMS" = "yes" ]; then
4907 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4914 # Detect accessibility support
4915 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4916 if [ "$CFG_XCB" = "no" ]; then
4917 CFG_ACCESSIBILITY=yes
4919 # linux/xcb accessibility needs dbus
4920 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ]; then
4921 CFG_ACCESSIBILITY=yes
4923 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4924 CFG_ACCESSIBILITY=no
4926 echo "Accessibility support needs DBus."
4933 # Determine the default QPA platform
4934 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4936 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4937 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4938 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4939 QT_QPA_DEFAULT_PLATFORM="windows"
4940 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4941 QT_QPA_DEFAULT_PLATFORM="cocoa"
4942 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4943 QT_QPA_DEFAULT_PLATFORM="qnx"
4945 QT_QPA_DEFAULT_PLATFORM="xcb"
4950 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4951 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4952 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4953 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4955 if [ "$CFG_DIRECTFB" = "yes" ]; then
4956 QT_CONFIG="$QT_CONFIG directfb"
4957 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4958 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4960 if [ "$CFG_LINUXFB" = "yes" ]; then
4961 QT_CONFIG="$QT_CONFIG linuxfb"
4963 if [ "$CFG_KMS" = "yes" ]; then
4964 QT_CONFIG="$QT_CONFIG kms"
4967 if [ "$BUILD_ON_MAC" = "yes" ]; then
4968 if compileTest mac/coreservices "CoreServices"; then
4969 QT_CONFIG="$QT_CONFIG coreservices"
4971 QMakeVar add DEFINES QT_NO_CORESERVICES
4975 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4976 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4977 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4978 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4979 echo "No QPA platform plugin enabled!"
4980 echo " If you really want to build without a QPA platform plugin you must pass"
4981 echo " -no-qpa-platform-guard to configure. Doing this will"
4982 echo " produce a Qt that can not run GUI applications."
4983 echo " The dependencies needed for xcb to build are listed in"
4984 echo " src/plugins/platforms/xcb/README"
4991 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4992 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4993 if compileTest unix/freetype "FreeType"; then
4994 CFG_LIBFREETYPE=system
5000 if ! compileTest unix/stl "STL" &&
5001 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5002 echo "STL functionality check failed! Cannot build Qt with this STL library."
5003 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5008 # detect POSIX clock_gettime()
5009 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5010 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5011 CFG_CLOCK_GETTIME=yes
5013 CFG_CLOCK_GETTIME=no
5017 # detect POSIX monotonic clocks
5018 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5019 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5020 CFG_CLOCK_MONOTONIC=yes
5022 CFG_CLOCK_MONOTONIC=no
5024 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5025 CFG_CLOCK_MONOTONIC=no
5029 if [ "$CFG_MREMAP" = "auto" ]; then
5030 if compileTest unix/mremap "mremap"; then
5037 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5038 if [ "$CFG_GETADDRINFO" != "no" ]; then
5039 if compileTest unix/getaddrinfo "getaddrinfo"; then
5042 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5043 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5044 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5045 echo " If you believe this message is in error you may use the continue"
5046 echo " switch (-continue) to $0 to continue."
5054 # find if the platform provides inotify
5055 if [ "$CFG_INOTIFY" != "no" ]; then
5056 if compileTest unix/inotify "inotify"; then
5059 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5060 echo "inotify support cannot be enabled due to functionality tests!"
5061 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5062 echo " If you believe this message is in error you may use the continue"
5063 echo " switch (-continue) to $0 to continue."
5071 # find if the platform provides if_nametoindex (ipv6 interface name support)
5072 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5073 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5076 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5077 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5078 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5079 echo " If you believe this message is in error you may use the continue"
5080 echo " switch (-continue) to $0 to continue."
5088 # find if the platform provides getifaddrs (network interface enumeration)
5089 if [ "$CFG_GETIFADDRS" != "no" ]; then
5090 if compileTest unix/getifaddrs "getifaddrs"; then
5093 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5094 echo "getifaddrs support cannot be enabled due to functionality tests!"
5095 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5096 echo " If you believe this message is in error you may use the continue"
5097 echo " switch (-continue) to $0 to continue."
5106 if [ "$CFG_OPENSSL" != "no" ]; then
5107 if compileTest unix/openssl "OpenSSL"; then
5108 if [ "$CFG_OPENSSL" = "auto" ]; then
5112 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5113 echo "OpenSSL support cannot be enabled due to functionality tests!"
5114 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5115 echo " If you believe this message is in error you may use the continue"
5116 echo " switch (-continue) to $0 to continue."
5125 if [ "$CFG_PCRE" != "qt" ]; then
5126 if compileTest unix/pcre "PCRE"; then
5129 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5130 echo "PCRE support cannot be enabled due to functionality tests!"
5131 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5132 echo " If you believe this message is in error you may use the continue"
5133 echo " switch (-continue) to $0 to continue."
5141 # detect OpenVG support
5142 if [ "$CFG_OPENVG" != "no" ]; then
5143 if compileTest unix/openvg "OpenVG"; then
5144 if [ "$CFG_OPENVG" = "auto" ]; then
5147 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5148 if [ "$CFG_OPENVG" = "auto" ]; then
5151 CFG_OPENVG_ON_OPENGL=yes
5152 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5153 if [ "$CFG_OPENVG" = "auto" ]; then
5156 CFG_OPENVG_LC_INCLUDES=yes
5157 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5158 if [ "$CFG_OPENVG" = "auto" ]; then
5161 CFG_OPENVG_LC_INCLUDES=yes
5162 CFG_OPENVG_ON_OPENGL=yes
5164 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5165 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5166 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5167 echo " If you believe this message is in error you may use the continue"
5168 echo " switch (-continue) to $0 to continue."
5174 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5175 CFG_OPENVG_SHIVA=yes
5179 if [ "$CFG_ALSA" = "auto" ]; then
5180 if compileTest unix/alsa "alsa"; then
5187 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5188 if [ "$CFG_ARCH" = "arm" ]; then
5189 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5190 if [ $? != "0" ]; then
5191 CFG_JAVASCRIPTCORE_JIT=no
5194 case "$XPLATFORM" in
5196 CFG_JAVASCRIPTCORE_JIT=no
5202 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5203 QMakeVar set JAVASCRIPTCORE_JIT yes
5204 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5205 QMakeVar set JAVASCRIPTCORE_JIT no
5208 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5209 CFG_AUDIO_BACKEND=yes
5212 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5213 echo "Warning: largefile support cannot be disabled for win32."
5217 #-------------------------------------------------------------------------------
5218 # ask for all that hasn't been auto-detected or specified in the arguments
5219 #-------------------------------------------------------------------------------
5221 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5223 # disable accessibility
5224 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5225 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5227 QT_CONFIG="$QT_CONFIG accessibility"
5231 if [ "$CFG_EGL" = "yes" ]; then
5232 QT_CONFIG="$QT_CONFIG egl"
5234 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5238 if [ "$CFG_EGLFS" = "yes" ]; then
5239 QT_CONFIG="$QT_CONFIG eglfs"
5241 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5245 if [ "$CFG_OPENVG" = "no" ]; then
5246 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5248 QT_CONFIG="$QT_CONFIG openvg"
5249 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5250 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5252 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5253 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5255 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5256 QT_CONFIG="$QT_CONFIG shivavg"
5257 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5262 if [ "$CFG_OPENGL" = "no" ]; then
5263 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5265 QT_CONFIG="$QT_CONFIG opengl"
5268 if [ "$CFG_OPENGL" = "es2" ]; then
5269 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5272 if [ "$CFG_OPENGL" = "es2" ]; then
5273 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5274 QT_CONFIG="$QT_CONFIG opengles2"
5277 # build up the variables for output
5278 if [ "$CFG_DEBUG" = "yes" ]; then
5279 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5280 elif [ "$CFG_DEBUG" = "no" ]; then
5281 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5283 if [ "$CFG_SHARED" = "yes" ]; then
5284 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5285 QT_CONFIG="$QT_CONFIG shared"
5286 elif [ "$CFG_SHARED" = "no" ]; then
5287 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5288 QT_CONFIG="$QT_CONFIG static"
5291 #FIXME: qpa is implicit this should all be removed
5292 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5293 QT_CONFIG="$QT_CONFIG qpa"
5294 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5295 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5297 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5298 # Do not set this here for Windows. Let qmake do it so
5299 # debug and release precompiled headers are kept separate.
5300 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5302 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5303 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5304 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5305 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5306 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5307 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5309 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5310 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5312 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5313 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5314 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5315 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5316 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5317 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5318 QMakeVar add QMAKE_CFLAGS -g
5319 QMakeVar add QMAKE_CXXFLAGS -g
5320 QT_CONFIG="$QT_CONFIG separate_debug_info"
5322 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5323 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5325 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5326 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5327 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5328 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5329 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5330 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5331 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5332 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5333 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5334 if [ "$CFG_ARCH" = "mips" ]; then
5335 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5336 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5338 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5339 QT_CONFIG="$QT_CONFIG clock-gettime"
5341 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5342 QT_CONFIG="$QT_CONFIG clock-monotonic"
5344 if [ "$CFG_MREMAP" = "yes" ]; then
5345 QT_CONFIG="$QT_CONFIG mremap"
5347 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5348 QT_CONFIG="$QT_CONFIG getaddrinfo"
5350 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5351 QT_CONFIG="$QT_CONFIG ipv6ifname"
5353 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5354 QT_CONFIG="$QT_CONFIG getifaddrs"
5356 if [ "$CFG_INOTIFY" = "yes" ]; then
5357 QT_CONFIG="$QT_CONFIG inotify"
5359 if [ "$CFG_LIBJPEG" = "no" ]; then
5361 elif [ "$CFG_LIBJPEG" = "system" ]; then
5362 QT_CONFIG="$QT_CONFIG system-jpeg"
5364 if [ "$CFG_JPEG" = "no" ]; then
5365 QT_CONFIG="$QT_CONFIG no-jpeg"
5366 elif [ "$CFG_JPEG" = "yes" ]; then
5367 QT_CONFIG="$QT_CONFIG jpeg"
5369 if [ "$CFG_LIBPNG" = "no" ]; then
5372 if [ "$CFG_LIBPNG" = "system" ]; then
5373 QT_CONFIG="$QT_CONFIG system-png"
5375 if [ "$CFG_PNG" = "no" ]; then
5376 QT_CONFIG="$QT_CONFIG no-png"
5377 elif [ "$CFG_PNG" = "yes" ]; then
5378 QT_CONFIG="$QT_CONFIG png"
5380 if [ "$CFG_GIF" = "no" ]; then
5381 QT_CONFIG="$QT_CONFIG no-gif"
5382 elif [ "$CFG_GIF" = "yes" ]; then
5383 QT_CONFIG="$QT_CONFIG gif"
5385 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5386 QT_CONFIG="$QT_CONFIG no-freetype"
5387 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5388 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5389 QT_CONFIG="$QT_CONFIG system-freetype"
5391 QT_CONFIG="$QT_CONFIG freetype"
5393 if [ "$CFG_GUI" = "auto" ]; then
5396 if [ "$CFG_GUI" = "no" ]; then
5397 QT_CONFIG="$QT_CONFIG no-gui"
5400 if [ "$CFG_WIDGETS" = "no" ]; then
5401 QT_CONFIG="$QT_CONFIG no-widgets"
5402 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5405 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5406 #On Mac we implicitly link against libz, so we
5407 #never use the 3rdparty stuff.
5408 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5410 if [ "$CFG_ZLIB" = "yes" ]; then
5411 QT_CONFIG="$QT_CONFIG zlib"
5412 elif [ "$CFG_ZLIB" = "system" ]; then
5413 QT_CONFIG="$QT_CONFIG system-zlib"
5416 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5417 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5418 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5419 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5420 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5421 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5422 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5423 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5424 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5425 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5426 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5427 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5428 [ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb"
5429 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5430 [ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies"
5432 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5433 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5435 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5436 if [ "$CFG_RPATH" = "yes" ]; then
5437 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5439 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5440 if [ -n "$RPATH_FLAGS" ]; then
5442 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5446 elif [ "$CFG_RPATH" = "yes" ]; then
5447 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5451 if [ -n "$RPATH_FLAGS" ]; then
5452 # add the user defined rpaths
5453 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5456 if [ "$CFG_RPATH" = "yes" ]; then
5457 QT_CONFIG="$QT_CONFIG rpath"
5460 if [ '!' -z "$I_FLAGS" ]; then
5461 # add the user define include paths
5462 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5463 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5466 if [ '!' -z "$W_FLAGS" ]; then
5467 # add the user defined warning flags
5468 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5469 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5470 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5473 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5474 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5475 # Follow default behavior of configure.exe by overriding with "rtti".
5476 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5479 if [ "$CFG_ALSA" = "yes" ]; then
5480 QT_CONFIG="$QT_CONFIG alsa"
5483 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5484 QT_CONFIG="$QT_CONFIG pulseaudio"
5487 if [ "$CFG_COREWLAN" = "yes" ]; then
5488 QT_CONFIG="$QT_CONFIG corewlan"
5491 if [ "$CFG_ICU" = "yes" ]; then
5492 QT_CONFIG="$QT_CONFIG icu"
5495 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5496 QT_CONFIG="$QT_CONFIG force_asserts"
5499 if [ "$CFG_PCRE" = "qt" ]; then
5500 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5504 # Some Qt modules are too advanced in C++ for some old compilers
5505 # Detect here the platforms where they are known to work.
5507 # See Qt documentation for more information on which features are
5508 # supported and on which compilers.
5510 canBuildQtConcurrent="yes"
5511 canUseV8Snapshot="yes"
5513 case "$XPLATFORM" in
5515 # PA-RISC's assembly is too limited
5516 # gcc 3.4 on that platform can't build QtXmlPatterns
5517 # the assembly it generates cannot be compiled
5519 # Check gcc's version
5520 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5524 canBuildQtXmlPatterns="no"
5528 canBuildQtXmlPatterns="no"
5532 unsupported/vxworks-*-g++*)
5535 unsupported/vxworks-*-dcc*)
5537 canBuildQtXmlPatterns="no"
5540 # Check gcc's version
5541 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5549 canBuildQtXmlPatterns="no"
5554 # Check the compiler version
5555 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5558 canBuildQtXmlPatterns="no"
5559 canBuildQtConcurrent="no"
5563 canBuildQtConcurrent="no"
5569 canBuildQtXmlPatterns="no"
5570 canBuildQtConcurrent="no"
5576 # Get the xlC version
5577 cat > xlcver.c <<EOF
5581 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5586 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5587 xlcver=`./xlcver 2>/dev/null`
5590 if [ "$OPT_VERBOSE" = "yes" ]; then
5591 if [ -n "$xlcver" ]; then
5592 echo Found IBM xlC version: $xlcver.
5594 echo Could not determine IBM xlC version, assuming oldest supported.
5601 canBuildQtXmlPatterns="no"
5602 canBuildQtConcurrent="no"
5606 canBuildQtConcurrent="no"
5612 canBuildQtConcurrent="no"
5616 if [ "$CFG_GUI" = "no" ]; then
5617 # WebKit requires QtGui
5621 if [ "$CFG_SHARED" = "no" ]; then
5623 echo "WARNING: Using static linking will disable the WebKit module."
5628 CFG_CONCURRENT="yes"
5629 if [ "$canBuildQtConcurrent" = "no" ]; then
5630 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5633 QT_CONFIG="$QT_CONFIG concurrent"
5637 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5638 QT_CONFIG="$QT_CONFIG audio-backend"
5642 if [ "$CFG_WEBKIT" = "debug" ]; then
5643 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5647 QT_CONFIG="$QT_CONFIG v8"
5648 # Detect snapshot support
5649 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5650 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5653 *) canUseV8Snapshot="no"
5657 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5658 # QEMU crashes when building inside Scratchbox with an ARM target
5659 canUseV8Snapshot="no"
5662 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5663 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5665 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5666 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5669 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5670 QT_CONFIG="$QT_CONFIG v8snapshot"
5674 if [ "$CFG_QML_DEBUG" = "no" ]; then
5675 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5678 case "$QMAKE_CONF_COMPILER" in
5681 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5683 case "$COMPILER_VERSION" in
5685 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5686 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5687 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5690 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5691 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5692 QT_GCC_PATCH_VERSION=0
5702 #-------------------------------------------------------------------------------
5703 # part of configuration information goes into qconfig.h
5704 #-------------------------------------------------------------------------------
5706 case "$CFG_QCONFIG" in
5708 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5711 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5712 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5713 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5714 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5715 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5716 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5718 echo "#endif" >>"$tmpconfig"
5722 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5726 # define QT_EDITION $QT_EDITION
5730 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5731 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5733 if [ "$CFG_SHARED" = "no" ]; then
5734 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5735 /* Qt was configured for a static build */
5736 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5743 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5744 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5747 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5748 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5751 if [ "$BUILD_ON_MAC" = "yes" ]; then
5752 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5753 #if defined(__LP64__)
5754 # define QT_POINTER_SIZE 8
5756 # define QT_POINTER_SIZE 4
5760 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5761 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5764 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5765 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5766 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5769 # Add compiler sub-architecture support
5770 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5771 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5772 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5774 MIPS_DSP MIPS_DSPR2; do
5775 eval "VAL=\$CFG_$SUBARCH"
5778 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5779 >>"$outpath/src/corelib/global/qconfig.h.new"
5784 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5786 if [ "$CFG_DEV" = "yes" ]; then
5787 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5790 # Add QPA to config.h
5791 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5793 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5794 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5797 # Add turned on SQL drivers
5798 for DRIVER in $CFG_SQL_AVAILABLE; do
5799 eval "VAL=\$CFG_SQL_$DRIVER"
5802 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5803 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5804 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5807 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5812 QMakeVar set sql-drivers "$SQL_DRIVERS"
5813 QMakeVar set sql-plugins "$SQL_PLUGINS"
5815 # Add other configuration options to the qconfig.h file
5816 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5817 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5818 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5819 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5820 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5822 # X11/Unix/Mac only configs
5823 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5824 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5825 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5826 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5827 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5828 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5829 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5830 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5831 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5832 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5833 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5834 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5835 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5836 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5838 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5839 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5840 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5841 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5842 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5843 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5844 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5845 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5846 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5847 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5848 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5849 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5850 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5852 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5853 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5854 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5855 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5856 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5857 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5858 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5859 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5861 # sort QCONFIG_FLAGS for neatness if we can
5862 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5863 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5865 if [ -n "$QCONFIG_FLAGS" ]; then
5866 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5867 #ifndef QT_BOOTSTRAPPED
5870 for cfg in $QCONFIG_FLAGS; do
5871 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5872 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5873 # figure out define logic, so we can output the correct
5874 # ifdefs to override the global defines in a project
5876 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5877 # QT_NO_option can be forcefully turned on by QT_option
5878 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5879 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5880 # QT_option can be forcefully turned off by QT_NO_option
5881 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5884 if [ -z $cfgdNeg ]; then
5885 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5892 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5893 #if defined($cfgd) && defined($cfgdNeg)
5895 #elif !defined($cfgd) && !defined($cfgdNeg)
5902 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5903 #endif // QT_BOOTSTRAPPED
5908 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5909 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5910 #define QT_VISIBILITY_AVAILABLE
5915 if [ -n "$QT_LIBINFIX" ]; then
5916 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5917 #define QT_LIBINFIX "$QT_LIBINFIX"
5922 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5924 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5925 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5926 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5928 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5929 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5930 chmod -w "$outpath/src/corelib/global/qconfig.h"
5931 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5932 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5936 #-------------------------------------------------------------------------------
5937 # save configuration into qconfig.pri
5938 #-------------------------------------------------------------------------------
5939 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5940 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5941 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5942 if [ "$CFG_DEBUG" = "yes" ]; then
5943 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5944 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5945 QT_CONFIG="$QT_CONFIG release"
5947 QT_CONFIG="$QT_CONFIG debug"
5948 elif [ "$CFG_DEBUG" = "no" ]; then
5949 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5950 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5951 QT_CONFIG="$QT_CONFIG debug"
5953 QT_CONFIG="$QT_CONFIG release"
5955 if [ "$CFG_FRAMEWORK" = "no" ]; then
5956 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5958 QT_CONFIG="$QT_CONFIG qt_framework"
5959 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5961 if [ "$CFG_DEV" = "yes" ]; then
5962 QT_CONFIG="$QT_CONFIG private_tests"
5965 cat >>"$QTCONFIG.tmp" <<EOF
5967 CONFIG += $QTCONFIG_CONFIG
5969 QT_HOST_ARCH = $CFG_HOST_ARCH
5970 QT_CPU_FEATURES = $CFG_CPUFEATURES
5971 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5972 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5973 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5974 QT_EDITION = $Edition
5975 QT_CONFIG += $QT_CONFIG
5978 QT_VERSION = $QT_VERSION
5979 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5980 QT_MINOR_VERSION = $QT_MINOR_VERSION
5981 QT_PATCH_VERSION = $QT_PATCH_VERSION
5984 QT_LIBINFIX = $QT_LIBINFIX
5985 QT_NAMESPACE = $QT_NAMESPACE
5989 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5990 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5991 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5992 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5993 echo >> "$QTCONFIG.tmp"
5996 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5997 echo "# sysroot" >>"$QTCONFIG.tmp"
5998 echo "!host_build {" >>"$QTCONFIG.tmp"
5999 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6000 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6001 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6002 echo "}" >> "$QTCONFIG.tmp"
6003 echo >> "$QTCONFIG.tmp"
6005 if [ -n "$RPATH_FLAGS" ]; then
6006 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6008 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6009 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6010 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6011 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6014 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6015 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6016 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6019 # replace qconfig.pri if it differs from the newly created temp file
6020 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6021 rm -f "$QTCONFIG.tmp"
6023 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6026 #-------------------------------------------------------------------------------
6027 # save configuration into qmodule.pri
6028 #-------------------------------------------------------------------------------
6029 QTMODULE="$outpath/mkspecs/qmodule.pri"
6031 echo "CONFIG += $QMAKE_CONFIG" >> "$QTMODULE.tmp"
6032 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6034 if [ -n "$QT_CFLAGS_PSQL" ]; then
6035 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6037 if [ -n "$QT_LFLAGS_PSQL" ]; then
6038 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6040 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6041 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6043 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6044 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6046 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6047 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6049 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6050 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6052 if [ -n "$QT_LFLAGS_ODBC" ]; then
6053 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6055 if [ -n "$QT_LFLAGS_TDS" ]; then
6056 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6059 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6060 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6063 #dump in the OPENSSL_LIBS info
6064 if [ '!' -z "$OPENSSL_LIBS" ]; then
6065 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6066 elif [ "$CFG_OPENSSL" = "linked" ]; then
6067 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6070 #dump in the SDK info
6071 if [ '!' -z "$CFG_SDK" ]; then
6072 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6076 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6077 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6079 # replace qmodule.pri if it differs from the newly created temp file
6080 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6081 rm -f "$QTMODULE.tmp"
6083 mv -f "$QTMODULE.tmp" "$QTMODULE"
6086 #-------------------------------------------------------------------------------
6087 # save configuration into .qmake.cache
6088 #-------------------------------------------------------------------------------
6090 CACHEFILE="$outpath/.qmake.cache"
6091 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6092 cat >>"$CACHEFILE.tmp" <<EOF
6094 QT_SOURCE_TREE = \$\$quote($relpath)
6095 QT_BUILD_TREE = \$\$quote($outpath)
6098 # replace .qmake.cache if it differs from the newly created temp file
6099 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6100 rm -f "$CACHEFILE.tmp"
6102 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6105 #-------------------------------------------------------------------------------
6106 # give feedback on configuration
6107 #-------------------------------------------------------------------------------
6108 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6111 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6112 echo "Build type: $PLATFORM"
6114 echo "Building on: $PLATFORM"
6115 echo "Building for: $XPLATFORM"
6118 # the missing space before $CFG_FEATURES is intentional
6119 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6120 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6122 if [ -n "$PLATFORM_NOTES" ]; then
6123 echo "Platform notes:"
6124 echo "$PLATFORM_NOTES"
6129 if [ "$OPT_VERBOSE" = "yes" ]; then
6130 echo $ECHO_N "qmake vars .......... $ECHO_C"
6131 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6132 echo "qmake switches ......... $QMAKE_SWITCHES"
6135 echo "Build .................. $CFG_BUILD_PARTS"
6136 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6137 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6138 echo "Debug .................. yes (combined)"
6139 if [ "$CFG_DEBUG" = "yes" ]; then
6140 echo "Default Link ........... debug"
6142 echo "Default Link ........... release"
6145 echo "Debug .................. $CFG_DEBUG"
6147 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6148 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6150 echo "C++11 support .......... $CFG_CXX11"
6151 if [ -n "$PKG_CONFIG" ]; then
6152 echo "pkg-config ............. yes"
6154 echo "pkg-config ............. no"
6156 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6157 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6158 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6159 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6160 echo "QtGui module ........... $CFG_GUI"
6161 echo "QtWidgets module ....... $CFG_WIDGETS"
6162 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6163 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6165 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6167 echo "QML debugging .......... $CFG_QML_DEBUG"
6168 echo "PCH support ............ $CFG_PRECOMPILE"
6169 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6170 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6171 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6172 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6173 elif [ "$CFG_ARCH" = "arm" ]; then
6174 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6175 echo "NEON support ........... ${CFG_NEON}"
6177 if [ "$CFG_ARCH" = "mips" ]; then
6178 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6180 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6181 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6182 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6183 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6184 echo "NIS support ............ $CFG_NIS"
6185 echo "CUPS support ........... $CFG_CUPS"
6186 echo "Iconv support .......... $CFG_ICONV"
6187 echo "Glib support ........... $CFG_GLIB"
6188 echo "GStreamer support ...... $CFG_GSTREAMER"
6189 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6190 echo "Large File support ..... $CFG_LARGEFILE"
6191 echo "GIF support ............ $CFG_GIF"
6192 if [ "$CFG_JPEG" = "no" ]; then
6193 echo "JPEG support ........... $CFG_JPEG"
6195 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6197 if [ "$CFG_PNG" = "no" ]; then
6198 echo "PNG support ............ $CFG_PNG"
6200 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6202 echo "zlib support ........... $CFG_ZLIB"
6203 echo "Session management ..... $CFG_SM"
6204 echo "libudev support ........ $CFG_LIBUDEV"
6206 if [ "$XPLATFORM_QNX" = "yes" ]; then
6207 echo "SLOG2 support .......... $CFG_SLOG2"
6209 echo "Use system proxies ..... $CFG_SYSTEM_PROXIES"
6211 if [ "$CFG_OPENGL" = "desktop" ]; then
6212 echo "OpenGL support ......... yes (Desktop OpenGL)"
6213 elif [ "$CFG_OPENGL" = "es2" ]; then
6214 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6216 echo "OpenGL support ......... no"
6219 if [ "$CFG_OPENVG" ]; then
6220 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6221 echo "OpenVG support ......... ShivaVG"
6223 echo "OpenVG support ......... $CFG_OPENVG"
6227 echo "XShape support ......... $CFG_XSHAPE"
6228 echo "XVideo support ......... $CFG_XVIDEO"
6229 echo "XSync support .......... $CFG_XSYNC"
6230 echo "Xinerama support ....... $CFG_XINERAMA"
6231 echo "Xcursor support ........ $CFG_XCURSOR"
6232 echo "Xfixes support ......... $CFG_XFIXES"
6233 echo "Xrandr support ......... $CFG_XRANDR"
6234 echo "Xi support ............. $CFG_XINPUT"
6235 echo "Xi2 support ............ $CFG_XINPUT2"
6236 echo "MIT-SHM support ........ $CFG_MITSHM"
6237 echo "FontConfig support ..... $CFG_FONTCONFIG"
6238 echo "XKB Support ............ $CFG_XKB"
6239 echo "immodule support ....... $CFG_IM"
6240 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6242 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6243 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6244 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6245 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6246 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6247 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6248 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6249 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6250 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6253 if [ "$CFG_OPENSSL" = "yes" ]; then
6254 OPENSSL_LINKAGE="(run-time)"
6255 elif [ "$CFG_OPENSSL" = "linked" ]; then
6256 OPENSSL_LINKAGE="(linked)"
6258 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6259 echo "Alsa support ........... $CFG_ALSA"
6260 if [ "$BUILD_ON_MAC" = "yes" ]; then
6261 echo "CoreWlan support ....... $CFG_COREWLAN"
6263 echo "libICU support ......... $CFG_ICU"
6264 echo "PCRE support ........... $CFG_PCRE"
6265 echo "Xcb support ............ $CFG_XCB"
6266 echo "Xrender support ........ $CFG_XRENDER"
6267 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" != "no" ]; then
6268 echo "XInput2 support ........ $CFG_XINPUT2"
6270 echo "EGLFS support .......... $CFG_EGLFS"
6271 echo "DirectFB support ....... $CFG_DIRECTFB"
6272 echo "LinuxFB support ........ $CFG_LINUXFB"
6273 echo "KMS support ............ $CFG_KMS"
6276 # complain about not being able to use dynamic plugins if we are using a static build
6277 if [ "$CFG_SHARED" = "no" ]; then
6279 echo "WARNING: Using static linking will disable the use of dynamically"
6280 echo "loaded plugins. Make sure to import all needed static plugins,"
6281 echo "or compile needed modules into the library."
6284 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6286 echo "NOTE: When linking against OpenSSL, you can override the default"
6287 echo "library names through OPENSSL_LIBS."
6289 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6293 exec 1>&3 3>&- # restore stdout
6294 cat $outpath/config.summary # display config feedback to user
6296 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6298 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6299 echo "if you want a pure debug build."
6304 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6309 #-------------------------------------------------------------------------------
6310 # build makefiles based on the configuration
6311 #-------------------------------------------------------------------------------
6313 if [ "$CFG_PROCESS" != "no" ]; then
6315 if [ "$CFG_PROCESS" = "full" ]; then
6316 echo "Creating makefiles. Please wait..."
6317 "$outpath/bin/qmake" -r "$relpath"
6320 "$outpath/bin/qmake" "$relpath"
6323 if [ "$OPT_FAST" = "yes" ]; then
6325 for part in $CFG_BUILD_PARTS; do
6327 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6330 if [ "x$PART_ROOTS" != "x" ]; then
6332 echo "Creating stub makefiles. Please wait..."
6333 QMAKE="$outpath/bin/qmake"
6334 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6335 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6337 test -f "$outpath/$d/Makefile" && continue
6338 echo " for $relpath/$p"
6340 mkdir -p "$outpath/$d" || exit
6341 cat > "$outpath/$d/Makefile" <<EOF || exit
6342 # $outpath/$d/Makefile: generated by configure
6344 # WARNING: This makefile will be replaced with a real makefile.
6345 # All changes made to this file will be lost.
6350 all clean install qmake first Makefile: FORCE
6351 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6361 #-------------------------------------------------------------------------------
6362 # check for platforms that we don't yet know about
6363 #-------------------------------------------------------------------------------
6364 if [ "$CFG_ARCH" = "unknown" ]; then
6367 NOTICE: configure was unable to determine the architecture
6368 for the $XQMAKESPEC target.
6370 Qt will not use a specialized implementation for any atomic
6371 operations. Instead a generic implemention based on either GCC
6372 intrinsics or C++11 std::atomic<T> will be used (when
6373 available). The generic implementations are generally as fast
6374 as and always as safe as a specialized implementation.
6376 If no generic implementation is available, Qt will use a
6377 fallback UNIX implementation which uses a single
6378 pthread_mutex_t to protect all atomic operations. This
6379 implementation is the slow (but safe) fallback implementation
6380 for architectures Qt does not yet support.
6384 #-------------------------------------------------------------------------------
6385 # check if the user passed the -no-zlib option, which is no longer supported
6386 #-------------------------------------------------------------------------------
6387 if [ -n "$ZLIB_FORCED" ]; then
6388 which_zlib="supplied"
6389 if [ "$CFG_ZLIB" = "system" ]; then
6395 NOTICE: The -no-zlib option was supplied but is no longer
6398 Qt now requires zlib support in all builds, so the -no-zlib
6399 option was ignored. Qt will be built using the $which_zlib
6404 #-------------------------------------------------------------------------------
6405 # check if the user passed the obsoleted -wayland or -no-wayland flag
6406 #-------------------------------------------------------------------------------
6407 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6410 NOTICE: The -wayland and -no-wayland flags are now obsolete
6412 All configuring of QtWayland plugin and QtCompositor happens in the module
6416 #-------------------------------------------------------------------------------
6417 # check if the user passed the obsoleted -arch or -host-arch options
6418 #-------------------------------------------------------------------------------
6419 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6422 NOTICE: The -arch and -host-arch options are obsolete.
6424 Qt now detects the target and host architectures based on compiler
6425 output. Qt will be built using $CFG_ARCH for the target architecture
6426 and $CFG_HOST_ARCH for the host architecture (note that these two
6427 will be the same unless you are cross-compiling).
6431 #-------------------------------------------------------------------------------
6432 # finally save the executed command to another script
6433 #-------------------------------------------------------------------------------
6434 if [ `basename $0` != "config.status" ]; then
6435 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6437 # add the system variables
6438 for varname in $SYSTEM_VARIABLES; do
6440 'if [ -n "\$'${varname}'" ]; then
6441 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6446 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6448 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6449 echo "#!/bin/sh" > "$outpath/config.status"
6450 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6451 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6452 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6453 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6454 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6455 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6456 echo "else" >> "$outpath/config.status"
6457 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6458 echo "fi" >> "$outpath/config.status"
6459 chmod +x "$outpath/config.status"
6462 if [ -n "$RPATH_MESSAGE" ]; then
6464 echo "$RPATH_MESSAGE"
6467 MAKE=`basename "$MAKE"`
6469 echo Qt is now configured for building. Just run \'$MAKE\'.
6470 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6471 echo Once everything is built, Qt is installed.
6472 echo You should not run \'$MAKE install\'.
6474 echo Once everything is built, you must run \'$MAKE install\'.
6475 echo Qt will be installed into $QT_INSTALL_PREFIX
6478 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.