2 #############################################################################
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia. For licensing terms and
15 ## conditions see http://qt.digia.com/licensing. For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file. Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights. These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 compilerSupportsFlag()
229 cat >conftest.cpp <<EOF
230 int main() { return 0; }
232 "$@" -o conftest-out.o conftest.cpp
234 rm -f conftest.cpp conftest-out.o
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag $compiler $lflags >/dev/null 2>&1
251 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 #-------------------------------------------------------------------------------
399 #-------------------------------------------------------------------------------
403 EditionString=Commercial
407 # parse the arguments, setting things to "yes" or "no"
408 while [ "$#" -gt 0 ]; do
412 #Autoconf style options
414 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
418 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
422 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
426 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
429 -h|help|--help|-help)
430 if [ "$VAL" = "yes" ]; then
432 COMMERCIAL_USER="no" #doesn't matter we will display the help
435 COMMERCIAL_USER="no" #doesn't matter we will display the help
439 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
443 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
450 if [ "$UNKNOWN_ARG" = "yes" ]; then
462 COMMERCIAL_USER="yes"
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
478 echo "Which edition of Qt do you want to use ?"
480 echo "Type 'c' if you want to use the Commercial Edition."
481 echo "Type 'o' if you want to use the Open Source Edition."
485 if [ "$commercial" = "c" ]; then
486 COMMERCIAL_USER="yes"
488 elif [ "$commercial" = "o" ]; then
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496 # Commercial preview release
497 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
500 QT_EDITION="QT_EDITION_DESKTOP"
501 LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503 # one of commercial editions
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
506 # read in the license file
507 if [ -f "$LICENSE_FILE" ]; then
508 . "$LICENSE_FILE" >/dev/null 2>&1
509 if [ -z "$LicenseKeyExt" ]; then
511 echo "You are using an old license file."
513 echo "Please install the license file supplied by Digia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please use the contact form at http://qt.digia.com/contact-us"
621 echo "to upgrade your license to include the $Platform platform, or install"
622 echo "the Qt Open Source Edition if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "mac fusion windows"
732 # QTDIR may be set and point to an old or system-wide Qt installation
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
742 CFG_GUI=auto # (yes|no|auto)
748 CFG_FORCEDEBUGINFO=no
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
781 CFG_AUDIO_BACKEND=auto
784 CFG_JAVASCRIPTCORE_JIT=auto
786 CFG_STACK_PROTECTOR_STRONG=auto
788 CFG_SYSTEM_PROXIES=no
790 # Target architecture
793 # Host architecture, same as CFG_ARCH when not cross-compiling
795 CFG_HOST_CPUFEATURES=
796 # Set when the -arch or -host-arch arguments are used
797 OPT_OBSOLETE_HOST_ARG=no
811 CFG_OBSOLETE_WAYLAND=no
823 CFG_SEPARATE_DEBUG_INFO=no
824 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
825 CFG_REDUCE_EXPORTS=auto
833 CFG_REDUCE_RELOCATIONS=auto
834 CFG_ACCESSIBILITY=auto
839 CFG_CLOCK_GETTIME=auto
840 CFG_CLOCK_MONOTONIC=auto
857 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
858 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
863 OPT_CONFIRM_LICENSE=no
876 QPA_PLATFORM_GUARD=yes
879 # initalize variables used for installation
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|-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,,'`
1113 if [ "$1" = "-l" ]; then
1117 VAL=`echo $1 | sed 's,-l,,'`
1122 if [ "$1" = "-F" ]; then
1126 VAL=`echo $1 | sed 's,-F,,'`
1131 if [ "$1" = "-fw" ]; then
1135 VAL=`echo $1 | sed 's,-fw,,'`
1142 #General options, including Qt style yes options
1144 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1151 if [ "$UNKNOWN_ARG" = "yes" ]; then
1152 echo "$1: unknown argument"
1163 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1164 CFG_ACCESSIBILITY="$VAL"
1173 CFG_USE_GNUMAKE="$VAL"
1176 CFG_MYSQL_CONFIG="$VAL"
1179 QT_INSTALL_PREFIX="$VAL"
1182 QT_HOST_PREFIX="$VAL"
1191 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1192 CFG_PKGCONFIG="$VAL"
1198 CFG_PKGCONFIG="force"
1201 QT_INSTALL_DOCS="$VAL"
1204 QT_INSTALL_HEADERS="$VAL"
1207 QT_INSTALL_PLUGINS="$VAL"
1210 QT_INSTALL_IMPORTS="$VAL"
1213 QT_INSTALL_QML="$VAL"
1216 QT_INSTALL_ARCHDATA="$VAL"
1219 QT_INSTALL_DATA="$VAL"
1222 QT_INSTALL_LIBS="$VAL"
1231 QT_INSTALL_TRANSLATIONS="$VAL"
1233 sysconfdir|settingsdir)
1234 QT_INSTALL_SETTINGS="$VAL"
1237 QT_INSTALL_EXAMPLES="$VAL"
1240 QT_INSTALL_TESTS="$VAL"
1249 CFG_GCC_SYSROOT="$VAL"
1252 QT_INSTALL_BINS="$VAL"
1255 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1262 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1263 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1264 [ "$VAL" = "es2" ]; then
1271 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1278 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1281 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1284 if [ "$BUILD_ON_MAC" = "yes" ]; then
1286 DeviceVar set QMAKE_MAC_SDK "$VAL"
1292 OPT_OBSOLETE_HOST_ARG=yes
1295 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1296 CFG_MAC_HARFBUZZ="$VAL"
1303 if [ "$BUILD_ON_MAC" = "yes" ]; then
1304 CFG_FRAMEWORK="$VAL"
1310 if [ "$VAL" = "yes" ]; then
1312 QMakeVar add QMAKE_CFLAGS -pg
1313 QMakeVar add QMAKE_CXXFLAGS -pg
1314 QMakeVar add QMAKE_LFLAGS -pg
1315 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1321 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1328 if [ "$VAL" = "yes" ]; then
1329 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1334 # keep compatibility with old platform names
1340 PLATFORM=hpux-acc-o64
1343 PLATFORM=hpux-acc-64
1346 PLATFORM=hpux-acc-64
1358 PLATFORM=reliant-cds-64
1361 PLATFORM=solaris-cc-64
1364 PLATFORM=unixware-cc
1367 PLATFORM=unixware-g++
1370 PLATFORM=unixware-cc
1373 PLATFORM=unixware-g++
1379 i386) NATIVE_64_ARCH="x86_64" ;;
1380 powerpc) NATIVE_64_ARCH="ppc64" ;;
1381 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1383 if [ ! -z "$NATIVE_64_ARCH" ]; then
1384 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1391 case `basename "$XPLATFORM"` in win32-g++*)
1394 CFG_REDUCE_EXPORTS=no
1399 XPLATFORM=`resolveDeviceMkspec $VAL`
1400 [ "$XPLATFORM" = "undefined" ] && exit 101
1403 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1404 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1405 DeviceVar set $DEV_VAR $DEV_VAL
1408 QT_QPA_DEFAULT_PLATFORM="$VAL"
1411 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1412 CFG_DEBUG_RELEASE="$VAL"
1418 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1419 CFG_RELEASE_QMAKE="$VAL"
1425 if [ "$VAL" = "yes" ]; then
1427 elif [ "$VAL" = "no" ]; then
1437 CFG_FORCEDEBUGINFO="$VAL"
1439 developer-build|commercial|opensource)
1440 # These switches have been dealt with already
1443 if [ "$VAL" = "yes" ]; then
1445 elif [ "$VAL" = "no" ]; then
1452 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1453 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1459 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1460 if [ "$VAL" = "no" ]; then
1461 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1462 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1463 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1469 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1476 if [ "$VAL" = "no" ]; then
1483 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1491 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1498 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; 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" ] || [ "$VAL" = "runtime" ]; then
1533 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1540 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1541 CFG_PRECOMPILE="$VAL"
1546 separate-debug-info)
1547 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1548 CFG_SEPARATE_DEBUG_INFO="$VAL"
1549 elif [ "$VAL" = "nocopy" ] ; then
1550 CFG_SEPARATE_DEBUG_INFO="yes"
1551 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1557 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1558 CFG_REDUCE_EXPORTS="$VAL"
1564 if [ "$VAL" = "no" ]; then
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
1616 if [ "$VAL" = "no" ]; then
1623 if [ "$VAL" = "no" ]; then
1630 if [ "$VAL" = "no" ]; then
1631 CFG_MIPS_DSPR2="$VAL"
1637 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1638 CFG_REDUCE_RELOCATIONS="$VAL"
1644 [ "$VAL" = "qt" ] && VAL=yes
1645 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1650 # No longer supported:
1651 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1654 if [ "$VAL" = "system" ]; then
1661 [ "$VAL" = "yes" ] && VAL=qt
1662 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1669 [ "$VAL" = "yes" ] && VAL=qt
1670 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1677 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; 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" ]; then
1705 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1712 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1713 CFG_FONTCONFIG="$VAL"
1719 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1726 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ] || [ "$VAL" = "qt" ]; then
1728 if [ "$VAL" = "yes" ]; then
1736 CFG_OBSOLETE_WAYLAND=yes
1739 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
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
1810 CFG_GSTREAMER="$VAL"
1816 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1817 CFG_QGTKSTYLE="$VAL"
1823 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1826 if [ "$VAL" = "no" ]; then
1834 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1836 elif [ "$VAL" = "no" ]; then
1843 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1844 QPA_PLATFORM_GUARD="$VAL"
1850 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1852 elif [ "$VAL" = "runtime" ]; then
1859 if [ "$VAL" = "yes" ]; then
1866 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1873 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1874 CFG_LARGEFILE="$VAL"
1880 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1887 if [ "$VAL" = "yes" ]; then
1888 CFG_OPENSSL="linked"
1894 if [ "$VAL" = "yes" ]; then
1897 if [ "$VAL" = "no" ]; then
1905 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1906 CFG_JAVASCRIPTCORE_JIT="$VAL"
1912 if [ "$VAL" = "yes" ]; then
1913 OPT_CONFIRM_LICENSE="$VAL"
1919 if [ "$VAL" = "yes" ]; then
1925 sql-*|imageformat-*)
1926 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1927 # if autoconf style options were used, $VAL can be "yes" or "no"
1928 [ "$VAL" = "yes" ] && VAL=qt
1929 # now $VAL should be "no", "qt", or "plugin"... double-check
1930 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1933 # now $VAL is "no", "qt", or "plugin"
1935 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1936 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1938 # Grab the available values
1941 avail="$CFG_SQL_AVAILABLE"
1944 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1945 if [ "$OPT" != "plugin" ]; then
1946 # png is always built in
1952 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1956 # Check that that user's value is available.
1959 if [ "$VAL" = "$d" ]; then
1964 [ "$found" = yes ] || ERROR=yes
1966 if [ "$VAR" = "sql" ]; then
1967 # set the CFG_SQL_driver
1968 eval "CFG_SQL_$VAL=\$OPT"
1970 elif [ "$VAR" = "imageformat" ]; then
1971 [ "$OPT" = "qt" ] && OPT=yes
1972 VAL="`echo $VAL |tr a-z A-Z`"
1973 eval "CFG_$VAL=$OPT"
1977 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1978 if [ "$OPT" = "plugin" ]; then
1981 QMakeVar add "${VAR}s" "${VAL}"
1982 elif [ "$OPT" = "no" ]; then
1983 PLUG_VAR="${VAR}-plugin"
1985 QMakeVar del "${IN_VAR}s" "$VAL"
1986 QMakeVar del "${PLUG_VAR}s" "$VAL"
1988 if [ "$ERROR" = "yes" ]; then
1989 echo "$CURRENT_OPT: unknown argument"
1994 if [ "$VAL" = "yes" ]; then
1995 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1996 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
2000 elif [ "$VAL" = "no" ]; then
2001 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
2002 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2011 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2018 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2025 DEFINES="$DEFINES \"$VAL\""
2026 D_FLAGS="$D_FLAGS -D\"$VAL\""
2029 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2032 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2035 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2038 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2041 if [ "$BUILD_ON_MAC" = "yes" ]; then
2042 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2043 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2049 if [ "$BUILD_ON_MAC" = "yes" ]; then
2050 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2056 W_FLAGS="$W_FLAGS \"${VAL}\""
2071 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2072 CFG_AUDIO_BACKEND="$VAL"
2078 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2085 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2086 CFG_FORCE_ASSERTS="$VAL"
2092 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2099 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2106 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2107 CFG_SYSTEM_PROXIES="$VAL"
2116 if [ "$UNKNOWN_OPT" = "yes" ]; then
2117 echo "${CURRENT_OPT}: invalid command-line switch"
2123 # update QT_CONFIG to show our current predefined configuration
2124 case "$CFG_QCONFIG" in
2125 minimal|small|medium|large|full)
2126 # these are a sequence of increasing functionality
2127 for c in minimal small medium large full; do
2128 QT_CONFIG="$QT_CONFIG $c-config"
2129 [ "$CFG_QCONFIG" = $c ] && break
2133 # not known to be sufficient for anything
2134 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2135 echo >&2 "Error: configuration file not found:"
2136 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2138 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2143 #-------------------------------------------------------------------------------
2144 # build tree initialization
2145 #-------------------------------------------------------------------------------
2147 # where to find which..
2148 unixtests="$relpath/config.tests/unix"
2149 mactests="$relpath/config.tests/mac"
2150 WHICH="$unixtests/which.test"
2152 PERL=`$WHICH perl 2>/dev/null`
2154 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2156 for e in gawk nawk awk; do
2157 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2164 PERL="/usr/bin/perl"
2165 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2169 ### skip this if the user just needs help...
2170 if [ "$OPT_HELP" != "yes" ]; then
2172 # is this a shadow build?
2173 if [ "$OPT_SHADOW" = "maybe" ]; then
2175 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2176 if [ -h "$outpath" ]; then
2177 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2183 if [ "$OPT_SHADOW" = "yes" ]; then
2184 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2185 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2186 echo >&2 "Cannot proceed."
2189 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2192 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2194 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2195 echo "Qt can be built in release mode with separate debug information, so"
2196 echo "-debug-and-release is not necessary anymore"
2200 if [ "$CFG_SILENT" = "yes" ]; then
2201 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2204 # if the source tree is different from the build tree,
2205 # symlink or copy part of the sources
2206 if [ "$OPT_SHADOW" = "yes" ]; then
2207 echo "Preparing build tree..."
2209 if [ -z "$PERL" ]; then
2211 echo "You need perl in your PATH to make a shadow build."
2212 echo "Cannot proceed."
2216 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2218 # make a syncqt script that can be used in the shadow
2219 rm -f "$outpath/bin/syncqt"
2220 if [ -x "$relpath/bin/syncqt" ]; then
2221 mkdir -p "$outpath/bin"
2222 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2223 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2224 chmod 755 "$outpath/bin/syncqt"
2227 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2228 rm -f "$outpath/bin/$i"
2229 if [ -x "$relpath/bin/$i" ]; then
2230 mkdir -p "$outpath/bin"
2231 echo "#!/bin/sh" >"$outpath/bin/$i"
2232 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2233 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2234 chmod 755 "$outpath/bin/$i"
2238 # save a pre-existing mkspecs/modules dir
2239 test -d "$outpath/mkspecs/modules" && \
2240 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2241 # ditto for mkspecs/modules-inst
2242 test -d "$outpath/mkspecs/modules-inst" && \
2243 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2245 # symlink the mkspecs directory
2246 mkdir -p "$outpath/mkspecs"
2247 rm -rf "$outpath"/mkspecs/*
2248 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2252 rm -rf "$outpath/mkspecs/$1"
2253 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2254 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2257 # Special case for mkspecs/features directory.
2258 # To be able to place .prf files into a shadow build directory,
2259 # we're creating links for files only. The directory structure is reproduced.
2260 ShadowMkspecs features
2262 # The modules dir is special, too.
2263 if test -d "$outpath/mkspecs-modules"; then
2264 rm -rf "$outpath/mkspecs/modules"
2265 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2267 ShadowMkspecs modules
2270 # The modules-inst dir is not quite as special, but still.
2271 if test -d "$outpath/mkspecs-modules-inst"; then
2272 rm -rf "$outpath/mkspecs/modules-inst"
2273 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2276 # Prepare doc directory
2277 mkdir -p "$outpath/doc"
2278 ln -f -s "$relpath"/doc/global "$outpath/doc"
2281 # symlink fonts to be able to run application from build directory
2282 if [ ! -d "${outpath}/lib/fonts" ]; then
2283 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2284 mkdir -p "${outpath}/lib"
2285 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2289 if [ "$OPT_FAST" = "auto" ]; then
2290 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2297 # find a make command
2298 if [ -z "$MAKE" ]; then
2300 for mk in gmake make; do
2301 if "$WHICH" $mk >/dev/null 2>&1; then
2306 if [ -z "$MAKE" ]; then
2307 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2308 echo >&2 "Cannot proceed."
2311 # export MAKE, we need it later in the config.tests
2317 #-------------------------------------------------------------------------------
2318 # auto-detect all that hasn't been specified in the arguments
2319 #-------------------------------------------------------------------------------
2321 if [ -z "$PLATFORM" ]; then
2323 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2325 OSX_VERSION=`uname -r | cut -d. -f1`
2326 # Select compiler. Use g++ unless we find a usable Clang version
2328 if [ "$OSX_VERSION" -ge 12 ]; then
2329 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2331 elif [ "$OSX_VERSION" -eq 11 ]; then
2332 # We're on Lion. Check if we have a supported Clang version
2333 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2335 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2341 #PLATFORM=aix-g++-64
2343 #PLATFORM=aix-xlc-64
2345 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2355 # PLATFORM=dynix-g++
2361 PLATFORM=freebsd-g++
2363 - Also available for FreeBSD: freebsd-icc
2367 PLATFORM=openbsd-g++
2378 #PLATFORM=irix-cc-64
2380 - Also available for IRIX: irix-g++ irix-cc-64
2384 case "$UNAME_MACHINE" in
2386 #PLATFORM=hpuxi-acc-32
2387 PLATFORM=hpuxi-acc-64
2389 - Also available for HP-UXi: hpuxi-acc-32
2395 #PLATFORM=hpux-acc-64
2397 #PLATFORM=hpux-acc-o64
2399 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2408 - Also available for Tru64: tru64-g++
2412 case "$UNAME_MACHINE" in
2414 PLATFORM=linux-g++-64
2421 - Also available for Linux: linux-kcc linux-icc linux-cxx
2425 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2426 PLATFORM="solaris-g++"
2428 #PLATFORM=solaris-g++
2430 #PLATFORM=solaris-cc64
2433 - Also available for Solaris: solaris-g++ solaris-cc-64
2436 ReliantUNIX-*:*|SINIX-*:*)
2437 PLATFORM=reliant-cds
2438 #PLATFORM=reliant-cds-64
2440 - Also available for Reliant UNIX: reliant-cds-64
2450 #PLATFORM=unixware-g++
2451 PLATFORM=unixware-cc
2453 - Also available for OpenUNIX: unixware-g++
2457 #PLATFORM=unixware-g++
2458 PLATFORM=unixware-cc
2460 - Also available for UnixWare: unixware-g++
2467 - Also available for SCO OpenServer: sco-g++
2471 PLATFORM=unixware-g++
2474 PLATFORM=unsupported/qnx-g++
2477 if [ "$OPT_HELP" != "yes" ]; then
2479 echo " The build script does not currently recognize all" >&2
2480 echo " platforms supported by Qt." >&2
2481 echo " Rerun this script with a -platform option listed to" >&2
2482 echo " set the system/compiler combination you use." >&2
2489 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2491 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2492 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2493 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2495 if [ -d "$PLATFORM" ]; then
2496 QMAKESPEC="$PLATFORM"
2498 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2500 if [ -d "$XPLATFORM" ]; then
2501 XQMAKESPEC="$XPLATFORM"
2503 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2505 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2506 QT_CROSS_COMPILE=yes
2507 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2508 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2511 if [ "$BUILD_ON_MAC" = "yes" ]; then
2512 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2514 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2515 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2516 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2517 echo " built with 'macx-g++'" >&2
2523 # check specified platforms are supported
2524 if [ '!' -d "$QMAKESPEC" ]; then
2526 echo " The specified system/compiler is not supported:"
2530 echo " Please see the README file for a complete list."
2534 if [ '!' -d "$XQMAKESPEC" ]; then
2536 echo " The specified system/compiler is not supported:"
2540 echo " Please see the README file for a complete list."
2544 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2546 echo " The specified system/compiler port is not complete:"
2548 echo " $XQMAKESPEC/qplatformdefs.h"
2550 echo " Please use the contact form at http://qt.digia.com/contact-us"
2555 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2556 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2557 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2558 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2559 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2563 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2564 case `basename "$XPLATFORM"` in
2567 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2569 echo "Please use the contact form at http://qt.digia.com/contact-us"
2570 echo "to upgrade your license to include this platform, or install"
2571 echo "the Qt Open Source Edition if you intend to develop free software."
2577 #-------------------------------------------------------------------------------
2578 # tests that don't need qmake (must be run before displaying help)
2579 #-------------------------------------------------------------------------------
2581 # detect build style
2582 if [ "$CFG_DEBUG" = "auto" ]; then
2583 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2584 CFG_DEBUG_RELEASE=yes
2586 elif [ "$CFG_DEV" = "yes" ]; then
2587 CFG_DEBUG_RELEASE=no
2590 CFG_DEBUG_RELEASE=no
2594 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2595 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2598 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2599 QT_CONFIG="$QT_CONFIG force_debug_info"
2602 # pass on $CFG_SDK to the arch/configure tests.
2603 if [ -n "$CFG_SDK" ]; then
2604 MAC_SDK_FLAG="-sdk $CFG_SDK"
2609 # find the default framework value
2610 if [ "$BUILD_ON_MAC" = "yes" ]; then
2611 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2612 CFG_FRAMEWORK="$CFG_SHARED"
2613 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2615 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2623 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2625 TEST_COMPILER=$QMAKE_CONF_COMPILER
2626 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2627 if [ -z "$TEST_COMPILER" ]; then
2628 echo "ERROR: Cannot set the compiler for the configuration tests"
2632 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2635 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2636 if [ -n "$GCC_MACHINE_DUMP" ]; then
2637 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2640 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2641 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2645 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2647 # auto-detect precompiled header support
2648 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2649 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2656 # auto-detect support for separate debug info in objcopy
2657 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2658 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2659 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2660 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2661 CFG_SEPARATE_DEBUG_INFO=no
2665 # binutils on HP-UX is buggy; default to no.
2666 CFG_SEPARATE_DEBUG_INFO=no
2669 CFG_SEPARATE_DEBUG_INFO=yes
2675 # auto-detect -fvisibility support
2676 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2677 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2678 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2679 echo "-reduce-exports was requested but this compiler does not support it"
2680 echo "Re-run configure with -v for more information"
2683 CFG_REDUCE_EXPORTS=no
2685 CFG_REDUCE_EXPORTS=yes
2689 # auto-detect -fstack-protector-strong support (for QNX only currently)
2690 if [ "$XPLATFORM_QNX" = "yes" ]; then
2691 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2692 CFG_STACK_PROTECTOR_STRONG=yes
2694 CFG_STACK_PROTECTOR_STRONG=no
2697 CFG_STACK_PROTECTOR_STRONG=no
2700 # detect the availability of the -Bsymbolic-functions linker optimization
2701 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2702 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2703 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2704 echo "-reduce-relocations was requested but this compiler does not support it"
2705 echo "Re-run configure with -v for more information"
2708 CFG_REDUCE_RELOCATIONS=no
2710 CFG_REDUCE_RELOCATIONS=yes
2714 # auto-detect GNU make support
2715 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2719 # find the default framework value
2720 if [ "$BUILD_ON_MAC" = "yes" ]; then
2721 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2722 CFG_FRAMEWORK="$CFG_SHARED"
2723 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2725 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2733 # auto-detect default include and library search paths
2734 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2735 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2736 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2737 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2738 /^End of search/ { yup=0 }
2739 yup { print substr($0, 2) }
2740 /^\#include </ { yup=1 }
2742 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2744 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2747 #setup the build parts
2748 if [ -z "$CFG_BUILD_PARTS" ]; then
2749 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2751 # build tests by default, if a developer build
2752 if [ "$CFG_DEV" = "yes" ]; then
2753 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2756 # don't build tools by default when cross-compiling
2757 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2758 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2761 for nobuild in $CFG_NOBUILD_PARTS; do
2762 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2764 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2766 # echo "WARNING: libs is a required part of the build."
2768 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2771 #-------------------------------------------------------------------------------
2772 # post process QT_INSTALL_* variables
2773 #-------------------------------------------------------------------------------
2775 if [ -z "$QT_INSTALL_PREFIX" ]; then
2776 if [ "$CFG_DEV" = "yes" ]; then
2777 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2779 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2782 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2784 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2785 QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2787 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2789 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2790 QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2792 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2794 if [ -z "$QT_INSTALL_ARCHDATA" ]; then #default
2795 QT_INSTALL_ARCHDATA="$QT_INSTALL_PREFIX" #fallback
2797 QT_INSTALL_ARCHDATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_ARCHDATA"`
2799 if [ -z "$QT_INSTALL_DATA" ]; then #default
2800 QT_INSTALL_DATA="$QT_INSTALL_PREFIX" #fallback
2802 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2804 if [ -z "$QT_INSTALL_BINS" ]; then #default
2805 QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2807 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2809 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2810 QT_INSTALL_DOCS="$QT_INSTALL_DATA/doc" #fallback
2812 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2814 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2815 QT_INSTALL_PLUGINS="$QT_INSTALL_ARCHDATA/plugins" #fallback
2817 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2819 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2820 QT_INSTALL_IMPORTS="$QT_INSTALL_ARCHDATA/imports" #fallback
2822 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2825 if [ -z "$QT_INSTALL_QML" ]; then #default
2826 QT_INSTALL_QML="$QT_INSTALL_ARCHDATA/qml" #fallback
2828 QT_INSTALL_QML=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_QML"`
2830 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2831 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_DATA/translations" #fallback
2833 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2835 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2836 if [ "$BUILD_ON_MAC" = "yes" ]; then
2837 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2839 QT_INSTALL_SETTINGS=/etc/xdg
2842 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2844 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2845 QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2847 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2850 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2851 QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2853 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2855 #------- host paths --------
2857 if [ -z "$QT_HOST_PREFIX" ]; then
2858 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2861 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2865 if [ -z "$QT_HOST_BINS" ]; then #default
2867 QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2869 QT_HOST_BINS="$QT_INSTALL_BINS"
2872 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2874 if [ -z "$QT_HOST_DATA" ]; then #default
2876 QT_HOST_DATA="$QT_HOST_PREFIX"
2878 QT_HOST_DATA="$QT_INSTALL_ARCHDATA"
2881 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2884 #-------------------------------------------------------------------------------
2885 # help - interactive parts of the script _after_ this section please
2886 #-------------------------------------------------------------------------------
2888 # next, emit a usage message if something failed.
2889 if [ "$OPT_HELP" = "yes" ]; then
2890 [ "x$ERROR" = "xyes" ] && echo
2891 if [ "$CFG_NIS" = "no" ]; then
2898 if [ "$CFG_CUPS" = "no" ]; then
2905 if [ "$CFG_ICONV" = "no" ]; then
2912 if [ "$CFG_LARGEFILE" = "no" ]; then
2919 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2927 if [ "$CFG_XCB" = "no" ]; then
2935 if [ "$CFG_EGLFS" = "no" ]; then
2943 if [ "$CFG_DIRECTFB" = "no" ]; then
2951 if [ "$CFG_LINUXFB" = "no" ]; then
2959 if [ "$CFG_KMS" = "no" ]; then
2967 if [ "$CFG_XINPUT2" = "no" ]; then
2975 if [ "$CFG_DBUS" = "no" ]; then
2983 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2991 if [ "$CFG_GLIB" = "no" ]; then
3000 Usage: $relconf [options]
3002 Installation options:
3004 These are optional, but you may specify install directories.
3006 -prefix <dir> ...... This will install everything relative to <dir>
3007 (default $QT_INSTALL_PREFIX)
3009 -hostprefix [dir] .. Tools and libraries needed when developing
3010 applications are installed in [dir]. If [dir] is
3011 not given, the current build directory will be used.
3014 You may use these to separate different parts of the install:
3016 -bindir <dir> ......... Executables will be installed to <dir>
3017 (default PREFIX/bin)
3018 -headerdir <dir> ...... Headers will be installed to <dir>
3019 (default PREFIX/include)
3020 -libdir <dir> ......... Libraries will be installed to <dir>
3021 (default PREFIX/lib)
3022 -archdatadir <dir>..... Arch-dependent data used by Qt will be installed to <dir>
3024 -plugindir <dir> ...... Plugins will be installed to <dir>
3025 (default ARCHDATADIR/plugins)
3026 -importdir <dir> ...... Imports for QML1 will be installed to <dir>
3027 (default ARCHDATADIR/imports)
3028 -qmldir <dir> ......... Imports for QML2 will be installed to <dir>
3029 (default ARCHDATADIR/qml)
3030 -datadir <dir> ........ Arch-independent data used by Qt will be installed to <dir>
3032 -docdir <dir> ......... Documentation will be installed to <dir>
3033 (default DATADIR/doc)
3034 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3035 (default DATADIR/translations)
3036 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3037 (default PREFIX/etc/settings)
3038 -examplesdir <dir> .... Examples will be installed to <dir>
3039 (default PREFIX/examples)
3040 -testsdir <dir> ....... Tests will be installed to <dir>
3041 (default PREFIX/tests)
3043 -hostbindir <dir> .. Host executables will be installed to <dir>
3044 (default HOSTPREFIX/bin)
3045 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3046 (default HOSTPREFIX)
3050 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3051 that needs to be evaluated. If the evaluation succeeds, the feature is
3052 included. Here is a short explanation of each option:
3054 * -release ........... Compile and link Qt with debugging turned off.
3055 -debug ............. Compile and link Qt with debugging turned on.
3056 -debug-and-release . Compile and link two versions of Qt, with and without
3057 debugging turned on (Mac only).
3059 -force-debug-info .. Create symbol files for release builds.
3061 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3063 -opensource ........ Compile and link the Open-Source Edition of Qt.
3064 -commercial ........ Compile and link the Commercial Edition of Qt.
3066 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3067 + -c++11 ............. Compile Qt with C++11 support enabled.
3069 * -shared ............ Create and use shared Qt libraries.
3070 -static ............ Create and use static Qt libraries.
3072 * -process ........... Generate only a top-level Makefile.
3073 -fully-process ..... Generate Makefiles for the entire Qt tree.
3074 -dont-process ...... Do not generate any Makefiles.
3076 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3078 -fast .............. Configure Qt quickly by generating Makefiles only for
3079 library and subdirectory targets. All other Makefiles
3080 are created as wrappers, which will in turn run qmake.
3082 -no-largefile ...... Disables large file support.
3083 + -largefile ......... Enables Qt to access files larger than 4 GB.
3085 -no-accessibility .. Do not compile Accessibility support.
3086 + -accessibility ..... Compile Accessibility support.
3088 -no-sql-<driver> ... Disable SQL <driver> entirely.
3089 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3091 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3094 Possible values for <driver>:
3095 [ $CFG_SQL_AVAILABLE ]
3097 -system-sqlite ..... Use sqlite from the operating system.
3099 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3100 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3102 -no-qml-debug ...... Do not build the in-process QML debugging support.
3103 + -qml-debug ......... Build the QML debugging support.
3105 -platform target ... The operating system and compiler you are building
3108 See the README file for a list of supported
3109 operating systems and compilers.
3111 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3112 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3113 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3114 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3115 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3116 -no-avx ............ Do not compile with use of AVX instructions.
3117 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3118 -no-neon ........... Do not compile with use of NEON instructions.
3119 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3120 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3122 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3123 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3125 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3127 -D <string> ........ Add an explicit define to the preprocessor.
3128 -I <string> ........ Add an explicit include path.
3129 -L <string> ........ Add an explicit library path.
3131 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3132 configure determines whether to use pkg-config or not with
3133 some heuristics such as checking the environment variables.
3134 -no-pkg-config ..... Disable use of pkg-config.
3135 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3136 detection heuristic).
3138 -help, -h .......... Display this information.
3140 Third Party Libraries:
3142 -qt-zlib ........... Use the zlib bundled with Qt.
3143 + -system-zlib ....... Use zlib from the operating system.
3144 See http://www.gzip.org/zlib
3146 -no-gif ............ Do not compile GIF reading support.
3148 -no-libpng ......... Do not compile PNG support.
3149 -qt-libpng ......... Use the libpng bundled with Qt.
3150 + -system-libpng ..... Use libpng from the operating system.
3151 See http://www.libpng.org/pub/png
3153 -no-libjpeg ........ Do not compile JPEG support.
3154 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3155 + -system-libjpeg .... Use libjpeg from the operating system.
3156 See http://www.ijg.org
3158 -no-openssl ........ Do not compile support for OpenSSL.
3159 + -openssl ........... Enable run-time OpenSSL support.
3160 -openssl-linked .... Enabled linked OpenSSL support.
3162 -qt-pcre ........... Use the PCRE library bundled with Qt.
3163 + -system-pcre ....... Use the PCRE library from the operating system.
3165 -qt-xcb ............ Use xcb- libraries bundled with Qt.
3166 (libxcb.so will still be used from operating system).
3167 + -system-xcb ........ Use xcb- libraries from the operating system.
3171 -make <part> ....... Add part to the list of parts to be built at make time.
3172 ($QT_DEFAULT_BUILD_PARTS)
3173 -nomake <part> ..... Exclude part from the list of parts to be built.
3175 -no-gui ............ Don't build the QtGui library and dependencies.
3176 + -gui ............... Build the QtGui library and dependencies.
3178 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3179 + -widgets ........... Build the QtWidgets library and dependencies.
3181 -R <string> ........ Add an explicit runtime library path to the Qt
3183 -l <string> ........ Add an explicit library.
3185 -no-rpath .......... Do not use the library install path as a runtime
3187 + -rpath ............. Link Qt libraries and executables using the library
3188 install path as a runtime library path. Equivalent
3189 to -R install_libpath
3191 -continue .......... Continue as far as possible if an error occurs.
3193 -verbose, -v ....... Print verbose information about each step of the
3196 -silent ............ Reduce the build output so that warnings and errors
3197 can be seen more easily.
3199 * -no-optimized-qmake ... Do not build qmake optimized.
3200 -optimized-qmake ...... Build qmake optimized.
3202 $NSN -no-nis ............ Do not compile NIS support.
3203 $NSY -nis ............... Compile NIS support.
3205 $CUN -no-cups ........... Do not compile CUPS support.
3206 $CUY -cups .............. Compile CUPS support.
3207 Requires cups/cups.h and libcups.so.2.
3209 $CIN -no-iconv .......... Do not compile support for iconv(3).
3210 $CIY -iconv ............. Compile support for iconv(3).
3212 -no-icu ............ Do not compile support for ICU libraries.
3213 + -icu ............... Compile support for ICU libraries.
3215 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3216 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3218 $PHN -no-pch ............ Do not use precompiled header support.
3219 $PHY -pch ............... Use precompiled header support.
3221 $DBN -no-dbus ........... Do not compile the QtDBus module.
3222 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3223 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3225 -reduce-relocations ..... Reduce relocations in the libraries through extra
3226 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3227 experimental; needs GNU ld >= 2.18).
3229 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3231 -device <name> ............... Cross-compile for device <name> (experimental)
3232 -device-option <key=value> ... Add device specific options for the device mkspec
3235 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3236 $SBY -separate-debug-info .... Strip debug information into a separate file.
3238 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3239 $XCBY -xcb ............... Compile Xcb support.
3241 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3242 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3244 $DFBN -no-directfb ....... Do not compile DirectFB support.
3245 $DFBY -directfb .......... Compile DirectFB support.
3247 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3248 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3250 $KMSN -no-kms ............ Do not compile KMS support.
3251 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3253 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3255 -xplatform target ... The target platform when cross-compiling.
3257 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3258 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3260 -no-feature-<feature> Do not compile in <feature>.
3261 -feature-<feature> .. Compile in <feature>. The available features
3262 are described in src/corelib/global/qfeatures.txt
3264 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3265 default ($CFG_QCONFIG).
3267 -no-opengl .......... Do not support OpenGL.
3268 -opengl <api> ....... Enable OpenGL support
3269 With no parameter, this will attempt to auto-detect
3270 OpenGL ES 2, or regular desktop OpenGL.
3271 Use es2 for <api> to override auto-detection.
3273 * -no-system-proxies .. Do not use system network proxies by default.
3274 -system-proxies ..... Use system network proxies by default.
3276 $GBN -no-glib ........... Do not compile Glib support.
3277 $GBY -glib .............. Compile Glib support.
3280 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3283 $X2N -no-xinput2......... Do not compile XInput2 support.
3284 $X2Y -xinput2............ Compile XInput2 support.
3290 if [ "$XPLATFORM_QNX" = "yes" ]; then
3293 -no-slog2 .......... Do not compile with slog2 support.
3294 -slog2 ............. Compile with slog2 support.
3300 if [ "$BUILD_ON_MAC" = "yes" ]; then
3305 -Fstring ........... Add an explicit framework path.
3306 -fw string ......... Add an explicit framework.
3308 * -framework ......... Build Qt as a series of frameworks and
3309 link tools against those frameworks.
3310 -no-framework ...... Do not build Qt as a series of frameworks.
3312 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3313 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3315 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3316 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3317 QT_ENABLE_HARFBUZZ environment variable.
3322 [ "x$ERROR" = "xyes" ] && exit 1
3327 # -----------------------------------------------------------------------------
3328 # LICENSING, INTERACTIVE PART
3329 # -----------------------------------------------------------------------------
3332 echo "This is the Qt ${EditionString} Edition."
3335 if [ "$Edition" = "OpenSource" ]; then
3337 echo "You are licensed to use this software under the terms of"
3338 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3339 if [ -f "$relpath/LICENSE.GPL3" ]; then
3340 echo "You are also licensed to use this software under the terms of"
3341 echo "the GNU General Public License (GPL) versions 3."
3347 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3348 echo "You have already accepted the terms of the $LicenseType license."
3351 if [ -f "$relpath/LICENSE.GPL3" ]; then
3352 echo "Type '3' to view the GNU General Public License version 3."
3354 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3355 echo "Type 'yes' to accept this license offer."
3356 echo "Type 'no' to decline this license offer."
3358 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3362 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3364 elif [ "$acceptance" = "no" ]; then
3365 echo "You are not licensed to use this software."
3368 elif [ "$acceptance" = "3" ]; then
3369 more "$relpath/LICENSE.GPL3"
3370 elif [ "$acceptance" = "L" ]; then
3371 more "$relpath/LICENSE.LGPL"
3374 elif [ "$Edition" = "Preview" ]; then
3375 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3378 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3379 echo "You have already accepted the terms of the $LicenseType license."
3382 echo "You are licensed to use this software under the terms of"
3383 echo "the $TheLicense"
3385 echo "Type '?' to read the Preview License."
3386 echo "Type 'yes' to accept this license offer."
3387 echo "Type 'no' to decline this license offer."
3389 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3393 if [ "$acceptance" = "yes" ]; then
3395 elif [ "$acceptance" = "no" ] ;then
3396 echo "You are not licensed to use this software."
3399 elif [ "$acceptance" = "?" ]; then
3400 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3403 elif [ "$Edition" != "OpenSource" ]; then
3404 if [ -n "$ExpiryDate" ]; then
3405 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3406 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3407 Today=`date +%Y%m%d`
3408 if [ "$Today" -gt "$ExpiryDate" ]; then
3409 case "$LicenseType" in
3410 Commercial|Academic|Educational)
3412 echo "WARNING WARNING WARNING WARNING"
3414 echo " Your support and upgrade period has expired."
3416 echo " You may continue to use your last licensed release"
3417 echo " of Qt under the terms of your existing license"
3418 echo " agreement. But you are not entitled to technical"
3419 echo " support, nor are you entitled to use any more recent"
3420 echo " Qt releases."
3422 echo " Please use the contact form at http://qt.digia.com/contact-us"
3423 echo " to renew your support and upgrades for this license."
3425 echo "WARNING WARNING WARNING WARNING"
3431 echo "NOTICE NOTICE NOTICE NOTICE"
3433 echo " Your Evaluation license has expired."
3435 echo " You are no longer licensed to use this software. Please"
3436 echo " use the contact form at http://qt.digia.com/contact-us to"
3437 echo " purchase license, or install the Qt Open Source Edition"
3438 echo " if you intend to develop free software."
3440 echo "NOTICE NOTICE NOTICE NOTICE"
3447 TheLicense=`head -n 1 "$outpath/LICENSE"`
3449 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3450 echo "You have already accepted the terms of the $TheLicense."
3453 echo "You are licensed to use this software under the terms of"
3454 echo "the $TheLicense."
3456 echo "Type '?' to view the $TheLicense."
3457 echo "Type 'yes' to accept this license offer."
3458 echo "Type 'no' to decline this license offer."
3460 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3464 if [ "$acceptance" = "yes" ]; then
3466 elif [ "$acceptance" = "no" ]; then
3467 echo "You are not licensed to use this software."
3470 else [ "$acceptance" = "?" ]
3471 more "$outpath/LICENSE"
3476 # this should be moved somewhere else
3479 AIX_VERSION=`uname -v`
3480 if [ "$AIX_VERSION" -lt "5" ]; then
3481 QMakeVar add QMAKE_LIBS_X11 -lbind
3488 #-------------------------------------------------------------------------------
3489 # generate qconfig.cpp
3490 #-------------------------------------------------------------------------------
3491 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3493 shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3494 shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3496 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3498 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3499 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3501 /* Installation date */
3502 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3504 /* Installation Info */
3505 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3506 "qt_prfxpath=$QT_INSTALL_PREFIX",
3507 "qt_docspath=$QT_INSTALL_DOCS",
3508 "qt_hdrspath=$QT_INSTALL_HEADERS",
3509 "qt_libspath=$QT_INSTALL_LIBS",
3510 "qt_binspath=$QT_INSTALL_BINS",
3511 "qt_plugpath=$QT_INSTALL_PLUGINS",
3512 "qt_impspath=$QT_INSTALL_IMPORTS",
3513 "qt_qml2path=$QT_INSTALL_QML",
3514 "qt_adatpath=$QT_INSTALL_ARCHDATA",
3515 "qt_datapath=$QT_INSTALL_DATA",
3516 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3517 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3518 "qt_tstspath=$QT_INSTALL_TESTS",
3519 #ifdef QT_BUILD_QMAKE
3520 "qt_ssrtpath=$CFG_SYSROOT",
3521 "qt_hpfxpath=$QT_HOST_PREFIX",
3522 "qt_hbinpath=$QT_HOST_BINS",
3523 "qt_hdatpath=$QT_HOST_DATA",
3524 "qt_targspec=$shortxspec",
3525 "qt_hostspec=$shortspec",
3528 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3531 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3533 /* strlen( "qt_lcnsxxxx" ) == 12 */
3534 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3535 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3537 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3540 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3541 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3542 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3544 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3545 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3546 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3549 # -----------------------------------------------------------------------------
3550 if [ "$LicenseType" = "Evaluation" ]; then
3551 EVALKEY=qt_qevalkey=$LicenseKeyExt
3552 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3553 EVALKEY=qt_qevalkey=
3556 if [ -n "$EVALKEY" ]; then
3557 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3558 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3559 /* Evaluation license key */
3560 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3562 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3566 # -----------------------------------------------------------------------------
3568 # -----------------------------------------------------------------------------
3571 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3572 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3575 # $1: input variable name (awk regexp)
3576 # $2: optional output variable name
3577 # $3: optional value transformation (sed command)
3578 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3579 # is where the resulting variable is written to
3580 setBootstrapVariable()
3582 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3586 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3587 echo "Creating qmake. Please wait..."
3589 mkdir -p "$outpath/qmake" || exit
3591 for mkfile in GNUmakefile Makefile; do
3594 in_mkfile="${mkfile}.in"
3595 if [ "$mkfile" = "Makefile" ]; then
3596 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3597 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3599 in_mkfile="${mkfile}.unix"
3601 in_mkfile="$relpath/qmake/$in_mkfile"
3602 mkfile="$outpath/qmake/$mkfile"
3603 if [ -f "$mkfile" ]; then
3604 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3607 [ -f "$in_mkfile" ] || continue
3609 echo "########################################################################" > "$mkfile"
3610 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3611 echo "########################################################################" >> "$mkfile"
3614 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3615 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3616 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3618 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3619 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3622 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3623 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3624 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3625 setBootstrapVariable QMAKE_CFLAGS
3626 setBootstrapVariable QMAKE_CXXFLAGS
3627 setBootstrapVariable QMAKE_LFLAGS
3629 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3630 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3631 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3633 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3634 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3635 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3636 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3637 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3638 elif [ "$CFG_DEBUG" = "yes" ]; then
3639 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3640 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3641 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3642 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3645 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3646 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3647 for rpath in $RPATH_FLAGS; do
3648 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3651 if [ "$BUILD_ON_MAC" = "yes" ]; then
3652 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3653 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3654 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3655 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3656 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3657 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3658 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3659 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3660 if [ '!' -z "$CFG_SDK" ]; then
3661 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3662 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3663 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3664 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3665 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3668 if [ '!' -z "$D_FLAGS" ]; then
3669 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3671 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3672 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3673 QMAKE_DATA_DIR="$QT_INSTALL_ARCHDATA"
3674 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3676 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3677 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3678 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3679 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3680 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3681 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3682 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3683 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3684 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3685 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3687 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3688 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3689 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3690 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3695 (cd "$outpath/qmake"; "$MAKE") || exit 2
3698 #-------------------------------------------------------------------------------
3699 # create a qt.conf for the Qt build tree itself
3700 #-------------------------------------------------------------------------------
3702 QTCONFFILE="$outpath/bin/qt.conf"
3703 cat > "$QTCONFFILE" <<EOF
3708 #-------------------------------------------------------------------------------
3709 # write out device config before we run the test.
3710 #-------------------------------------------------------------------------------
3711 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3712 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3713 rm -f "$DEVICE_VARS_FILE"
3715 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3716 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3719 #-------------------------------------------------------------------------------
3721 #-------------------------------------------------------------------------------
3722 if [ -z "$PKG_CONFIG" ]; then
3723 # See if PKG_CONFIG is set in the mkspec:
3724 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3726 if [ -z "$PKG_CONFIG" ]; then
3727 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3730 if [ "$CFG_PKGCONFIG" = "no" ]; then
3732 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3734 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3735 echo >&2 "a correctly setup pkg-config environment!"
3737 elif [ -n "$PKG_CONFIG" ]; then
3738 # found a pkg-config
3739 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3740 # when xcompiling, check environment to see if it's actually usable
3741 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3742 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3743 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3744 if [ -n "$GCC_MACHINE_DUMP" ]; then
3745 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3747 export PKG_CONFIG_LIBDIR
3748 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3749 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3750 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3751 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3752 echo >&2 "Set this variable to the directory that contains target .pc files"
3753 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3754 echo >&2 "use -force-pkg-config to override this test."
3758 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3761 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3762 if [ -n "$CFG_SYSROOT" ]; then
3763 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3764 export PKG_CONFIG_SYSROOT_DIR
3765 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3766 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3767 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3768 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3769 echo >&2 "or use -force-pkg-config to override this test."
3773 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3777 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3778 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3782 if [ -z "$PKG_CONFIG" ]; then
3783 QT_CONFIG="$QT_CONFIG no-pkg-config"
3786 #-------------------------------------------------------------------------------
3787 # tests that need qmake
3788 #-------------------------------------------------------------------------------
3790 # parameters: path, name, extra args
3793 path=config.tests/$1
3796 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3799 #-------------------------------------------------------------------------------
3800 # determine the target and host architectures
3801 #-------------------------------------------------------------------------------
3803 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3804 OUTFILE=$outpath/arch.result
3805 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3806 if [ $? -eq 0 ]; then
3807 eval `cat "$OUTFILE"`
3810 echo "Could not determine the target architecture!"
3811 echo "Turn on verbose messaging (-v) to see the final report."
3813 rm -f "$OUTFILE" 2>/dev/null
3814 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3816 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3817 # Do the same test again, using the host compiler
3818 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3819 if [ $? -eq 0 ]; then
3820 eval `cat "$OUTFILE"`
3823 echo "Could not determine the host architecture!"
3824 echo "Turn on verbose messaging (-v) to see the final report."
3826 rm -f "$OUTFILE" 2>/dev/null
3827 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3829 # not cross compiling, host == target
3830 CFG_HOST_ARCH="$CFG_ARCH"
3831 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3835 if [ "$OPT_VERBOSE" = "yes" ]; then
3836 echo "System architecture: '$CFG_ARCH'"
3837 echo "Host architecture: '$CFG_HOST_ARCH'"
3840 #-------------------------------------------------------------------------------
3841 # functionality tests
3842 #-------------------------------------------------------------------------------
3844 # Detect C++11 support
3845 if [ "$CFG_CXX11" != "no" ]; then
3846 if compileTest common/c++11 "C++11"; then
3848 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3849 echo "C++11 support cannot be enabled due to functionality tests!"
3850 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3851 echo " If you believe this message is in error you may use the continue"
3852 echo " switch (-continue) to $0 to continue."
3859 # detect availability of float math.h functions
3860 if compileTest unix/floatmath "floatmath"; then
3861 CFG_USE_FLOATMATH=yes
3863 CFG_USE_FLOATMATH=no
3866 # detect sse2 support
3867 if [ "${CFG_SSE2}" = "auto" ]; then
3868 if compileTest common/sse2 "sse2"; then
3875 # detect sse3 support
3876 if [ "${CFG_SSE3}" = "auto" ]; then
3877 if compileTest common/sse3 "sse3"; then
3884 # detect ssse3 support
3885 if [ "${CFG_SSSE3}" = "auto" ]; then
3886 if compileTest common/ssse3 "ssse3"; then
3893 # detect sse4.1 support
3894 if [ "${CFG_SSE4_1}" = "auto" ]; then
3895 if compileTest common/sse4_1 "sse4_1"; then
3902 # detect sse4.2 support
3903 if [ "${CFG_SSE4_2}" = "auto" ]; then
3904 if compileTest common/sse4_2 "sse4_2"; then
3911 # detect avx support
3912 if [ "${CFG_AVX}" = "auto" ]; then
3913 if compileTest common/avx "avx"; then
3914 case "$XQMAKESPEC" in
3916 # Some clang versions produce internal compiler errors compiling Qt AVX code
3917 case `$TEST_COMPILER --version` in
3918 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3920 if [ "$OPT_VERBOSE" = "yes" ]; then
3921 echo 'AVX support disabled for blacklisted clang compiler'
3938 # detect avx2 support
3939 if [ "${CFG_AVX}" = "no" ]; then
3942 if [ "${CFG_AVX2}" = "auto" ]; then
3943 if compileTest common/avx2 "avx2"; then
3950 # check iWMMXt support
3951 if [ "$CFG_IWMMXT" = "yes" ]; then
3952 compileTest unix/iwmmxt "iwmmxt"
3953 if [ $? != "0" ]; then
3954 echo "The iWMMXt functionality test failed!"
3955 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3960 # detect neon support
3961 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3962 if compileTest unix/neon "neon"; then
3967 elif [ "$CFG_ARCH" != "arm" ]; then
3971 # detect mips_dsp support
3972 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3973 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
3978 elif [ "$CFG_ARCH" != "mips" ]; then
3982 # detect mips_dspr2 support
3983 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3984 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
3989 elif [ "$CFG_ARCH" != "mips" ]; then
3993 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3996 if [ "$CFG_ZLIB" = "no" ]; then
3997 # Note: Qt no longer support builds without zlib
3998 # So we force a "no" to be "auto" here.
3999 # If you REALLY really need no zlib support, you can still disable
4000 # it by doing the following:
4001 # add "no-zlib" to mkspecs/qconfig.pri
4002 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4004 # There's no guarantee that Qt will build under those conditions
4010 if [ "$XPLATFORM_QNX" = "yes" ]; then
4011 if [ "$CFG_SLOG2" != "no" ]; then
4012 if compileTest unix/slog2 "slog2"; then
4014 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4021 if [ "$CFG_ZLIB" = "auto" ]; then
4022 if compileTest unix/zlib "zlib"; then
4029 if [ "$CFG_LARGEFILE" = "auto" ]; then
4030 #Large files should be enabled for all Linux systems
4034 if [ "$CFG_GUI" = "no" ]; then
4035 QPA_PLATFORM_GUARD=no
4038 # detect how jpeg should be built
4039 if [ "$CFG_JPEG" = "auto" ]; then
4040 if [ "$CFG_SHARED" = "yes" ]; then
4047 if [ "$CFG_LIBJPEG" = "auto" ]; then
4048 if compileTest unix/libjpeg "libjpeg"; then
4055 # detect how gif should be built
4056 if [ "$CFG_GIF" = "auto" ]; then
4057 if [ "$CFG_SHARED" = "yes" ]; then
4065 if [ "$CFG_LIBPNG" = "auto" ]; then
4066 if compileTest unix/libpng "libpng"; then
4073 if [ "$CFG_EGLFS" = "yes" ]; then
4074 if [ "$CFG_EGL" = "no" ]; then
4075 echo "The EGLFS plugin requires EGL support and cannot be built"
4078 if [ "$CFG_OPENGL" != "es2" ]; then
4079 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4086 if [ "$CFG_KMS" = "yes" ]; then
4087 if [ "$CFG_EGL" = "no" ]; then
4088 echo "The KMS plugin requires EGL support and cannot be built"
4091 if [ "$CFG_OPENGL" != "es2" ]; then
4092 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4097 # auto-detect SQL-modules support
4098 for _SQLDR in $CFG_SQL_AVAILABLE; do
4101 if [ "$CFG_SQL_mysql" != "no" ]; then
4102 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4103 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4104 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4105 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4106 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4107 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4108 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4110 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4111 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4112 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4113 echo " You need MySql 4 or higher."
4114 echo " If you believe this message is in error you may use the continue"
4115 echo " switch (-continue) to $0 to continue."
4120 QT_LFLAGS_MYSQL_R=""
4124 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4125 QMakeVar add CONFIG use_libmysqlclient_r
4126 if [ "$CFG_SQL_mysql" = "auto" ]; then
4127 CFG_SQL_mysql=plugin
4129 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4130 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4131 if [ "$CFG_SQL_mysql" = "auto" ]; then
4132 CFG_SQL_mysql=plugin
4135 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4136 echo "MySQL support cannot be enabled due to functionality tests!"
4137 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4138 echo " If you believe this message is in error you may use the continue"
4139 echo " switch (-continue) to $0 to continue."
4144 QT_LFLAGS_MYSQL_R=""
4152 if [ "$CFG_SQL_psql" != "no" ]; then
4153 # Be careful not to use native pg_config when cross building.
4154 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4155 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4156 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4158 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4159 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4160 # But, respect PSQL_LIBS if set
4161 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4162 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4163 if [ "$CFG_SQL_psql" = "auto" ]; then
4167 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4168 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4169 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4170 echo " If you believe this message is in error you may use the continue"
4171 echo " switch (-continue) to $0 to continue."
4182 if [ "$CFG_SQL_odbc" != "no" ]; then
4183 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4184 if [ "$CFG_SQL_odbc" = "auto" ]; then
4188 if compileTest unix/iodbc "iODBC"; then
4189 QT_LFLAGS_ODBC="-liodbc"
4190 if [ "$CFG_SQL_odbc" = "auto" ]; then
4194 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4195 echo "ODBC support cannot be enabled due to functionality tests!"
4196 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4197 echo " If you believe this message is in error you may use the continue"
4198 echo " switch (-continue) to $0 to continue."
4208 if [ "$CFG_SQL_oci" != "no" ]; then
4209 if compileTest unix/oci "OCI"; then
4210 if [ "$CFG_SQL_oci" = "auto" ]; then
4214 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4215 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4216 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4217 echo " If you believe this message is in error you may use the continue"
4218 echo " switch (-continue) to $0 to continue."
4227 if [ "$CFG_SQL_tds" != "no" ]; then
4228 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4229 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4230 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4231 if [ "$CFG_SQL_tds" = "auto" ]; then
4235 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4236 echo "TDS support cannot be enabled due to functionality tests!"
4237 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4238 echo " If you believe this message is in error you may use the continue"
4239 echo " switch (-continue) to $0 to continue."
4248 if [ "$CFG_SQL_db2" != "no" ]; then
4249 if compileTest unix/db2 "DB2"; then
4250 if [ "$CFG_SQL_db2" = "auto" ]; then
4254 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4255 echo "ODBC support cannot be enabled due to functionality tests!"
4256 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4257 echo " If you believe this message is in error you may use the continue"
4258 echo " switch (-continue) to $0 to continue."
4267 if [ "$CFG_SQL_ibase" != "no" ]; then
4268 if compileTest unix/ibase "InterBase"; then
4269 if [ "$CFG_SQL_ibase" = "auto" ]; then
4270 CFG_SQL_ibase=plugin
4273 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4274 echo "InterBase support cannot be enabled due to functionality tests!"
4275 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4276 echo " If you believe this message is in error you may use the continue"
4277 echo " switch (-continue) to $0 to continue."
4286 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4287 if compileTest unix/sqlite2 "SQLite2"; then
4288 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4289 CFG_SQL_sqlite2=plugin
4292 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4293 echo "SQLite2 support cannot be enabled due to functionality tests!"
4294 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4295 echo " If you believe this message is in error you may use the continue"
4296 echo " switch (-continue) to $0 to continue."
4305 if [ "$CFG_SQL_sqlite" != "no" ]; then
4306 SQLITE_AUTODETECT_FAILED="no"
4307 if [ "$CFG_SQLITE" = "system" ]; then
4308 if [ -n "$PKG_CONFIG" ]; then
4309 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4310 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4313 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4315 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4316 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4317 CFG_SQL_sqlite=plugin
4319 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4321 SQLITE_AUTODETECT_FAILED="yes"
4324 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4325 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4326 CFG_SQL_sqlite=plugin
4329 SQLITE_AUTODETECT_FAILED="yes"
4333 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4334 echo "SQLite support cannot be enabled due to functionality tests!"
4335 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4336 echo " If you believe this message is in error you may use the continue"
4337 echo " switch (-continue) to $0 to continue."
4343 if [ "$OPT_VERBOSE" = "yes" ]; then
4344 echo "unknown SQL driver: $_SQLDR"
4350 # auto-detect NIS support
4351 if [ "$CFG_NIS" != "no" ]; then
4352 if compileTest unix/nis "NIS"; then
4355 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4356 echo "NIS support cannot be enabled due to functionality tests!"
4357 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4358 echo " If you believe this message is in error you may use the continue"
4359 echo " switch (-continue) to $0 to continue."
4367 # auto-detect CUPS support
4368 if [ "$CFG_CUPS" != "no" ]; then
4369 if compileTest unix/cups "Cups"; then
4372 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4373 echo "Cups support cannot be enabled due to functionality tests!"
4374 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4375 echo " If you believe this message is in error you may use the continue"
4376 echo " switch (-continue) to $0 to continue."
4384 # auto-detect iconv(3) support
4385 if [ "$CFG_ICONV" != "no" ]; then
4386 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4388 elif compileTest unix/iconv "POSIX iconv"; then
4390 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4392 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4395 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4396 echo "Iconv support cannot be enabled due to functionality tests!"
4397 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4398 echo " If you believe this message is in error you may use the continue"
4399 echo " switch (-continue) to $0 to continue."
4407 # auto-detect libdbus-1 support
4408 if [ "$CFG_DBUS" != "no" ]; then
4409 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4410 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4411 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4413 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4414 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4415 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4416 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4418 if [ "$CFG_DBUS" = "auto" ]; then
4420 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4421 # CFG_DBUS is "yes" or "linked" here
4423 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4424 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4425 echo " If you believe this message is in error you may use the continue"
4426 echo " switch (-continue) to $0 to continue."
4432 # auto-detect Glib support
4433 if [ "$CFG_GLIB" != "no" ]; then
4434 if [ -n "$PKG_CONFIG" ]; then
4435 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4436 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4438 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4440 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4441 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4443 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4444 echo "Glib support cannot be enabled due to functionality tests!"
4445 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4446 echo " If you believe this message is in error you may use the continue"
4447 echo " switch (-continue) to $0 to continue."
4455 # auto-detect GTK style support
4456 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4457 if [ -n "$PKG_CONFIG" ]; then
4458 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4459 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4461 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4463 QT_CONFIG="$QT_CONFIG gtkstyle"
4464 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4465 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4467 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4468 echo "Gtk theme support cannot be enabled due to functionality tests!"
4469 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4470 echo " If you believe this message is in error you may use the continue"
4471 echo " switch (-continue) to $0 to continue."
4477 elif [ "$CFG_GLIB" = "no" ]; then
4482 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4483 if [ -n "$PKG_CONFIG" ]; then
4484 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4485 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4487 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4489 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4490 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4492 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4493 echo "Gstreamer support cannot be enabled due to functionality tests!"
4494 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4495 echo " If you believe this message is in error you may use the continue"
4496 echo " switch (-continue) to $0 to continue."
4502 elif [ "$CFG_GLIB" = "no" ]; then
4506 # auto-detect libicu support
4507 if [ "$CFG_ICU" != "no" ]; then
4508 if compileTest unix/icu "ICU"; then
4509 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4511 if [ "$CFG_ICU" = "auto" ]; then
4513 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4516 echo "The ICU library support cannot be enabled."
4517 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4518 echo " If you believe this message is in error you may use the continue"
4519 echo " switch (-continue) to $0 to continue."
4525 # Auto-detect PulseAudio support
4526 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4527 if [ -n "$PKG_CONFIG" ]; then
4528 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4529 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4531 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4533 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4534 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4536 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4537 echo "PulseAudio support cannot be enabled due to functionality tests!"
4538 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4539 echo " If you believe this message is in error you may use the continue"
4540 echo " switch (-continue) to $0 to continue."
4549 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4550 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4551 if [ "$CFG_GUI" = "no" ]; then
4552 if [ "$CFG_OPENGL" = "auto" ]; then
4555 if [ "$CFG_OPENGL" != "no" ]; then
4556 echo "OpenGL enabled, but GUI disabled."
4557 echo " You might need to either enable the GUI or disable OpenGL"
4561 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4562 if compileTest x11/opengl "OpenGL"; then
4564 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4567 if [ "$CFG_OPENGL" = "yes" ]; then
4568 echo "All the OpenGL functionality tests failed!"
4569 echo " You might need to modify the include and library search paths by editing"
4570 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4571 echo " ${XQMAKESPEC}."
4578 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4579 if [ "$CFG_OPENGL" = "desktop" ]; then
4580 compileTest x11/glxfbconfig "OpenGL"
4581 if [ $? != "0" ]; then
4582 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4589 elif [ "$CFG_OPENGL" = "es2" ]; then
4591 compileTest unix/opengles2 "OpenGL ES 2.x"
4592 if [ $? != "0" ]; then
4593 echo "The OpenGL ES 2.0 functionality test failed!"
4594 echo " You might need to modify the include and library search paths by editing"
4595 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4596 echo " ${XQMAKESPEC}."
4599 elif [ "$CFG_OPENGL" = "desktop" ]; then
4600 # Desktop OpenGL support
4601 compileTest x11/opengl "OpenGL"
4602 if [ $? != "0" ]; then
4603 echo "The OpenGL functionality test failed!"
4604 echo " You might need to modify the include and library search paths by editing"
4605 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4606 echo " ${XQMAKESPEC}."
4611 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4612 compileTest x11/glxfbconfig "OpenGL"
4613 if [ $? != "0" ]; then
4614 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4621 fi # X11/MINGW OpenGL
4623 if [ "$BUILD_ON_MAC" = "yes" ]; then
4624 if [ "$CFG_COREWLAN" = "auto" ]; then
4625 if compileTest mac/corewlan "CoreWlan"; then
4633 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4634 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4635 if compileTest unix/opengldesktop "OpenGL"; then
4637 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4640 if [ "$CFG_OPENGL" = "yes" ]; then
4641 echo "All the OpenGL functionality tests failed!"
4642 echo " You might need to modify the include and library search paths by editing"
4643 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4644 echo " ${XQMAKESPEC}."
4649 elif [ "$CFG_OPENGL" = "es2" ]; then
4651 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4652 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4653 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4654 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4655 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4656 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4657 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4658 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4661 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4662 if [ $? != "0" ]; then
4663 echo "The OpenGL ES 2.0 functionality test failed!"
4664 echo " You might need to modify the include and library search paths by editing"
4665 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4666 echo " ${XQMAKESPEC}."
4669 elif [ "$CFG_OPENGL" = "desktop" ]; then
4670 # Desktop OpenGL support
4671 compileTest unix/opengldesktop "OpenGL"
4672 if [ $? != "0" ]; then
4673 echo "The OpenGL functionality test failed!"
4674 echo " You might need to modify the include and library search paths by editing"
4675 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4676 echo " ${XQMAKESPEC}."
4681 # auto-detect FontConfig support
4682 if [ "$CFG_FONTCONFIG" != "no" ]; then
4683 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4684 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4685 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4687 QT_CFLAGS_FONTCONFIG=
4688 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4690 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4691 QT_CONFIG="$QT_CONFIG fontconfig"
4692 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4693 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4695 CFG_LIBFREETYPE=system
4702 # Save these for a check later
4703 ORIG_CFG_XCB="$CFG_XCB"
4704 ORIG_CFG_EGLFS="$CFG_EGLFS"
4705 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4706 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4707 ORIG_CFG_KMS="$CFG_KMS"
4709 if [ "$CFG_LIBUDEV" != "no" ]; then
4710 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4711 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4712 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4713 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4714 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4716 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4718 QT_CONFIG="$QT_CONFIG libudev"
4719 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4720 echo "The libudev functionality test failed!"
4726 if [ "$CFG_LIBUDEV" = "no" ]; then
4727 QMakeVar add DEFINES QT_NO_LIBUDEV
4730 if [ "$CFG_EVDEV" != "no" ]; then
4731 if compileTest unix/evdev "evdev"; then
4733 QT_CONFIG="$QT_CONFIG evdev"
4734 elif [ "$CFG_EVDEV" = "yes" ]; then
4735 echo "The evdev functionality test failed!"
4741 if [ "$CFG_EVDEV" = "no" ]; then
4742 QMakeVar add DEFINES QT_NO_EVDEV
4745 # Check we actually have X11 :-)
4746 if compileTest x11/xlib "XLib"; then
4747 QT_CONFIG="$QT_CONFIG xlib"
4750 # auto-detect Xrender support
4751 if [ "$CFG_XRENDER" != "no" ]; then
4752 if compileTest x11/xrender "Xrender"; then
4754 QT_CONFIG="$QT_CONFIG xrender"
4756 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4757 echo "Xrender support cannot be enabled due to functionality tests!"
4758 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4759 echo " If you believe this message is in error you may use the continue"
4760 echo " switch (-continue) to $0 to continue."
4768 if [ "$CFG_XCB" != "no" ]; then
4769 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4770 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4771 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4773 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4775 if [ "$CFG_XCB" = "qt" ]; then
4776 QT_CONFIG="$QT_CONFIG xcb-qt"
4780 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4781 XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm"
4782 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
4783 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
4786 if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4787 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4788 QT_CONFIG="$QT_CONFIG xcb-render"
4791 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4793 QT_CONFIG="$QT_CONFIG xcb-glx"
4796 echo "The test for linking against libxcb and support libraries failed!"
4797 echo " You might need install dependency packages, or pass -qt-xcb."
4798 echo " See src/plugins/platforms/xcb/README."
4803 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4804 QT_CONFIG="$QT_CONFIG xcb-xlib"
4807 # auto-detect XInput2 support. Needed by xcb too.
4808 if [ "$CFG_XINPUT2" != "no" ]; then
4809 if compileTest x11/xinput2 "XInput2"; then
4813 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4814 echo "XInput2 support cannot be enabled due to functionality tests!"
4815 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4816 echo " If you believe this message is in error you may use the continue"
4817 echo " switch (-continue) to $0 to continue."
4825 if [ "$CFG_XCB" != "auto" ]; then
4826 echo "The test for linking against libxcb failed!"
4827 echo " You might need to install dependency packages for libxcb."
4828 echo " See src/plugins/platforms/xcb/README."
4834 if [ "$CFG_XCB" = "no" ]; then
4835 QMakeVar add DEFINES QT_NO_XCB
4838 if [ "$CFG_DIRECTFB" != "no" ]; then
4839 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4840 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4841 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4842 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4844 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4845 echo " DirectFB support cannot be enabled due to functionality tests!"
4846 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4847 echo " If you believe this message is in error you may use the continue"
4848 echo " switch (-continue) to $0 to continue."
4858 if [ "$CFG_LINUXFB" != "no" ]; then
4859 if compileTest qpa/linuxfb "LinuxFB"; then
4861 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4862 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4863 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4864 echo " If you believe this message is in error you may use the continue"
4865 echo " switch (-continue) to $0 to continue."
4872 if [ "$CFG_KMS" != "no" ]; then
4873 if compileTest qpa/kms "KMS"; then
4875 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4876 echo " KMS support cannot be enabled due to functionality tests!"
4877 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4878 echo " If you believe this message is in error you may use the continue"
4879 echo " switch (-continue) to $0 to continue."
4886 # Detect libxkbcommon
4887 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4888 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4889 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4890 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4891 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4893 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4897 if [ "$CFG_EGL" != "no" ]; then
4898 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4899 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4900 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4901 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4902 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4903 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4904 fi # detect EGL support
4905 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4907 elif [ "$CFG_EGL" = "yes" ]; then
4908 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4909 echo " You might need to modify the include and library search paths by editing"
4910 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4915 elif [ "$CFG_OPENGL" = "desktop" ]; then
4916 if [ "$CFG_EGL" = "yes" ]; then
4917 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4918 echo "Either disable EGL support or enable OpenGL ES support."
4924 if [ "$CFG_EGLFS" != "no" ]; then
4925 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4926 CFG_EGLFS="$CFG_EGL"
4932 if [ "$CFG_KMS" = "yes" ]; then
4933 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4940 # Detect accessibility support
4941 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4942 if [ "$CFG_XCB" = "no" ]; then
4943 CFG_ACCESSIBILITY=yes
4945 # linux/xcb accessibility needs dbus
4946 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ]; then
4947 CFG_ACCESSIBILITY=yes
4949 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4950 CFG_ACCESSIBILITY=no
4952 echo "Accessibility support needs DBus."
4959 # Determine the default QPA platform
4960 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4962 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4963 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4964 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4965 QT_QPA_DEFAULT_PLATFORM="windows"
4966 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4967 QT_QPA_DEFAULT_PLATFORM="cocoa"
4968 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4969 QT_QPA_DEFAULT_PLATFORM="qnx"
4971 QT_QPA_DEFAULT_PLATFORM="xcb"
4976 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4977 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4978 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4979 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4981 if [ "$CFG_DIRECTFB" = "yes" ]; then
4982 QT_CONFIG="$QT_CONFIG directfb"
4983 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4984 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4986 if [ "$CFG_LINUXFB" = "yes" ]; then
4987 QT_CONFIG="$QT_CONFIG linuxfb"
4989 if [ "$CFG_KMS" = "yes" ]; then
4990 QT_CONFIG="$QT_CONFIG kms"
4993 if [ "$BUILD_ON_MAC" = "yes" ]; then
4994 if compileTest mac/coreservices "CoreServices"; then
4995 QT_CONFIG="$QT_CONFIG coreservices"
4997 QMakeVar add DEFINES QT_NO_CORESERVICES
5001 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5002 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5003 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5004 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5005 echo "No QPA platform plugin enabled!"
5006 echo " If you really want to build without a QPA platform plugin you must pass"
5007 echo " -no-qpa-platform-guard to configure. Doing this will"
5008 echo " produce a Qt that can not run GUI applications."
5009 echo " The dependencies needed for xcb to build are listed in"
5010 echo " src/plugins/platforms/xcb/README"
5017 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5018 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5019 if compileTest unix/freetype "FreeType"; then
5020 CFG_LIBFREETYPE=system
5026 if ! compileTest unix/stl "STL" &&
5027 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5028 echo "STL functionality check failed! Cannot build Qt with this STL library."
5029 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5034 # detect POSIX clock_gettime()
5035 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5036 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5037 CFG_CLOCK_GETTIME=yes
5039 CFG_CLOCK_GETTIME=no
5043 # detect POSIX monotonic clocks
5044 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5045 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5046 CFG_CLOCK_MONOTONIC=yes
5048 CFG_CLOCK_MONOTONIC=no
5050 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5051 CFG_CLOCK_MONOTONIC=no
5055 if [ "$CFG_MREMAP" = "auto" ]; then
5056 if compileTest unix/mremap "mremap"; then
5063 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5064 if [ "$CFG_GETADDRINFO" != "no" ]; then
5065 if compileTest unix/getaddrinfo "getaddrinfo"; then
5068 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5069 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5070 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5071 echo " If you believe this message is in error you may use the continue"
5072 echo " switch (-continue) to $0 to continue."
5080 # find if the platform provides inotify
5081 if [ "$CFG_INOTIFY" != "no" ]; then
5082 if compileTest unix/inotify "inotify"; then
5085 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5086 echo "inotify support cannot be enabled due to functionality tests!"
5087 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5088 echo " If you believe this message is in error you may use the continue"
5089 echo " switch (-continue) to $0 to continue."
5097 # find if the platform provides if_nametoindex (ipv6 interface name support)
5098 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5099 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5102 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5103 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5104 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5105 echo " If you believe this message is in error you may use the continue"
5106 echo " switch (-continue) to $0 to continue."
5114 # find if the platform provides getifaddrs (network interface enumeration)
5115 if [ "$CFG_GETIFADDRS" != "no" ]; then
5116 if compileTest unix/getifaddrs "getifaddrs"; then
5119 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5120 echo "getifaddrs support cannot be enabled due to functionality tests!"
5121 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5122 echo " If you believe this message is in error you may use the continue"
5123 echo " switch (-continue) to $0 to continue."
5132 if [ "$CFG_OPENSSL" != "no" ]; then
5133 if compileTest unix/openssl "OpenSSL"; then
5134 if [ "$CFG_OPENSSL" = "auto" ]; then
5138 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5139 echo "OpenSSL support cannot be enabled due to functionality tests!"
5140 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5141 echo " If you believe this message is in error you may use the continue"
5142 echo " switch (-continue) to $0 to continue."
5151 if [ "$CFG_PCRE" != "qt" ]; then
5152 if compileTest unix/pcre "PCRE"; then
5155 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5156 echo "PCRE support cannot be enabled due to functionality tests!"
5157 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5158 echo " If you believe this message is in error you may use the continue"
5159 echo " switch (-continue) to $0 to continue."
5167 # detect OpenVG support
5168 if [ "$CFG_OPENVG" != "no" ]; then
5169 if compileTest unix/openvg "OpenVG"; then
5170 if [ "$CFG_OPENVG" = "auto" ]; then
5173 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5174 if [ "$CFG_OPENVG" = "auto" ]; then
5177 CFG_OPENVG_ON_OPENGL=yes
5178 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5179 if [ "$CFG_OPENVG" = "auto" ]; then
5182 CFG_OPENVG_LC_INCLUDES=yes
5183 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5184 if [ "$CFG_OPENVG" = "auto" ]; then
5187 CFG_OPENVG_LC_INCLUDES=yes
5188 CFG_OPENVG_ON_OPENGL=yes
5190 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5191 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5192 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5193 echo " If you believe this message is in error you may use the continue"
5194 echo " switch (-continue) to $0 to continue."
5200 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5201 CFG_OPENVG_SHIVA=yes
5205 if [ "$CFG_ALSA" = "auto" ]; then
5206 if compileTest unix/alsa "alsa"; then
5213 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5214 if [ "$CFG_ARCH" = "arm" ]; then
5215 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5216 if [ $? != "0" ]; then
5217 CFG_JAVASCRIPTCORE_JIT=no
5220 case "$XPLATFORM" in
5222 CFG_JAVASCRIPTCORE_JIT=no
5228 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5229 QMakeVar set JAVASCRIPTCORE_JIT yes
5230 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5231 QMakeVar set JAVASCRIPTCORE_JIT no
5234 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5235 CFG_AUDIO_BACKEND=yes
5238 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5239 echo "Warning: largefile support cannot be disabled for win32."
5243 #-------------------------------------------------------------------------------
5244 # ask for all that hasn't been auto-detected or specified in the arguments
5245 #-------------------------------------------------------------------------------
5247 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5249 # disable accessibility
5250 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5251 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5253 QT_CONFIG="$QT_CONFIG accessibility"
5257 if [ "$CFG_EGL" = "yes" ]; then
5258 QT_CONFIG="$QT_CONFIG egl"
5260 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5264 if [ "$CFG_EGLFS" = "yes" ]; then
5265 QT_CONFIG="$QT_CONFIG eglfs"
5267 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5271 if [ "$CFG_OPENVG" = "no" ]; then
5272 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5274 QT_CONFIG="$QT_CONFIG openvg"
5275 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5276 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5278 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5279 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5281 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5282 QT_CONFIG="$QT_CONFIG shivavg"
5283 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5288 if [ "$CFG_OPENGL" = "no" ]; then
5289 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5291 QT_CONFIG="$QT_CONFIG opengl"
5294 if [ "$CFG_OPENGL" = "es2" ]; then
5295 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5298 if [ "$CFG_OPENGL" = "es2" ]; then
5299 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5300 QT_CONFIG="$QT_CONFIG opengles2"
5303 # build up the variables for output
5304 if [ "$CFG_DEBUG" = "yes" ]; then
5305 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5306 elif [ "$CFG_DEBUG" = "no" ]; then
5307 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5309 if [ "$CFG_SHARED" = "yes" ]; then
5310 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5311 QT_CONFIG="$QT_CONFIG shared"
5312 elif [ "$CFG_SHARED" = "no" ]; then
5313 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5314 QT_CONFIG="$QT_CONFIG static"
5317 #FIXME: qpa is implicit this should all be removed
5318 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5319 QT_CONFIG="$QT_CONFIG qpa"
5320 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5321 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5323 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5324 # Do not set this here for Windows. Let qmake do it so
5325 # debug and release precompiled headers are kept separate.
5326 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5328 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5329 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5330 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5331 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5332 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5333 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5335 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5336 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5338 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5339 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5340 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5341 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5342 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5343 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5344 QMakeVar add QMAKE_CFLAGS -g
5345 QMakeVar add QMAKE_CXXFLAGS -g
5346 QT_CONFIG="$QT_CONFIG separate_debug_info"
5348 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5349 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5351 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5352 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5353 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5354 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5355 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5356 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5357 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5358 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5359 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5360 if [ "$CFG_ARCH" = "mips" ]; then
5361 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5362 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5364 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5365 QT_CONFIG="$QT_CONFIG clock-gettime"
5367 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5368 QT_CONFIG="$QT_CONFIG clock-monotonic"
5370 if [ "$CFG_MREMAP" = "yes" ]; then
5371 QT_CONFIG="$QT_CONFIG mremap"
5373 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5374 QT_CONFIG="$QT_CONFIG getaddrinfo"
5376 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5377 QT_CONFIG="$QT_CONFIG ipv6ifname"
5379 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5380 QT_CONFIG="$QT_CONFIG getifaddrs"
5382 if [ "$CFG_INOTIFY" = "yes" ]; then
5383 QT_CONFIG="$QT_CONFIG inotify"
5385 if [ "$CFG_LIBJPEG" = "no" ]; then
5387 elif [ "$CFG_LIBJPEG" = "system" ]; then
5388 QT_CONFIG="$QT_CONFIG system-jpeg"
5390 if [ "$CFG_JPEG" = "no" ]; then
5391 QT_CONFIG="$QT_CONFIG no-jpeg"
5392 elif [ "$CFG_JPEG" = "yes" ]; then
5393 QT_CONFIG="$QT_CONFIG jpeg"
5395 if [ "$CFG_LIBPNG" = "no" ]; then
5398 if [ "$CFG_LIBPNG" = "system" ]; then
5399 QT_CONFIG="$QT_CONFIG system-png"
5401 if [ "$CFG_PNG" = "no" ]; then
5402 QT_CONFIG="$QT_CONFIG no-png"
5403 elif [ "$CFG_PNG" = "yes" ]; then
5404 QT_CONFIG="$QT_CONFIG png"
5406 if [ "$CFG_GIF" = "no" ]; then
5407 QT_CONFIG="$QT_CONFIG no-gif"
5408 elif [ "$CFG_GIF" = "yes" ]; then
5409 QT_CONFIG="$QT_CONFIG gif"
5411 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5412 QT_CONFIG="$QT_CONFIG no-freetype"
5413 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5414 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5415 QT_CONFIG="$QT_CONFIG system-freetype"
5417 QT_CONFIG="$QT_CONFIG freetype"
5419 if [ "$CFG_GUI" = "auto" ]; then
5422 if [ "$CFG_GUI" = "no" ]; then
5423 QT_CONFIG="$QT_CONFIG no-gui"
5426 if [ "$CFG_WIDGETS" = "no" ]; then
5427 QT_CONFIG="$QT_CONFIG no-widgets"
5428 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5431 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5432 #On Mac we implicitly link against libz, so we
5433 #never use the 3rdparty stuff.
5434 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5436 if [ "$CFG_ZLIB" = "yes" ]; then
5437 QT_CONFIG="$QT_CONFIG zlib"
5438 elif [ "$CFG_ZLIB" = "system" ]; then
5439 QT_CONFIG="$QT_CONFIG system-zlib"
5442 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5443 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5444 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5445 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5446 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5447 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5448 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5449 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5450 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5451 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5452 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5453 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5454 [ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb"
5455 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5456 [ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies"
5458 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5459 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5461 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5462 if [ "$CFG_RPATH" = "yes" ]; then
5463 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5465 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5466 if [ -n "$RPATH_FLAGS" ]; then
5468 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5472 elif [ "$CFG_RPATH" = "yes" ]; then
5473 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5477 if [ -n "$RPATH_FLAGS" ]; then
5478 # add the user defined rpaths
5479 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5482 if [ "$CFG_RPATH" = "yes" ]; then
5483 QT_CONFIG="$QT_CONFIG rpath"
5486 if [ '!' -z "$I_FLAGS" ]; then
5487 # add the user define include paths
5488 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5489 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5492 if [ '!' -z "$W_FLAGS" ]; then
5493 # add the user defined warning flags
5494 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5495 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5496 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5499 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5500 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5501 # Follow default behavior of configure.exe by overriding with "rtti".
5502 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5505 if [ "$CFG_ALSA" = "yes" ]; then
5506 QT_CONFIG="$QT_CONFIG alsa"
5509 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5510 QT_CONFIG="$QT_CONFIG pulseaudio"
5513 if [ "$CFG_COREWLAN" = "yes" ]; then
5514 QT_CONFIG="$QT_CONFIG corewlan"
5517 if [ "$CFG_ICU" = "yes" ]; then
5518 QT_CONFIG="$QT_CONFIG icu"
5521 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5522 QT_CONFIG="$QT_CONFIG force_asserts"
5525 if [ "$CFG_PCRE" = "qt" ]; then
5526 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5530 # Some Qt modules are too advanced in C++ for some old compilers
5531 # Detect here the platforms where they are known to work.
5533 # See Qt documentation for more information on which features are
5534 # supported and on which compilers.
5536 canBuildQtConcurrent="yes"
5537 canUseV8Snapshot="yes"
5539 case "$XPLATFORM" in
5541 # PA-RISC's assembly is too limited
5542 # gcc 3.4 on that platform can't build QtXmlPatterns
5543 # the assembly it generates cannot be compiled
5545 # Check gcc's version
5546 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5550 canBuildQtXmlPatterns="no"
5554 canBuildQtXmlPatterns="no"
5558 unsupported/vxworks-*-g++*)
5561 unsupported/vxworks-*-dcc*)
5563 canBuildQtXmlPatterns="no"
5566 # Check gcc's version
5567 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5575 canBuildQtXmlPatterns="no"
5580 # Check the compiler version
5581 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5584 canBuildQtXmlPatterns="no"
5585 canBuildQtConcurrent="no"
5589 canBuildQtConcurrent="no"
5595 canBuildQtXmlPatterns="no"
5596 canBuildQtConcurrent="no"
5602 # Get the xlC version
5603 cat > xlcver.c <<EOF
5607 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5612 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5613 xlcver=`./xlcver 2>/dev/null`
5616 if [ "$OPT_VERBOSE" = "yes" ]; then
5617 if [ -n "$xlcver" ]; then
5618 echo Found IBM xlC version: $xlcver.
5620 echo Could not determine IBM xlC version, assuming oldest supported.
5627 canBuildQtXmlPatterns="no"
5628 canBuildQtConcurrent="no"
5632 canBuildQtConcurrent="no"
5638 canBuildQtConcurrent="no"
5642 if [ "$CFG_GUI" = "no" ]; then
5643 # WebKit requires QtGui
5647 if [ "$CFG_SHARED" = "no" ]; then
5649 echo "WARNING: Using static linking will disable the WebKit module."
5654 CFG_CONCURRENT="yes"
5655 if [ "$canBuildQtConcurrent" = "no" ]; then
5656 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5659 QT_CONFIG="$QT_CONFIG concurrent"
5663 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5664 QT_CONFIG="$QT_CONFIG audio-backend"
5668 if [ "$CFG_WEBKIT" = "debug" ]; then
5669 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5673 QT_CONFIG="$QT_CONFIG v8"
5674 # Detect snapshot support
5675 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5676 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5679 *) canUseV8Snapshot="no"
5683 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5684 # QEMU crashes when building inside Scratchbox with an ARM target
5685 canUseV8Snapshot="no"
5688 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5689 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5691 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5692 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5695 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5696 QT_CONFIG="$QT_CONFIG v8snapshot"
5700 if [ "$CFG_QML_DEBUG" = "no" ]; then
5701 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5704 case "$QMAKE_CONF_COMPILER" in
5707 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5709 case "$COMPILER_VERSION" in
5711 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5712 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5713 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5716 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5717 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5718 QT_GCC_PATCH_VERSION=0
5728 #-------------------------------------------------------------------------------
5729 # part of configuration information goes into qconfig.h
5730 #-------------------------------------------------------------------------------
5732 case "$CFG_QCONFIG" in
5734 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5737 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5738 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5739 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5740 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5741 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5742 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5744 echo "#endif" >>"$tmpconfig"
5748 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5752 # define QT_EDITION $QT_EDITION
5756 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5757 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5759 if [ "$CFG_SHARED" = "no" ]; then
5760 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5761 /* Qt was configured for a static build */
5762 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5769 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5770 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5773 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5774 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5777 if [ "$BUILD_ON_MAC" = "yes" ]; then
5778 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5779 #if defined(__LP64__)
5780 # define QT_POINTER_SIZE 8
5782 # define QT_POINTER_SIZE 4
5786 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5787 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5790 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5791 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5792 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5795 # Add compiler sub-architecture support
5796 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5797 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5798 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5800 MIPS_DSP MIPS_DSPR2; do
5801 eval "VAL=\$CFG_$SUBARCH"
5804 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5805 >>"$outpath/src/corelib/global/qconfig.h.new"
5810 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5812 if [ "$CFG_DEV" = "yes" ]; then
5813 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5816 # Add QPA to config.h
5817 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5819 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5820 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5823 # Add turned on SQL drivers
5824 for DRIVER in $CFG_SQL_AVAILABLE; do
5825 eval "VAL=\$CFG_SQL_$DRIVER"
5828 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5829 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5830 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5833 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5838 QMakeVar set sql-drivers "$SQL_DRIVERS"
5839 QMakeVar set sql-plugins "$SQL_PLUGINS"
5841 # Add other configuration options to the qconfig.h file
5842 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5843 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5844 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5845 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5846 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5848 # X11/Unix/Mac only configs
5849 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5850 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5851 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5852 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5853 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5854 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5855 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5856 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5857 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5858 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5859 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5860 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5861 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5862 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5864 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5865 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5866 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5867 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5868 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5869 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5870 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5871 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5872 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5873 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5874 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5875 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5876 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5878 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5879 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5880 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5881 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5882 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5883 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5884 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5885 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5887 # sort QCONFIG_FLAGS for neatness if we can
5888 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5889 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5891 if [ -n "$QCONFIG_FLAGS" ]; then
5892 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5893 #ifndef QT_BOOTSTRAPPED
5896 for cfg in $QCONFIG_FLAGS; do
5897 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5898 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5899 # figure out define logic, so we can output the correct
5900 # ifdefs to override the global defines in a project
5902 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5903 # QT_NO_option can be forcefully turned on by QT_option
5904 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5905 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5906 # QT_option can be forcefully turned off by QT_NO_option
5907 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5910 if [ -z $cfgdNeg ]; then
5911 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5918 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5919 #if defined($cfgd) && defined($cfgdNeg)
5921 #elif !defined($cfgd) && !defined($cfgdNeg)
5928 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5929 #endif // QT_BOOTSTRAPPED
5934 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5935 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5936 #define QT_VISIBILITY_AVAILABLE
5941 if [ -n "$QT_LIBINFIX" ]; then
5942 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5943 #define QT_LIBINFIX "$QT_LIBINFIX"
5948 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5950 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5951 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5952 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5954 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5955 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5956 chmod -w "$outpath/src/corelib/global/qconfig.h"
5957 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5958 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5962 #-------------------------------------------------------------------------------
5963 # save configuration into qconfig.pri
5964 #-------------------------------------------------------------------------------
5965 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5966 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5967 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5968 if [ "$CFG_DEBUG" = "yes" ]; then
5969 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5970 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5971 QT_CONFIG="$QT_CONFIG release"
5973 QT_CONFIG="$QT_CONFIG debug"
5974 elif [ "$CFG_DEBUG" = "no" ]; then
5975 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5976 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5977 QT_CONFIG="$QT_CONFIG debug"
5979 QT_CONFIG="$QT_CONFIG release"
5981 if [ "$CFG_FRAMEWORK" = "no" ]; then
5982 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5984 QT_CONFIG="$QT_CONFIG qt_framework"
5985 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5987 if [ "$CFG_DEV" = "yes" ]; then
5988 QT_CONFIG="$QT_CONFIG private_tests"
5991 cat >>"$QTCONFIG.tmp" <<EOF
5993 CONFIG += $QTCONFIG_CONFIG
5995 QT_HOST_ARCH = $CFG_HOST_ARCH
5996 QT_CPU_FEATURES = $CFG_CPUFEATURES
5997 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5998 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5999 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6000 QT_EDITION = $Edition
6001 QT_CONFIG += $QT_CONFIG
6004 QT_VERSION = $QT_VERSION
6005 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6006 QT_MINOR_VERSION = $QT_MINOR_VERSION
6007 QT_PATCH_VERSION = $QT_PATCH_VERSION
6010 QT_LIBINFIX = $QT_LIBINFIX
6011 QT_NAMESPACE = $QT_NAMESPACE
6015 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6016 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6017 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6018 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6019 echo >> "$QTCONFIG.tmp"
6022 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6023 echo "# sysroot" >>"$QTCONFIG.tmp"
6024 echo "!host_build {" >>"$QTCONFIG.tmp"
6025 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6026 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6027 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6028 echo "}" >> "$QTCONFIG.tmp"
6029 echo >> "$QTCONFIG.tmp"
6031 if [ -n "$RPATH_FLAGS" ]; then
6032 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6034 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6035 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6036 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6037 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6040 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6041 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6042 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6045 # replace qconfig.pri if it differs from the newly created temp file
6046 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6047 rm -f "$QTCONFIG.tmp"
6049 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6052 #-------------------------------------------------------------------------------
6053 # save configuration into qmodule.pri
6054 #-------------------------------------------------------------------------------
6055 QTMODULE="$outpath/mkspecs/qmodule.pri"
6057 echo "CONFIG += $QMAKE_CONFIG" >> "$QTMODULE.tmp"
6058 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6060 if [ -n "$QT_CFLAGS_PSQL" ]; then
6061 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6063 if [ -n "$QT_LFLAGS_PSQL" ]; then
6064 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6066 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6067 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6069 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6070 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6072 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6073 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6075 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6076 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6078 if [ -n "$QT_LFLAGS_ODBC" ]; then
6079 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6081 if [ -n "$QT_LFLAGS_TDS" ]; then
6082 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6085 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6086 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6089 #dump in the OPENSSL_LIBS info
6090 if [ '!' -z "$OPENSSL_LIBS" ]; then
6091 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6092 elif [ "$CFG_OPENSSL" = "linked" ]; then
6093 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6097 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6098 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6100 # replace qmodule.pri if it differs from the newly created temp file
6101 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6102 rm -f "$QTMODULE.tmp"
6104 mv -f "$QTMODULE.tmp" "$QTMODULE"
6107 #-------------------------------------------------------------------------------
6108 # save configuration into .qmake.cache
6109 #-------------------------------------------------------------------------------
6111 CACHEFILE="$outpath/.qmake.cache"
6112 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6113 cat >>"$CACHEFILE.tmp" <<EOF
6115 QT_SOURCE_TREE = \$\$quote($relpath)
6116 QT_BUILD_TREE = \$\$quote($outpath)
6119 # replace .qmake.cache if it differs from the newly created temp file
6120 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6121 rm -f "$CACHEFILE.tmp"
6123 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6126 #-------------------------------------------------------------------------------
6127 # give feedback on configuration
6128 #-------------------------------------------------------------------------------
6129 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6132 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6133 echo "Build type: $PLATFORM"
6135 echo "Building on: $PLATFORM"
6136 echo "Building for: $XPLATFORM"
6139 # the missing space before $CFG_FEATURES is intentional
6140 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6141 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6143 if [ -n "$PLATFORM_NOTES" ]; then
6144 echo "Platform notes:"
6145 echo "$PLATFORM_NOTES"
6150 if [ "$OPT_VERBOSE" = "yes" ]; then
6151 echo $ECHO_N "qmake vars .......... $ECHO_C"
6152 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6153 echo "qmake switches ......... $QMAKE_SWITCHES"
6156 echo "Build .................. $CFG_BUILD_PARTS"
6157 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6158 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6159 echo "Debug .................. yes (combined)"
6160 if [ "$CFG_DEBUG" = "yes" ]; then
6161 echo "Default Link ........... debug"
6163 echo "Default Link ........... release"
6166 echo "Debug .................. $CFG_DEBUG"
6168 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6169 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6171 echo "C++11 support .......... $CFG_CXX11"
6172 if [ -n "$PKG_CONFIG" ]; then
6173 echo "pkg-config ............. yes"
6175 echo "pkg-config ............. no"
6177 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6178 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6179 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6180 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6181 echo "QtGui module ........... $CFG_GUI"
6182 echo "QtWidgets module ....... $CFG_WIDGETS"
6183 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6184 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6186 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6188 echo "QML debugging .......... $CFG_QML_DEBUG"
6189 echo "PCH support ............ $CFG_PRECOMPILE"
6190 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6191 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6192 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6193 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6194 elif [ "$CFG_ARCH" = "arm" ]; then
6195 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6196 echo "NEON support ........... ${CFG_NEON}"
6198 if [ "$CFG_ARCH" = "mips" ]; then
6199 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6201 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6202 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6203 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6204 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6205 echo "NIS support ............ $CFG_NIS"
6206 echo "CUPS support ........... $CFG_CUPS"
6207 echo "Iconv support .......... $CFG_ICONV"
6208 echo "Glib support ........... $CFG_GLIB"
6209 echo "GStreamer support ...... $CFG_GSTREAMER"
6210 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6211 echo "Large File support ..... $CFG_LARGEFILE"
6212 echo "GIF support ............ $CFG_GIF"
6213 if [ "$CFG_JPEG" = "no" ]; then
6214 echo "JPEG support ........... $CFG_JPEG"
6216 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6218 if [ "$CFG_PNG" = "no" ]; then
6219 echo "PNG support ............ $CFG_PNG"
6221 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6223 echo "zlib support ........... $CFG_ZLIB"
6224 echo "Session management ..... $CFG_SM"
6225 echo "libudev support ........ $CFG_LIBUDEV"
6227 if [ "$XPLATFORM_QNX" = "yes" ]; then
6228 echo "SLOG2 support .......... $CFG_SLOG2"
6230 echo "Use system proxies ..... $CFG_SYSTEM_PROXIES"
6232 if [ "$CFG_OPENGL" = "desktop" ]; then
6233 echo "OpenGL support ......... yes (Desktop OpenGL)"
6234 elif [ "$CFG_OPENGL" = "es2" ]; then
6235 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6237 echo "OpenGL support ......... no"
6240 if [ "$CFG_OPENVG" ]; then
6241 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6242 echo "OpenVG support ......... ShivaVG"
6244 echo "OpenVG support ......... $CFG_OPENVG"
6248 echo "XShape support ......... $CFG_XSHAPE"
6249 echo "XVideo support ......... $CFG_XVIDEO"
6250 echo "XSync support .......... $CFG_XSYNC"
6251 echo "Xinerama support ....... $CFG_XINERAMA"
6252 echo "Xcursor support ........ $CFG_XCURSOR"
6253 echo "Xfixes support ......... $CFG_XFIXES"
6254 echo "Xrandr support ......... $CFG_XRANDR"
6255 echo "Xi support ............. $CFG_XINPUT"
6256 echo "Xi2 support ............ $CFG_XINPUT2"
6257 echo "MIT-SHM support ........ $CFG_MITSHM"
6258 echo "FontConfig support ..... $CFG_FONTCONFIG"
6259 echo "XKB Support ............ $CFG_XKB"
6260 echo "immodule support ....... $CFG_IM"
6261 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6263 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6264 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6265 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6266 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6267 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6268 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6269 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6270 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6271 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6274 if [ "$CFG_OPENSSL" = "yes" ]; then
6275 OPENSSL_LINKAGE="(run-time)"
6276 elif [ "$CFG_OPENSSL" = "linked" ]; then
6277 OPENSSL_LINKAGE="(linked)"
6279 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6280 echo "Alsa support ........... $CFG_ALSA"
6281 if [ "$BUILD_ON_MAC" = "yes" ]; then
6282 echo "CoreWlan support ....... $CFG_COREWLAN"
6284 echo "libICU support ......... $CFG_ICU"
6285 echo "PCRE support ........... $CFG_PCRE"
6286 echo "Xcb support ............ $CFG_XCB"
6287 echo "Xrender support ........ $CFG_XRENDER"
6288 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" != "no" ]; then
6289 echo "XInput2 support ........ $CFG_XINPUT2"
6291 echo "EGLFS support .......... $CFG_EGLFS"
6292 echo "DirectFB support ....... $CFG_DIRECTFB"
6293 echo "LinuxFB support ........ $CFG_LINUXFB"
6294 echo "KMS support ............ $CFG_KMS"
6297 # complain about not being able to use dynamic plugins if we are using a static build
6298 if [ "$CFG_SHARED" = "no" ]; then
6300 echo "WARNING: Using static linking will disable the use of dynamically"
6301 echo "loaded plugins. Make sure to import all needed static plugins,"
6302 echo "or compile needed modules into the library."
6305 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6307 echo "NOTE: When linking against OpenSSL, you can override the default"
6308 echo "library names through OPENSSL_LIBS."
6310 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6314 exec 1>&3 3>&- # restore stdout
6315 cat $outpath/config.summary # display config feedback to user
6317 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6319 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6320 echo "if you want a pure debug build."
6325 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6330 #-------------------------------------------------------------------------------
6331 # build makefiles based on the configuration
6332 #-------------------------------------------------------------------------------
6334 if [ "$CFG_PROCESS" != "no" ]; then
6336 if [ "$CFG_PROCESS" = "full" ]; then
6337 echo "Creating makefiles. Please wait..."
6338 "$outpath/bin/qmake" -r "$relpath"
6341 "$outpath/bin/qmake" "$relpath"
6344 if [ "$OPT_FAST" = "yes" ]; then
6346 for part in $CFG_BUILD_PARTS; do
6348 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6351 if [ "x$PART_ROOTS" != "x" ]; then
6353 echo "Creating stub makefiles. Please wait..."
6354 QMAKE="$outpath/bin/qmake"
6355 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6356 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6358 test -f "$outpath/$d/Makefile" && continue
6359 echo " for $relpath/$p"
6361 mkdir -p "$outpath/$d" || exit
6362 cat > "$outpath/$d/Makefile" <<EOF || exit
6363 # $outpath/$d/Makefile: generated by configure
6365 # WARNING: This makefile will be replaced with a real makefile.
6366 # All changes made to this file will be lost.
6371 all clean install qmake first Makefile: FORCE
6372 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6382 #-------------------------------------------------------------------------------
6383 # check for platforms that we don't yet know about
6384 #-------------------------------------------------------------------------------
6385 if [ "$CFG_ARCH" = "unknown" ]; then
6388 NOTICE: configure was unable to determine the architecture
6389 for the $XQMAKESPEC target.
6391 Qt will not use a specialized implementation for any atomic
6392 operations. Instead a generic implemention based on either GCC
6393 intrinsics or C++11 std::atomic<T> will be used (when
6394 available). The generic implementations are generally as fast
6395 as and always as safe as a specialized implementation.
6397 If no generic implementation is available, Qt will use a
6398 fallback UNIX implementation which uses a single
6399 pthread_mutex_t to protect all atomic operations. This
6400 implementation is the slow (but safe) fallback implementation
6401 for architectures Qt does not yet support.
6405 #-------------------------------------------------------------------------------
6406 # check if the user passed the -no-zlib option, which is no longer supported
6407 #-------------------------------------------------------------------------------
6408 if [ -n "$ZLIB_FORCED" ]; then
6409 which_zlib="supplied"
6410 if [ "$CFG_ZLIB" = "system" ]; then
6416 NOTICE: The -no-zlib option was supplied but is no longer
6419 Qt now requires zlib support in all builds, so the -no-zlib
6420 option was ignored. Qt will be built using the $which_zlib
6425 #-------------------------------------------------------------------------------
6426 # check if the user passed the obsoleted -wayland or -no-wayland flag
6427 #-------------------------------------------------------------------------------
6428 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6431 NOTICE: The -wayland and -no-wayland flags are now obsolete
6433 All configuring of QtWayland plugin and QtCompositor happens in the module
6437 #-------------------------------------------------------------------------------
6438 # check if the user passed the obsoleted -arch or -host-arch options
6439 #-------------------------------------------------------------------------------
6440 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6443 NOTICE: The -arch and -host-arch options are obsolete.
6445 Qt now detects the target and host architectures based on compiler
6446 output. Qt will be built using $CFG_ARCH for the target architecture
6447 and $CFG_HOST_ARCH for the host architecture (note that these two
6448 will be the same unless you are cross-compiling).
6452 #-------------------------------------------------------------------------------
6453 # finally save the executed command to another script
6454 #-------------------------------------------------------------------------------
6455 if [ `basename $0` != "config.status" ]; then
6456 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6458 # add the system variables
6459 for varname in $SYSTEM_VARIABLES; do
6461 'if [ -n "\$'${varname}'" ]; then
6462 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6467 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6469 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6470 echo "#!/bin/sh" > "$outpath/config.status"
6471 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6472 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6473 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6474 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6475 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6476 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6477 echo "else" >> "$outpath/config.status"
6478 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6479 echo "fi" >> "$outpath/config.status"
6480 chmod +x "$outpath/config.status"
6483 if [ -n "$RPATH_MESSAGE" ]; then
6485 echo "$RPATH_MESSAGE"
6488 MAKE=`basename "$MAKE"`
6490 echo Qt is now configured for building. Just run \'$MAKE\'.
6491 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6492 echo Once everything is built, Qt is installed.
6493 echo You should not run \'$MAKE install\'.
6495 echo Once everything is built, you must run \'$MAKE install\'.
6496 echo Qt will be installed into $QT_INSTALL_PREFIX
6499 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.