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
810 CFG_OBSOLETE_WAYLAND=no
822 CFG_SEPARATE_DEBUG_INFO=no
823 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
824 CFG_REDUCE_EXPORTS=auto
832 CFG_REDUCE_RELOCATIONS=auto
833 CFG_ACCESSIBILITY=auto
838 CFG_CLOCK_GETTIME=auto
839 CFG_CLOCK_MONOTONIC=auto
856 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
857 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
862 OPT_CONFIRM_LICENSE=no
875 QPA_PLATFORM_GUARD=yes
878 # initalize variables used for installation
890 QT_INSTALL_TRANSLATIONS=
895 CFG_GCC_SYSROOT="yes"
900 #flags for SQL drivers
908 QT_LFLAGS_ODBC="-lodbc"
911 # flags for libdbus-1
915 # flags for Glib (X11 only)
919 # flags for GStreamer (X11 only)
923 # default qpa platform
924 QT_QPA_DEFAULT_PLATFORM=
926 #-------------------------------------------------------------------------------
927 # check SQL drivers available in this package
928 #-------------------------------------------------------------------------------
930 # opensource version removes some drivers, so force them to be off
936 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
937 for a in "$relpath/src/plugins/sqldrivers/"*; do
939 base_a=`basename "$a"`
940 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
941 eval "CFG_SQL_${base_a}=auto"
946 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
947 if [ -d "$relpath/src/plugins/imageformats" ]; then
948 for a in "$relpath/src/plugins/imageformats/"*; do
950 base_a=`basename "$a"`
951 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
956 #-------------------------------------------------------------------------------
957 # parse command line arguments
958 #-------------------------------------------------------------------------------
960 # parse the arguments, setting things to "yes" or "no"
961 while [ "$#" -gt 0 ]; do
965 #Autoconf style options
967 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
971 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
975 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
976 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
979 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
983 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
987 -no-*-*|-plugin-*-*|-qt-*-*)
988 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
989 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
993 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
996 #Qt style options that pass an argument
997 -prefix|-docdir|-headerdir|-plugindir|-importdir|-qmldir|-archdatadir|-datadir|-libdir|-bindir|-libexecdir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa|-qconfig)
998 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1002 #Qt style complex options in one command
1003 -enable-*|-disable-*)
1004 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1005 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1015 #Qt Builtin/System style options
1016 -no-*|-system-*|-qt-*)
1017 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1018 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1020 #Options that cannot be generalized
1027 # this option may or may not be followed by an argument
1028 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1037 # this option may or may not be followed by an argument
1038 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1046 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1047 # this option may or may not be followed by an argument
1048 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1067 if [ "$1" = "-D" ]; then
1071 VAL=`echo $1 | sed 's,-D,,'`
1076 # this option may or may not be followed by an argument
1077 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1086 if [ "$1" = "-I" ]; then
1090 VAL=`echo $1 | sed 's,-I,,'`
1095 if [ "$1" = "-L" ]; then
1099 VAL=`echo $1 | sed 's,-L,,'`
1104 if [ "$1" = "-R" ]; then
1108 VAL=`echo $1 | sed 's,-R,,'`
1117 if [ "$1" = "-l" ]; then
1121 VAL=`echo $1 | sed 's,-l,,'`
1126 if [ "$1" = "-F" ]; then
1130 VAL=`echo $1 | sed 's,-F,,'`
1135 if [ "$1" = "-fw" ]; then
1139 VAL=`echo $1 | sed 's,-fw,,'`
1146 #General options, including Qt style yes options
1148 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1155 if [ "$UNKNOWN_ARG" = "yes" ]; then
1156 echo "$1: unknown argument"
1167 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1168 CFG_ACCESSIBILITY="$VAL"
1177 CFG_USE_GNUMAKE="$VAL"
1180 CFG_MYSQL_CONFIG="$VAL"
1183 QT_INSTALL_PREFIX="$VAL"
1186 QT_HOST_PREFIX="$VAL"
1195 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1196 CFG_PKGCONFIG="$VAL"
1202 CFG_PKGCONFIG="force"
1205 QT_INSTALL_DOCS="$VAL"
1208 QT_INSTALL_HEADERS="$VAL"
1211 QT_INSTALL_PLUGINS="$VAL"
1214 QT_INSTALL_IMPORTS="$VAL"
1217 QT_INSTALL_QML="$VAL"
1220 QT_INSTALL_ARCHDATA="$VAL"
1223 QT_INSTALL_DATA="$VAL"
1226 QT_INSTALL_LIBS="$VAL"
1235 QT_INSTALL_TRANSLATIONS="$VAL"
1237 sysconfdir|settingsdir)
1238 QT_INSTALL_SETTINGS="$VAL"
1241 QT_INSTALL_EXAMPLES="$VAL"
1244 QT_INSTALL_TESTS="$VAL"
1253 CFG_GCC_SYSROOT="$VAL"
1256 QT_INSTALL_BINS="$VAL"
1259 QT_INSTALL_LIBEXECS="$VAL"
1262 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1269 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1270 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1271 [ "$VAL" = "es2" ]; then
1278 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1285 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1288 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1291 if [ "$BUILD_ON_MAC" = "yes" ]; then
1293 DeviceVar set QMAKE_MAC_SDK "$VAL"
1299 OPT_OBSOLETE_HOST_ARG=yes
1302 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1303 CFG_MAC_HARFBUZZ="$VAL"
1310 if [ "$BUILD_ON_MAC" = "yes" ]; then
1311 CFG_FRAMEWORK="$VAL"
1317 if [ "$VAL" = "yes" ]; then
1319 QMakeVar add QMAKE_CFLAGS -pg
1320 QMakeVar add QMAKE_CXXFLAGS -pg
1321 QMakeVar add QMAKE_LFLAGS -pg
1322 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1328 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1335 if [ "$VAL" = "yes" ]; then
1336 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1341 # keep compatibility with old platform names
1347 PLATFORM=hpux-acc-o64
1350 PLATFORM=hpux-acc-64
1353 PLATFORM=hpux-acc-64
1365 PLATFORM=reliant-cds-64
1368 PLATFORM=solaris-cc-64
1371 PLATFORM=unixware-cc
1374 PLATFORM=unixware-g++
1377 PLATFORM=unixware-cc
1380 PLATFORM=unixware-g++
1386 i386) NATIVE_64_ARCH="x86_64" ;;
1387 powerpc) NATIVE_64_ARCH="ppc64" ;;
1388 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1390 if [ ! -z "$NATIVE_64_ARCH" ]; then
1391 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1398 case `basename "$XPLATFORM"` in win32-g++*)
1401 CFG_REDUCE_EXPORTS=no
1406 XPLATFORM=`resolveDeviceMkspec $VAL`
1407 [ "$XPLATFORM" = "undefined" ] && exit 101
1410 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1411 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1412 DeviceVar set $DEV_VAR $DEV_VAL
1415 QT_QPA_DEFAULT_PLATFORM="$VAL"
1418 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1419 CFG_DEBUG_RELEASE="$VAL"
1425 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1426 CFG_RELEASE_QMAKE="$VAL"
1432 if [ "$VAL" = "yes" ]; then
1434 elif [ "$VAL" = "no" ]; then
1444 CFG_FORCEDEBUGINFO="$VAL"
1446 developer-build|commercial|opensource)
1447 # These switches have been dealt with already
1450 if [ "$VAL" = "yes" ]; then
1452 elif [ "$VAL" = "no" ]; then
1459 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1460 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1466 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1467 if [ "$VAL" = "no" ]; then
1468 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1469 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1470 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1476 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1483 if [ "$VAL" = "no" ]; then
1490 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1498 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1505 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1512 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1519 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1526 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1533 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1540 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1547 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1548 CFG_PRECOMPILE="$VAL"
1553 separate-debug-info)
1554 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1555 CFG_SEPARATE_DEBUG_INFO="$VAL"
1556 elif [ "$VAL" = "nocopy" ] ; then
1557 CFG_SEPARATE_DEBUG_INFO="yes"
1558 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1564 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1565 CFG_REDUCE_EXPORTS="$VAL"
1571 if [ "$VAL" = "no" ]; then
1578 if [ "$VAL" = "no" ]; then
1585 if [ "$VAL" = "no" ]; then
1592 if [ "$VAL" = "no" ]; then
1599 if [ "$VAL" = "no" ]; then
1606 if [ "$VAL" = "no" ]; then
1613 if [ "$VAL" = "no" ]; then
1623 if [ "$VAL" = "no" ]; then
1630 if [ "$VAL" = "no" ]; then
1637 if [ "$VAL" = "no" ]; then
1638 CFG_MIPS_DSPR2="$VAL"
1644 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1645 CFG_REDUCE_RELOCATIONS="$VAL"
1651 [ "$VAL" = "qt" ] && VAL=yes
1652 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1657 # No longer supported:
1658 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1661 if [ "$VAL" = "system" ]; then
1668 [ "$VAL" = "yes" ] && VAL=qt
1669 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1676 [ "$VAL" = "yes" ] && VAL=qt
1677 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1684 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1691 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1698 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1705 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1712 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1719 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1720 CFG_FONTCONFIG="$VAL"
1726 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1733 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ] || [ "$VAL" = "qt" ]; then
1735 if [ "$VAL" = "yes" ]; then
1743 CFG_OBSOLETE_WAYLAND=yes
1746 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1753 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1760 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1767 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1774 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1781 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1788 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1795 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1802 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1809 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1816 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1817 CFG_GSTREAMER="$VAL"
1823 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1824 CFG_QGTKSTYLE="$VAL"
1830 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1833 if [ "$VAL" = "no" ]; then
1841 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1843 elif [ "$VAL" = "no" ]; then
1850 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1851 QPA_PLATFORM_GUARD="$VAL"
1857 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1859 elif [ "$VAL" = "runtime" ]; then
1866 if [ "$VAL" = "yes" ]; then
1873 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1880 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1881 CFG_LARGEFILE="$VAL"
1887 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1894 if [ "$VAL" = "yes" ]; then
1895 CFG_OPENSSL="linked"
1901 if [ "$VAL" = "yes" ]; then
1904 if [ "$VAL" = "no" ]; then
1912 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1913 CFG_JAVASCRIPTCORE_JIT="$VAL"
1919 if [ "$VAL" = "yes" ]; then
1920 OPT_CONFIRM_LICENSE="$VAL"
1926 if [ "$VAL" = "yes" ]; then
1932 sql-*|imageformat-*)
1933 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1934 # if autoconf style options were used, $VAL can be "yes" or "no"
1935 [ "$VAL" = "yes" ] && VAL=qt
1936 # now $VAL should be "no", "qt", or "plugin"... double-check
1937 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1940 # now $VAL is "no", "qt", or "plugin"
1942 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1943 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1945 # Grab the available values
1948 avail="$CFG_SQL_AVAILABLE"
1951 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1952 if [ "$OPT" != "plugin" ]; then
1953 # png is always built in
1959 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1963 # Check that that user's value is available.
1966 if [ "$VAL" = "$d" ]; then
1971 [ "$found" = yes ] || ERROR=yes
1973 if [ "$VAR" = "sql" ]; then
1974 # set the CFG_SQL_driver
1975 eval "CFG_SQL_$VAL=\$OPT"
1977 elif [ "$VAR" = "imageformat" ]; then
1978 [ "$OPT" = "qt" ] && OPT=yes
1979 VAL="`echo $VAL |tr a-z A-Z`"
1980 eval "CFG_$VAL=$OPT"
1984 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1985 if [ "$OPT" = "plugin" ]; then
1988 QMakeVar add "${VAR}s" "${VAL}"
1989 elif [ "$OPT" = "no" ]; then
1990 PLUG_VAR="${VAR}-plugin"
1992 QMakeVar del "${IN_VAR}s" "$VAL"
1993 QMakeVar del "${PLUG_VAR}s" "$VAL"
1995 if [ "$ERROR" = "yes" ]; then
1996 echo "$CURRENT_OPT: unknown argument"
2001 if [ "$VAL" = "yes" ]; then
2002 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
2003 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
2007 elif [ "$VAL" = "no" ]; then
2008 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
2009 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2018 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2025 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2032 DEFINES="$DEFINES \"$VAL\""
2033 D_FLAGS="$D_FLAGS -D\"$VAL\""
2036 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2039 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2042 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2045 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2048 if [ "$BUILD_ON_MAC" = "yes" ]; then
2049 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2050 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2056 if [ "$BUILD_ON_MAC" = "yes" ]; then
2057 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2063 W_FLAGS="$W_FLAGS \"${VAL}\""
2078 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2079 CFG_AUDIO_BACKEND="$VAL"
2085 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2092 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2093 CFG_FORCE_ASSERTS="$VAL"
2099 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2106 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2113 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2114 CFG_SYSTEM_PROXIES="$VAL"
2123 if [ "$UNKNOWN_OPT" = "yes" ]; then
2124 echo "${CURRENT_OPT}: invalid command-line switch"
2130 # update QT_CONFIG to show our current predefined configuration
2131 case "$CFG_QCONFIG" in
2132 minimal|small|medium|large|full)
2133 # these are a sequence of increasing functionality
2134 for c in minimal small medium large full; do
2135 QT_CONFIG="$QT_CONFIG $c-config"
2136 [ "$CFG_QCONFIG" = $c ] && break
2140 # not known to be sufficient for anything
2141 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2142 echo >&2 "Error: configuration file not found:"
2143 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2145 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2150 #-------------------------------------------------------------------------------
2151 # build tree initialization
2152 #-------------------------------------------------------------------------------
2154 # where to find which..
2155 unixtests="$relpath/config.tests/unix"
2156 mactests="$relpath/config.tests/mac"
2157 WHICH="$unixtests/which.test"
2159 PERL=`$WHICH perl 2>/dev/null`
2161 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2163 for e in gawk nawk awk; do
2164 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2171 PERL="/usr/bin/perl"
2172 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2176 ### skip this if the user just needs help...
2177 if [ "$OPT_HELP" != "yes" ]; then
2179 # is this a shadow build?
2180 if [ "$OPT_SHADOW" = "maybe" ]; then
2182 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2183 if [ -h "$outpath" ]; then
2184 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2190 if [ "$OPT_SHADOW" = "yes" ]; then
2191 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2192 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2193 echo >&2 "Cannot proceed."
2196 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2199 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2201 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2202 echo "Qt can be built in release mode with separate debug information, so"
2203 echo "-debug-and-release is not necessary anymore"
2207 if [ "$CFG_SILENT" = "yes" ]; then
2208 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2211 # if the source tree is different from the build tree,
2212 # symlink or copy part of the sources
2213 if [ "$OPT_SHADOW" = "yes" ]; then
2214 echo "Preparing build tree..."
2216 if [ -z "$PERL" ]; then
2218 echo "You need perl in your PATH to make a shadow build."
2219 echo "Cannot proceed."
2223 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2225 # make a syncqt script that can be used in the shadow
2226 rm -f "$outpath/bin/syncqt"
2227 if [ -x "$relpath/bin/syncqt" ]; then
2228 mkdir -p "$outpath/bin"
2229 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2230 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2231 chmod 755 "$outpath/bin/syncqt"
2234 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2235 rm -f "$outpath/bin/$i"
2236 if [ -x "$relpath/bin/$i" ]; then
2237 mkdir -p "$outpath/bin"
2238 echo "#!/bin/sh" >"$outpath/bin/$i"
2239 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2240 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2241 chmod 755 "$outpath/bin/$i"
2245 # save a pre-existing mkspecs/modules dir
2246 test -d "$outpath/mkspecs/modules" && \
2247 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2248 # ditto for mkspecs/modules-inst
2249 test -d "$outpath/mkspecs/modules-inst" && \
2250 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2252 # symlink the mkspecs directory
2253 mkdir -p "$outpath/mkspecs"
2254 rm -rf "$outpath"/mkspecs/*
2255 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2259 rm -rf "$outpath/mkspecs/$1"
2260 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2261 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2264 # Special case for mkspecs/features directory.
2265 # To be able to place .prf files into a shadow build directory,
2266 # we're creating links for files only. The directory structure is reproduced.
2267 ShadowMkspecs features
2269 # The modules dir is special, too.
2270 if test -d "$outpath/mkspecs-modules"; then
2271 rm -rf "$outpath/mkspecs/modules"
2272 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2274 ShadowMkspecs modules
2277 # The modules-inst dir is not quite as special, but still.
2278 if test -d "$outpath/mkspecs-modules-inst"; then
2279 rm -rf "$outpath/mkspecs/modules-inst"
2280 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2283 # Prepare doc directory
2284 mkdir -p "$outpath/doc"
2285 ln -f -s "$relpath"/doc/global "$outpath/doc"
2288 # symlink fonts to be able to run application from build directory
2289 if [ ! -d "${outpath}/lib/fonts" ]; then
2290 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2291 mkdir -p "${outpath}/lib"
2292 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2296 if [ "$OPT_FAST" = "auto" ]; then
2297 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2304 # find a make command
2305 if [ -z "$MAKE" ]; then
2307 for mk in gmake make; do
2308 if "$WHICH" $mk >/dev/null 2>&1; then
2313 if [ -z "$MAKE" ]; then
2314 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2315 echo >&2 "Cannot proceed."
2318 # export MAKE, we need it later in the config.tests
2324 #-------------------------------------------------------------------------------
2325 # auto-detect all that hasn't been specified in the arguments
2326 #-------------------------------------------------------------------------------
2328 if [ -z "$PLATFORM" ]; then
2330 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2332 OSX_VERSION=`uname -r | cut -d. -f1`
2333 # Select compiler. Use g++ unless we find a usable Clang version
2335 if [ "$OSX_VERSION" -ge 12 ]; then
2336 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2338 elif [ "$OSX_VERSION" -eq 11 ]; then
2339 # We're on Lion. Check if we have a supported Clang version
2340 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2342 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2348 #PLATFORM=aix-g++-64
2350 #PLATFORM=aix-xlc-64
2352 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2362 # PLATFORM=dynix-g++
2368 PLATFORM=freebsd-g++
2370 - Also available for FreeBSD: freebsd-icc
2374 PLATFORM=openbsd-g++
2385 #PLATFORM=irix-cc-64
2387 - Also available for IRIX: irix-g++ irix-cc-64
2391 case "$UNAME_MACHINE" in
2393 #PLATFORM=hpuxi-acc-32
2394 PLATFORM=hpuxi-acc-64
2396 - Also available for HP-UXi: hpuxi-acc-32
2402 #PLATFORM=hpux-acc-64
2404 #PLATFORM=hpux-acc-o64
2406 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2415 - Also available for Tru64: tru64-g++
2419 case "$UNAME_MACHINE" in
2421 PLATFORM=linux-g++-64
2428 - Also available for Linux: linux-kcc linux-icc linux-cxx
2432 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2433 PLATFORM="solaris-g++"
2435 #PLATFORM=solaris-g++
2437 #PLATFORM=solaris-cc64
2440 - Also available for Solaris: solaris-g++ solaris-cc-64
2443 ReliantUNIX-*:*|SINIX-*:*)
2444 PLATFORM=reliant-cds
2445 #PLATFORM=reliant-cds-64
2447 - Also available for Reliant UNIX: reliant-cds-64
2457 #PLATFORM=unixware-g++
2458 PLATFORM=unixware-cc
2460 - Also available for OpenUNIX: unixware-g++
2464 #PLATFORM=unixware-g++
2465 PLATFORM=unixware-cc
2467 - Also available for UnixWare: unixware-g++
2474 - Also available for SCO OpenServer: sco-g++
2478 PLATFORM=unixware-g++
2481 PLATFORM=unsupported/qnx-g++
2484 if [ "$OPT_HELP" != "yes" ]; then
2486 echo " The build script does not currently recognize all" >&2
2487 echo " platforms supported by Qt." >&2
2488 echo " Rerun this script with a -platform option listed to" >&2
2489 echo " set the system/compiler combination you use." >&2
2496 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2498 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2499 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2500 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2502 if [ -d "$PLATFORM" ]; then
2503 QMAKESPEC="$PLATFORM"
2505 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2507 if [ -d "$XPLATFORM" ]; then
2508 XQMAKESPEC="$XPLATFORM"
2510 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2512 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2513 QT_CROSS_COMPILE=yes
2514 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2515 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2518 if [ "$BUILD_ON_MAC" = "yes" ]; then
2519 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2521 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2522 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2523 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2524 echo " built with 'macx-g++'" >&2
2530 # check specified platforms are supported
2531 if [ '!' -d "$QMAKESPEC" ]; then
2533 echo " The specified system/compiler is not supported:"
2537 echo " Please see the README file for a complete list."
2541 if [ '!' -d "$XQMAKESPEC" ]; then
2543 echo " The specified system/compiler is not supported:"
2547 echo " Please see the README file for a complete list."
2551 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2553 echo " The specified system/compiler port is not complete:"
2555 echo " $XQMAKESPEC/qplatformdefs.h"
2557 echo " Please use the contact form at http://qt.digia.com/contact-us"
2562 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2563 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2564 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2565 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2566 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2570 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2571 case `basename "$XPLATFORM"` in
2574 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2576 echo "Please use the contact form at http://qt.digia.com/contact-us"
2577 echo "to upgrade your license to include this platform, or install"
2578 echo "the Qt Open Source Edition if you intend to develop free software."
2584 #-------------------------------------------------------------------------------
2585 # tests that don't need qmake (must be run before displaying help)
2586 #-------------------------------------------------------------------------------
2588 # detect build style
2589 if [ "$CFG_DEBUG" = "auto" ]; then
2590 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2591 CFG_DEBUG_RELEASE=yes
2593 elif [ "$CFG_DEV" = "yes" ]; then
2594 CFG_DEBUG_RELEASE=no
2597 CFG_DEBUG_RELEASE=no
2601 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2602 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2605 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2606 QT_CONFIG="$QT_CONFIG force_debug_info"
2609 # pass on $CFG_SDK to the arch/configure tests.
2610 if [ -n "$CFG_SDK" ]; then
2611 MAC_SDK_FLAG="-sdk $CFG_SDK"
2616 # find the default framework value
2617 if [ "$BUILD_ON_MAC" = "yes" ]; then
2618 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2619 CFG_FRAMEWORK="$CFG_SHARED"
2620 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2622 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2630 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2632 TEST_COMPILER=$QMAKE_CONF_COMPILER
2633 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2634 if [ -z "$TEST_COMPILER" ]; then
2635 echo "ERROR: Cannot set the compiler for the configuration tests"
2639 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2642 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2643 if [ -n "$GCC_MACHINE_DUMP" ]; then
2644 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2647 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2648 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2652 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2654 # auto-detect precompiled header support
2655 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2656 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2663 # auto-detect support for separate debug info in objcopy
2664 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2665 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2666 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2667 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2668 CFG_SEPARATE_DEBUG_INFO=no
2672 # binutils on HP-UX is buggy; default to no.
2673 CFG_SEPARATE_DEBUG_INFO=no
2676 CFG_SEPARATE_DEBUG_INFO=yes
2682 # auto-detect -fvisibility support
2683 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2684 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2685 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2686 echo "-reduce-exports was requested but this compiler does not support it"
2687 echo "Re-run configure with -v for more information"
2690 CFG_REDUCE_EXPORTS=no
2692 CFG_REDUCE_EXPORTS=yes
2696 # auto-detect -fstack-protector-strong support (for QNX only currently)
2697 if [ "$XPLATFORM_QNX" = "yes" ]; then
2698 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2699 CFG_STACK_PROTECTOR_STRONG=yes
2701 CFG_STACK_PROTECTOR_STRONG=no
2704 CFG_STACK_PROTECTOR_STRONG=no
2707 # detect the availability of the -Bsymbolic-functions linker optimization
2708 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2709 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2710 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2711 echo "-reduce-relocations was requested but this compiler does not support it"
2712 echo "Re-run configure with -v for more information"
2715 CFG_REDUCE_RELOCATIONS=no
2717 CFG_REDUCE_RELOCATIONS=yes
2721 # auto-detect GNU make support
2722 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2726 # find the default framework value
2727 if [ "$BUILD_ON_MAC" = "yes" ]; then
2728 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2729 CFG_FRAMEWORK="$CFG_SHARED"
2730 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2732 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2740 # auto-detect default include and library search paths
2741 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2742 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2743 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2744 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2745 /^End of search/ { yup=0 }
2746 yup { print substr($0, 2) }
2747 /^\#include </ { yup=1 }
2749 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2751 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2754 #setup the build parts
2755 if [ -z "$CFG_BUILD_PARTS" ]; then
2756 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2758 # build tests by default, if a developer build
2759 if [ "$CFG_DEV" = "yes" ]; then
2760 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2763 # don't build tools by default when cross-compiling
2764 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2765 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2768 for nobuild in $CFG_NOBUILD_PARTS; do
2769 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2771 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2773 # echo "WARNING: libs is a required part of the build."
2775 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2778 #-------------------------------------------------------------------------------
2779 # post process QT_INSTALL_* variables
2780 #-------------------------------------------------------------------------------
2782 if [ -z "$QT_INSTALL_PREFIX" ]; then
2783 if [ "$CFG_DEV" = "yes" ]; then
2784 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2786 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2789 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2791 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2792 QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2794 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2796 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2797 QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2799 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2801 if [ -z "$QT_INSTALL_ARCHDATA" ]; then #default
2802 QT_INSTALL_ARCHDATA="$QT_INSTALL_PREFIX" #fallback
2804 QT_INSTALL_ARCHDATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_ARCHDATA"`
2806 if [ -z "$QT_INSTALL_DATA" ]; then #default
2807 QT_INSTALL_DATA="$QT_INSTALL_PREFIX" #fallback
2809 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2811 if [ -z "$QT_INSTALL_BINS" ]; then #default
2812 QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2814 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2816 if [ -z "$QT_INSTALL_LIBEXECS" ]; then #default
2817 QT_INSTALL_LIBEXECS="$QT_INSTALL_ARCHDATA/libexec" #fallback
2819 QT_INSTALL_LIBEXECS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBEXECS"`
2821 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2822 QT_INSTALL_DOCS="$QT_INSTALL_DATA/doc" #fallback
2824 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2826 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2827 QT_INSTALL_PLUGINS="$QT_INSTALL_ARCHDATA/plugins" #fallback
2829 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2831 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2832 QT_INSTALL_IMPORTS="$QT_INSTALL_ARCHDATA/imports" #fallback
2834 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2837 if [ -z "$QT_INSTALL_QML" ]; then #default
2838 QT_INSTALL_QML="$QT_INSTALL_ARCHDATA/qml" #fallback
2840 QT_INSTALL_QML=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_QML"`
2842 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2843 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_DATA/translations" #fallback
2845 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2847 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2848 if [ "$BUILD_ON_MAC" = "yes" ]; then
2849 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2851 QT_INSTALL_SETTINGS=/etc/xdg
2854 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2856 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2857 QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2859 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2862 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2863 QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2865 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2867 #------- host paths --------
2869 if [ -z "$QT_HOST_PREFIX" ]; then
2870 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2873 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2877 if [ -z "$QT_HOST_BINS" ]; then #default
2879 QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2881 QT_HOST_BINS="$QT_INSTALL_BINS"
2884 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2886 if [ -z "$QT_HOST_DATA" ]; then #default
2888 QT_HOST_DATA="$QT_HOST_PREFIX"
2890 QT_HOST_DATA="$QT_INSTALL_ARCHDATA"
2893 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2896 #-------------------------------------------------------------------------------
2897 # help - interactive parts of the script _after_ this section please
2898 #-------------------------------------------------------------------------------
2900 # next, emit a usage message if something failed.
2901 if [ "$OPT_HELP" = "yes" ]; then
2902 [ "x$ERROR" = "xyes" ] && echo
2903 if [ "$CFG_NIS" = "no" ]; then
2910 if [ "$CFG_CUPS" = "no" ]; then
2917 if [ "$CFG_ICONV" = "no" ]; then
2924 if [ "$CFG_LARGEFILE" = "no" ]; then
2931 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2939 if [ "$CFG_XCB" = "no" ]; then
2947 if [ "$CFG_EGLFS" = "no" ]; then
2955 if [ "$CFG_DIRECTFB" = "no" ]; then
2963 if [ "$CFG_LINUXFB" = "no" ]; then
2971 if [ "$CFG_KMS" = "no" ]; then
2979 if [ "$CFG_XINPUT2" = "no" ]; then
2987 if [ "$CFG_DBUS" = "no" ]; then
2995 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3003 if [ "$CFG_GLIB" = "no" ]; then
3012 Usage: $relconf [options]
3014 Installation options:
3016 These are optional, but you may specify install directories.
3018 -prefix <dir> ...... This will install everything relative to <dir>
3019 (default $QT_INSTALL_PREFIX)
3021 -hostprefix [dir] .. Tools and libraries needed when developing
3022 applications are installed in [dir]. If [dir] is
3023 not given, the current build directory will be used.
3026 You may use these to separate different parts of the install:
3028 -bindir <dir> ......... User executables will be installed to <dir>
3029 (default PREFIX/bin)
3030 -headerdir <dir> ...... Headers will be installed to <dir>
3031 (default PREFIX/include)
3032 -libdir <dir> ......... Libraries will be installed to <dir>
3033 (default PREFIX/lib)
3034 -archdatadir <dir>..... Arch-dependent data used by Qt will be installed to <dir>
3036 -plugindir <dir> ...... Plugins will be installed to <dir>
3037 (default ARCHDATADIR/plugins)
3038 -libexecdir <dir> ..... Program executables will be installed to <dir>
3039 (default ARCHDATADIR/libexec)
3040 -importdir <dir> ...... Imports for QML1 will be installed to <dir>
3041 (default ARCHDATADIR/imports)
3042 -qmldir <dir> ......... Imports for QML2 will be installed to <dir>
3043 (default ARCHDATADIR/qml)
3044 -datadir <dir> ........ Arch-independent data used by Qt will be installed to <dir>
3046 -docdir <dir> ......... Documentation will be installed to <dir>
3047 (default DATADIR/doc)
3048 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3049 (default DATADIR/translations)
3050 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3051 (default PREFIX/etc/settings)
3052 -examplesdir <dir> .... Examples will be installed to <dir>
3053 (default PREFIX/examples)
3054 -testsdir <dir> ....... Tests will be installed to <dir>
3055 (default PREFIX/tests)
3057 -hostbindir <dir> .. Host executables will be installed to <dir>
3058 (default HOSTPREFIX/bin)
3059 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3060 (default HOSTPREFIX)
3064 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3065 that needs to be evaluated. If the evaluation succeeds, the feature is
3066 included. Here is a short explanation of each option:
3068 * -release ........... Compile and link Qt with debugging turned off.
3069 -debug ............. Compile and link Qt with debugging turned on.
3070 -debug-and-release . Compile and link two versions of Qt, with and without
3071 debugging turned on (Mac only).
3073 -force-debug-info .. Create symbol files for release builds.
3075 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3077 -opensource ........ Compile and link the Open-Source Edition of Qt.
3078 -commercial ........ Compile and link the Commercial Edition of Qt.
3080 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3081 + -c++11 ............. Compile Qt with C++11 support enabled.
3083 * -shared ............ Create and use shared Qt libraries.
3084 -static ............ Create and use static Qt libraries.
3086 * -process ........... Generate only a top-level Makefile.
3087 -fully-process ..... Generate Makefiles for the entire Qt tree.
3088 -dont-process ...... Do not generate any Makefiles.
3090 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3092 -fast .............. Configure Qt quickly by generating Makefiles only for
3093 library and subdirectory targets. All other Makefiles
3094 are created as wrappers, which will in turn run qmake.
3096 -no-largefile ...... Disables large file support.
3097 + -largefile ......... Enables Qt to access files larger than 4 GB.
3099 -no-accessibility .. Do not compile Accessibility support.
3100 + -accessibility ..... Compile Accessibility support.
3102 -no-sql-<driver> ... Disable SQL <driver> entirely.
3103 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3105 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3108 Possible values for <driver>:
3109 [ $CFG_SQL_AVAILABLE ]
3111 -system-sqlite ..... Use sqlite from the operating system.
3113 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3114 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3116 -no-qml-debug ...... Do not build the in-process QML debugging support.
3117 + -qml-debug ......... Build the QML debugging support.
3119 -platform target ... The operating system and compiler you are building
3122 See the README file for a list of supported
3123 operating systems and compilers.
3125 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3126 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3127 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3128 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3129 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3130 -no-avx ............ Do not compile with use of AVX instructions.
3131 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3132 -no-neon ........... Do not compile with use of NEON instructions.
3133 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3134 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3136 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3137 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3139 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3141 -D <string> ........ Add an explicit define to the preprocessor.
3142 -I <string> ........ Add an explicit include path.
3143 -L <string> ........ Add an explicit library path.
3145 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3146 configure determines whether to use pkg-config or not with
3147 some heuristics such as checking the environment variables.
3148 -no-pkg-config ..... Disable use of pkg-config.
3149 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3150 detection heuristic).
3152 -help, -h .......... Display this information.
3154 Third Party Libraries:
3156 -qt-zlib ........... Use the zlib bundled with Qt.
3157 + -system-zlib ....... Use zlib from the operating system.
3158 See http://www.gzip.org/zlib
3160 -no-gif ............ Do not compile GIF reading support.
3162 -no-libpng ......... Do not compile PNG support.
3163 -qt-libpng ......... Use the libpng bundled with Qt.
3164 + -system-libpng ..... Use libpng from the operating system.
3165 See http://www.libpng.org/pub/png
3167 -no-libjpeg ........ Do not compile JPEG support.
3168 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3169 + -system-libjpeg .... Use libjpeg from the operating system.
3170 See http://www.ijg.org
3172 -no-openssl ........ Do not compile support for OpenSSL.
3173 + -openssl ........... Enable run-time OpenSSL support.
3174 -openssl-linked .... Enabled linked OpenSSL support.
3176 -qt-pcre ........... Use the PCRE library bundled with Qt.
3177 + -system-pcre ....... Use the PCRE library from the operating system.
3179 -qt-xcb ............ Use xcb- libraries bundled with Qt.
3180 (libxcb.so will still be used from operating system).
3181 + -system-xcb ........ Use xcb- libraries from the operating system.
3185 -make <part> ....... Add part to the list of parts to be built at make time.
3186 ($QT_DEFAULT_BUILD_PARTS)
3187 -nomake <part> ..... Exclude part from the list of parts to be built.
3189 -no-gui ............ Don't build the QtGui library and dependencies.
3190 + -gui ............... Build the QtGui library and dependencies.
3192 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3193 + -widgets ........... Build the QtWidgets library and dependencies.
3195 -R <string> ........ Add an explicit runtime library path to the Qt
3197 -l <string> ........ Add an explicit library.
3199 -no-rpath .......... Do not use the library install path as a runtime
3201 + -rpath ............. Link Qt libraries and executables using the library
3202 install path as a runtime library path. Equivalent
3203 to -R install_libpath
3205 -continue .......... Continue as far as possible if an error occurs.
3207 -verbose, -v ....... Print verbose information about each step of the
3210 -silent ............ Reduce the build output so that warnings and errors
3211 can be seen more easily.
3213 * -no-optimized-qmake ... Do not build qmake optimized.
3214 -optimized-qmake ...... Build qmake optimized.
3216 $NSN -no-nis ............ Do not compile NIS support.
3217 $NSY -nis ............... Compile NIS support.
3219 $CUN -no-cups ........... Do not compile CUPS support.
3220 $CUY -cups .............. Compile CUPS support.
3221 Requires cups/cups.h and libcups.so.2.
3223 $CIN -no-iconv .......... Do not compile support for iconv(3).
3224 $CIY -iconv ............. Compile support for iconv(3).
3226 -no-icu ............ Do not compile support for ICU libraries.
3227 + -icu ............... Compile support for ICU libraries.
3229 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3230 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3232 $PHN -no-pch ............ Do not use precompiled header support.
3233 $PHY -pch ............... Use precompiled header support.
3235 $DBN -no-dbus ........... Do not compile the QtDBus module.
3236 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3237 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3239 -reduce-relocations ..... Reduce relocations in the libraries through extra
3240 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3241 experimental; needs GNU ld >= 2.18).
3243 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3245 -device <name> ............... Cross-compile for device <name> (experimental)
3246 -device-option <key=value> ... Add device specific options for the device mkspec
3249 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3250 $SBY -separate-debug-info .... Strip debug information into a separate file.
3252 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3253 $XCBY -xcb ............... Compile Xcb support.
3255 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3256 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3258 $DFBN -no-directfb ....... Do not compile DirectFB support.
3259 $DFBY -directfb .......... Compile DirectFB support.
3261 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3262 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3264 $KMSN -no-kms ............ Do not compile KMS support.
3265 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3267 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3269 -xplatform target ... The target platform when cross-compiling.
3271 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3272 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3274 -no-feature-<feature> Do not compile in <feature>.
3275 -feature-<feature> .. Compile in <feature>. The available features
3276 are described in src/corelib/global/qfeatures.txt
3278 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3279 default ($CFG_QCONFIG).
3281 -no-opengl .......... Do not support OpenGL.
3282 -opengl <api> ....... Enable OpenGL support
3283 With no parameter, this will attempt to auto-detect
3284 OpenGL ES 2, or regular desktop OpenGL.
3285 Use es2 for <api> to override auto-detection.
3287 * -no-system-proxies .. Do not use system network proxies by default.
3288 -system-proxies ..... Use system network proxies by default.
3290 $GBN -no-glib ........... Do not compile Glib support.
3291 $GBY -glib .............. Compile Glib support.
3294 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3297 $X2N -no-xinput2......... Do not compile XInput2 support.
3298 $X2Y -xinput2............ Compile XInput2 support.
3304 if [ "$XPLATFORM_QNX" = "yes" ]; then
3307 -no-slog2 .......... Do not compile with slog2 support.
3308 -slog2 ............. Compile with slog2 support.
3314 if [ "$BUILD_ON_MAC" = "yes" ]; then
3319 -Fstring ........... Add an explicit framework path.
3320 -fw string ......... Add an explicit framework.
3322 * -framework ......... Build Qt as a series of frameworks and
3323 link tools against those frameworks.
3324 -no-framework ...... Do not build Qt as a series of frameworks.
3326 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3327 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3329 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3330 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3331 QT_ENABLE_HARFBUZZ environment variable.
3336 [ "x$ERROR" = "xyes" ] && exit 1
3341 # -----------------------------------------------------------------------------
3342 # LICENSING, INTERACTIVE PART
3343 # -----------------------------------------------------------------------------
3346 echo "This is the Qt ${EditionString} Edition."
3349 if [ "$Edition" = "OpenSource" ]; then
3351 echo "You are licensed to use this software under the terms of"
3352 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3353 if [ -f "$relpath/LICENSE.GPL3" ]; then
3354 echo "You are also licensed to use this software under the terms of"
3355 echo "the GNU General Public License (GPL) versions 3."
3361 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3362 echo "You have already accepted the terms of the $LicenseType license."
3365 if [ -f "$relpath/LICENSE.GPL3" ]; then
3366 echo "Type '3' to view the GNU General Public License version 3."
3368 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3369 echo "Type 'yes' to accept this license offer."
3370 echo "Type 'no' to decline this license offer."
3372 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3376 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3378 elif [ "$acceptance" = "no" ]; then
3379 echo "You are not licensed to use this software."
3382 elif [ "$acceptance" = "3" ]; then
3383 more "$relpath/LICENSE.GPL3"
3384 elif [ "$acceptance" = "L" ]; then
3385 more "$relpath/LICENSE.LGPL"
3388 elif [ "$Edition" = "Preview" ]; then
3389 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3392 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3393 echo "You have already accepted the terms of the $LicenseType license."
3396 echo "You are licensed to use this software under the terms of"
3397 echo "the $TheLicense"
3399 echo "Type '?' to read the Preview License."
3400 echo "Type 'yes' to accept this license offer."
3401 echo "Type 'no' to decline this license offer."
3403 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3407 if [ "$acceptance" = "yes" ]; then
3409 elif [ "$acceptance" = "no" ] ;then
3410 echo "You are not licensed to use this software."
3413 elif [ "$acceptance" = "?" ]; then
3414 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3417 elif [ "$Edition" != "OpenSource" ]; then
3418 if [ -n "$ExpiryDate" ]; then
3419 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3420 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3421 Today=`date +%Y%m%d`
3422 if [ "$Today" -gt "$ExpiryDate" ]; then
3423 case "$LicenseType" in
3424 Commercial|Academic|Educational)
3426 echo "WARNING WARNING WARNING WARNING"
3428 echo " Your support and upgrade period has expired."
3430 echo " You may continue to use your last licensed release"
3431 echo " of Qt under the terms of your existing license"
3432 echo " agreement. But you are not entitled to technical"
3433 echo " support, nor are you entitled to use any more recent"
3434 echo " Qt releases."
3436 echo " Please use the contact form at http://qt.digia.com/contact-us"
3437 echo " to renew your support and upgrades for this license."
3439 echo "WARNING WARNING WARNING WARNING"
3445 echo "NOTICE NOTICE NOTICE NOTICE"
3447 echo " Your Evaluation license has expired."
3449 echo " You are no longer licensed to use this software. Please"
3450 echo " use the contact form at http://qt.digia.com/contact-us to"
3451 echo " purchase license, or install the Qt Open Source Edition"
3452 echo " if you intend to develop free software."
3454 echo "NOTICE NOTICE NOTICE NOTICE"
3461 TheLicense=`head -n 1 "$outpath/LICENSE"`
3463 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3464 echo "You have already accepted the terms of the $TheLicense."
3467 echo "You are licensed to use this software under the terms of"
3468 echo "the $TheLicense."
3470 echo "Type '?' to view the $TheLicense."
3471 echo "Type 'yes' to accept this license offer."
3472 echo "Type 'no' to decline this license offer."
3474 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3478 if [ "$acceptance" = "yes" ]; then
3480 elif [ "$acceptance" = "no" ]; then
3481 echo "You are not licensed to use this software."
3484 else [ "$acceptance" = "?" ]
3485 more "$outpath/LICENSE"
3490 # this should be moved somewhere else
3493 AIX_VERSION=`uname -v`
3494 if [ "$AIX_VERSION" -lt "5" ]; then
3495 QMakeVar add QMAKE_LIBS_X11 -lbind
3502 #-------------------------------------------------------------------------------
3503 # generate qconfig.cpp
3504 #-------------------------------------------------------------------------------
3505 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3507 shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3508 shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3510 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3512 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3513 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3515 /* Installation date */
3516 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3518 /* Installation Info */
3519 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3520 "qt_prfxpath=$QT_INSTALL_PREFIX",
3521 "qt_docspath=$QT_INSTALL_DOCS",
3522 "qt_hdrspath=$QT_INSTALL_HEADERS",
3523 "qt_libspath=$QT_INSTALL_LIBS",
3524 "qt_lbexpath=$QT_INSTALL_LIBEXECS",
3525 "qt_binspath=$QT_INSTALL_BINS",
3526 "qt_plugpath=$QT_INSTALL_PLUGINS",
3527 "qt_impspath=$QT_INSTALL_IMPORTS",
3528 "qt_qml2path=$QT_INSTALL_QML",
3529 "qt_adatpath=$QT_INSTALL_ARCHDATA",
3530 "qt_datapath=$QT_INSTALL_DATA",
3531 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3532 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3533 "qt_tstspath=$QT_INSTALL_TESTS",
3534 #ifdef QT_BUILD_QMAKE
3535 "qt_ssrtpath=$CFG_SYSROOT",
3536 "qt_hpfxpath=$QT_HOST_PREFIX",
3537 "qt_hbinpath=$QT_HOST_BINS",
3538 "qt_hdatpath=$QT_HOST_DATA",
3539 "qt_targspec=$shortxspec",
3540 "qt_hostspec=$shortspec",
3543 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3546 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3548 /* strlen( "qt_lcnsxxxx" ) == 12 */
3549 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3550 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3552 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3555 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3556 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3557 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3559 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3560 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3561 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3564 # -----------------------------------------------------------------------------
3565 if [ "$LicenseType" = "Evaluation" ]; then
3566 EVALKEY=qt_qevalkey=$LicenseKeyExt
3567 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3568 EVALKEY=qt_qevalkey=
3571 if [ -n "$EVALKEY" ]; then
3572 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3573 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3574 /* Evaluation license key */
3575 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3577 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3581 # -----------------------------------------------------------------------------
3583 # -----------------------------------------------------------------------------
3586 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3587 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3590 # $1: input variable name (awk regexp)
3591 # $2: optional output variable name
3592 # $3: optional value transformation (sed command)
3593 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3594 # is where the resulting variable is written to
3595 setBootstrapVariable()
3597 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3601 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3602 echo "Creating qmake. Please wait..."
3604 mkdir -p "$outpath/qmake" || exit
3606 for mkfile in GNUmakefile Makefile; do
3609 in_mkfile="${mkfile}.in"
3610 if [ "$mkfile" = "Makefile" ]; then
3611 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3612 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3614 in_mkfile="${mkfile}.unix"
3616 in_mkfile="$relpath/qmake/$in_mkfile"
3617 mkfile="$outpath/qmake/$mkfile"
3618 if [ -f "$mkfile" ]; then
3619 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3622 [ -f "$in_mkfile" ] || continue
3624 echo "########################################################################" > "$mkfile"
3625 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3626 echo "########################################################################" >> "$mkfile"
3629 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3630 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3631 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3633 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3634 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3637 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3638 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3639 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3640 setBootstrapVariable QMAKE_CFLAGS
3641 setBootstrapVariable QMAKE_CXXFLAGS
3642 setBootstrapVariable QMAKE_LFLAGS
3644 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3645 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3646 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3648 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3649 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3650 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3651 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3652 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3653 elif [ "$CFG_DEBUG" = "yes" ]; then
3654 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3655 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3656 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3657 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3660 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3661 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3662 for rpath in $RPATH_FLAGS; do
3663 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3666 if [ "$BUILD_ON_MAC" = "yes" ]; then
3667 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3668 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3669 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3670 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3671 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3672 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3673 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3674 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3675 if [ '!' -z "$CFG_SDK" ]; then
3676 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3677 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3678 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3679 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3680 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3683 if [ '!' -z "$D_FLAGS" ]; then
3684 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3686 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3687 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3688 QMAKE_DATA_DIR="$QT_INSTALL_ARCHDATA"
3689 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3691 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3692 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3693 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3694 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3695 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3696 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3697 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3698 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3699 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3700 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3702 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3703 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3704 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3705 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3710 (cd "$outpath/qmake"; "$MAKE") || exit 2
3713 #-------------------------------------------------------------------------------
3714 # create a qt.conf for the Qt build tree itself
3715 #-------------------------------------------------------------------------------
3717 QTCONFFILE="$outpath/bin/qt.conf"
3718 cat > "$QTCONFFILE" <<EOF
3723 #-------------------------------------------------------------------------------
3724 # write out device config before we run the test.
3725 #-------------------------------------------------------------------------------
3726 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3727 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3728 rm -f "$DEVICE_VARS_FILE"
3730 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3731 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3734 #-------------------------------------------------------------------------------
3736 #-------------------------------------------------------------------------------
3737 if [ -z "$PKG_CONFIG" ]; then
3738 # See if PKG_CONFIG is set in the mkspec:
3739 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3741 if [ -z "$PKG_CONFIG" ]; then
3742 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3745 if [ "$CFG_PKGCONFIG" = "no" ]; then
3747 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3749 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3750 echo >&2 "a correctly setup pkg-config environment!"
3752 elif [ -n "$PKG_CONFIG" ]; then
3753 # found a pkg-config
3754 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3755 # when xcompiling, check environment to see if it's actually usable
3756 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3757 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3758 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3759 if [ -n "$GCC_MACHINE_DUMP" ]; then
3760 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3762 export PKG_CONFIG_LIBDIR
3763 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3764 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3765 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3766 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3767 echo >&2 "Set this variable to the directory that contains target .pc files"
3768 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3769 echo >&2 "use -force-pkg-config to override this test."
3773 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3776 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3777 if [ -n "$CFG_SYSROOT" ]; then
3778 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3779 export PKG_CONFIG_SYSROOT_DIR
3780 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3781 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3782 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3783 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3784 echo >&2 "or use -force-pkg-config to override this test."
3788 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3792 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3793 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3797 if [ -z "$PKG_CONFIG" ]; then
3798 QT_CONFIG="$QT_CONFIG no-pkg-config"
3801 #-------------------------------------------------------------------------------
3802 # tests that need qmake
3803 #-------------------------------------------------------------------------------
3805 # parameters: path, name, extra args
3808 path=config.tests/$1
3811 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3814 #-------------------------------------------------------------------------------
3815 # determine the target and host architectures
3816 #-------------------------------------------------------------------------------
3818 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3819 OUTFILE=$outpath/arch.result
3820 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3821 if [ $? -eq 0 ]; then
3822 eval `cat "$OUTFILE"`
3825 echo "Could not determine the target architecture!"
3826 echo "Turn on verbose messaging (-v) to see the final report."
3828 rm -f "$OUTFILE" 2>/dev/null
3829 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3831 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3832 # Do the same test again, using the host compiler
3833 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3834 if [ $? -eq 0 ]; then
3835 eval `cat "$OUTFILE"`
3838 echo "Could not determine the host architecture!"
3839 echo "Turn on verbose messaging (-v) to see the final report."
3841 rm -f "$OUTFILE" 2>/dev/null
3842 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3844 # not cross compiling, host == target
3845 CFG_HOST_ARCH="$CFG_ARCH"
3846 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3850 if [ "$OPT_VERBOSE" = "yes" ]; then
3851 echo "System architecture: '$CFG_ARCH'"
3852 echo "Host architecture: '$CFG_HOST_ARCH'"
3855 #-------------------------------------------------------------------------------
3856 # functionality tests
3857 #-------------------------------------------------------------------------------
3859 # Detect C++11 support
3860 if [ "$CFG_CXX11" != "no" ]; then
3861 if compileTest common/c++11 "C++11"; then
3863 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3864 echo "C++11 support cannot be enabled due to functionality tests!"
3865 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3866 echo " If you believe this message is in error you may use the continue"
3867 echo " switch (-continue) to $0 to continue."
3874 # detect availability of float math.h functions
3875 if compileTest unix/floatmath "floatmath"; then
3876 CFG_USE_FLOATMATH=yes
3878 CFG_USE_FLOATMATH=no
3881 # detect sse2 support
3882 if [ "${CFG_SSE2}" = "auto" ]; then
3883 if compileTest common/sse2 "sse2"; then
3890 # detect sse3 support
3891 if [ "${CFG_SSE3}" = "auto" ]; then
3892 if compileTest common/sse3 "sse3"; then
3899 # detect ssse3 support
3900 if [ "${CFG_SSSE3}" = "auto" ]; then
3901 if compileTest common/ssse3 "ssse3"; then
3908 # detect sse4.1 support
3909 if [ "${CFG_SSE4_1}" = "auto" ]; then
3910 if compileTest common/sse4_1 "sse4_1"; then
3917 # detect sse4.2 support
3918 if [ "${CFG_SSE4_2}" = "auto" ]; then
3919 if compileTest common/sse4_2 "sse4_2"; then
3926 # detect avx support
3927 if [ "${CFG_AVX}" = "auto" ]; then
3928 if compileTest common/avx "avx"; then
3929 case "$XQMAKESPEC" in
3931 # Some clang versions produce internal compiler errors compiling Qt AVX code
3932 case `$TEST_COMPILER --version` in
3933 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3935 if [ "$OPT_VERBOSE" = "yes" ]; then
3936 echo 'AVX support disabled for blacklisted clang compiler'
3953 # detect avx2 support
3954 if [ "${CFG_AVX}" = "no" ]; then
3957 if [ "${CFG_AVX2}" = "auto" ]; then
3958 if compileTest common/avx2 "avx2"; then
3965 # check iWMMXt support
3966 if [ "$CFG_IWMMXT" = "yes" ]; then
3967 compileTest unix/iwmmxt "iwmmxt"
3968 if [ $? != "0" ]; then
3969 echo "The iWMMXt functionality test failed!"
3970 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3975 # detect neon support
3976 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3977 if compileTest unix/neon "neon"; then
3982 elif [ "$CFG_ARCH" != "arm" ]; then
3986 # detect mips_dsp support
3987 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3988 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
3993 elif [ "$CFG_ARCH" != "mips" ]; then
3997 # detect mips_dspr2 support
3998 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3999 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
4004 elif [ "$CFG_ARCH" != "mips" ]; then
4008 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4011 if [ "$CFG_ZLIB" = "no" ]; then
4012 # Note: Qt no longer support builds without zlib
4013 # So we force a "no" to be "auto" here.
4014 # If you REALLY really need no zlib support, you can still disable
4015 # it by doing the following:
4016 # add "no-zlib" to mkspecs/qconfig.pri
4017 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4019 # There's no guarantee that Qt will build under those conditions
4025 if [ "$XPLATFORM_QNX" = "yes" ]; then
4026 if [ "$CFG_SLOG2" != "no" ]; then
4027 if compileTest unix/slog2 "slog2"; then
4029 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4036 if [ "$CFG_ZLIB" = "auto" ]; then
4037 if compileTest unix/zlib "zlib"; then
4044 if [ "$CFG_LARGEFILE" = "auto" ]; then
4045 #Large files should be enabled for all Linux systems
4049 if [ "$CFG_GUI" = "no" ]; then
4050 QPA_PLATFORM_GUARD=no
4053 # detect how jpeg should be built
4054 if [ "$CFG_JPEG" = "auto" ]; then
4055 if [ "$CFG_SHARED" = "yes" ]; then
4062 if [ "$CFG_LIBJPEG" = "auto" ]; then
4063 if compileTest unix/libjpeg "libjpeg"; then
4070 # detect how gif should be built
4071 if [ "$CFG_GIF" = "auto" ]; then
4072 if [ "$CFG_SHARED" = "yes" ]; then
4080 if [ "$CFG_LIBPNG" = "auto" ]; then
4081 if compileTest unix/libpng "libpng"; then
4088 if [ "$CFG_EGLFS" = "yes" ]; then
4089 if [ "$CFG_EGL" = "no" ]; then
4090 echo "The EGLFS plugin requires EGL support and cannot be built"
4093 if [ "$CFG_OPENGL" != "es2" ]; then
4094 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4101 if [ "$CFG_KMS" = "yes" ]; then
4102 if [ "$CFG_EGL" = "no" ]; then
4103 echo "The KMS plugin requires EGL support and cannot be built"
4106 if [ "$CFG_OPENGL" != "es2" ]; then
4107 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4112 # auto-detect SQL-modules support
4113 for _SQLDR in $CFG_SQL_AVAILABLE; do
4116 if [ "$CFG_SQL_mysql" != "no" ]; then
4117 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4118 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4119 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4120 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4121 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4122 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4123 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4125 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4126 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4127 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4128 echo " You need MySql 4 or higher."
4129 echo " If you believe this message is in error you may use the continue"
4130 echo " switch (-continue) to $0 to continue."
4135 QT_LFLAGS_MYSQL_R=""
4139 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4140 QMakeVar add CONFIG use_libmysqlclient_r
4141 if [ "$CFG_SQL_mysql" = "auto" ]; then
4142 CFG_SQL_mysql=plugin
4144 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4145 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4146 if [ "$CFG_SQL_mysql" = "auto" ]; then
4147 CFG_SQL_mysql=plugin
4150 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4151 echo "MySQL support cannot be enabled due to functionality tests!"
4152 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4153 echo " If you believe this message is in error you may use the continue"
4154 echo " switch (-continue) to $0 to continue."
4159 QT_LFLAGS_MYSQL_R=""
4167 if [ "$CFG_SQL_psql" != "no" ]; then
4168 # Be careful not to use native pg_config when cross building.
4169 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4170 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4171 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4173 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4174 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4175 # But, respect PSQL_LIBS if set
4176 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4177 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4178 if [ "$CFG_SQL_psql" = "auto" ]; then
4182 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4183 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4184 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4185 echo " If you believe this message is in error you may use the continue"
4186 echo " switch (-continue) to $0 to continue."
4197 if [ "$CFG_SQL_odbc" != "no" ]; then
4198 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4199 if [ "$CFG_SQL_odbc" = "auto" ]; then
4203 if compileTest unix/iodbc "iODBC"; then
4204 QT_LFLAGS_ODBC="-liodbc"
4205 if [ "$CFG_SQL_odbc" = "auto" ]; then
4209 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4210 echo "ODBC 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."
4223 if [ "$CFG_SQL_oci" != "no" ]; then
4224 if compileTest unix/oci "OCI"; then
4225 if [ "$CFG_SQL_oci" = "auto" ]; then
4229 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4230 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4231 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4232 echo " If you believe this message is in error you may use the continue"
4233 echo " switch (-continue) to $0 to continue."
4242 if [ "$CFG_SQL_tds" != "no" ]; then
4243 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4244 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4245 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4246 if [ "$CFG_SQL_tds" = "auto" ]; then
4250 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4251 echo "TDS support cannot be enabled due to functionality tests!"
4252 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4253 echo " If you believe this message is in error you may use the continue"
4254 echo " switch (-continue) to $0 to continue."
4263 if [ "$CFG_SQL_db2" != "no" ]; then
4264 if compileTest unix/db2 "DB2"; then
4265 if [ "$CFG_SQL_db2" = "auto" ]; then
4269 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4270 echo "ODBC support cannot be enabled due to functionality tests!"
4271 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4272 echo " If you believe this message is in error you may use the continue"
4273 echo " switch (-continue) to $0 to continue."
4282 if [ "$CFG_SQL_ibase" != "no" ]; then
4283 if compileTest unix/ibase "InterBase"; then
4284 if [ "$CFG_SQL_ibase" = "auto" ]; then
4285 CFG_SQL_ibase=plugin
4288 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4289 echo "InterBase support cannot be enabled due to functionality tests!"
4290 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4291 echo " If you believe this message is in error you may use the continue"
4292 echo " switch (-continue) to $0 to continue."
4301 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4302 if compileTest unix/sqlite2 "SQLite2"; then
4303 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4304 CFG_SQL_sqlite2=plugin
4307 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4308 echo "SQLite2 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."
4320 if [ "$CFG_SQL_sqlite" != "no" ]; then
4321 SQLITE_AUTODETECT_FAILED="no"
4322 if [ "$CFG_SQLITE" = "system" ]; then
4323 if [ -n "$PKG_CONFIG" ]; then
4324 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4325 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4328 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4330 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4331 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4332 CFG_SQL_sqlite=plugin
4334 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4336 SQLITE_AUTODETECT_FAILED="yes"
4339 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4340 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4341 CFG_SQL_sqlite=plugin
4344 SQLITE_AUTODETECT_FAILED="yes"
4348 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4349 echo "SQLite support cannot be enabled due to functionality tests!"
4350 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4351 echo " If you believe this message is in error you may use the continue"
4352 echo " switch (-continue) to $0 to continue."
4358 if [ "$OPT_VERBOSE" = "yes" ]; then
4359 echo "unknown SQL driver: $_SQLDR"
4365 # auto-detect NIS support
4366 if [ "$CFG_NIS" != "no" ]; then
4367 if compileTest unix/nis "NIS"; then
4370 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4371 echo "NIS support cannot be enabled due to functionality tests!"
4372 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4373 echo " If you believe this message is in error you may use the continue"
4374 echo " switch (-continue) to $0 to continue."
4382 # auto-detect CUPS support
4383 if [ "$CFG_CUPS" != "no" ]; then
4384 if compileTest unix/cups "Cups"; then
4387 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4388 echo "Cups support cannot be enabled due to functionality tests!"
4389 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4390 echo " If you believe this message is in error you may use the continue"
4391 echo " switch (-continue) to $0 to continue."
4399 # auto-detect iconv(3) support
4400 if [ "$CFG_ICONV" != "no" ]; then
4401 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4403 elif compileTest unix/iconv "POSIX iconv"; then
4405 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4407 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4410 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4411 echo "Iconv support cannot be enabled due to functionality tests!"
4412 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4413 echo " If you believe this message is in error you may use the continue"
4414 echo " switch (-continue) to $0 to continue."
4422 # auto-detect libdbus-1 support
4423 if [ "$CFG_DBUS" != "no" ]; then
4424 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4425 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4426 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4428 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4429 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4430 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4431 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4433 if [ "$CFG_DBUS" = "auto" ]; then
4435 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4436 # CFG_DBUS is "yes" or "linked" here
4438 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4439 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4440 echo " If you believe this message is in error you may use the continue"
4441 echo " switch (-continue) to $0 to continue."
4447 # auto-detect Glib support
4448 if [ "$CFG_GLIB" != "no" ]; then
4449 if [ -n "$PKG_CONFIG" ]; then
4450 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4451 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4453 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4455 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4456 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4458 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4459 echo "Glib support cannot be enabled due to functionality tests!"
4460 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4461 echo " If you believe this message is in error you may use the continue"
4462 echo " switch (-continue) to $0 to continue."
4470 # auto-detect GTK style support
4471 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4472 if [ -n "$PKG_CONFIG" ]; then
4473 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4474 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4476 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4478 QT_CONFIG="$QT_CONFIG gtkstyle"
4479 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4480 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4482 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4483 echo "Gtk theme support cannot be enabled due to functionality tests!"
4484 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4485 echo " If you believe this message is in error you may use the continue"
4486 echo " switch (-continue) to $0 to continue."
4492 elif [ "$CFG_GLIB" = "no" ]; then
4497 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4498 if [ -n "$PKG_CONFIG" ]; then
4499 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4500 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4502 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4504 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4505 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4507 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4508 echo "Gstreamer support cannot be enabled due to functionality tests!"
4509 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4510 echo " If you believe this message is in error you may use the continue"
4511 echo " switch (-continue) to $0 to continue."
4517 elif [ "$CFG_GLIB" = "no" ]; then
4521 # auto-detect libicu support
4522 if [ "$CFG_ICU" != "no" ]; then
4523 if compileTest unix/icu "ICU"; then
4524 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4526 if [ "$CFG_ICU" = "auto" ]; then
4528 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4531 echo "The ICU library support cannot be enabled."
4532 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4533 echo " If you believe this message is in error you may use the continue"
4534 echo " switch (-continue) to $0 to continue."
4540 # Auto-detect PulseAudio support
4541 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4542 if [ -n "$PKG_CONFIG" ]; then
4543 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4544 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4546 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4548 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4549 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4551 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4552 echo "PulseAudio support cannot be enabled due to functionality tests!"
4553 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4554 echo " If you believe this message is in error you may use the continue"
4555 echo " switch (-continue) to $0 to continue."
4564 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4565 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4566 if [ "$CFG_GUI" = "no" ]; then
4567 if [ "$CFG_OPENGL" = "auto" ]; then
4570 if [ "$CFG_OPENGL" != "no" ]; then
4571 echo "OpenGL enabled, but GUI disabled."
4572 echo " You might need to either enable the GUI or disable OpenGL"
4576 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4577 if compileTest x11/opengl "OpenGL"; then
4579 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4582 if [ "$CFG_OPENGL" = "yes" ]; then
4583 echo "All the OpenGL functionality tests failed!"
4584 echo " You might need to modify the include and library search paths by editing"
4585 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4586 echo " ${XQMAKESPEC}."
4593 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4594 if [ "$CFG_OPENGL" = "desktop" ]; then
4595 compileTest x11/glxfbconfig "OpenGL"
4596 if [ $? != "0" ]; then
4597 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4604 elif [ "$CFG_OPENGL" = "es2" ]; then
4606 compileTest unix/opengles2 "OpenGL ES 2.x"
4607 if [ $? != "0" ]; then
4608 echo "The OpenGL ES 2.0 functionality test failed!"
4609 echo " You might need to modify the include and library search paths by editing"
4610 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4611 echo " ${XQMAKESPEC}."
4614 elif [ "$CFG_OPENGL" = "desktop" ]; then
4615 # Desktop OpenGL support
4616 compileTest x11/opengl "OpenGL"
4617 if [ $? != "0" ]; then
4618 echo "The OpenGL functionality test failed!"
4619 echo " You might need to modify the include and library search paths by editing"
4620 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4621 echo " ${XQMAKESPEC}."
4626 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4627 compileTest x11/glxfbconfig "OpenGL"
4628 if [ $? != "0" ]; then
4629 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4636 fi # X11/MINGW OpenGL
4638 if [ "$BUILD_ON_MAC" = "yes" ]; then
4639 if [ "$CFG_COREWLAN" = "auto" ]; then
4640 if compileTest mac/corewlan "CoreWlan"; then
4648 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4649 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4650 if compileTest unix/opengldesktop "OpenGL"; then
4652 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4655 if [ "$CFG_OPENGL" = "yes" ]; then
4656 echo "All the OpenGL functionality tests failed!"
4657 echo " You might need to modify the include and library search paths by editing"
4658 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4659 echo " ${XQMAKESPEC}."
4664 elif [ "$CFG_OPENGL" = "es2" ]; then
4666 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4667 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4668 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4669 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4670 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4671 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4672 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4673 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4676 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4677 if [ $? != "0" ]; then
4678 echo "The OpenGL ES 2.0 functionality test failed!"
4679 echo " You might need to modify the include and library search paths by editing"
4680 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4681 echo " ${XQMAKESPEC}."
4684 elif [ "$CFG_OPENGL" = "desktop" ]; then
4685 # Desktop OpenGL support
4686 compileTest unix/opengldesktop "OpenGL"
4687 if [ $? != "0" ]; then
4688 echo "The OpenGL functionality test failed!"
4689 echo " You might need to modify the include and library search paths by editing"
4690 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4691 echo " ${XQMAKESPEC}."
4696 # auto-detect FontConfig support
4697 if [ "$CFG_FONTCONFIG" != "no" ]; then
4698 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4699 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4700 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4702 QT_CFLAGS_FONTCONFIG=
4703 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4705 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4706 QT_CONFIG="$QT_CONFIG fontconfig"
4707 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4708 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4710 CFG_LIBFREETYPE=system
4717 # Save these for a check later
4718 ORIG_CFG_XCB="$CFG_XCB"
4719 ORIG_CFG_EGLFS="$CFG_EGLFS"
4720 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4721 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4722 ORIG_CFG_KMS="$CFG_KMS"
4724 if [ "$CFG_LIBUDEV" != "no" ]; then
4725 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4726 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4727 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4728 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4729 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4731 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4733 QT_CONFIG="$QT_CONFIG libudev"
4734 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4735 echo "The libudev functionality test failed!"
4741 if [ "$CFG_LIBUDEV" = "no" ]; then
4742 QMakeVar add DEFINES QT_NO_LIBUDEV
4745 if [ "$CFG_EVDEV" != "no" ]; then
4746 if compileTest unix/evdev "evdev"; then
4748 QT_CONFIG="$QT_CONFIG evdev"
4749 elif [ "$CFG_EVDEV" = "yes" ]; then
4750 echo "The evdev functionality test failed!"
4756 if [ "$CFG_EVDEV" = "no" ]; then
4757 QMakeVar add DEFINES QT_NO_EVDEV
4760 # Check we actually have X11 :-)
4761 if compileTest x11/xlib "XLib"; then
4762 QT_CONFIG="$QT_CONFIG xlib"
4765 # auto-detect Xrender support
4766 if [ "$CFG_XRENDER" != "no" ]; then
4767 if compileTest x11/xrender "Xrender"; then
4769 QT_CONFIG="$QT_CONFIG xrender"
4771 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4772 echo "Xrender support cannot be enabled due to functionality tests!"
4773 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4774 echo " If you believe this message is in error you may use the continue"
4775 echo " switch (-continue) to $0 to continue."
4783 if [ "$CFG_XCB" != "no" ]; then
4784 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4785 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4786 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4788 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4790 if [ "$CFG_XCB" = "qt" ]; then
4791 QT_CONFIG="$QT_CONFIG xcb-qt"
4795 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4796 XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm"
4797 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
4798 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
4801 if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4802 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4803 QT_CONFIG="$QT_CONFIG xcb-render"
4806 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4808 QT_CONFIG="$QT_CONFIG xcb-glx"
4811 echo "The test for linking against libxcb and support libraries failed!"
4812 echo " You might need install dependency packages, or pass -qt-xcb."
4813 echo " See src/plugins/platforms/xcb/README."
4818 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4819 QT_CONFIG="$QT_CONFIG xcb-xlib"
4822 # auto-detect XInput2 support. Needed by xcb too.
4823 if [ "$CFG_XINPUT2" != "no" ]; then
4824 if compileTest x11/xinput2 "XInput2"; then
4828 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4829 echo "XInput2 support cannot be enabled due to functionality tests!"
4830 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4831 echo " If you believe this message is in error you may use the continue"
4832 echo " switch (-continue) to $0 to continue."
4840 if [ "$CFG_XCB" != "auto" ]; then
4841 echo "The test for linking against libxcb failed!"
4842 echo " You might need to install dependency packages for libxcb."
4843 echo " See src/plugins/platforms/xcb/README."
4849 if [ "$CFG_XCB" = "no" ]; then
4850 QMakeVar add DEFINES QT_NO_XCB
4853 if [ "$CFG_DIRECTFB" != "no" ]; then
4854 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4855 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4856 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4857 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4859 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4860 echo " DirectFB support cannot be enabled due to functionality tests!"
4861 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4862 echo " If you believe this message is in error you may use the continue"
4863 echo " switch (-continue) to $0 to continue."
4873 if [ "$CFG_LINUXFB" != "no" ]; then
4874 if compileTest qpa/linuxfb "LinuxFB"; then
4876 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4877 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4878 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4879 echo " If you believe this message is in error you may use the continue"
4880 echo " switch (-continue) to $0 to continue."
4887 if [ "$CFG_KMS" != "no" ]; then
4888 if compileTest qpa/kms "KMS"; then
4890 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4891 echo " KMS support cannot be enabled due to functionality tests!"
4892 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4893 echo " If you believe this message is in error you may use the continue"
4894 echo " switch (-continue) to $0 to continue."
4901 # Detect libxkbcommon
4902 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4903 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4904 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4905 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4906 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4908 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4912 if [ "$CFG_EGL" != "no" ]; then
4913 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4914 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4915 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4916 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4917 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4918 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4919 fi # detect EGL support
4920 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4922 elif [ "$CFG_EGL" = "yes" ]; then
4923 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4924 echo " You might need to modify the include and library search paths by editing"
4925 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4930 elif [ "$CFG_OPENGL" = "desktop" ]; then
4931 if [ "$CFG_EGL" = "yes" ]; then
4932 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4933 echo "Either disable EGL support or enable OpenGL ES support."
4939 if [ "$CFG_EGLFS" != "no" ]; then
4940 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4941 CFG_EGLFS="$CFG_EGL"
4947 if [ "$CFG_KMS" = "yes" ]; then
4948 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4955 # Detect accessibility support
4956 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4957 if [ "$CFG_XCB" = "no" ]; then
4958 CFG_ACCESSIBILITY=yes
4960 # linux/xcb accessibility needs dbus
4961 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ]; then
4962 CFG_ACCESSIBILITY=yes
4964 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4965 CFG_ACCESSIBILITY=no
4967 echo "Accessibility support needs DBus."
4974 # Determine the default QPA platform
4975 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4977 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4978 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4979 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4980 QT_QPA_DEFAULT_PLATFORM="windows"
4981 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4982 QT_QPA_DEFAULT_PLATFORM="cocoa"
4983 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4984 QT_QPA_DEFAULT_PLATFORM="qnx"
4986 QT_QPA_DEFAULT_PLATFORM="xcb"
4991 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4992 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4993 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4994 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4996 if [ "$CFG_DIRECTFB" = "yes" ]; then
4997 QT_CONFIG="$QT_CONFIG directfb"
4998 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4999 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
5001 if [ "$CFG_LINUXFB" = "yes" ]; then
5002 QT_CONFIG="$QT_CONFIG linuxfb"
5004 if [ "$CFG_KMS" = "yes" ]; then
5005 QT_CONFIG="$QT_CONFIG kms"
5008 if [ "$BUILD_ON_MAC" = "yes" ]; then
5009 if compileTest mac/coreservices "CoreServices"; then
5010 QT_CONFIG="$QT_CONFIG coreservices"
5012 QMakeVar add DEFINES QT_NO_CORESERVICES
5016 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5017 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5018 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5019 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5020 echo "No QPA platform plugin enabled!"
5021 echo " If you really want to build without a QPA platform plugin you must pass"
5022 echo " -no-qpa-platform-guard to configure. Doing this will"
5023 echo " produce a Qt that can not run GUI applications."
5024 echo " The dependencies needed for xcb to build are listed in"
5025 echo " src/plugins/platforms/xcb/README"
5032 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5033 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5034 if compileTest unix/freetype "FreeType"; then
5035 CFG_LIBFREETYPE=system
5041 if ! compileTest unix/stl "STL" &&
5042 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5043 echo "STL functionality check failed! Cannot build Qt with this STL library."
5044 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5049 # detect POSIX clock_gettime()
5050 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5051 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5052 CFG_CLOCK_GETTIME=yes
5054 CFG_CLOCK_GETTIME=no
5058 # detect POSIX monotonic clocks
5059 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5060 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5061 CFG_CLOCK_MONOTONIC=yes
5063 CFG_CLOCK_MONOTONIC=no
5065 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5066 CFG_CLOCK_MONOTONIC=no
5070 if [ "$CFG_MREMAP" = "auto" ]; then
5071 if compileTest unix/mremap "mremap"; then
5078 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5079 if [ "$CFG_GETADDRINFO" != "no" ]; then
5080 if compileTest unix/getaddrinfo "getaddrinfo"; then
5083 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5084 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5085 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5086 echo " If you believe this message is in error you may use the continue"
5087 echo " switch (-continue) to $0 to continue."
5095 # find if the platform provides inotify
5096 if [ "$CFG_INOTIFY" != "no" ]; then
5097 if compileTest unix/inotify "inotify"; then
5100 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5101 echo "inotify support cannot be enabled due to functionality tests!"
5102 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5103 echo " If you believe this message is in error you may use the continue"
5104 echo " switch (-continue) to $0 to continue."
5112 # find if the platform provides if_nametoindex (ipv6 interface name support)
5113 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5114 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5117 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5118 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5119 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5120 echo " If you believe this message is in error you may use the continue"
5121 echo " switch (-continue) to $0 to continue."
5129 # find if the platform provides getifaddrs (network interface enumeration)
5130 if [ "$CFG_GETIFADDRS" != "no" ]; then
5131 if compileTest unix/getifaddrs "getifaddrs"; then
5134 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5135 echo "getifaddrs support cannot be enabled due to functionality tests!"
5136 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5137 echo " If you believe this message is in error you may use the continue"
5138 echo " switch (-continue) to $0 to continue."
5147 if [ "$CFG_OPENSSL" != "no" ]; then
5148 if compileTest unix/openssl "OpenSSL"; then
5149 if [ "$CFG_OPENSSL" = "auto" ]; then
5153 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5154 echo "OpenSSL support cannot be enabled due to functionality tests!"
5155 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5156 echo " If you believe this message is in error you may use the continue"
5157 echo " switch (-continue) to $0 to continue."
5166 if [ "$CFG_PCRE" != "qt" ]; then
5167 if compileTest unix/pcre "PCRE"; then
5170 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5171 echo "PCRE support cannot be enabled due to functionality tests!"
5172 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5173 echo " If you believe this message is in error you may use the continue"
5174 echo " switch (-continue) to $0 to continue."
5182 # detect OpenVG support
5183 if [ "$CFG_OPENVG" != "no" ]; then
5184 if compileTest unix/openvg "OpenVG"; then
5185 if [ "$CFG_OPENVG" = "auto" ]; then
5188 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5189 if [ "$CFG_OPENVG" = "auto" ]; then
5192 CFG_OPENVG_ON_OPENGL=yes
5193 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5194 if [ "$CFG_OPENVG" = "auto" ]; then
5197 CFG_OPENVG_LC_INCLUDES=yes
5198 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5199 if [ "$CFG_OPENVG" = "auto" ]; then
5202 CFG_OPENVG_LC_INCLUDES=yes
5203 CFG_OPENVG_ON_OPENGL=yes
5205 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5206 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5207 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5208 echo " If you believe this message is in error you may use the continue"
5209 echo " switch (-continue) to $0 to continue."
5215 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5216 CFG_OPENVG_SHIVA=yes
5220 if [ "$CFG_ALSA" = "auto" ]; then
5221 if compileTest unix/alsa "alsa"; then
5228 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5229 if [ "$CFG_ARCH" = "arm" ]; then
5230 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5231 if [ $? != "0" ]; then
5232 CFG_JAVASCRIPTCORE_JIT=no
5235 case "$XPLATFORM" in
5237 CFG_JAVASCRIPTCORE_JIT=no
5243 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5244 QMakeVar set JAVASCRIPTCORE_JIT yes
5245 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5246 QMakeVar set JAVASCRIPTCORE_JIT no
5249 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5250 CFG_AUDIO_BACKEND=yes
5253 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5254 echo "Warning: largefile support cannot be disabled for win32."
5258 #-------------------------------------------------------------------------------
5259 # ask for all that hasn't been auto-detected or specified in the arguments
5260 #-------------------------------------------------------------------------------
5262 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5264 # disable accessibility
5265 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5266 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5268 QT_CONFIG="$QT_CONFIG accessibility"
5272 if [ "$CFG_EGL" = "yes" ]; then
5273 QT_CONFIG="$QT_CONFIG egl"
5275 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5279 if [ "$CFG_EGLFS" = "yes" ]; then
5280 QT_CONFIG="$QT_CONFIG eglfs"
5282 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5286 if [ "$CFG_OPENVG" = "no" ]; then
5287 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5289 QT_CONFIG="$QT_CONFIG openvg"
5290 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5291 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5293 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5294 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5296 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5297 QT_CONFIG="$QT_CONFIG shivavg"
5298 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5303 if [ "$CFG_OPENGL" = "no" ]; then
5304 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5306 QT_CONFIG="$QT_CONFIG opengl"
5309 if [ "$CFG_OPENGL" = "es2" ]; then
5310 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5313 if [ "$CFG_OPENGL" = "es2" ]; then
5314 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5315 QT_CONFIG="$QT_CONFIG opengles2"
5318 # build up the variables for output
5319 if [ "$CFG_DEBUG" = "yes" ]; then
5320 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5321 elif [ "$CFG_DEBUG" = "no" ]; then
5322 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5324 if [ "$CFG_SHARED" = "yes" ]; then
5325 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5326 QT_CONFIG="$QT_CONFIG shared"
5327 elif [ "$CFG_SHARED" = "no" ]; then
5328 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5329 QT_CONFIG="$QT_CONFIG static"
5332 #FIXME: qpa is implicit this should all be removed
5333 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5334 QT_CONFIG="$QT_CONFIG qpa"
5335 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5336 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5338 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5339 # Do not set this here for Windows. Let qmake do it so
5340 # debug and release precompiled headers are kept separate.
5341 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5343 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5344 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5345 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5346 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5347 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5348 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5350 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5351 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5353 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5354 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5355 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5356 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5357 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5358 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5359 QMakeVar add QMAKE_CFLAGS -g
5360 QMakeVar add QMAKE_CXXFLAGS -g
5361 QT_CONFIG="$QT_CONFIG separate_debug_info"
5363 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5364 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5366 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5367 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5368 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5369 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5370 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5371 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5372 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5373 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5374 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5375 if [ "$CFG_ARCH" = "mips" ]; then
5376 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5377 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5379 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5380 QT_CONFIG="$QT_CONFIG clock-gettime"
5382 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5383 QT_CONFIG="$QT_CONFIG clock-monotonic"
5385 if [ "$CFG_MREMAP" = "yes" ]; then
5386 QT_CONFIG="$QT_CONFIG mremap"
5388 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5389 QT_CONFIG="$QT_CONFIG getaddrinfo"
5391 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5392 QT_CONFIG="$QT_CONFIG ipv6ifname"
5394 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5395 QT_CONFIG="$QT_CONFIG getifaddrs"
5397 if [ "$CFG_INOTIFY" = "yes" ]; then
5398 QT_CONFIG="$QT_CONFIG inotify"
5400 if [ "$CFG_LIBJPEG" = "no" ]; then
5402 elif [ "$CFG_LIBJPEG" = "system" ]; then
5403 QT_CONFIG="$QT_CONFIG system-jpeg"
5405 if [ "$CFG_JPEG" = "no" ]; then
5406 QT_CONFIG="$QT_CONFIG no-jpeg"
5407 elif [ "$CFG_JPEG" = "yes" ]; then
5408 QT_CONFIG="$QT_CONFIG jpeg"
5410 if [ "$CFG_LIBPNG" = "no" ]; then
5413 if [ "$CFG_LIBPNG" = "system" ]; then
5414 QT_CONFIG="$QT_CONFIG system-png"
5416 if [ "$CFG_PNG" = "no" ]; then
5417 QT_CONFIG="$QT_CONFIG no-png"
5418 elif [ "$CFG_PNG" = "yes" ]; then
5419 QT_CONFIG="$QT_CONFIG png"
5421 if [ "$CFG_GIF" = "no" ]; then
5422 QT_CONFIG="$QT_CONFIG no-gif"
5423 elif [ "$CFG_GIF" = "yes" ]; then
5424 QT_CONFIG="$QT_CONFIG gif"
5426 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5427 QT_CONFIG="$QT_CONFIG no-freetype"
5428 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5429 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5430 QT_CONFIG="$QT_CONFIG system-freetype"
5432 QT_CONFIG="$QT_CONFIG freetype"
5434 if [ "$CFG_GUI" = "auto" ]; then
5437 if [ "$CFG_GUI" = "no" ]; then
5438 QT_CONFIG="$QT_CONFIG no-gui"
5441 if [ "$CFG_WIDGETS" = "no" ]; then
5442 QT_CONFIG="$QT_CONFIG no-widgets"
5443 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5446 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5447 #On Mac we implicitly link against libz, so we
5448 #never use the 3rdparty stuff.
5449 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5451 if [ "$CFG_ZLIB" = "yes" ]; then
5452 QT_CONFIG="$QT_CONFIG zlib"
5453 elif [ "$CFG_ZLIB" = "system" ]; then
5454 QT_CONFIG="$QT_CONFIG system-zlib"
5457 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5458 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5459 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5460 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5461 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5462 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5463 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5464 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5465 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5466 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5467 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5468 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5469 [ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb"
5470 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5471 [ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies"
5473 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5474 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5476 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5477 if [ "$CFG_RPATH" = "yes" ]; then
5478 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5480 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5481 if [ -n "$RPATH_FLAGS" ]; then
5483 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5487 elif [ "$CFG_RPATH" = "yes" ]; then
5488 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5492 if [ -n "$RPATH_FLAGS" ]; then
5493 # add the user defined rpaths
5494 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5497 if [ "$CFG_RPATH" = "yes" ]; then
5498 QT_CONFIG="$QT_CONFIG rpath"
5501 if [ '!' -z "$I_FLAGS" ]; then
5502 # add the user define include paths
5503 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5504 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5507 if [ '!' -z "$W_FLAGS" ]; then
5508 # add the user defined warning flags
5509 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5510 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5511 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5514 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5515 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5516 # Follow default behavior of configure.exe by overriding with "rtti".
5517 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5520 if [ "$CFG_ALSA" = "yes" ]; then
5521 QT_CONFIG="$QT_CONFIG alsa"
5524 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5525 QT_CONFIG="$QT_CONFIG pulseaudio"
5528 if [ "$CFG_COREWLAN" = "yes" ]; then
5529 QT_CONFIG="$QT_CONFIG corewlan"
5532 if [ "$CFG_ICU" = "yes" ]; then
5533 QT_CONFIG="$QT_CONFIG icu"
5536 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5537 QT_CONFIG="$QT_CONFIG force_asserts"
5540 if [ "$CFG_PCRE" = "qt" ]; then
5541 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5545 # Some Qt modules are too advanced in C++ for some old compilers
5546 # Detect here the platforms where they are known to work.
5548 # See Qt documentation for more information on which features are
5549 # supported and on which compilers.
5551 canBuildQtConcurrent="yes"
5552 canUseV8Snapshot="yes"
5554 case "$XPLATFORM" in
5556 # PA-RISC's assembly is too limited
5557 # gcc 3.4 on that platform can't build QtXmlPatterns
5558 # the assembly it generates cannot be compiled
5560 # Check gcc's version
5561 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5565 canBuildQtXmlPatterns="no"
5569 canBuildQtXmlPatterns="no"
5573 unsupported/vxworks-*-g++*)
5576 unsupported/vxworks-*-dcc*)
5578 canBuildQtXmlPatterns="no"
5581 # Check gcc's version
5582 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5590 canBuildQtXmlPatterns="no"
5595 # Check the compiler version
5596 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5599 canBuildQtXmlPatterns="no"
5600 canBuildQtConcurrent="no"
5604 canBuildQtConcurrent="no"
5610 canBuildQtXmlPatterns="no"
5611 canBuildQtConcurrent="no"
5617 # Get the xlC version
5618 cat > xlcver.c <<EOF
5622 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5627 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5628 xlcver=`./xlcver 2>/dev/null`
5631 if [ "$OPT_VERBOSE" = "yes" ]; then
5632 if [ -n "$xlcver" ]; then
5633 echo Found IBM xlC version: $xlcver.
5635 echo Could not determine IBM xlC version, assuming oldest supported.
5642 canBuildQtXmlPatterns="no"
5643 canBuildQtConcurrent="no"
5647 canBuildQtConcurrent="no"
5653 canBuildQtConcurrent="no"
5657 if [ "$CFG_GUI" = "no" ]; then
5658 # WebKit requires QtGui
5662 if [ "$CFG_SHARED" = "no" ]; then
5664 echo "WARNING: Using static linking will disable the WebKit module."
5669 CFG_CONCURRENT="yes"
5670 if [ "$canBuildQtConcurrent" = "no" ]; then
5671 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5674 QT_CONFIG="$QT_CONFIG concurrent"
5678 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5679 QT_CONFIG="$QT_CONFIG audio-backend"
5683 if [ "$CFG_WEBKIT" = "debug" ]; then
5684 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5688 QT_CONFIG="$QT_CONFIG v8"
5689 # Detect snapshot support
5690 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5691 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5694 *) canUseV8Snapshot="no"
5698 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5699 # QEMU crashes when building inside Scratchbox with an ARM target
5700 canUseV8Snapshot="no"
5703 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5704 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5706 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5707 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5710 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5711 QT_CONFIG="$QT_CONFIG v8snapshot"
5715 if [ "$CFG_QML_DEBUG" = "no" ]; then
5716 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5719 case "$QMAKE_CONF_COMPILER" in
5722 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5724 case "$COMPILER_VERSION" in
5726 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5727 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5728 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5731 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5732 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5733 QT_GCC_PATCH_VERSION=0
5743 #-------------------------------------------------------------------------------
5744 # part of configuration information goes into qconfig.h
5745 #-------------------------------------------------------------------------------
5747 case "$CFG_QCONFIG" in
5749 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5752 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5753 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5754 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5755 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5756 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5757 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5759 echo "#endif" >>"$tmpconfig"
5763 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5767 # define QT_EDITION $QT_EDITION
5771 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5772 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5774 if [ "$CFG_SHARED" = "no" ]; then
5775 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5776 /* Qt was configured for a static build */
5777 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5784 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5785 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5788 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5789 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5792 if [ "$BUILD_ON_MAC" = "yes" ]; then
5793 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5794 #if defined(__LP64__)
5795 # define QT_POINTER_SIZE 8
5797 # define QT_POINTER_SIZE 4
5801 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5802 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5805 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5806 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5807 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5810 # Add compiler sub-architecture support
5811 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5812 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5813 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5815 MIPS_DSP MIPS_DSPR2; do
5816 eval "VAL=\$CFG_$SUBARCH"
5819 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5820 >>"$outpath/src/corelib/global/qconfig.h.new"
5825 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5827 if [ "$CFG_DEV" = "yes" ]; then
5828 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5831 # Add QPA to config.h
5832 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5834 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5835 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5838 # Add turned on SQL drivers
5839 for DRIVER in $CFG_SQL_AVAILABLE; do
5840 eval "VAL=\$CFG_SQL_$DRIVER"
5843 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5844 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5845 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5848 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5853 QMakeVar set sql-drivers "$SQL_DRIVERS"
5854 QMakeVar set sql-plugins "$SQL_PLUGINS"
5856 # Add other configuration options to the qconfig.h file
5857 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5858 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5859 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5860 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5861 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5863 # X11/Unix/Mac only configs
5864 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5865 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5866 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5867 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5868 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5869 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5870 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5871 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5872 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5873 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5874 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5875 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5876 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5877 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5879 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5880 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5881 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5882 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5883 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5884 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5885 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5886 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5887 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5888 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5889 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5890 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5891 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5893 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5894 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5895 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5896 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5897 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5898 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5899 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5900 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5902 # sort QCONFIG_FLAGS for neatness if we can
5903 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5904 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5906 if [ -n "$QCONFIG_FLAGS" ]; then
5907 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5908 #ifndef QT_BOOTSTRAPPED
5911 for cfg in $QCONFIG_FLAGS; do
5912 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5913 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5914 # figure out define logic, so we can output the correct
5915 # ifdefs to override the global defines in a project
5917 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5918 # QT_NO_option can be forcefully turned on by QT_option
5919 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5920 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5921 # QT_option can be forcefully turned off by QT_NO_option
5922 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5925 if [ -z $cfgdNeg ]; then
5926 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5933 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5934 #if defined($cfgd) && defined($cfgdNeg)
5936 #elif !defined($cfgd) && !defined($cfgdNeg)
5943 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5944 #endif // QT_BOOTSTRAPPED
5949 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5950 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5951 #define QT_VISIBILITY_AVAILABLE
5956 if [ -n "$QT_LIBINFIX" ]; then
5957 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5958 #define QT_LIBINFIX "$QT_LIBINFIX"
5963 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5965 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5966 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5967 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5969 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5970 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5971 chmod -w "$outpath/src/corelib/global/qconfig.h"
5972 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5973 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5977 #-------------------------------------------------------------------------------
5978 # save configuration into qconfig.pri
5979 #-------------------------------------------------------------------------------
5980 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5981 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5982 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5983 if [ "$CFG_DEBUG" = "yes" ]; then
5984 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5985 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5986 QT_CONFIG="$QT_CONFIG release"
5988 QT_CONFIG="$QT_CONFIG debug"
5989 elif [ "$CFG_DEBUG" = "no" ]; then
5990 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5991 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5992 QT_CONFIG="$QT_CONFIG debug"
5994 QT_CONFIG="$QT_CONFIG release"
5996 if [ "$CFG_FRAMEWORK" = "no" ]; then
5997 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5999 QT_CONFIG="$QT_CONFIG qt_framework"
6000 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
6002 if [ "$CFG_DEV" = "yes" ]; then
6003 QT_CONFIG="$QT_CONFIG private_tests"
6006 cat >>"$QTCONFIG.tmp" <<EOF
6008 CONFIG += $QTCONFIG_CONFIG
6010 QT_HOST_ARCH = $CFG_HOST_ARCH
6011 QT_CPU_FEATURES = $CFG_CPUFEATURES
6012 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
6013 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6014 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6015 QT_EDITION = $Edition
6016 QT_CONFIG += $QT_CONFIG
6019 QT_VERSION = $QT_VERSION
6020 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6021 QT_MINOR_VERSION = $QT_MINOR_VERSION
6022 QT_PATCH_VERSION = $QT_PATCH_VERSION
6025 QT_LIBINFIX = $QT_LIBINFIX
6026 QT_NAMESPACE = $QT_NAMESPACE
6030 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6031 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6032 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6033 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6034 echo >> "$QTCONFIG.tmp"
6037 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6038 echo "# sysroot" >>"$QTCONFIG.tmp"
6039 echo "!host_build {" >>"$QTCONFIG.tmp"
6040 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6041 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6042 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6043 echo "}" >> "$QTCONFIG.tmp"
6044 echo >> "$QTCONFIG.tmp"
6046 if [ -n "$RPATH_FLAGS" ]; then
6047 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6049 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6050 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6051 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6052 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6055 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6056 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6057 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6060 # replace qconfig.pri if it differs from the newly created temp file
6061 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6062 rm -f "$QTCONFIG.tmp"
6064 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6067 #-------------------------------------------------------------------------------
6068 # save configuration into qmodule.pri
6069 #-------------------------------------------------------------------------------
6070 QTMODULE="$outpath/mkspecs/qmodule.pri"
6072 echo "CONFIG += $QMAKE_CONFIG" >> "$QTMODULE.tmp"
6073 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6075 if [ -n "$QT_CFLAGS_PSQL" ]; then
6076 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6078 if [ -n "$QT_LFLAGS_PSQL" ]; then
6079 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6081 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6082 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6084 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6085 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6087 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6088 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6090 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6091 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6093 if [ -n "$QT_LFLAGS_ODBC" ]; then
6094 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6096 if [ -n "$QT_LFLAGS_TDS" ]; then
6097 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6100 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6101 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6104 #dump in the OPENSSL_LIBS info
6105 if [ '!' -z "$OPENSSL_LIBS" ]; then
6106 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6107 elif [ "$CFG_OPENSSL" = "linked" ]; then
6108 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6112 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6113 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6115 # replace qmodule.pri if it differs from the newly created temp file
6116 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6117 rm -f "$QTMODULE.tmp"
6119 mv -f "$QTMODULE.tmp" "$QTMODULE"
6122 #-------------------------------------------------------------------------------
6123 # save configuration into .qmake.cache
6124 #-------------------------------------------------------------------------------
6126 CACHEFILE="$outpath/.qmake.cache"
6127 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6128 cat >>"$CACHEFILE.tmp" <<EOF
6130 QT_SOURCE_TREE = \$\$quote($relpath)
6131 QT_BUILD_TREE = \$\$quote($outpath)
6134 # replace .qmake.cache if it differs from the newly created temp file
6135 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6136 rm -f "$CACHEFILE.tmp"
6138 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6141 #-------------------------------------------------------------------------------
6142 # give feedback on configuration
6143 #-------------------------------------------------------------------------------
6144 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6147 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6148 echo "Build type: $PLATFORM"
6150 echo "Building on: $PLATFORM"
6151 echo "Building for: $XPLATFORM"
6154 # the missing space before $CFG_FEATURES is intentional
6155 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6156 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6158 if [ -n "$PLATFORM_NOTES" ]; then
6159 echo "Platform notes:"
6160 echo "$PLATFORM_NOTES"
6165 if [ "$OPT_VERBOSE" = "yes" ]; then
6166 echo $ECHO_N "qmake vars .......... $ECHO_C"
6167 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6168 echo "qmake switches ......... $QMAKE_SWITCHES"
6171 echo "Build .................. $CFG_BUILD_PARTS"
6172 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6173 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6174 echo "Debug .................. yes (combined)"
6175 if [ "$CFG_DEBUG" = "yes" ]; then
6176 echo "Default Link ........... debug"
6178 echo "Default Link ........... release"
6181 echo "Debug .................. $CFG_DEBUG"
6183 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6184 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6186 echo "C++11 support .......... $CFG_CXX11"
6187 if [ -n "$PKG_CONFIG" ]; then
6188 echo "pkg-config ............. yes"
6190 echo "pkg-config ............. no"
6192 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6193 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6194 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6195 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6196 echo "QtGui module ........... $CFG_GUI"
6197 echo "QtWidgets module ....... $CFG_WIDGETS"
6198 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6199 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6201 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6203 echo "QML debugging .......... $CFG_QML_DEBUG"
6204 echo "PCH support ............ $CFG_PRECOMPILE"
6205 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6206 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6207 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6208 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6209 elif [ "$CFG_ARCH" = "arm" ]; then
6210 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6211 echo "NEON support ........... ${CFG_NEON}"
6213 if [ "$CFG_ARCH" = "mips" ]; then
6214 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6216 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6217 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6218 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6219 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6220 echo "NIS support ............ $CFG_NIS"
6221 echo "CUPS support ........... $CFG_CUPS"
6222 echo "Iconv support .......... $CFG_ICONV"
6223 echo "Glib support ........... $CFG_GLIB"
6224 echo "GStreamer support ...... $CFG_GSTREAMER"
6225 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6226 echo "Large File support ..... $CFG_LARGEFILE"
6227 echo "GIF support ............ $CFG_GIF"
6228 if [ "$CFG_JPEG" = "no" ]; then
6229 echo "JPEG support ........... $CFG_JPEG"
6231 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6233 if [ "$CFG_PNG" = "no" ]; then
6234 echo "PNG support ............ $CFG_PNG"
6236 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6238 echo "zlib support ........... $CFG_ZLIB"
6239 echo "Session management ..... $CFG_SM"
6240 echo "libudev support ........ $CFG_LIBUDEV"
6242 if [ "$XPLATFORM_QNX" = "yes" ]; then
6243 echo "SLOG2 support .......... $CFG_SLOG2"
6245 echo "Use system proxies ..... $CFG_SYSTEM_PROXIES"
6247 if [ "$CFG_OPENGL" = "desktop" ]; then
6248 echo "OpenGL support ......... yes (Desktop OpenGL)"
6249 elif [ "$CFG_OPENGL" = "es2" ]; then
6250 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6252 echo "OpenGL support ......... no"
6255 if [ "$CFG_OPENVG" ]; then
6256 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6257 echo "OpenVG support ......... ShivaVG"
6259 echo "OpenVG support ......... $CFG_OPENVG"
6263 echo "XShape support ......... $CFG_XSHAPE"
6264 echo "XVideo support ......... $CFG_XVIDEO"
6265 echo "XSync support .......... $CFG_XSYNC"
6266 echo "Xinerama support ....... $CFG_XINERAMA"
6267 echo "Xcursor support ........ $CFG_XCURSOR"
6268 echo "Xfixes support ......... $CFG_XFIXES"
6269 echo "Xrandr support ......... $CFG_XRANDR"
6270 echo "Xi support ............. $CFG_XINPUT"
6271 echo "Xi2 support ............ $CFG_XINPUT2"
6272 echo "MIT-SHM support ........ $CFG_MITSHM"
6273 echo "FontConfig support ..... $CFG_FONTCONFIG"
6274 echo "XKB Support ............ $CFG_XKB"
6275 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6277 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6278 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6279 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6280 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6281 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6282 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6283 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6284 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6285 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6288 if [ "$CFG_OPENSSL" = "yes" ]; then
6289 OPENSSL_LINKAGE="(run-time)"
6290 elif [ "$CFG_OPENSSL" = "linked" ]; then
6291 OPENSSL_LINKAGE="(linked)"
6293 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6294 echo "Alsa support ........... $CFG_ALSA"
6295 if [ "$BUILD_ON_MAC" = "yes" ]; then
6296 echo "CoreWlan support ....... $CFG_COREWLAN"
6298 echo "libICU support ......... $CFG_ICU"
6299 echo "PCRE support ........... $CFG_PCRE"
6300 echo "Xcb support ............ $CFG_XCB"
6301 echo "Xrender support ........ $CFG_XRENDER"
6302 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" != "no" ]; then
6303 echo "XInput2 support ........ $CFG_XINPUT2"
6305 echo "EGLFS support .......... $CFG_EGLFS"
6306 echo "DirectFB support ....... $CFG_DIRECTFB"
6307 echo "LinuxFB support ........ $CFG_LINUXFB"
6308 echo "KMS support ............ $CFG_KMS"
6311 # complain about not being able to use dynamic plugins if we are using a static build
6312 if [ "$CFG_SHARED" = "no" ]; then
6314 echo "WARNING: Using static linking will disable the use of dynamically"
6315 echo "loaded plugins. Make sure to import all needed static plugins,"
6316 echo "or compile needed modules into the library."
6319 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6321 echo "NOTE: When linking against OpenSSL, you can override the default"
6322 echo "library names through OPENSSL_LIBS."
6324 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6328 exec 1>&3 3>&- # restore stdout
6329 cat $outpath/config.summary # display config feedback to user
6331 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6333 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6334 echo "if you want a pure debug build."
6339 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6344 #-------------------------------------------------------------------------------
6345 # build makefiles based on the configuration
6346 #-------------------------------------------------------------------------------
6348 if [ "$CFG_PROCESS" != "no" ]; then
6350 if [ "$CFG_PROCESS" = "full" ]; then
6351 echo "Creating makefiles. Please wait..."
6352 "$outpath/bin/qmake" -r "$relpath"
6355 "$outpath/bin/qmake" "$relpath"
6358 if [ "$OPT_FAST" = "yes" ]; then
6360 for part in $CFG_BUILD_PARTS; do
6362 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6365 if [ "x$PART_ROOTS" != "x" ]; then
6367 echo "Creating stub makefiles. Please wait..."
6368 QMAKE="$outpath/bin/qmake"
6369 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6370 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6372 test -f "$outpath/$d/Makefile" && continue
6373 echo " for $relpath/$p"
6375 mkdir -p "$outpath/$d" || exit
6376 cat > "$outpath/$d/Makefile" <<EOF || exit
6377 # $outpath/$d/Makefile: generated by configure
6379 # WARNING: This makefile will be replaced with a real makefile.
6380 # All changes made to this file will be lost.
6385 all clean install qmake first Makefile: FORCE
6386 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6396 #-------------------------------------------------------------------------------
6397 # check for platforms that we don't yet know about
6398 #-------------------------------------------------------------------------------
6399 if [ "$CFG_ARCH" = "unknown" ]; then
6402 NOTICE: configure was unable to determine the architecture
6403 for the $XQMAKESPEC target.
6405 Qt will not use a specialized implementation for any atomic
6406 operations. Instead a generic implemention based on either GCC
6407 intrinsics or C++11 std::atomic<T> will be used (when
6408 available). The generic implementations are generally as fast
6409 as and always as safe as a specialized implementation.
6411 If no generic implementation is available, Qt will use a
6412 fallback UNIX implementation which uses a single
6413 pthread_mutex_t to protect all atomic operations. This
6414 implementation is the slow (but safe) fallback implementation
6415 for architectures Qt does not yet support.
6419 #-------------------------------------------------------------------------------
6420 # check if the user passed the -no-zlib option, which is no longer supported
6421 #-------------------------------------------------------------------------------
6422 if [ -n "$ZLIB_FORCED" ]; then
6423 which_zlib="supplied"
6424 if [ "$CFG_ZLIB" = "system" ]; then
6430 NOTICE: The -no-zlib option was supplied but is no longer
6433 Qt now requires zlib support in all builds, so the -no-zlib
6434 option was ignored. Qt will be built using the $which_zlib
6439 #-------------------------------------------------------------------------------
6440 # check if the user passed the obsoleted -wayland or -no-wayland flag
6441 #-------------------------------------------------------------------------------
6442 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6445 NOTICE: The -wayland and -no-wayland flags are now obsolete
6447 All configuring of QtWayland plugin and QtCompositor happens in the module
6451 #-------------------------------------------------------------------------------
6452 # check if the user passed the obsoleted -arch or -host-arch options
6453 #-------------------------------------------------------------------------------
6454 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6457 NOTICE: The -arch and -host-arch options are obsolete.
6459 Qt now detects the target and host architectures based on compiler
6460 output. Qt will be built using $CFG_ARCH for the target architecture
6461 and $CFG_HOST_ARCH for the host architecture (note that these two
6462 will be the same unless you are cross-compiling).
6466 #-------------------------------------------------------------------------------
6467 # finally save the executed command to another script
6468 #-------------------------------------------------------------------------------
6469 if [ `basename $0` != "config.status" ]; then
6470 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6472 # add the system variables
6473 for varname in $SYSTEM_VARIABLES; do
6475 'if [ -n "\$'${varname}'" ]; then
6476 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6481 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6483 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6484 echo "#!/bin/sh" > "$outpath/config.status"
6485 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6486 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6487 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6488 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6489 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6490 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6491 echo "else" >> "$outpath/config.status"
6492 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6493 echo "fi" >> "$outpath/config.status"
6494 chmod +x "$outpath/config.status"
6497 if [ -n "$RPATH_MESSAGE" ]; then
6499 echo "$RPATH_MESSAGE"
6502 MAKE=`basename "$MAKE"`
6504 echo Qt is now configured for building. Just run \'$MAKE\'.
6505 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6506 echo Once everything is built, Qt is installed.
6507 echo You should not run \'$MAKE install\'.
6509 echo Once everything is built, you must run \'$MAKE install\'.
6510 echo Qt will be installed into $QT_INSTALL_PREFIX
6513 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.