2 #############################################################################
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia. For licensing terms and
15 ## conditions see http://qt.digia.com/licensing. For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file. Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights. These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 compilerSupportsFlag()
229 cat >conftest.cpp <<EOF
230 int main() { return 0; }
232 "$@" -o conftest-out.o conftest.cpp
234 rm -f conftest.cpp conftest-out.o
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag $compiler $lflags >/dev/null 2>&1
251 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 #-------------------------------------------------------------------------------
399 #-------------------------------------------------------------------------------
403 EditionString=Commercial
407 # parse the arguments, setting things to "yes" or "no"
408 while [ "$#" -gt 0 ]; do
412 #Autoconf style options
414 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
418 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
422 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
426 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
429 -h|help|--help|-help)
430 if [ "$VAL" = "yes" ]; then
432 COMMERCIAL_USER="no" #doesn't matter we will display the help
435 COMMERCIAL_USER="no" #doesn't matter we will display the help
439 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
443 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
450 if [ "$UNKNOWN_ARG" = "yes" ]; then
462 COMMERCIAL_USER="yes"
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
478 echo "Which edition of Qt do you want to use ?"
480 echo "Type 'c' if you want to use the Commercial Edition."
481 echo "Type 'o' if you want to use the Open Source Edition."
485 if [ "$commercial" = "c" ]; then
486 COMMERCIAL_USER="yes"
488 elif [ "$commercial" = "o" ]; then
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496 # Commercial preview release
497 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
500 QT_EDITION="QT_EDITION_DESKTOP"
501 LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503 # one of commercial editions
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
506 # read in the license file
507 if [ -f "$LICENSE_FILE" ]; then
508 . "$LICENSE_FILE" >/dev/null 2>&1
509 if [ -z "$LicenseKeyExt" ]; then
511 echo "You are using an old license file."
513 echo "Please install the license file supplied by Digia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please use the contact form at http://qt.digia.com/contact-us"
621 echo "to upgrade your license to include the $Platform platform, or install"
622 echo "the Qt Open Source Edition if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "mac fusion windows"
732 # QTDIR may be set and point to an old or system-wide Qt installation
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
742 CFG_GUI=auto # (yes|no|auto)
748 CFG_FORCEDEBUGINFO=no
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
781 CFG_AUDIO_BACKEND=auto
784 CFG_JAVASCRIPTCORE_JIT=auto
786 CFG_STACK_PROTECTOR_STRONG=auto
788 CFG_SYSTEM_PROXIES=no
790 # Target architecture
793 # Host architecture, same as CFG_ARCH when not cross-compiling
795 CFG_HOST_CPUFEATURES=
796 # Set when the -arch or -host-arch arguments are used
797 OPT_OBSOLETE_HOST_ARG=no
810 CFG_OBSOLETE_WAYLAND=no
822 CFG_SEPARATE_DEBUG_INFO=no
823 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
824 CFG_REDUCE_EXPORTS=auto
832 CFG_REDUCE_RELOCATIONS=auto
833 CFG_ACCESSIBILITY=auto
838 CFG_CLOCK_GETTIME=auto
839 CFG_CLOCK_MONOTONIC=auto
856 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
857 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
862 OPT_CONFIRM_LICENSE=no
875 QPA_PLATFORM_GUARD=yes
878 # initalize variables used for installation
889 QT_INSTALL_TRANSLATIONS=
894 CFG_GCC_SYSROOT="yes"
899 #flags for SQL drivers
907 QT_LFLAGS_ODBC="-lodbc"
910 # flags for libdbus-1
914 # flags for Glib (X11 only)
918 # flags for GStreamer (X11 only)
922 # default qpa platform
923 QT_QPA_DEFAULT_PLATFORM=
925 #-------------------------------------------------------------------------------
926 # check SQL drivers available in this package
927 #-------------------------------------------------------------------------------
929 # opensource version removes some drivers, so force them to be off
935 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
936 for a in "$relpath/src/plugins/sqldrivers/"*; do
938 base_a=`basename "$a"`
939 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
940 eval "CFG_SQL_${base_a}=auto"
945 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
946 if [ -d "$relpath/src/plugins/imageformats" ]; then
947 for a in "$relpath/src/plugins/imageformats/"*; do
949 base_a=`basename "$a"`
950 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
955 #-------------------------------------------------------------------------------
956 # parse command line arguments
957 #-------------------------------------------------------------------------------
959 # parse the arguments, setting things to "yes" or "no"
960 while [ "$#" -gt 0 ]; do
964 #Autoconf style options
966 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
970 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
974 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
975 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
978 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
982 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
986 -no-*-*|-plugin-*-*|-qt-*-*)
987 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
988 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
992 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
995 #Qt style options that pass an argument
996 -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)
997 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1001 #Qt style complex options in one command
1002 -enable-*|-disable-*)
1003 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1004 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1014 #Qt Builtin/System style options
1015 -no-*|-system-*|-qt-*)
1016 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1017 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1019 #Options that cannot be generalized
1026 # this option may or may not be followed by an argument
1027 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1036 # this option may or may not be followed by an argument
1037 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1045 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1046 # this option may or may not be followed by an argument
1047 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1066 if [ "$1" = "-D" ]; then
1070 VAL=`echo $1 | sed 's,-D,,'`
1075 # this option may or may not be followed by an argument
1076 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1085 if [ "$1" = "-I" ]; then
1089 VAL=`echo $1 | sed 's,-I,,'`
1094 if [ "$1" = "-L" ]; then
1098 VAL=`echo $1 | sed 's,-L,,'`
1103 if [ "$1" = "-R" ]; then
1107 VAL=`echo $1 | sed 's,-R,,'`
1112 if [ "$1" = "-l" ]; then
1116 VAL=`echo $1 | sed 's,-l,,'`
1121 if [ "$1" = "-F" ]; then
1125 VAL=`echo $1 | sed 's,-F,,'`
1130 if [ "$1" = "-fw" ]; then
1134 VAL=`echo $1 | sed 's,-fw,,'`
1141 #General options, including Qt style yes options
1143 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1150 if [ "$UNKNOWN_ARG" = "yes" ]; then
1151 echo "$1: unknown argument"
1162 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1163 CFG_ACCESSIBILITY="$VAL"
1172 CFG_USE_GNUMAKE="$VAL"
1175 CFG_MYSQL_CONFIG="$VAL"
1178 QT_INSTALL_PREFIX="$VAL"
1181 QT_HOST_PREFIX="$VAL"
1190 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1191 CFG_PKGCONFIG="$VAL"
1197 CFG_PKGCONFIG="force"
1200 QT_INSTALL_DOCS="$VAL"
1203 QT_INSTALL_HEADERS="$VAL"
1206 QT_INSTALL_PLUGINS="$VAL"
1209 QT_INSTALL_IMPORTS="$VAL"
1212 QT_INSTALL_QML="$VAL"
1215 QT_INSTALL_ARCHDATA="$VAL"
1218 QT_INSTALL_DATA="$VAL"
1221 QT_INSTALL_LIBS="$VAL"
1230 QT_INSTALL_TRANSLATIONS="$VAL"
1232 sysconfdir|settingsdir)
1233 QT_INSTALL_SETTINGS="$VAL"
1236 QT_INSTALL_EXAMPLES="$VAL"
1239 QT_INSTALL_TESTS="$VAL"
1248 CFG_GCC_SYSROOT="$VAL"
1251 QT_INSTALL_BINS="$VAL"
1254 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1261 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1262 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1263 [ "$VAL" = "es2" ]; then
1270 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1277 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1280 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1283 if [ "$BUILD_ON_MAC" = "yes" ]; then
1285 DeviceVar set QMAKE_MAC_SDK "$VAL"
1291 OPT_OBSOLETE_HOST_ARG=yes
1294 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1295 CFG_MAC_HARFBUZZ="$VAL"
1302 if [ "$BUILD_ON_MAC" = "yes" ]; then
1303 CFG_FRAMEWORK="$VAL"
1309 if [ "$VAL" = "yes" ]; then
1311 QMakeVar add QMAKE_CFLAGS -pg
1312 QMakeVar add QMAKE_CXXFLAGS -pg
1313 QMakeVar add QMAKE_LFLAGS -pg
1314 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1320 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1327 if [ "$VAL" = "yes" ]; then
1328 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1333 # keep compatibility with old platform names
1339 PLATFORM=hpux-acc-o64
1342 PLATFORM=hpux-acc-64
1345 PLATFORM=hpux-acc-64
1357 PLATFORM=reliant-cds-64
1360 PLATFORM=solaris-cc-64
1363 PLATFORM=unixware-cc
1366 PLATFORM=unixware-g++
1369 PLATFORM=unixware-cc
1372 PLATFORM=unixware-g++
1378 i386) NATIVE_64_ARCH="x86_64" ;;
1379 powerpc) NATIVE_64_ARCH="ppc64" ;;
1380 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1382 if [ ! -z "$NATIVE_64_ARCH" ]; then
1383 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1390 case `basename "$XPLATFORM"` in win32-g++*)
1393 CFG_REDUCE_EXPORTS=no
1398 XPLATFORM=`resolveDeviceMkspec $VAL`
1399 [ "$XPLATFORM" = "undefined" ] && exit 101
1402 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1403 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1404 DeviceVar set $DEV_VAR $DEV_VAL
1407 QT_QPA_DEFAULT_PLATFORM="$VAL"
1410 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1411 CFG_DEBUG_RELEASE="$VAL"
1417 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1418 CFG_RELEASE_QMAKE="$VAL"
1424 if [ "$VAL" = "yes" ]; then
1426 elif [ "$VAL" = "no" ]; then
1436 CFG_FORCEDEBUGINFO="$VAL"
1438 developer-build|commercial|opensource)
1439 # These switches have been dealt with already
1442 if [ "$VAL" = "yes" ]; then
1444 elif [ "$VAL" = "no" ]; then
1451 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1452 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1458 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1459 if [ "$VAL" = "no" ]; then
1460 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1461 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1462 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1468 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1475 if [ "$VAL" = "no" ]; then
1482 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1490 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1497 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1504 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1511 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1518 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1525 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1532 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1539 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1540 CFG_PRECOMPILE="$VAL"
1545 separate-debug-info)
1546 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1547 CFG_SEPARATE_DEBUG_INFO="$VAL"
1548 elif [ "$VAL" = "nocopy" ] ; then
1549 CFG_SEPARATE_DEBUG_INFO="yes"
1550 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1556 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1557 CFG_REDUCE_EXPORTS="$VAL"
1563 if [ "$VAL" = "no" ]; then
1570 if [ "$VAL" = "no" ]; then
1577 if [ "$VAL" = "no" ]; then
1584 if [ "$VAL" = "no" ]; then
1591 if [ "$VAL" = "no" ]; then
1598 if [ "$VAL" = "no" ]; then
1605 if [ "$VAL" = "no" ]; then
1615 if [ "$VAL" = "no" ]; then
1622 if [ "$VAL" = "no" ]; then
1629 if [ "$VAL" = "no" ]; then
1630 CFG_MIPS_DSPR2="$VAL"
1636 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1637 CFG_REDUCE_RELOCATIONS="$VAL"
1643 [ "$VAL" = "qt" ] && VAL=yes
1644 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1649 # No longer supported:
1650 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1653 if [ "$VAL" = "system" ]; then
1660 [ "$VAL" = "yes" ] && VAL=qt
1661 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1668 [ "$VAL" = "yes" ] && VAL=qt
1669 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1676 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1683 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1690 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1697 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1704 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1711 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1712 CFG_FONTCONFIG="$VAL"
1718 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1725 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ] || [ "$VAL" = "qt" ]; then
1727 if [ "$VAL" = "yes" ]; then
1735 CFG_OBSOLETE_WAYLAND=yes
1738 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1745 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1752 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1759 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1766 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1773 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1780 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1787 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1794 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1801 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1808 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1809 CFG_GSTREAMER="$VAL"
1815 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1816 CFG_QGTKSTYLE="$VAL"
1822 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1825 if [ "$VAL" = "no" ]; then
1833 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1835 elif [ "$VAL" = "no" ]; then
1842 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1843 QPA_PLATFORM_GUARD="$VAL"
1849 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1851 elif [ "$VAL" = "runtime" ]; then
1858 if [ "$VAL" = "yes" ]; then
1865 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1872 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1873 CFG_LARGEFILE="$VAL"
1879 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1886 if [ "$VAL" = "yes" ]; then
1887 CFG_OPENSSL="linked"
1893 if [ "$VAL" = "yes" ]; then
1896 if [ "$VAL" = "no" ]; then
1904 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1905 CFG_JAVASCRIPTCORE_JIT="$VAL"
1911 if [ "$VAL" = "yes" ]; then
1912 OPT_CONFIRM_LICENSE="$VAL"
1918 if [ "$VAL" = "yes" ]; then
1924 sql-*|imageformat-*)
1925 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1926 # if autoconf style options were used, $VAL can be "yes" or "no"
1927 [ "$VAL" = "yes" ] && VAL=qt
1928 # now $VAL should be "no", "qt", or "plugin"... double-check
1929 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1932 # now $VAL is "no", "qt", or "plugin"
1934 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1935 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1937 # Grab the available values
1940 avail="$CFG_SQL_AVAILABLE"
1943 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1944 if [ "$OPT" != "plugin" ]; then
1945 # png is always built in
1951 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1955 # Check that that user's value is available.
1958 if [ "$VAL" = "$d" ]; then
1963 [ "$found" = yes ] || ERROR=yes
1965 if [ "$VAR" = "sql" ]; then
1966 # set the CFG_SQL_driver
1967 eval "CFG_SQL_$VAL=\$OPT"
1969 elif [ "$VAR" = "imageformat" ]; then
1970 [ "$OPT" = "qt" ] && OPT=yes
1971 VAL="`echo $VAL |tr a-z A-Z`"
1972 eval "CFG_$VAL=$OPT"
1976 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1977 if [ "$OPT" = "plugin" ]; then
1980 QMakeVar add "${VAR}s" "${VAL}"
1981 elif [ "$OPT" = "no" ]; then
1982 PLUG_VAR="${VAR}-plugin"
1984 QMakeVar del "${IN_VAR}s" "$VAL"
1985 QMakeVar del "${PLUG_VAR}s" "$VAL"
1987 if [ "$ERROR" = "yes" ]; then
1988 echo "$CURRENT_OPT: unknown argument"
1993 if [ "$VAL" = "yes" ]; then
1994 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1995 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1999 elif [ "$VAL" = "no" ]; then
2000 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
2001 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2010 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2017 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2024 DEFINES="$DEFINES \"$VAL\""
2025 D_FLAGS="$D_FLAGS -D\"$VAL\""
2028 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2031 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2034 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2037 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2040 if [ "$BUILD_ON_MAC" = "yes" ]; then
2041 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2042 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2048 if [ "$BUILD_ON_MAC" = "yes" ]; then
2049 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2055 W_FLAGS="$W_FLAGS \"${VAL}\""
2070 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2071 CFG_AUDIO_BACKEND="$VAL"
2077 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2084 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2085 CFG_FORCE_ASSERTS="$VAL"
2091 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2098 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2105 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2106 CFG_SYSTEM_PROXIES="$VAL"
2115 if [ "$UNKNOWN_OPT" = "yes" ]; then
2116 echo "${CURRENT_OPT}: invalid command-line switch"
2122 # update QT_CONFIG to show our current predefined configuration
2123 case "$CFG_QCONFIG" in
2124 minimal|small|medium|large|full)
2125 # these are a sequence of increasing functionality
2126 for c in minimal small medium large full; do
2127 QT_CONFIG="$QT_CONFIG $c-config"
2128 [ "$CFG_QCONFIG" = $c ] && break
2132 # not known to be sufficient for anything
2133 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2134 echo >&2 "Error: configuration file not found:"
2135 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2137 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2142 #-------------------------------------------------------------------------------
2143 # build tree initialization
2144 #-------------------------------------------------------------------------------
2146 # where to find which..
2147 unixtests="$relpath/config.tests/unix"
2148 mactests="$relpath/config.tests/mac"
2149 WHICH="$unixtests/which.test"
2151 PERL=`$WHICH perl 2>/dev/null`
2153 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2155 for e in gawk nawk awk; do
2156 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2163 PERL="/usr/bin/perl"
2164 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2168 ### skip this if the user just needs help...
2169 if [ "$OPT_HELP" != "yes" ]; then
2171 # is this a shadow build?
2172 if [ "$OPT_SHADOW" = "maybe" ]; then
2174 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2175 if [ -h "$outpath" ]; then
2176 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2182 if [ "$OPT_SHADOW" = "yes" ]; then
2183 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2184 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2185 echo >&2 "Cannot proceed."
2188 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2191 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2193 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2194 echo "Qt can be built in release mode with separate debug information, so"
2195 echo "-debug-and-release is not necessary anymore"
2199 if [ "$CFG_SILENT" = "yes" ]; then
2200 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2203 # if the source tree is different from the build tree,
2204 # symlink or copy part of the sources
2205 if [ "$OPT_SHADOW" = "yes" ]; then
2206 echo "Preparing build tree..."
2208 if [ -z "$PERL" ]; then
2210 echo "You need perl in your PATH to make a shadow build."
2211 echo "Cannot proceed."
2215 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2217 # make a syncqt script that can be used in the shadow
2218 rm -f "$outpath/bin/syncqt"
2219 if [ -x "$relpath/bin/syncqt" ]; then
2220 mkdir -p "$outpath/bin"
2221 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2222 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2223 chmod 755 "$outpath/bin/syncqt"
2226 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2227 rm -f "$outpath/bin/$i"
2228 if [ -x "$relpath/bin/$i" ]; then
2229 mkdir -p "$outpath/bin"
2230 echo "#!/bin/sh" >"$outpath/bin/$i"
2231 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2232 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2233 chmod 755 "$outpath/bin/$i"
2237 # save a pre-existing mkspecs/modules dir
2238 test -d "$outpath/mkspecs/modules" && \
2239 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2240 # ditto for mkspecs/modules-inst
2241 test -d "$outpath/mkspecs/modules-inst" && \
2242 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2244 # symlink the mkspecs directory
2245 mkdir -p "$outpath/mkspecs"
2246 rm -rf "$outpath"/mkspecs/*
2247 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2251 rm -rf "$outpath/mkspecs/$1"
2252 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2253 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2256 # Special case for mkspecs/features directory.
2257 # To be able to place .prf files into a shadow build directory,
2258 # we're creating links for files only. The directory structure is reproduced.
2259 ShadowMkspecs features
2261 # The modules dir is special, too.
2262 if test -d "$outpath/mkspecs-modules"; then
2263 rm -rf "$outpath/mkspecs/modules"
2264 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2266 ShadowMkspecs modules
2269 # The modules-inst dir is not quite as special, but still.
2270 if test -d "$outpath/mkspecs-modules-inst"; then
2271 rm -rf "$outpath/mkspecs/modules-inst"
2272 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2275 # Prepare doc directory
2276 mkdir -p "$outpath/doc"
2277 ln -f -s "$relpath"/doc/global "$outpath/doc"
2280 # symlink fonts to be able to run application from build directory
2281 if [ ! -d "${outpath}/lib/fonts" ]; then
2282 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2283 mkdir -p "${outpath}/lib"
2284 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2288 if [ "$OPT_FAST" = "auto" ]; then
2289 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2296 # find a make command
2297 if [ -z "$MAKE" ]; then
2299 for mk in gmake make; do
2300 if "$WHICH" $mk >/dev/null 2>&1; then
2305 if [ -z "$MAKE" ]; then
2306 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2307 echo >&2 "Cannot proceed."
2310 # export MAKE, we need it later in the config.tests
2316 #-------------------------------------------------------------------------------
2317 # auto-detect all that hasn't been specified in the arguments
2318 #-------------------------------------------------------------------------------
2320 if [ -z "$PLATFORM" ]; then
2322 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2324 OSX_VERSION=`uname -r | cut -d. -f1`
2325 # Select compiler. Use g++ unless we find a usable Clang version
2327 if [ "$OSX_VERSION" -ge 12 ]; then
2328 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2330 elif [ "$OSX_VERSION" -eq 11 ]; then
2331 # We're on Lion. Check if we have a supported Clang version
2332 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2334 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2340 #PLATFORM=aix-g++-64
2342 #PLATFORM=aix-xlc-64
2344 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2354 # PLATFORM=dynix-g++
2360 PLATFORM=freebsd-g++
2362 - Also available for FreeBSD: freebsd-icc
2366 PLATFORM=openbsd-g++
2377 #PLATFORM=irix-cc-64
2379 - Also available for IRIX: irix-g++ irix-cc-64
2383 case "$UNAME_MACHINE" in
2385 #PLATFORM=hpuxi-acc-32
2386 PLATFORM=hpuxi-acc-64
2388 - Also available for HP-UXi: hpuxi-acc-32
2394 #PLATFORM=hpux-acc-64
2396 #PLATFORM=hpux-acc-o64
2398 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2407 - Also available for Tru64: tru64-g++
2411 case "$UNAME_MACHINE" in
2413 PLATFORM=linux-g++-64
2420 - Also available for Linux: linux-kcc linux-icc linux-cxx
2424 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2425 PLATFORM="solaris-g++"
2427 #PLATFORM=solaris-g++
2429 #PLATFORM=solaris-cc64
2432 - Also available for Solaris: solaris-g++ solaris-cc-64
2435 ReliantUNIX-*:*|SINIX-*:*)
2436 PLATFORM=reliant-cds
2437 #PLATFORM=reliant-cds-64
2439 - Also available for Reliant UNIX: reliant-cds-64
2449 #PLATFORM=unixware-g++
2450 PLATFORM=unixware-cc
2452 - Also available for OpenUNIX: unixware-g++
2456 #PLATFORM=unixware-g++
2457 PLATFORM=unixware-cc
2459 - Also available for UnixWare: unixware-g++
2466 - Also available for SCO OpenServer: sco-g++
2470 PLATFORM=unixware-g++
2473 PLATFORM=unsupported/qnx-g++
2476 if [ "$OPT_HELP" != "yes" ]; then
2478 echo " The build script does not currently recognize all" >&2
2479 echo " platforms supported by Qt." >&2
2480 echo " Rerun this script with a -platform option listed to" >&2
2481 echo " set the system/compiler combination you use." >&2
2488 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2490 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2491 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2492 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2494 if [ -d "$PLATFORM" ]; then
2495 QMAKESPEC="$PLATFORM"
2497 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2499 if [ -d "$XPLATFORM" ]; then
2500 XQMAKESPEC="$XPLATFORM"
2502 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2504 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2505 QT_CROSS_COMPILE=yes
2506 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2507 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2510 if [ "$BUILD_ON_MAC" = "yes" ]; then
2511 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2513 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2514 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2515 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2516 echo " built with 'macx-g++'" >&2
2522 # check specified platforms are supported
2523 if [ '!' -d "$QMAKESPEC" ]; then
2525 echo " The specified system/compiler is not supported:"
2529 echo " Please see the README file for a complete list."
2533 if [ '!' -d "$XQMAKESPEC" ]; then
2535 echo " The specified system/compiler is not supported:"
2539 echo " Please see the README file for a complete list."
2543 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2545 echo " The specified system/compiler port is not complete:"
2547 echo " $XQMAKESPEC/qplatformdefs.h"
2549 echo " Please use the contact form at http://qt.digia.com/contact-us"
2554 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2555 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2556 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2557 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2558 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2562 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2563 case `basename "$XPLATFORM"` in
2566 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2568 echo "Please use the contact form at http://qt.digia.com/contact-us"
2569 echo "to upgrade your license to include this platform, or install"
2570 echo "the Qt Open Source Edition if you intend to develop free software."
2576 #-------------------------------------------------------------------------------
2577 # tests that don't need qmake (must be run before displaying help)
2578 #-------------------------------------------------------------------------------
2580 # detect build style
2581 if [ "$CFG_DEBUG" = "auto" ]; then
2582 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2583 CFG_DEBUG_RELEASE=yes
2585 elif [ "$CFG_DEV" = "yes" ]; then
2586 CFG_DEBUG_RELEASE=no
2589 CFG_DEBUG_RELEASE=no
2593 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2594 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2597 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2598 QT_CONFIG="$QT_CONFIG force_debug_info"
2601 # pass on $CFG_SDK to the arch/configure tests.
2602 if [ -n "$CFG_SDK" ]; then
2603 MAC_SDK_FLAG="-sdk $CFG_SDK"
2608 # find the default framework value
2609 if [ "$BUILD_ON_MAC" = "yes" ]; then
2610 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2611 CFG_FRAMEWORK="$CFG_SHARED"
2612 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2614 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2622 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2624 TEST_COMPILER=$QMAKE_CONF_COMPILER
2625 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2626 if [ -z "$TEST_COMPILER" ]; then
2627 echo "ERROR: Cannot set the compiler for the configuration tests"
2631 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2634 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2635 if [ -n "$GCC_MACHINE_DUMP" ]; then
2636 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2639 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2640 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2644 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2646 # auto-detect precompiled header support
2647 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2648 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2655 # auto-detect support for separate debug info in objcopy
2656 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2657 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2658 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2659 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2660 CFG_SEPARATE_DEBUG_INFO=no
2664 # binutils on HP-UX is buggy; default to no.
2665 CFG_SEPARATE_DEBUG_INFO=no
2668 CFG_SEPARATE_DEBUG_INFO=yes
2674 # auto-detect -fvisibility support
2675 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2676 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2677 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2678 echo "-reduce-exports was requested but this compiler does not support it"
2679 echo "Re-run configure with -v for more information"
2682 CFG_REDUCE_EXPORTS=no
2684 CFG_REDUCE_EXPORTS=yes
2688 # auto-detect -fstack-protector-strong support (for QNX only currently)
2689 if [ "$XPLATFORM_QNX" = "yes" ]; then
2690 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2691 CFG_STACK_PROTECTOR_STRONG=yes
2693 CFG_STACK_PROTECTOR_STRONG=no
2696 CFG_STACK_PROTECTOR_STRONG=no
2699 # detect the availability of the -Bsymbolic-functions linker optimization
2700 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2701 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2702 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2703 echo "-reduce-relocations was requested but this compiler does not support it"
2704 echo "Re-run configure with -v for more information"
2707 CFG_REDUCE_RELOCATIONS=no
2709 CFG_REDUCE_RELOCATIONS=yes
2713 # auto-detect GNU make support
2714 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2718 # find the default framework value
2719 if [ "$BUILD_ON_MAC" = "yes" ]; then
2720 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2721 CFG_FRAMEWORK="$CFG_SHARED"
2722 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2724 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2732 # auto-detect default include and library search paths
2733 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2734 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2735 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2736 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2737 /^End of search/ { yup=0 }
2738 yup { print substr($0, 2) }
2739 /^\#include </ { yup=1 }
2741 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2743 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2746 #setup the build parts
2747 if [ -z "$CFG_BUILD_PARTS" ]; then
2748 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2750 # build tests by default, if a developer build
2751 if [ "$CFG_DEV" = "yes" ]; then
2752 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2755 # don't build tools by default when cross-compiling
2756 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2757 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2760 for nobuild in $CFG_NOBUILD_PARTS; do
2761 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2763 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2765 # echo "WARNING: libs is a required part of the build."
2767 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2770 #-------------------------------------------------------------------------------
2771 # post process QT_INSTALL_* variables
2772 #-------------------------------------------------------------------------------
2774 if [ -z "$QT_INSTALL_PREFIX" ]; then
2775 if [ "$CFG_DEV" = "yes" ]; then
2776 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2778 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2781 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2783 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2784 QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2786 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2788 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2789 QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2791 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2793 if [ -z "$QT_INSTALL_ARCHDATA" ]; then #default
2794 QT_INSTALL_ARCHDATA="$QT_INSTALL_PREFIX" #fallback
2796 QT_INSTALL_ARCHDATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_ARCHDATA"`
2798 if [ -z "$QT_INSTALL_DATA" ]; then #default
2799 QT_INSTALL_DATA="$QT_INSTALL_PREFIX" #fallback
2801 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2803 if [ -z "$QT_INSTALL_BINS" ]; then #default
2804 QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2806 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2808 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2809 QT_INSTALL_DOCS="$QT_INSTALL_DATA/doc" #fallback
2811 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2813 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2814 QT_INSTALL_PLUGINS="$QT_INSTALL_ARCHDATA/plugins" #fallback
2816 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2818 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2819 QT_INSTALL_IMPORTS="$QT_INSTALL_ARCHDATA/imports" #fallback
2821 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2824 if [ -z "$QT_INSTALL_QML" ]; then #default
2825 QT_INSTALL_QML="$QT_INSTALL_ARCHDATA/qml" #fallback
2827 QT_INSTALL_QML=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_QML"`
2829 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2830 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_DATA/translations" #fallback
2832 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2834 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2835 if [ "$BUILD_ON_MAC" = "yes" ]; then
2836 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2838 QT_INSTALL_SETTINGS=/etc/xdg
2841 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2843 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2844 QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2846 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2849 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2850 QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2852 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2854 #------- host paths --------
2856 if [ -z "$QT_HOST_PREFIX" ]; then
2857 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2860 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2864 if [ -z "$QT_HOST_BINS" ]; then #default
2866 QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2868 QT_HOST_BINS="$QT_INSTALL_BINS"
2871 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2873 if [ -z "$QT_HOST_DATA" ]; then #default
2875 QT_HOST_DATA="$QT_HOST_PREFIX"
2877 QT_HOST_DATA="$QT_INSTALL_ARCHDATA"
2880 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2883 #-------------------------------------------------------------------------------
2884 # help - interactive parts of the script _after_ this section please
2885 #-------------------------------------------------------------------------------
2887 # next, emit a usage message if something failed.
2888 if [ "$OPT_HELP" = "yes" ]; then
2889 [ "x$ERROR" = "xyes" ] && echo
2890 if [ "$CFG_NIS" = "no" ]; then
2897 if [ "$CFG_CUPS" = "no" ]; then
2904 if [ "$CFG_ICONV" = "no" ]; then
2911 if [ "$CFG_LARGEFILE" = "no" ]; then
2918 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2926 if [ "$CFG_XCB" = "no" ]; then
2934 if [ "$CFG_EGLFS" = "no" ]; then
2942 if [ "$CFG_DIRECTFB" = "no" ]; then
2950 if [ "$CFG_LINUXFB" = "no" ]; then
2958 if [ "$CFG_KMS" = "no" ]; then
2966 if [ "$CFG_XINPUT2" = "no" ]; then
2974 if [ "$CFG_DBUS" = "no" ]; then
2982 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2990 if [ "$CFG_GLIB" = "no" ]; then
2999 Usage: $relconf [options]
3001 Installation options:
3003 These are optional, but you may specify install directories.
3005 -prefix <dir> ...... This will install everything relative to <dir>
3006 (default $QT_INSTALL_PREFIX)
3008 -hostprefix [dir] .. Tools and libraries needed when developing
3009 applications are installed in [dir]. If [dir] is
3010 not given, the current build directory will be used.
3013 You may use these to separate different parts of the install:
3015 -bindir <dir> ......... Executables will be installed to <dir>
3016 (default PREFIX/bin)
3017 -headerdir <dir> ...... Headers will be installed to <dir>
3018 (default PREFIX/include)
3019 -libdir <dir> ......... Libraries will be installed to <dir>
3020 (default PREFIX/lib)
3021 -archdatadir <dir>..... Arch-dependent data used by Qt will be installed to <dir>
3023 -plugindir <dir> ...... Plugins will be installed to <dir>
3024 (default ARCHDATADIR/plugins)
3025 -importdir <dir> ...... Imports for QML1 will be installed to <dir>
3026 (default ARCHDATADIR/imports)
3027 -qmldir <dir> ......... Imports for QML2 will be installed to <dir>
3028 (default ARCHDATADIR/qml)
3029 -datadir <dir> ........ Arch-independent data used by Qt will be installed to <dir>
3031 -docdir <dir> ......... Documentation will be installed to <dir>
3032 (default DATADIR/doc)
3033 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3034 (default DATADIR/translations)
3035 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3036 (default PREFIX/etc/settings)
3037 -examplesdir <dir> .... Examples will be installed to <dir>
3038 (default PREFIX/examples)
3039 -testsdir <dir> ....... Tests will be installed to <dir>
3040 (default PREFIX/tests)
3042 -hostbindir <dir> .. Host executables will be installed to <dir>
3043 (default HOSTPREFIX/bin)
3044 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3045 (default HOSTPREFIX)
3049 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3050 that needs to be evaluated. If the evaluation succeeds, the feature is
3051 included. Here is a short explanation of each option:
3053 * -release ........... Compile and link Qt with debugging turned off.
3054 -debug ............. Compile and link Qt with debugging turned on.
3055 -debug-and-release . Compile and link two versions of Qt, with and without
3056 debugging turned on (Mac only).
3058 -force-debug-info .. Create symbol files for release builds.
3060 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3062 -opensource ........ Compile and link the Open-Source Edition of Qt.
3063 -commercial ........ Compile and link the Commercial Edition of Qt.
3065 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3066 + -c++11 ............. Compile Qt with C++11 support enabled.
3068 * -shared ............ Create and use shared Qt libraries.
3069 -static ............ Create and use static Qt libraries.
3071 * -process ........... Generate only a top-level Makefile.
3072 -fully-process ..... Generate Makefiles for the entire Qt tree.
3073 -dont-process ...... Do not generate any Makefiles.
3075 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3077 -fast .............. Configure Qt quickly by generating Makefiles only for
3078 library and subdirectory targets. All other Makefiles
3079 are created as wrappers, which will in turn run qmake.
3081 -no-largefile ...... Disables large file support.
3082 + -largefile ......... Enables Qt to access files larger than 4 GB.
3084 -no-accessibility .. Do not compile Accessibility support.
3085 + -accessibility ..... Compile Accessibility support.
3087 -no-sql-<driver> ... Disable SQL <driver> entirely.
3088 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3090 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3093 Possible values for <driver>:
3094 [ $CFG_SQL_AVAILABLE ]
3096 -system-sqlite ..... Use sqlite from the operating system.
3098 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3099 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3101 -no-qml-debug ...... Do not build the in-process QML debugging support.
3102 + -qml-debug ......... Build the QML debugging support.
3104 -platform target ... The operating system and compiler you are building
3107 See the README file for a list of supported
3108 operating systems and compilers.
3110 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3111 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3112 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3113 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3114 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3115 -no-avx ............ Do not compile with use of AVX instructions.
3116 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3117 -no-neon ........... Do not compile with use of NEON instructions.
3118 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3119 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3121 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3122 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3124 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3126 -D <string> ........ Add an explicit define to the preprocessor.
3127 -I <string> ........ Add an explicit include path.
3128 -L <string> ........ Add an explicit library path.
3130 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3131 configure determines whether to use pkg-config or not with
3132 some heuristics such as checking the environment variables.
3133 -no-pkg-config ..... Disable use of pkg-config.
3134 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3135 detection heuristic).
3137 -help, -h .......... Display this information.
3139 Third Party Libraries:
3141 -qt-zlib ........... Use the zlib bundled with Qt.
3142 + -system-zlib ....... Use zlib from the operating system.
3143 See http://www.gzip.org/zlib
3145 -no-gif ............ Do not compile GIF reading support.
3147 -no-libpng ......... Do not compile PNG support.
3148 -qt-libpng ......... Use the libpng bundled with Qt.
3149 + -system-libpng ..... Use libpng from the operating system.
3150 See http://www.libpng.org/pub/png
3152 -no-libjpeg ........ Do not compile JPEG support.
3153 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3154 + -system-libjpeg .... Use libjpeg from the operating system.
3155 See http://www.ijg.org
3157 -no-openssl ........ Do not compile support for OpenSSL.
3158 + -openssl ........... Enable run-time OpenSSL support.
3159 -openssl-linked .... Enabled linked OpenSSL support.
3161 -qt-pcre ........... Use the PCRE library bundled with Qt.
3162 + -system-pcre ....... Use the PCRE library from the operating system.
3164 -qt-xcb ............ Use xcb- libraries bundled with Qt.
3165 (libxcb.so will still be used from operating system).
3166 + -system-xcb ........ Use xcb- libraries from the operating system.
3170 -make <part> ....... Add part to the list of parts to be built at make time.
3171 ($QT_DEFAULT_BUILD_PARTS)
3172 -nomake <part> ..... Exclude part from the list of parts to be built.
3174 -no-gui ............ Don't build the QtGui library and dependencies.
3175 + -gui ............... Build the QtGui library and dependencies.
3177 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3178 + -widgets ........... Build the QtWidgets library and dependencies.
3180 -R <string> ........ Add an explicit runtime library path to the Qt
3182 -l <string> ........ Add an explicit library.
3184 -no-rpath .......... Do not use the library install path as a runtime
3186 + -rpath ............. Link Qt libraries and executables using the library
3187 install path as a runtime library path. Equivalent
3188 to -R install_libpath
3190 -continue .......... Continue as far as possible if an error occurs.
3192 -verbose, -v ....... Print verbose information about each step of the
3195 -silent ............ Reduce the build output so that warnings and errors
3196 can be seen more easily.
3198 * -no-optimized-qmake ... Do not build qmake optimized.
3199 -optimized-qmake ...... Build qmake optimized.
3201 $NSN -no-nis ............ Do not compile NIS support.
3202 $NSY -nis ............... Compile NIS support.
3204 $CUN -no-cups ........... Do not compile CUPS support.
3205 $CUY -cups .............. Compile CUPS support.
3206 Requires cups/cups.h and libcups.so.2.
3208 $CIN -no-iconv .......... Do not compile support for iconv(3).
3209 $CIY -iconv ............. Compile support for iconv(3).
3211 -no-icu ............ Do not compile support for ICU libraries.
3212 + -icu ............... Compile support for ICU libraries.
3214 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3215 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3217 $PHN -no-pch ............ Do not use precompiled header support.
3218 $PHY -pch ............... Use precompiled header support.
3220 $DBN -no-dbus ........... Do not compile the QtDBus module.
3221 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3222 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3224 -reduce-relocations ..... Reduce relocations in the libraries through extra
3225 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3226 experimental; needs GNU ld >= 2.18).
3228 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3230 -device <name> ............... Cross-compile for device <name> (experimental)
3231 -device-option <key=value> ... Add device specific options for the device mkspec
3234 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3235 $SBY -separate-debug-info .... Strip debug information into a separate file.
3237 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3238 $XCBY -xcb ............... Compile Xcb support.
3240 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3241 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3243 $DFBN -no-directfb ....... Do not compile DirectFB support.
3244 $DFBY -directfb .......... Compile DirectFB support.
3246 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3247 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3249 $KMSN -no-kms ............ Do not compile KMS support.
3250 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3252 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3254 -xplatform target ... The target platform when cross-compiling.
3256 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3257 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3259 -no-feature-<feature> Do not compile in <feature>.
3260 -feature-<feature> .. Compile in <feature>. The available features
3261 are described in src/corelib/global/qfeatures.txt
3263 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3264 default ($CFG_QCONFIG).
3266 -no-opengl .......... Do not support OpenGL.
3267 -opengl <api> ....... Enable OpenGL support
3268 With no parameter, this will attempt to auto-detect
3269 OpenGL ES 2, or regular desktop OpenGL.
3270 Use es2 for <api> to override auto-detection.
3272 * -no-system-proxies .. Do not use system network proxies by default.
3273 -system-proxies ..... Use system network proxies by default.
3275 $GBN -no-glib ........... Do not compile Glib support.
3276 $GBY -glib .............. Compile Glib support.
3279 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3282 $X2N -no-xinput2......... Do not compile XInput2 support.
3283 $X2Y -xinput2............ Compile XInput2 support.
3289 if [ "$XPLATFORM_QNX" = "yes" ]; then
3292 -no-slog2 .......... Do not compile with slog2 support.
3293 -slog2 ............. Compile with slog2 support.
3299 if [ "$BUILD_ON_MAC" = "yes" ]; then
3304 -Fstring ........... Add an explicit framework path.
3305 -fw string ......... Add an explicit framework.
3307 * -framework ......... Build Qt as a series of frameworks and
3308 link tools against those frameworks.
3309 -no-framework ...... Do not build Qt as a series of frameworks.
3311 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3312 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3314 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3315 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3316 QT_ENABLE_HARFBUZZ environment variable.
3321 [ "x$ERROR" = "xyes" ] && exit 1
3326 # -----------------------------------------------------------------------------
3327 # LICENSING, INTERACTIVE PART
3328 # -----------------------------------------------------------------------------
3331 echo "This is the Qt ${EditionString} Edition."
3334 if [ "$Edition" = "OpenSource" ]; then
3336 echo "You are licensed to use this software under the terms of"
3337 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3338 if [ -f "$relpath/LICENSE.GPL3" ]; then
3339 echo "You are also licensed to use this software under the terms of"
3340 echo "the GNU General Public License (GPL) versions 3."
3346 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3347 echo "You have already accepted the terms of the $LicenseType license."
3350 if [ -f "$relpath/LICENSE.GPL3" ]; then
3351 echo "Type '3' to view the GNU General Public License version 3."
3353 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3354 echo "Type 'yes' to accept this license offer."
3355 echo "Type 'no' to decline this license offer."
3357 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3361 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3363 elif [ "$acceptance" = "no" ]; then
3364 echo "You are not licensed to use this software."
3367 elif [ "$acceptance" = "3" ]; then
3368 more "$relpath/LICENSE.GPL3"
3369 elif [ "$acceptance" = "L" ]; then
3370 more "$relpath/LICENSE.LGPL"
3373 elif [ "$Edition" = "Preview" ]; then
3374 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3377 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3378 echo "You have already accepted the terms of the $LicenseType license."
3381 echo "You are licensed to use this software under the terms of"
3382 echo "the $TheLicense"
3384 echo "Type '?' to read the Preview License."
3385 echo "Type 'yes' to accept this license offer."
3386 echo "Type 'no' to decline this license offer."
3388 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3392 if [ "$acceptance" = "yes" ]; then
3394 elif [ "$acceptance" = "no" ] ;then
3395 echo "You are not licensed to use this software."
3398 elif [ "$acceptance" = "?" ]; then
3399 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3402 elif [ "$Edition" != "OpenSource" ]; then
3403 if [ -n "$ExpiryDate" ]; then
3404 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3405 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3406 Today=`date +%Y%m%d`
3407 if [ "$Today" -gt "$ExpiryDate" ]; then
3408 case "$LicenseType" in
3409 Commercial|Academic|Educational)
3411 echo "WARNING WARNING WARNING WARNING"
3413 echo " Your support and upgrade period has expired."
3415 echo " You may continue to use your last licensed release"
3416 echo " of Qt under the terms of your existing license"
3417 echo " agreement. But you are not entitled to technical"
3418 echo " support, nor are you entitled to use any more recent"
3419 echo " Qt releases."
3421 echo " Please use the contact form at http://qt.digia.com/contact-us"
3422 echo " to renew your support and upgrades for this license."
3424 echo "WARNING WARNING WARNING WARNING"
3430 echo "NOTICE NOTICE NOTICE NOTICE"
3432 echo " Your Evaluation license has expired."
3434 echo " You are no longer licensed to use this software. Please"
3435 echo " use the contact form at http://qt.digia.com/contact-us to"
3436 echo " purchase license, or install the Qt Open Source Edition"
3437 echo " if you intend to develop free software."
3439 echo "NOTICE NOTICE NOTICE NOTICE"
3446 TheLicense=`head -n 1 "$outpath/LICENSE"`
3448 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3449 echo "You have already accepted the terms of the $TheLicense."
3452 echo "You are licensed to use this software under the terms of"
3453 echo "the $TheLicense."
3455 echo "Type '?' to view the $TheLicense."
3456 echo "Type 'yes' to accept this license offer."
3457 echo "Type 'no' to decline this license offer."
3459 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3463 if [ "$acceptance" = "yes" ]; then
3465 elif [ "$acceptance" = "no" ]; then
3466 echo "You are not licensed to use this software."
3469 else [ "$acceptance" = "?" ]
3470 more "$outpath/LICENSE"
3475 # this should be moved somewhere else
3478 AIX_VERSION=`uname -v`
3479 if [ "$AIX_VERSION" -lt "5" ]; then
3480 QMakeVar add QMAKE_LIBS_X11 -lbind
3487 #-------------------------------------------------------------------------------
3488 # generate qconfig.cpp
3489 #-------------------------------------------------------------------------------
3490 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3492 shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3493 shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3495 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3497 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3498 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3500 /* Installation date */
3501 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3503 /* Installation Info */
3504 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3505 "qt_prfxpath=$QT_INSTALL_PREFIX",
3506 "qt_docspath=$QT_INSTALL_DOCS",
3507 "qt_hdrspath=$QT_INSTALL_HEADERS",
3508 "qt_libspath=$QT_INSTALL_LIBS",
3509 "qt_binspath=$QT_INSTALL_BINS",
3510 "qt_plugpath=$QT_INSTALL_PLUGINS",
3511 "qt_impspath=$QT_INSTALL_IMPORTS",
3512 "qt_qml2path=$QT_INSTALL_QML",
3513 "qt_adatpath=$QT_INSTALL_ARCHDATA",
3514 "qt_datapath=$QT_INSTALL_DATA",
3515 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3516 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3517 "qt_tstspath=$QT_INSTALL_TESTS",
3518 #ifdef QT_BUILD_QMAKE
3519 "qt_ssrtpath=$CFG_SYSROOT",
3520 "qt_hpfxpath=$QT_HOST_PREFIX",
3521 "qt_hbinpath=$QT_HOST_BINS",
3522 "qt_hdatpath=$QT_HOST_DATA",
3523 "qt_targspec=$shortxspec",
3524 "qt_hostspec=$shortspec",
3527 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3530 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3532 /* strlen( "qt_lcnsxxxx" ) == 12 */
3533 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3534 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3536 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3539 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3540 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3541 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3543 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3544 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3545 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3548 # -----------------------------------------------------------------------------
3549 if [ "$LicenseType" = "Evaluation" ]; then
3550 EVALKEY=qt_qevalkey=$LicenseKeyExt
3551 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3552 EVALKEY=qt_qevalkey=
3555 if [ -n "$EVALKEY" ]; then
3556 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3557 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3558 /* Evaluation license key */
3559 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3561 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3565 # -----------------------------------------------------------------------------
3567 # -----------------------------------------------------------------------------
3570 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3571 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3574 # $1: input variable name (awk regexp)
3575 # $2: optional output variable name
3576 # $3: optional value transformation (sed command)
3577 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3578 # is where the resulting variable is written to
3579 setBootstrapVariable()
3581 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3585 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3586 echo "Creating qmake. Please wait..."
3588 mkdir -p "$outpath/qmake" || exit
3590 for mkfile in GNUmakefile Makefile; do
3593 in_mkfile="${mkfile}.in"
3594 if [ "$mkfile" = "Makefile" ]; then
3595 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3596 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3598 in_mkfile="${mkfile}.unix"
3600 in_mkfile="$relpath/qmake/$in_mkfile"
3601 mkfile="$outpath/qmake/$mkfile"
3602 if [ -f "$mkfile" ]; then
3603 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3606 [ -f "$in_mkfile" ] || continue
3608 echo "########################################################################" > "$mkfile"
3609 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3610 echo "########################################################################" >> "$mkfile"
3613 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3614 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3615 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3617 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3618 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3621 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3622 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3623 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3624 setBootstrapVariable QMAKE_CFLAGS
3625 setBootstrapVariable QMAKE_CXXFLAGS
3626 setBootstrapVariable QMAKE_LFLAGS
3628 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3629 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3630 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3632 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3633 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3634 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3635 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3636 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3637 elif [ "$CFG_DEBUG" = "yes" ]; then
3638 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3639 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3640 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3641 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3644 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3645 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3646 for rpath in $RPATH_FLAGS; do
3647 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3650 if [ "$BUILD_ON_MAC" = "yes" ]; then
3651 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3652 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3653 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3654 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3655 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3656 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3657 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3658 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3659 if [ '!' -z "$CFG_SDK" ]; then
3660 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3661 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3662 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3663 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3664 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3667 if [ '!' -z "$D_FLAGS" ]; then
3668 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3670 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3671 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3672 QMAKE_DATA_DIR="$QT_INSTALL_ARCHDATA"
3673 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3675 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3676 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3677 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3678 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3679 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3680 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3681 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3682 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3683 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3684 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3686 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3687 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3688 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3689 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3694 (cd "$outpath/qmake"; "$MAKE") || exit 2
3697 #-------------------------------------------------------------------------------
3698 # create a qt.conf for the Qt build tree itself
3699 #-------------------------------------------------------------------------------
3701 QTCONFFILE="$outpath/bin/qt.conf"
3702 cat > "$QTCONFFILE" <<EOF
3707 #-------------------------------------------------------------------------------
3708 # write out device config before we run the test.
3709 #-------------------------------------------------------------------------------
3710 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3711 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3712 rm -f "$DEVICE_VARS_FILE"
3714 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3715 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3718 #-------------------------------------------------------------------------------
3720 #-------------------------------------------------------------------------------
3721 if [ -z "$PKG_CONFIG" ]; then
3722 # See if PKG_CONFIG is set in the mkspec:
3723 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3725 if [ -z "$PKG_CONFIG" ]; then
3726 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3729 if [ "$CFG_PKGCONFIG" = "no" ]; then
3731 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3733 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3734 echo >&2 "a correctly setup pkg-config environment!"
3736 elif [ -n "$PKG_CONFIG" ]; then
3737 # found a pkg-config
3738 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3739 # when xcompiling, check environment to see if it's actually usable
3740 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3741 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3742 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3743 if [ -n "$GCC_MACHINE_DUMP" ]; then
3744 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3746 export PKG_CONFIG_LIBDIR
3747 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3748 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3749 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3750 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3751 echo >&2 "Set this variable to the directory that contains target .pc files"
3752 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3753 echo >&2 "use -force-pkg-config to override this test."
3757 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3760 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3761 if [ -n "$CFG_SYSROOT" ]; then
3762 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3763 export PKG_CONFIG_SYSROOT_DIR
3764 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3765 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3766 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3767 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3768 echo >&2 "or use -force-pkg-config to override this test."
3772 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3776 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3777 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3781 if [ -z "$PKG_CONFIG" ]; then
3782 QT_CONFIG="$QT_CONFIG no-pkg-config"
3785 #-------------------------------------------------------------------------------
3786 # tests that need qmake
3787 #-------------------------------------------------------------------------------
3789 # parameters: path, name, extra args
3792 path=config.tests/$1
3795 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3798 #-------------------------------------------------------------------------------
3799 # determine the target and host architectures
3800 #-------------------------------------------------------------------------------
3802 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3803 OUTFILE=$outpath/arch.result
3804 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3805 if [ $? -eq 0 ]; then
3806 eval `cat "$OUTFILE"`
3809 echo "Could not determine the target architecture!"
3810 echo "Turn on verbose messaging (-v) to see the final report."
3812 rm -f "$OUTFILE" 2>/dev/null
3813 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3815 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3816 # Do the same test again, using the host compiler
3817 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3818 if [ $? -eq 0 ]; then
3819 eval `cat "$OUTFILE"`
3822 echo "Could not determine the host architecture!"
3823 echo "Turn on verbose messaging (-v) to see the final report."
3825 rm -f "$OUTFILE" 2>/dev/null
3826 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3828 # not cross compiling, host == target
3829 CFG_HOST_ARCH="$CFG_ARCH"
3830 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3834 if [ "$OPT_VERBOSE" = "yes" ]; then
3835 echo "System architecture: '$CFG_ARCH'"
3836 echo "Host architecture: '$CFG_HOST_ARCH'"
3839 #-------------------------------------------------------------------------------
3840 # functionality tests
3841 #-------------------------------------------------------------------------------
3843 # Detect C++11 support
3844 if [ "$CFG_CXX11" != "no" ]; then
3845 if compileTest common/c++11 "C++11"; then
3847 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3848 echo "C++11 support cannot be enabled due to functionality tests!"
3849 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3850 echo " If you believe this message is in error you may use the continue"
3851 echo " switch (-continue) to $0 to continue."
3858 # detect availability of float math.h functions
3859 if compileTest unix/floatmath "floatmath"; then
3860 CFG_USE_FLOATMATH=yes
3862 CFG_USE_FLOATMATH=no
3865 # detect sse2 support
3866 if [ "${CFG_SSE2}" = "auto" ]; then
3867 if compileTest common/sse2 "sse2"; then
3874 # detect sse3 support
3875 if [ "${CFG_SSE3}" = "auto" ]; then
3876 if compileTest common/sse3 "sse3"; then
3883 # detect ssse3 support
3884 if [ "${CFG_SSSE3}" = "auto" ]; then
3885 if compileTest common/ssse3 "ssse3"; then
3892 # detect sse4.1 support
3893 if [ "${CFG_SSE4_1}" = "auto" ]; then
3894 if compileTest common/sse4_1 "sse4_1"; then
3901 # detect sse4.2 support
3902 if [ "${CFG_SSE4_2}" = "auto" ]; then
3903 if compileTest common/sse4_2 "sse4_2"; then
3910 # detect avx support
3911 if [ "${CFG_AVX}" = "auto" ]; then
3912 if compileTest common/avx "avx"; then
3913 case "$XQMAKESPEC" in
3915 # Some clang versions produce internal compiler errors compiling Qt AVX code
3916 case `$TEST_COMPILER --version` in
3917 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3919 if [ "$OPT_VERBOSE" = "yes" ]; then
3920 echo 'AVX support disabled for blacklisted clang compiler'
3937 # detect avx2 support
3938 if [ "${CFG_AVX}" = "no" ]; then
3941 if [ "${CFG_AVX2}" = "auto" ]; then
3942 if compileTest common/avx2 "avx2"; then
3949 # check iWMMXt support
3950 if [ "$CFG_IWMMXT" = "yes" ]; then
3951 compileTest unix/iwmmxt "iwmmxt"
3952 if [ $? != "0" ]; then
3953 echo "The iWMMXt functionality test failed!"
3954 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3959 # detect neon support
3960 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3961 if compileTest unix/neon "neon"; then
3966 elif [ "$CFG_ARCH" != "arm" ]; then
3970 # detect mips_dsp support
3971 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3972 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
3977 elif [ "$CFG_ARCH" != "mips" ]; then
3981 # detect mips_dspr2 support
3982 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3983 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
3988 elif [ "$CFG_ARCH" != "mips" ]; then
3992 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3995 if [ "$CFG_ZLIB" = "no" ]; then
3996 # Note: Qt no longer support builds without zlib
3997 # So we force a "no" to be "auto" here.
3998 # If you REALLY really need no zlib support, you can still disable
3999 # it by doing the following:
4000 # add "no-zlib" to mkspecs/qconfig.pri
4001 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4003 # There's no guarantee that Qt will build under those conditions
4009 if [ "$XPLATFORM_QNX" = "yes" ]; then
4010 if [ "$CFG_SLOG2" != "no" ]; then
4011 if compileTest unix/slog2 "slog2"; then
4013 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4020 if [ "$CFG_ZLIB" = "auto" ]; then
4021 if compileTest unix/zlib "zlib"; then
4028 if [ "$CFG_LARGEFILE" = "auto" ]; then
4029 #Large files should be enabled for all Linux systems
4033 if [ "$CFG_GUI" = "no" ]; then
4034 QPA_PLATFORM_GUARD=no
4037 # detect how jpeg should be built
4038 if [ "$CFG_JPEG" = "auto" ]; then
4039 if [ "$CFG_SHARED" = "yes" ]; then
4046 if [ "$CFG_LIBJPEG" = "auto" ]; then
4047 if compileTest unix/libjpeg "libjpeg"; then
4054 # detect how gif should be built
4055 if [ "$CFG_GIF" = "auto" ]; then
4056 if [ "$CFG_SHARED" = "yes" ]; then
4064 if [ "$CFG_LIBPNG" = "auto" ]; then
4065 if compileTest unix/libpng "libpng"; then
4072 if [ "$CFG_EGLFS" = "yes" ]; then
4073 if [ "$CFG_EGL" = "no" ]; then
4074 echo "The EGLFS plugin requires EGL support and cannot be built"
4077 if [ "$CFG_OPENGL" != "es2" ]; then
4078 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4085 if [ "$CFG_KMS" = "yes" ]; then
4086 if [ "$CFG_EGL" = "no" ]; then
4087 echo "The KMS plugin requires EGL support and cannot be built"
4090 if [ "$CFG_OPENGL" != "es2" ]; then
4091 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4096 # auto-detect SQL-modules support
4097 for _SQLDR in $CFG_SQL_AVAILABLE; do
4100 if [ "$CFG_SQL_mysql" != "no" ]; then
4101 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4102 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4103 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4104 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4105 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4106 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4107 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4109 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4110 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4111 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4112 echo " You need MySql 4 or higher."
4113 echo " If you believe this message is in error you may use the continue"
4114 echo " switch (-continue) to $0 to continue."
4119 QT_LFLAGS_MYSQL_R=""
4123 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4124 QMakeVar add CONFIG use_libmysqlclient_r
4125 if [ "$CFG_SQL_mysql" = "auto" ]; then
4126 CFG_SQL_mysql=plugin
4128 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4129 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4130 if [ "$CFG_SQL_mysql" = "auto" ]; then
4131 CFG_SQL_mysql=plugin
4134 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4135 echo "MySQL support cannot be enabled due to functionality tests!"
4136 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4137 echo " If you believe this message is in error you may use the continue"
4138 echo " switch (-continue) to $0 to continue."
4143 QT_LFLAGS_MYSQL_R=""
4151 if [ "$CFG_SQL_psql" != "no" ]; then
4152 # Be careful not to use native pg_config when cross building.
4153 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4154 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4155 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4157 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4158 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4159 # But, respect PSQL_LIBS if set
4160 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4161 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4162 if [ "$CFG_SQL_psql" = "auto" ]; then
4166 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4167 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4168 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4169 echo " If you believe this message is in error you may use the continue"
4170 echo " switch (-continue) to $0 to continue."
4181 if [ "$CFG_SQL_odbc" != "no" ]; then
4182 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4183 if [ "$CFG_SQL_odbc" = "auto" ]; then
4187 if compileTest unix/iodbc "iODBC"; then
4188 QT_LFLAGS_ODBC="-liodbc"
4189 if [ "$CFG_SQL_odbc" = "auto" ]; then
4193 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4194 echo "ODBC support cannot be enabled due to functionality tests!"
4195 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4196 echo " If you believe this message is in error you may use the continue"
4197 echo " switch (-continue) to $0 to continue."
4207 if [ "$CFG_SQL_oci" != "no" ]; then
4208 if compileTest unix/oci "OCI"; then
4209 if [ "$CFG_SQL_oci" = "auto" ]; then
4213 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4214 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4215 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4216 echo " If you believe this message is in error you may use the continue"
4217 echo " switch (-continue) to $0 to continue."
4226 if [ "$CFG_SQL_tds" != "no" ]; then
4227 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4228 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4229 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4230 if [ "$CFG_SQL_tds" = "auto" ]; then
4234 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4235 echo "TDS support cannot be enabled due to functionality tests!"
4236 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4237 echo " If you believe this message is in error you may use the continue"
4238 echo " switch (-continue) to $0 to continue."
4247 if [ "$CFG_SQL_db2" != "no" ]; then
4248 if compileTest unix/db2 "DB2"; then
4249 if [ "$CFG_SQL_db2" = "auto" ]; then
4253 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4254 echo "ODBC support cannot be enabled due to functionality tests!"
4255 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4256 echo " If you believe this message is in error you may use the continue"
4257 echo " switch (-continue) to $0 to continue."
4266 if [ "$CFG_SQL_ibase" != "no" ]; then
4267 if compileTest unix/ibase "InterBase"; then
4268 if [ "$CFG_SQL_ibase" = "auto" ]; then
4269 CFG_SQL_ibase=plugin
4272 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4273 echo "InterBase support cannot be enabled due to functionality tests!"
4274 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4275 echo " If you believe this message is in error you may use the continue"
4276 echo " switch (-continue) to $0 to continue."
4285 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4286 if compileTest unix/sqlite2 "SQLite2"; then
4287 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4288 CFG_SQL_sqlite2=plugin
4291 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4292 echo "SQLite2 support cannot be enabled due to functionality tests!"
4293 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4294 echo " If you believe this message is in error you may use the continue"
4295 echo " switch (-continue) to $0 to continue."
4304 if [ "$CFG_SQL_sqlite" != "no" ]; then
4305 SQLITE_AUTODETECT_FAILED="no"
4306 if [ "$CFG_SQLITE" = "system" ]; then
4307 if [ -n "$PKG_CONFIG" ]; then
4308 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4309 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4312 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4314 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4315 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4316 CFG_SQL_sqlite=plugin
4318 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4320 SQLITE_AUTODETECT_FAILED="yes"
4323 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4324 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4325 CFG_SQL_sqlite=plugin
4328 SQLITE_AUTODETECT_FAILED="yes"
4332 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4333 echo "SQLite support cannot be enabled due to functionality tests!"
4334 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4335 echo " If you believe this message is in error you may use the continue"
4336 echo " switch (-continue) to $0 to continue."
4342 if [ "$OPT_VERBOSE" = "yes" ]; then
4343 echo "unknown SQL driver: $_SQLDR"
4349 # auto-detect NIS support
4350 if [ "$CFG_NIS" != "no" ]; then
4351 if compileTest unix/nis "NIS"; then
4354 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4355 echo "NIS support cannot be enabled due to functionality tests!"
4356 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4357 echo " If you believe this message is in error you may use the continue"
4358 echo " switch (-continue) to $0 to continue."
4366 # auto-detect CUPS support
4367 if [ "$CFG_CUPS" != "no" ]; then
4368 if compileTest unix/cups "Cups"; then
4371 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4372 echo "Cups support cannot be enabled due to functionality tests!"
4373 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4374 echo " If you believe this message is in error you may use the continue"
4375 echo " switch (-continue) to $0 to continue."
4383 # auto-detect iconv(3) support
4384 if [ "$CFG_ICONV" != "no" ]; then
4385 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4387 elif compileTest unix/iconv "POSIX iconv"; then
4389 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4391 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4394 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4395 echo "Iconv support cannot be enabled due to functionality tests!"
4396 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4397 echo " If you believe this message is in error you may use the continue"
4398 echo " switch (-continue) to $0 to continue."
4406 # auto-detect libdbus-1 support
4407 if [ "$CFG_DBUS" != "no" ]; then
4408 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4409 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4410 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4412 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4413 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4414 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4415 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4417 if [ "$CFG_DBUS" = "auto" ]; then
4419 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4420 # CFG_DBUS is "yes" or "linked" here
4422 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4423 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4424 echo " If you believe this message is in error you may use the continue"
4425 echo " switch (-continue) to $0 to continue."
4431 # auto-detect Glib support
4432 if [ "$CFG_GLIB" != "no" ]; then
4433 if [ -n "$PKG_CONFIG" ]; then
4434 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4435 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4437 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4439 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4440 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4442 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4443 echo "Glib support cannot be enabled due to functionality tests!"
4444 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4445 echo " If you believe this message is in error you may use the continue"
4446 echo " switch (-continue) to $0 to continue."
4454 # auto-detect GTK style support
4455 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4456 if [ -n "$PKG_CONFIG" ]; then
4457 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4458 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4460 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4462 QT_CONFIG="$QT_CONFIG gtkstyle"
4463 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4464 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4466 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4467 echo "Gtk theme support cannot be enabled due to functionality tests!"
4468 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4469 echo " If you believe this message is in error you may use the continue"
4470 echo " switch (-continue) to $0 to continue."
4476 elif [ "$CFG_GLIB" = "no" ]; then
4481 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4482 if [ -n "$PKG_CONFIG" ]; then
4483 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4484 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4486 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4488 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4489 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4491 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4492 echo "Gstreamer support cannot be enabled due to functionality tests!"
4493 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4494 echo " If you believe this message is in error you may use the continue"
4495 echo " switch (-continue) to $0 to continue."
4501 elif [ "$CFG_GLIB" = "no" ]; then
4505 # auto-detect libicu support
4506 if [ "$CFG_ICU" != "no" ]; then
4507 if compileTest unix/icu "ICU"; then
4508 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4510 if [ "$CFG_ICU" = "auto" ]; then
4512 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4515 echo "The ICU library support cannot be enabled."
4516 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4517 echo " If you believe this message is in error you may use the continue"
4518 echo " switch (-continue) to $0 to continue."
4524 # Auto-detect PulseAudio support
4525 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4526 if [ -n "$PKG_CONFIG" ]; then
4527 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4528 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4530 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4532 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4533 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4535 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4536 echo "PulseAudio support cannot be enabled due to functionality tests!"
4537 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4538 echo " If you believe this message is in error you may use the continue"
4539 echo " switch (-continue) to $0 to continue."
4548 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4549 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4550 if [ "$CFG_GUI" = "no" ]; then
4551 if [ "$CFG_OPENGL" = "auto" ]; then
4554 if [ "$CFG_OPENGL" != "no" ]; then
4555 echo "OpenGL enabled, but GUI disabled."
4556 echo " You might need to either enable the GUI or disable OpenGL"
4560 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4561 if compileTest x11/opengl "OpenGL"; then
4563 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4566 if [ "$CFG_OPENGL" = "yes" ]; then
4567 echo "All the OpenGL functionality tests failed!"
4568 echo " You might need to modify the include and library search paths by editing"
4569 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4570 echo " ${XQMAKESPEC}."
4577 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4578 if [ "$CFG_OPENGL" = "desktop" ]; then
4579 compileTest x11/glxfbconfig "OpenGL"
4580 if [ $? != "0" ]; then
4581 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4588 elif [ "$CFG_OPENGL" = "es2" ]; then
4590 compileTest unix/opengles2 "OpenGL ES 2.x"
4591 if [ $? != "0" ]; then
4592 echo "The OpenGL ES 2.0 functionality test failed!"
4593 echo " You might need to modify the include and library search paths by editing"
4594 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4595 echo " ${XQMAKESPEC}."
4598 elif [ "$CFG_OPENGL" = "desktop" ]; then
4599 # Desktop OpenGL support
4600 compileTest x11/opengl "OpenGL"
4601 if [ $? != "0" ]; then
4602 echo "The OpenGL functionality test failed!"
4603 echo " You might need to modify the include and library search paths by editing"
4604 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4605 echo " ${XQMAKESPEC}."
4610 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4611 compileTest x11/glxfbconfig "OpenGL"
4612 if [ $? != "0" ]; then
4613 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4620 fi # X11/MINGW OpenGL
4622 if [ "$BUILD_ON_MAC" = "yes" ]; then
4623 if [ "$CFG_COREWLAN" = "auto" ]; then
4624 if compileTest mac/corewlan "CoreWlan"; then
4632 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4633 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4634 if compileTest unix/opengldesktop "OpenGL"; then
4636 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4639 if [ "$CFG_OPENGL" = "yes" ]; then
4640 echo "All the OpenGL functionality tests failed!"
4641 echo " You might need to modify the include and library search paths by editing"
4642 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4643 echo " ${XQMAKESPEC}."
4648 elif [ "$CFG_OPENGL" = "es2" ]; then
4650 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4651 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4652 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4653 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4654 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4655 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4656 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4657 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4660 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4661 if [ $? != "0" ]; then
4662 echo "The OpenGL ES 2.0 functionality test failed!"
4663 echo " You might need to modify the include and library search paths by editing"
4664 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4665 echo " ${XQMAKESPEC}."
4668 elif [ "$CFG_OPENGL" = "desktop" ]; then
4669 # Desktop OpenGL support
4670 compileTest unix/opengldesktop "OpenGL"
4671 if [ $? != "0" ]; then
4672 echo "The OpenGL functionality test failed!"
4673 echo " You might need to modify the include and library search paths by editing"
4674 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4675 echo " ${XQMAKESPEC}."
4680 # auto-detect FontConfig support
4681 if [ "$CFG_FONTCONFIG" != "no" ]; then
4682 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4683 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4684 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4686 QT_CFLAGS_FONTCONFIG=
4687 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4689 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4690 QT_CONFIG="$QT_CONFIG fontconfig"
4691 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4692 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4694 CFG_LIBFREETYPE=system
4701 # Save these for a check later
4702 ORIG_CFG_XCB="$CFG_XCB"
4703 ORIG_CFG_EGLFS="$CFG_EGLFS"
4704 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4705 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4706 ORIG_CFG_KMS="$CFG_KMS"
4708 if [ "$CFG_LIBUDEV" != "no" ]; then
4709 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4710 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4711 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4712 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4713 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4715 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4717 QT_CONFIG="$QT_CONFIG libudev"
4718 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4719 echo "The libudev functionality test failed!"
4725 if [ "$CFG_LIBUDEV" = "no" ]; then
4726 QMakeVar add DEFINES QT_NO_LIBUDEV
4729 if [ "$CFG_EVDEV" != "no" ]; then
4730 if compileTest unix/evdev "evdev"; then
4732 QT_CONFIG="$QT_CONFIG evdev"
4733 elif [ "$CFG_EVDEV" = "yes" ]; then
4734 echo "The evdev functionality test failed!"
4740 if [ "$CFG_EVDEV" = "no" ]; then
4741 QMakeVar add DEFINES QT_NO_EVDEV
4744 # Check we actually have X11 :-)
4745 if compileTest x11/xlib "XLib"; then
4746 QT_CONFIG="$QT_CONFIG xlib"
4749 # auto-detect Xrender support
4750 if [ "$CFG_XRENDER" != "no" ]; then
4751 if compileTest x11/xrender "Xrender"; then
4753 QT_CONFIG="$QT_CONFIG xrender"
4755 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4756 echo "Xrender support cannot be enabled due to functionality tests!"
4757 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4758 echo " If you believe this message is in error you may use the continue"
4759 echo " switch (-continue) to $0 to continue."
4767 if [ "$CFG_XCB" != "no" ]; then
4768 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4769 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4770 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4772 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4774 if [ "$CFG_XCB" = "qt" ]; then
4775 QT_CONFIG="$QT_CONFIG xcb-qt"
4779 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4780 XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm"
4781 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
4782 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
4785 if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4786 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4787 QT_CONFIG="$QT_CONFIG xcb-render"
4790 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4792 QT_CONFIG="$QT_CONFIG xcb-glx"
4795 echo "The test for linking against libxcb and support libraries failed!"
4796 echo " You might need install dependency packages, or pass -qt-xcb."
4797 echo " See src/plugins/platforms/xcb/README."
4802 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4803 QT_CONFIG="$QT_CONFIG xcb-xlib"
4806 # auto-detect XInput2 support. Needed by xcb too.
4807 if [ "$CFG_XINPUT2" != "no" ]; then
4808 if compileTest x11/xinput2 "XInput2"; then
4812 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4813 echo "XInput2 support cannot be enabled due to functionality tests!"
4814 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4815 echo " If you believe this message is in error you may use the continue"
4816 echo " switch (-continue) to $0 to continue."
4824 if [ "$CFG_XCB" != "auto" ]; then
4825 echo "The test for linking against libxcb failed!"
4826 echo " You might need to install dependency packages for libxcb."
4827 echo " See src/plugins/platforms/xcb/README."
4833 if [ "$CFG_XCB" = "no" ]; then
4834 QMakeVar add DEFINES QT_NO_XCB
4837 if [ "$CFG_DIRECTFB" != "no" ]; then
4838 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4839 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4840 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4841 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4843 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4844 echo " DirectFB support cannot be enabled due to functionality tests!"
4845 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4846 echo " If you believe this message is in error you may use the continue"
4847 echo " switch (-continue) to $0 to continue."
4857 if [ "$CFG_LINUXFB" != "no" ]; then
4858 if compileTest qpa/linuxfb "LinuxFB"; then
4860 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4861 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4862 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4863 echo " If you believe this message is in error you may use the continue"
4864 echo " switch (-continue) to $0 to continue."
4871 if [ "$CFG_KMS" != "no" ]; then
4872 if compileTest qpa/kms "KMS"; then
4874 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4875 echo " KMS support cannot be enabled due to functionality tests!"
4876 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4877 echo " If you believe this message is in error you may use the continue"
4878 echo " switch (-continue) to $0 to continue."
4885 # Detect libxkbcommon
4886 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4887 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4888 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4889 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4890 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4892 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4896 if [ "$CFG_EGL" != "no" ]; then
4897 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4898 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4899 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4900 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4901 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4902 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4903 fi # detect EGL support
4904 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4906 elif [ "$CFG_EGL" = "yes" ]; then
4907 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4908 echo " You might need to modify the include and library search paths by editing"
4909 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4914 elif [ "$CFG_OPENGL" = "desktop" ]; then
4915 if [ "$CFG_EGL" = "yes" ]; then
4916 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4917 echo "Either disable EGL support or enable OpenGL ES support."
4923 if [ "$CFG_EGLFS" != "no" ]; then
4924 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4925 CFG_EGLFS="$CFG_EGL"
4931 if [ "$CFG_KMS" = "yes" ]; then
4932 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4939 # Detect accessibility support
4940 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4941 if [ "$CFG_XCB" = "no" ]; then
4942 CFG_ACCESSIBILITY=yes
4944 # linux/xcb accessibility needs dbus
4945 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ]; then
4946 CFG_ACCESSIBILITY=yes
4948 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4949 CFG_ACCESSIBILITY=no
4951 echo "Accessibility support needs DBus."
4958 # Determine the default QPA platform
4959 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4961 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4962 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4963 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4964 QT_QPA_DEFAULT_PLATFORM="windows"
4965 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4966 QT_QPA_DEFAULT_PLATFORM="cocoa"
4967 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4968 QT_QPA_DEFAULT_PLATFORM="qnx"
4970 QT_QPA_DEFAULT_PLATFORM="xcb"
4975 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4976 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4977 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4978 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4980 if [ "$CFG_DIRECTFB" = "yes" ]; then
4981 QT_CONFIG="$QT_CONFIG directfb"
4982 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4983 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4985 if [ "$CFG_LINUXFB" = "yes" ]; then
4986 QT_CONFIG="$QT_CONFIG linuxfb"
4988 if [ "$CFG_KMS" = "yes" ]; then
4989 QT_CONFIG="$QT_CONFIG kms"
4992 if [ "$BUILD_ON_MAC" = "yes" ]; then
4993 if compileTest mac/coreservices "CoreServices"; then
4994 QT_CONFIG="$QT_CONFIG coreservices"
4996 QMakeVar add DEFINES QT_NO_CORESERVICES
5000 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5001 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5002 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5003 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5004 echo "No QPA platform plugin enabled!"
5005 echo " If you really want to build without a QPA platform plugin you must pass"
5006 echo " -no-qpa-platform-guard to configure. Doing this will"
5007 echo " produce a Qt that can not run GUI applications."
5008 echo " The dependencies needed for xcb to build are listed in"
5009 echo " src/plugins/platforms/xcb/README"
5016 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5017 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5018 if compileTest unix/freetype "FreeType"; then
5019 CFG_LIBFREETYPE=system
5025 if ! compileTest unix/stl "STL" &&
5026 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5027 echo "STL functionality check failed! Cannot build Qt with this STL library."
5028 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5033 # detect POSIX clock_gettime()
5034 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5035 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5036 CFG_CLOCK_GETTIME=yes
5038 CFG_CLOCK_GETTIME=no
5042 # detect POSIX monotonic clocks
5043 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5044 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5045 CFG_CLOCK_MONOTONIC=yes
5047 CFG_CLOCK_MONOTONIC=no
5049 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5050 CFG_CLOCK_MONOTONIC=no
5054 if [ "$CFG_MREMAP" = "auto" ]; then
5055 if compileTest unix/mremap "mremap"; then
5062 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5063 if [ "$CFG_GETADDRINFO" != "no" ]; then
5064 if compileTest unix/getaddrinfo "getaddrinfo"; then
5067 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5068 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5069 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5070 echo " If you believe this message is in error you may use the continue"
5071 echo " switch (-continue) to $0 to continue."
5079 # find if the platform provides inotify
5080 if [ "$CFG_INOTIFY" != "no" ]; then
5081 if compileTest unix/inotify "inotify"; then
5084 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5085 echo "inotify support cannot be enabled due to functionality tests!"
5086 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5087 echo " If you believe this message is in error you may use the continue"
5088 echo " switch (-continue) to $0 to continue."
5096 # find if the platform provides if_nametoindex (ipv6 interface name support)
5097 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5098 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5101 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5102 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5103 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5104 echo " If you believe this message is in error you may use the continue"
5105 echo " switch (-continue) to $0 to continue."
5113 # find if the platform provides getifaddrs (network interface enumeration)
5114 if [ "$CFG_GETIFADDRS" != "no" ]; then
5115 if compileTest unix/getifaddrs "getifaddrs"; then
5118 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5119 echo "getifaddrs support cannot be enabled due to functionality tests!"
5120 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5121 echo " If you believe this message is in error you may use the continue"
5122 echo " switch (-continue) to $0 to continue."
5131 if [ "$CFG_OPENSSL" != "no" ]; then
5132 if compileTest unix/openssl "OpenSSL"; then
5133 if [ "$CFG_OPENSSL" = "auto" ]; then
5137 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5138 echo "OpenSSL support cannot be enabled due to functionality tests!"
5139 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5140 echo " If you believe this message is in error you may use the continue"
5141 echo " switch (-continue) to $0 to continue."
5150 if [ "$CFG_PCRE" != "qt" ]; then
5151 if compileTest unix/pcre "PCRE"; then
5154 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5155 echo "PCRE support cannot be enabled due to functionality tests!"
5156 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5157 echo " If you believe this message is in error you may use the continue"
5158 echo " switch (-continue) to $0 to continue."
5166 # detect OpenVG support
5167 if [ "$CFG_OPENVG" != "no" ]; then
5168 if compileTest unix/openvg "OpenVG"; then
5169 if [ "$CFG_OPENVG" = "auto" ]; then
5172 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5173 if [ "$CFG_OPENVG" = "auto" ]; then
5176 CFG_OPENVG_ON_OPENGL=yes
5177 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5178 if [ "$CFG_OPENVG" = "auto" ]; then
5181 CFG_OPENVG_LC_INCLUDES=yes
5182 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5183 if [ "$CFG_OPENVG" = "auto" ]; then
5186 CFG_OPENVG_LC_INCLUDES=yes
5187 CFG_OPENVG_ON_OPENGL=yes
5189 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5190 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5191 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5192 echo " If you believe this message is in error you may use the continue"
5193 echo " switch (-continue) to $0 to continue."
5199 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5200 CFG_OPENVG_SHIVA=yes
5204 if [ "$CFG_ALSA" = "auto" ]; then
5205 if compileTest unix/alsa "alsa"; then
5212 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5213 if [ "$CFG_ARCH" = "arm" ]; then
5214 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5215 if [ $? != "0" ]; then
5216 CFG_JAVASCRIPTCORE_JIT=no
5219 case "$XPLATFORM" in
5221 CFG_JAVASCRIPTCORE_JIT=no
5227 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5228 QMakeVar set JAVASCRIPTCORE_JIT yes
5229 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5230 QMakeVar set JAVASCRIPTCORE_JIT no
5233 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5234 CFG_AUDIO_BACKEND=yes
5237 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5238 echo "Warning: largefile support cannot be disabled for win32."
5242 #-------------------------------------------------------------------------------
5243 # ask for all that hasn't been auto-detected or specified in the arguments
5244 #-------------------------------------------------------------------------------
5246 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5248 # disable accessibility
5249 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5250 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5252 QT_CONFIG="$QT_CONFIG accessibility"
5256 if [ "$CFG_EGL" = "yes" ]; then
5257 QT_CONFIG="$QT_CONFIG egl"
5259 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5263 if [ "$CFG_EGLFS" = "yes" ]; then
5264 QT_CONFIG="$QT_CONFIG eglfs"
5266 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5270 if [ "$CFG_OPENVG" = "no" ]; then
5271 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5273 QT_CONFIG="$QT_CONFIG openvg"
5274 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5275 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5277 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5278 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5280 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5281 QT_CONFIG="$QT_CONFIG shivavg"
5282 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5287 if [ "$CFG_OPENGL" = "no" ]; then
5288 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5290 QT_CONFIG="$QT_CONFIG opengl"
5293 if [ "$CFG_OPENGL" = "es2" ]; then
5294 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5297 if [ "$CFG_OPENGL" = "es2" ]; then
5298 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5299 QT_CONFIG="$QT_CONFIG opengles2"
5302 # build up the variables for output
5303 if [ "$CFG_DEBUG" = "yes" ]; then
5304 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5305 elif [ "$CFG_DEBUG" = "no" ]; then
5306 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5308 if [ "$CFG_SHARED" = "yes" ]; then
5309 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5310 QT_CONFIG="$QT_CONFIG shared"
5311 elif [ "$CFG_SHARED" = "no" ]; then
5312 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5313 QT_CONFIG="$QT_CONFIG static"
5316 #FIXME: qpa is implicit this should all be removed
5317 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5318 QT_CONFIG="$QT_CONFIG qpa"
5319 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5320 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5322 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5323 # Do not set this here for Windows. Let qmake do it so
5324 # debug and release precompiled headers are kept separate.
5325 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5327 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5328 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5329 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5330 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5331 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5332 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5334 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5335 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5337 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5338 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5339 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5340 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5341 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5342 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5343 QMakeVar add QMAKE_CFLAGS -g
5344 QMakeVar add QMAKE_CXXFLAGS -g
5345 QT_CONFIG="$QT_CONFIG separate_debug_info"
5347 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5348 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5350 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5351 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5352 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5353 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5354 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5355 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5356 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5357 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5358 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5359 if [ "$CFG_ARCH" = "mips" ]; then
5360 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5361 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5363 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5364 QT_CONFIG="$QT_CONFIG clock-gettime"
5366 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5367 QT_CONFIG="$QT_CONFIG clock-monotonic"
5369 if [ "$CFG_MREMAP" = "yes" ]; then
5370 QT_CONFIG="$QT_CONFIG mremap"
5372 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5373 QT_CONFIG="$QT_CONFIG getaddrinfo"
5375 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5376 QT_CONFIG="$QT_CONFIG ipv6ifname"
5378 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5379 QT_CONFIG="$QT_CONFIG getifaddrs"
5381 if [ "$CFG_INOTIFY" = "yes" ]; then
5382 QT_CONFIG="$QT_CONFIG inotify"
5384 if [ "$CFG_LIBJPEG" = "no" ]; then
5386 elif [ "$CFG_LIBJPEG" = "system" ]; then
5387 QT_CONFIG="$QT_CONFIG system-jpeg"
5389 if [ "$CFG_JPEG" = "no" ]; then
5390 QT_CONFIG="$QT_CONFIG no-jpeg"
5391 elif [ "$CFG_JPEG" = "yes" ]; then
5392 QT_CONFIG="$QT_CONFIG jpeg"
5394 if [ "$CFG_LIBPNG" = "no" ]; then
5397 if [ "$CFG_LIBPNG" = "system" ]; then
5398 QT_CONFIG="$QT_CONFIG system-png"
5400 if [ "$CFG_PNG" = "no" ]; then
5401 QT_CONFIG="$QT_CONFIG no-png"
5402 elif [ "$CFG_PNG" = "yes" ]; then
5403 QT_CONFIG="$QT_CONFIG png"
5405 if [ "$CFG_GIF" = "no" ]; then
5406 QT_CONFIG="$QT_CONFIG no-gif"
5407 elif [ "$CFG_GIF" = "yes" ]; then
5408 QT_CONFIG="$QT_CONFIG gif"
5410 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5411 QT_CONFIG="$QT_CONFIG no-freetype"
5412 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5413 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5414 QT_CONFIG="$QT_CONFIG system-freetype"
5416 QT_CONFIG="$QT_CONFIG freetype"
5418 if [ "$CFG_GUI" = "auto" ]; then
5421 if [ "$CFG_GUI" = "no" ]; then
5422 QT_CONFIG="$QT_CONFIG no-gui"
5425 if [ "$CFG_WIDGETS" = "no" ]; then
5426 QT_CONFIG="$QT_CONFIG no-widgets"
5427 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5430 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5431 #On Mac we implicitly link against libz, so we
5432 #never use the 3rdparty stuff.
5433 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5435 if [ "$CFG_ZLIB" = "yes" ]; then
5436 QT_CONFIG="$QT_CONFIG zlib"
5437 elif [ "$CFG_ZLIB" = "system" ]; then
5438 QT_CONFIG="$QT_CONFIG system-zlib"
5441 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5442 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5443 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5444 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5445 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5446 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5447 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5448 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5449 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5450 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5451 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5452 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5453 [ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb"
5454 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5455 [ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies"
5457 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5458 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5460 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5461 if [ "$CFG_RPATH" = "yes" ]; then
5462 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5464 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5465 if [ -n "$RPATH_FLAGS" ]; then
5467 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5471 elif [ "$CFG_RPATH" = "yes" ]; then
5472 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5476 if [ -n "$RPATH_FLAGS" ]; then
5477 # add the user defined rpaths
5478 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5481 if [ "$CFG_RPATH" = "yes" ]; then
5482 QT_CONFIG="$QT_CONFIG rpath"
5485 if [ '!' -z "$I_FLAGS" ]; then
5486 # add the user define include paths
5487 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5488 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5491 if [ '!' -z "$W_FLAGS" ]; then
5492 # add the user defined warning flags
5493 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5494 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5495 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5498 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5499 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5500 # Follow default behavior of configure.exe by overriding with "rtti".
5501 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5504 if [ "$CFG_ALSA" = "yes" ]; then
5505 QT_CONFIG="$QT_CONFIG alsa"
5508 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5509 QT_CONFIG="$QT_CONFIG pulseaudio"
5512 if [ "$CFG_COREWLAN" = "yes" ]; then
5513 QT_CONFIG="$QT_CONFIG corewlan"
5516 if [ "$CFG_ICU" = "yes" ]; then
5517 QT_CONFIG="$QT_CONFIG icu"
5520 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5521 QT_CONFIG="$QT_CONFIG force_asserts"
5524 if [ "$CFG_PCRE" = "qt" ]; then
5525 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5529 # Some Qt modules are too advanced in C++ for some old compilers
5530 # Detect here the platforms where they are known to work.
5532 # See Qt documentation for more information on which features are
5533 # supported and on which compilers.
5535 canBuildQtConcurrent="yes"
5536 canUseV8Snapshot="yes"
5538 case "$XPLATFORM" in
5540 # PA-RISC's assembly is too limited
5541 # gcc 3.4 on that platform can't build QtXmlPatterns
5542 # the assembly it generates cannot be compiled
5544 # Check gcc's version
5545 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5549 canBuildQtXmlPatterns="no"
5553 canBuildQtXmlPatterns="no"
5557 unsupported/vxworks-*-g++*)
5560 unsupported/vxworks-*-dcc*)
5562 canBuildQtXmlPatterns="no"
5565 # Check gcc's version
5566 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5574 canBuildQtXmlPatterns="no"
5579 # Check the compiler version
5580 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5583 canBuildQtXmlPatterns="no"
5584 canBuildQtConcurrent="no"
5588 canBuildQtConcurrent="no"
5594 canBuildQtXmlPatterns="no"
5595 canBuildQtConcurrent="no"
5601 # Get the xlC version
5602 cat > xlcver.c <<EOF
5606 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5611 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5612 xlcver=`./xlcver 2>/dev/null`
5615 if [ "$OPT_VERBOSE" = "yes" ]; then
5616 if [ -n "$xlcver" ]; then
5617 echo Found IBM xlC version: $xlcver.
5619 echo Could not determine IBM xlC version, assuming oldest supported.
5626 canBuildQtXmlPatterns="no"
5627 canBuildQtConcurrent="no"
5631 canBuildQtConcurrent="no"
5637 canBuildQtConcurrent="no"
5641 if [ "$CFG_GUI" = "no" ]; then
5642 # WebKit requires QtGui
5646 if [ "$CFG_SHARED" = "no" ]; then
5648 echo "WARNING: Using static linking will disable the WebKit module."
5653 CFG_CONCURRENT="yes"
5654 if [ "$canBuildQtConcurrent" = "no" ]; then
5655 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5658 QT_CONFIG="$QT_CONFIG concurrent"
5662 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5663 QT_CONFIG="$QT_CONFIG audio-backend"
5667 if [ "$CFG_WEBKIT" = "debug" ]; then
5668 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5672 QT_CONFIG="$QT_CONFIG v8"
5673 # Detect snapshot support
5674 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5675 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5678 *) canUseV8Snapshot="no"
5682 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5683 # QEMU crashes when building inside Scratchbox with an ARM target
5684 canUseV8Snapshot="no"
5687 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5688 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5690 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5691 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5694 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5695 QT_CONFIG="$QT_CONFIG v8snapshot"
5699 if [ "$CFG_QML_DEBUG" = "no" ]; then
5700 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5703 case "$QMAKE_CONF_COMPILER" in
5706 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5708 case "$COMPILER_VERSION" in
5710 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5711 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5712 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5715 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5716 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5717 QT_GCC_PATCH_VERSION=0
5727 #-------------------------------------------------------------------------------
5728 # part of configuration information goes into qconfig.h
5729 #-------------------------------------------------------------------------------
5731 case "$CFG_QCONFIG" in
5733 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5736 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5737 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5738 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5739 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5740 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5741 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5743 echo "#endif" >>"$tmpconfig"
5747 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5751 # define QT_EDITION $QT_EDITION
5755 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5756 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5758 if [ "$CFG_SHARED" = "no" ]; then
5759 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5760 /* Qt was configured for a static build */
5761 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5768 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5769 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5772 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5773 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5776 if [ "$BUILD_ON_MAC" = "yes" ]; then
5777 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5778 #if defined(__LP64__)
5779 # define QT_POINTER_SIZE 8
5781 # define QT_POINTER_SIZE 4
5785 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5786 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5789 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5790 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5791 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5794 # Add compiler sub-architecture support
5795 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5796 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5797 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5799 MIPS_DSP MIPS_DSPR2; do
5800 eval "VAL=\$CFG_$SUBARCH"
5803 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5804 >>"$outpath/src/corelib/global/qconfig.h.new"
5809 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5811 if [ "$CFG_DEV" = "yes" ]; then
5812 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5815 # Add QPA to config.h
5816 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5818 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5819 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5822 # Add turned on SQL drivers
5823 for DRIVER in $CFG_SQL_AVAILABLE; do
5824 eval "VAL=\$CFG_SQL_$DRIVER"
5827 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5828 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5829 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5832 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5837 QMakeVar set sql-drivers "$SQL_DRIVERS"
5838 QMakeVar set sql-plugins "$SQL_PLUGINS"
5840 # Add other configuration options to the qconfig.h file
5841 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5842 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5843 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5844 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5845 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5847 # X11/Unix/Mac only configs
5848 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5849 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5850 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5851 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5852 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5853 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5854 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5855 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5856 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5857 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5858 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5859 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5860 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5861 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5863 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5864 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5865 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5866 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5867 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5868 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5869 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5870 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5871 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5872 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5873 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5874 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5875 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5877 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5878 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5879 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5880 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5881 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5882 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5883 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5884 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5886 # sort QCONFIG_FLAGS for neatness if we can
5887 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5888 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5890 if [ -n "$QCONFIG_FLAGS" ]; then
5891 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5892 #ifndef QT_BOOTSTRAPPED
5895 for cfg in $QCONFIG_FLAGS; do
5896 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5897 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5898 # figure out define logic, so we can output the correct
5899 # ifdefs to override the global defines in a project
5901 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5902 # QT_NO_option can be forcefully turned on by QT_option
5903 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5904 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5905 # QT_option can be forcefully turned off by QT_NO_option
5906 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5909 if [ -z $cfgdNeg ]; then
5910 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5917 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5918 #if defined($cfgd) && defined($cfgdNeg)
5920 #elif !defined($cfgd) && !defined($cfgdNeg)
5927 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5928 #endif // QT_BOOTSTRAPPED
5933 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5934 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5935 #define QT_VISIBILITY_AVAILABLE
5940 if [ -n "$QT_LIBINFIX" ]; then
5941 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5942 #define QT_LIBINFIX "$QT_LIBINFIX"
5947 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5949 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5950 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5951 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5953 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5954 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5955 chmod -w "$outpath/src/corelib/global/qconfig.h"
5956 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5957 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5961 #-------------------------------------------------------------------------------
5962 # save configuration into qconfig.pri
5963 #-------------------------------------------------------------------------------
5964 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5965 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5966 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5967 if [ "$CFG_DEBUG" = "yes" ]; then
5968 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5969 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5970 QT_CONFIG="$QT_CONFIG release"
5972 QT_CONFIG="$QT_CONFIG debug"
5973 elif [ "$CFG_DEBUG" = "no" ]; then
5974 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5975 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5976 QT_CONFIG="$QT_CONFIG debug"
5978 QT_CONFIG="$QT_CONFIG release"
5980 if [ "$CFG_FRAMEWORK" = "no" ]; then
5981 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5983 QT_CONFIG="$QT_CONFIG qt_framework"
5984 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5986 if [ "$CFG_DEV" = "yes" ]; then
5987 QT_CONFIG="$QT_CONFIG private_tests"
5990 cat >>"$QTCONFIG.tmp" <<EOF
5992 CONFIG += $QTCONFIG_CONFIG
5994 QT_HOST_ARCH = $CFG_HOST_ARCH
5995 QT_CPU_FEATURES = $CFG_CPUFEATURES
5996 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5997 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5998 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5999 QT_EDITION = $Edition
6000 QT_CONFIG += $QT_CONFIG
6003 QT_VERSION = $QT_VERSION
6004 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6005 QT_MINOR_VERSION = $QT_MINOR_VERSION
6006 QT_PATCH_VERSION = $QT_PATCH_VERSION
6009 QT_LIBINFIX = $QT_LIBINFIX
6010 QT_NAMESPACE = $QT_NAMESPACE
6014 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6015 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6016 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6017 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6018 echo >> "$QTCONFIG.tmp"
6021 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6022 echo "# sysroot" >>"$QTCONFIG.tmp"
6023 echo "!host_build {" >>"$QTCONFIG.tmp"
6024 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6025 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6026 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6027 echo "}" >> "$QTCONFIG.tmp"
6028 echo >> "$QTCONFIG.tmp"
6030 if [ -n "$RPATH_FLAGS" ]; then
6031 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6033 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6034 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6035 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6036 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6039 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6040 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6041 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6044 # replace qconfig.pri if it differs from the newly created temp file
6045 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6046 rm -f "$QTCONFIG.tmp"
6048 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6051 #-------------------------------------------------------------------------------
6052 # save configuration into qmodule.pri
6053 #-------------------------------------------------------------------------------
6054 QTMODULE="$outpath/mkspecs/qmodule.pri"
6056 echo "CONFIG += $QMAKE_CONFIG" >> "$QTMODULE.tmp"
6057 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6059 if [ -n "$QT_CFLAGS_PSQL" ]; then
6060 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6062 if [ -n "$QT_LFLAGS_PSQL" ]; then
6063 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6065 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6066 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6068 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6069 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6071 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6072 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6074 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6075 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6077 if [ -n "$QT_LFLAGS_ODBC" ]; then
6078 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6080 if [ -n "$QT_LFLAGS_TDS" ]; then
6081 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6084 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6085 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6088 #dump in the OPENSSL_LIBS info
6089 if [ '!' -z "$OPENSSL_LIBS" ]; then
6090 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6091 elif [ "$CFG_OPENSSL" = "linked" ]; then
6092 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6096 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6097 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6099 # replace qmodule.pri if it differs from the newly created temp file
6100 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6101 rm -f "$QTMODULE.tmp"
6103 mv -f "$QTMODULE.tmp" "$QTMODULE"
6106 #-------------------------------------------------------------------------------
6107 # save configuration into .qmake.cache
6108 #-------------------------------------------------------------------------------
6110 CACHEFILE="$outpath/.qmake.cache"
6111 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6112 cat >>"$CACHEFILE.tmp" <<EOF
6114 QT_SOURCE_TREE = \$\$quote($relpath)
6115 QT_BUILD_TREE = \$\$quote($outpath)
6118 # replace .qmake.cache if it differs from the newly created temp file
6119 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6120 rm -f "$CACHEFILE.tmp"
6122 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6125 #-------------------------------------------------------------------------------
6126 # give feedback on configuration
6127 #-------------------------------------------------------------------------------
6128 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6131 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6132 echo "Build type: $PLATFORM"
6134 echo "Building on: $PLATFORM"
6135 echo "Building for: $XPLATFORM"
6138 # the missing space before $CFG_FEATURES is intentional
6139 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6140 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6142 if [ -n "$PLATFORM_NOTES" ]; then
6143 echo "Platform notes:"
6144 echo "$PLATFORM_NOTES"
6149 if [ "$OPT_VERBOSE" = "yes" ]; then
6150 echo $ECHO_N "qmake vars .......... $ECHO_C"
6151 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6152 echo "qmake switches ......... $QMAKE_SWITCHES"
6155 echo "Build .................. $CFG_BUILD_PARTS"
6156 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6157 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6158 echo "Debug .................. yes (combined)"
6159 if [ "$CFG_DEBUG" = "yes" ]; then
6160 echo "Default Link ........... debug"
6162 echo "Default Link ........... release"
6165 echo "Debug .................. $CFG_DEBUG"
6167 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6168 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6170 echo "C++11 support .......... $CFG_CXX11"
6171 if [ -n "$PKG_CONFIG" ]; then
6172 echo "pkg-config ............. yes"
6174 echo "pkg-config ............. no"
6176 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6177 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6178 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6179 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6180 echo "QtGui module ........... $CFG_GUI"
6181 echo "QtWidgets module ....... $CFG_WIDGETS"
6182 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6183 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6185 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6187 echo "QML debugging .......... $CFG_QML_DEBUG"
6188 echo "PCH support ............ $CFG_PRECOMPILE"
6189 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6190 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6191 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6192 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6193 elif [ "$CFG_ARCH" = "arm" ]; then
6194 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6195 echo "NEON support ........... ${CFG_NEON}"
6197 if [ "$CFG_ARCH" = "mips" ]; then
6198 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6200 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6201 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6202 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6203 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6204 echo "NIS support ............ $CFG_NIS"
6205 echo "CUPS support ........... $CFG_CUPS"
6206 echo "Iconv support .......... $CFG_ICONV"
6207 echo "Glib support ........... $CFG_GLIB"
6208 echo "GStreamer support ...... $CFG_GSTREAMER"
6209 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6210 echo "Large File support ..... $CFG_LARGEFILE"
6211 echo "GIF support ............ $CFG_GIF"
6212 if [ "$CFG_JPEG" = "no" ]; then
6213 echo "JPEG support ........... $CFG_JPEG"
6215 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6217 if [ "$CFG_PNG" = "no" ]; then
6218 echo "PNG support ............ $CFG_PNG"
6220 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6222 echo "zlib support ........... $CFG_ZLIB"
6223 echo "Session management ..... $CFG_SM"
6224 echo "libudev support ........ $CFG_LIBUDEV"
6226 if [ "$XPLATFORM_QNX" = "yes" ]; then
6227 echo "SLOG2 support .......... $CFG_SLOG2"
6229 echo "Use system proxies ..... $CFG_SYSTEM_PROXIES"
6231 if [ "$CFG_OPENGL" = "desktop" ]; then
6232 echo "OpenGL support ......... yes (Desktop OpenGL)"
6233 elif [ "$CFG_OPENGL" = "es2" ]; then
6234 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6236 echo "OpenGL support ......... no"
6239 if [ "$CFG_OPENVG" ]; then
6240 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6241 echo "OpenVG support ......... ShivaVG"
6243 echo "OpenVG support ......... $CFG_OPENVG"
6247 echo "XShape support ......... $CFG_XSHAPE"
6248 echo "XVideo support ......... $CFG_XVIDEO"
6249 echo "XSync support .......... $CFG_XSYNC"
6250 echo "Xinerama support ....... $CFG_XINERAMA"
6251 echo "Xcursor support ........ $CFG_XCURSOR"
6252 echo "Xfixes support ......... $CFG_XFIXES"
6253 echo "Xrandr support ......... $CFG_XRANDR"
6254 echo "Xi support ............. $CFG_XINPUT"
6255 echo "Xi2 support ............ $CFG_XINPUT2"
6256 echo "MIT-SHM support ........ $CFG_MITSHM"
6257 echo "FontConfig support ..... $CFG_FONTCONFIG"
6258 echo "XKB Support ............ $CFG_XKB"
6259 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6261 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6262 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6263 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6264 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6265 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6266 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6267 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6268 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6269 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6272 if [ "$CFG_OPENSSL" = "yes" ]; then
6273 OPENSSL_LINKAGE="(run-time)"
6274 elif [ "$CFG_OPENSSL" = "linked" ]; then
6275 OPENSSL_LINKAGE="(linked)"
6277 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6278 echo "Alsa support ........... $CFG_ALSA"
6279 if [ "$BUILD_ON_MAC" = "yes" ]; then
6280 echo "CoreWlan support ....... $CFG_COREWLAN"
6282 echo "libICU support ......... $CFG_ICU"
6283 echo "PCRE support ........... $CFG_PCRE"
6284 echo "Xcb support ............ $CFG_XCB"
6285 echo "Xrender support ........ $CFG_XRENDER"
6286 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" != "no" ]; then
6287 echo "XInput2 support ........ $CFG_XINPUT2"
6289 echo "EGLFS support .......... $CFG_EGLFS"
6290 echo "DirectFB support ....... $CFG_DIRECTFB"
6291 echo "LinuxFB support ........ $CFG_LINUXFB"
6292 echo "KMS support ............ $CFG_KMS"
6295 # complain about not being able to use dynamic plugins if we are using a static build
6296 if [ "$CFG_SHARED" = "no" ]; then
6298 echo "WARNING: Using static linking will disable the use of dynamically"
6299 echo "loaded plugins. Make sure to import all needed static plugins,"
6300 echo "or compile needed modules into the library."
6303 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6305 echo "NOTE: When linking against OpenSSL, you can override the default"
6306 echo "library names through OPENSSL_LIBS."
6308 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6312 exec 1>&3 3>&- # restore stdout
6313 cat $outpath/config.summary # display config feedback to user
6315 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6317 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6318 echo "if you want a pure debug build."
6323 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6328 #-------------------------------------------------------------------------------
6329 # build makefiles based on the configuration
6330 #-------------------------------------------------------------------------------
6332 if [ "$CFG_PROCESS" != "no" ]; then
6334 if [ "$CFG_PROCESS" = "full" ]; then
6335 echo "Creating makefiles. Please wait..."
6336 "$outpath/bin/qmake" -r "$relpath"
6339 "$outpath/bin/qmake" "$relpath"
6342 if [ "$OPT_FAST" = "yes" ]; then
6344 for part in $CFG_BUILD_PARTS; do
6346 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6349 if [ "x$PART_ROOTS" != "x" ]; then
6351 echo "Creating stub makefiles. Please wait..."
6352 QMAKE="$outpath/bin/qmake"
6353 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6354 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6356 test -f "$outpath/$d/Makefile" && continue
6357 echo " for $relpath/$p"
6359 mkdir -p "$outpath/$d" || exit
6360 cat > "$outpath/$d/Makefile" <<EOF || exit
6361 # $outpath/$d/Makefile: generated by configure
6363 # WARNING: This makefile will be replaced with a real makefile.
6364 # All changes made to this file will be lost.
6369 all clean install qmake first Makefile: FORCE
6370 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6380 #-------------------------------------------------------------------------------
6381 # check for platforms that we don't yet know about
6382 #-------------------------------------------------------------------------------
6383 if [ "$CFG_ARCH" = "unknown" ]; then
6386 NOTICE: configure was unable to determine the architecture
6387 for the $XQMAKESPEC target.
6389 Qt will not use a specialized implementation for any atomic
6390 operations. Instead a generic implemention based on either GCC
6391 intrinsics or C++11 std::atomic<T> will be used (when
6392 available). The generic implementations are generally as fast
6393 as and always as safe as a specialized implementation.
6395 If no generic implementation is available, Qt will use a
6396 fallback UNIX implementation which uses a single
6397 pthread_mutex_t to protect all atomic operations. This
6398 implementation is the slow (but safe) fallback implementation
6399 for architectures Qt does not yet support.
6403 #-------------------------------------------------------------------------------
6404 # check if the user passed the -no-zlib option, which is no longer supported
6405 #-------------------------------------------------------------------------------
6406 if [ -n "$ZLIB_FORCED" ]; then
6407 which_zlib="supplied"
6408 if [ "$CFG_ZLIB" = "system" ]; then
6414 NOTICE: The -no-zlib option was supplied but is no longer
6417 Qt now requires zlib support in all builds, so the -no-zlib
6418 option was ignored. Qt will be built using the $which_zlib
6423 #-------------------------------------------------------------------------------
6424 # check if the user passed the obsoleted -wayland or -no-wayland flag
6425 #-------------------------------------------------------------------------------
6426 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6429 NOTICE: The -wayland and -no-wayland flags are now obsolete
6431 All configuring of QtWayland plugin and QtCompositor happens in the module
6435 #-------------------------------------------------------------------------------
6436 # check if the user passed the obsoleted -arch or -host-arch options
6437 #-------------------------------------------------------------------------------
6438 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6441 NOTICE: The -arch and -host-arch options are obsolete.
6443 Qt now detects the target and host architectures based on compiler
6444 output. Qt will be built using $CFG_ARCH for the target architecture
6445 and $CFG_HOST_ARCH for the host architecture (note that these two
6446 will be the same unless you are cross-compiling).
6450 #-------------------------------------------------------------------------------
6451 # finally save the executed command to another script
6452 #-------------------------------------------------------------------------------
6453 if [ `basename $0` != "config.status" ]; then
6454 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6456 # add the system variables
6457 for varname in $SYSTEM_VARIABLES; do
6459 'if [ -n "\$'${varname}'" ]; then
6460 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6465 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6467 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6468 echo "#!/bin/sh" > "$outpath/config.status"
6469 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6470 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6471 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6472 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6473 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6474 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6475 echo "else" >> "$outpath/config.status"
6476 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6477 echo "fi" >> "$outpath/config.status"
6478 chmod +x "$outpath/config.status"
6481 if [ -n "$RPATH_MESSAGE" ]; then
6483 echo "$RPATH_MESSAGE"
6486 MAKE=`basename "$MAKE"`
6488 echo Qt is now configured for building. Just run \'$MAKE\'.
6489 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6490 echo Once everything is built, Qt is installed.
6491 echo You should not run \'$MAKE install\'.
6493 echo Once everything is built, you must run \'$MAKE install\'.
6494 echo Qt will be installed into $QT_INSTALL_PREFIX
6497 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.