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
789 # Target architecture
792 # Host architecture, same as CFG_ARCH when not cross-compiling
794 CFG_HOST_CPUFEATURES=
795 # Set when the -arch or -host-arch arguments are used
796 OPT_OBSOLETE_HOST_ARG=no
811 CFG_OBSOLETE_WAYLAND=no
823 CFG_SEPARATE_DEBUG_INFO=no
824 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
825 CFG_REDUCE_EXPORTS=auto
833 CFG_REDUCE_RELOCATIONS=auto
834 CFG_ACCESSIBILITY=auto
839 CFG_CLOCK_GETTIME=auto
840 CFG_CLOCK_MONOTONIC=auto
849 CFG_PREFIX_INSTALL=yes
858 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
859 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
864 OPT_CONFIRM_LICENSE=no
877 QPA_PLATFORM_GUARD=yes
880 # 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|-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,"`
1006 #Qt Builtin/System style options
1007 -no-*|-system-*|-qt-*)
1008 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1009 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1011 #Options that cannot be generalized
1018 # this option may or may not be followed by an argument
1019 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1028 # this option may or may not be followed by an argument
1029 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1037 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1038 # this option may or may not be followed by an argument
1039 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1058 if [ "$1" = "-D" ]; then
1062 VAL=`echo $1 | sed 's,-D,,'`
1067 # this option may or may not be followed by an argument
1068 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1077 if [ "$1" = "-I" ]; then
1081 VAL=`echo $1 | sed 's,-I,,'`
1086 if [ "$1" = "-L" ]; then
1090 VAL=`echo $1 | sed 's,-L,,'`
1095 if [ "$1" = "-R" ]; then
1099 VAL=`echo $1 | sed 's,-R,,'`
1104 if [ "$1" = "-l" ]; then
1108 VAL=`echo $1 | sed 's,-l,,'`
1113 if [ "$1" = "-F" ]; then
1117 VAL=`echo $1 | sed 's,-F,,'`
1122 if [ "$1" = "-fw" ]; then
1126 VAL=`echo $1 | sed 's,-fw,,'`
1133 #General options, including Qt style yes options
1135 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1142 if [ "$UNKNOWN_ARG" = "yes" ]; then
1143 echo "$1: unknown argument"
1154 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1155 CFG_ACCESSIBILITY="$VAL"
1164 CFG_USE_GNUMAKE="$VAL"
1167 CFG_MYSQL_CONFIG="$VAL"
1170 QT_INSTALL_PREFIX="$VAL"
1173 QT_HOST_PREFIX="$VAL"
1182 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1183 CFG_PKGCONFIG="$VAL"
1189 CFG_PKGCONFIG="force"
1192 QT_INSTALL_DOCS="$VAL"
1195 QT_INSTALL_HEADERS="$VAL"
1198 QT_INSTALL_PLUGINS="$VAL"
1201 QT_INSTALL_IMPORTS="$VAL"
1204 QT_INSTALL_DATA="$VAL"
1207 QT_INSTALL_LIBS="$VAL"
1216 QT_INSTALL_TRANSLATIONS="$VAL"
1218 sysconfdir|settingsdir)
1219 QT_INSTALL_SETTINGS="$VAL"
1222 QT_INSTALL_EXAMPLES="$VAL"
1225 QT_INSTALL_TESTS="$VAL"
1234 CFG_GCC_SYSROOT="$VAL"
1237 QT_INSTALL_BINS="$VAL"
1240 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1247 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1248 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1249 [ "$VAL" = "es2" ]; then
1256 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1263 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1266 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1269 if [ "$BUILD_ON_MAC" = "yes" ]; then
1276 OPT_OBSOLETE_HOST_ARG=yes
1279 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1280 CFG_MAC_HARFBUZZ="$VAL"
1287 if [ "$BUILD_ON_MAC" = "yes" ]; then
1288 CFG_FRAMEWORK="$VAL"
1294 if [ "$VAL" = "yes" ]; then
1296 QMakeVar add QMAKE_CFLAGS -pg
1297 QMakeVar add QMAKE_CXXFLAGS -pg
1298 QMakeVar add QMAKE_LFLAGS -pg
1299 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1305 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1312 if [ "$VAL" = "yes" ]; then
1313 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1318 # keep compatibility with old platform names
1324 PLATFORM=hpux-acc-o64
1327 PLATFORM=hpux-acc-64
1330 PLATFORM=hpux-acc-64
1342 PLATFORM=reliant-cds-64
1345 PLATFORM=solaris-cc-64
1348 PLATFORM=unixware-cc
1351 PLATFORM=unixware-g++
1354 PLATFORM=unixware-cc
1357 PLATFORM=unixware-g++
1363 i386) NATIVE_64_ARCH="x86_64" ;;
1364 powerpc) NATIVE_64_ARCH="ppc64" ;;
1365 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1367 if [ ! -z "$NATIVE_64_ARCH" ]; then
1368 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1375 case `basename "$XPLATFORM"` in win32-g++*)
1378 CFG_REDUCE_EXPORTS=no
1383 XPLATFORM=`resolveDeviceMkspec $VAL`
1384 [ "$XPLATFORM" = "undefined" ] && exit 101
1387 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1388 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1389 DeviceVar set $DEV_VAR $DEV_VAL
1392 QT_QPA_DEFAULT_PLATFORM="$VAL"
1395 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1396 CFG_DEBUG_RELEASE="$VAL"
1402 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1403 CFG_RELEASE_QMAKE="$VAL"
1409 if [ "$VAL" = "yes" ]; then
1411 elif [ "$VAL" = "no" ]; then
1418 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1419 CFG_PREFIX_INSTALL="$VAL"
1428 CFG_FORCEDEBUGINFO="$VAL"
1430 developer-build|commercial|opensource)
1431 # These switches have been dealt with already
1434 if [ "$VAL" = "yes" ]; then
1436 elif [ "$VAL" = "no" ]; then
1443 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1444 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1450 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1451 if [ "$VAL" = "no" ]; then
1452 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1453 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1454 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1460 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1467 if [ "$VAL" = "no" ]; then
1474 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1482 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1489 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1496 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1503 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1510 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1517 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1524 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1531 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1532 CFG_PRECOMPILE="$VAL"
1537 separate-debug-info)
1538 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1539 CFG_SEPARATE_DEBUG_INFO="$VAL"
1540 elif [ "$VAL" = "nocopy" ] ; then
1541 CFG_SEPARATE_DEBUG_INFO="yes"
1542 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1548 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1549 CFG_REDUCE_EXPORTS="$VAL"
1555 if [ "$VAL" = "no" ]; then
1562 if [ "$VAL" = "no" ]; then
1569 if [ "$VAL" = "no" ]; then
1576 if [ "$VAL" = "no" ]; then
1583 if [ "$VAL" = "no" ]; then
1590 if [ "$VAL" = "no" ]; then
1597 if [ "$VAL" = "no" ]; then
1607 if [ "$VAL" = "no" ]; then
1614 if [ "$VAL" = "no" ]; then
1621 if [ "$VAL" = "no" ]; then
1622 CFG_MIPS_DSPR2="$VAL"
1628 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1629 CFG_REDUCE_RELOCATIONS="$VAL"
1635 [ "$VAL" = "qt" ] && VAL=yes
1636 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1641 # No longer supported:
1642 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1645 if [ "$VAL" = "system" ]; then
1652 [ "$VAL" = "yes" ] && VAL=qt
1653 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1660 [ "$VAL" = "yes" ] && VAL=qt
1661 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1668 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1675 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1682 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1689 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1696 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1703 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1704 CFG_FONTCONFIG="$VAL"
1710 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1717 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1724 CFG_OBSOLETE_WAYLAND=yes
1727 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1734 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1741 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1748 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1755 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1762 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1769 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1776 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1783 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1790 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1797 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1798 CFG_GSTREAMER="$VAL"
1804 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1805 CFG_QGTKSTYLE="$VAL"
1811 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1814 if [ "$VAL" = "no" ]; then
1822 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1824 elif [ "$VAL" = "no" ]; then
1831 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1832 QPA_PLATFORM_GUARD="$VAL"
1838 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1840 elif [ "$VAL" = "runtime" ]; then
1847 if [ "$VAL" = "yes" ]; then
1854 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1861 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1862 CFG_LARGEFILE="$VAL"
1868 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1875 if [ "$VAL" = "yes" ]; then
1876 CFG_OPENSSL="linked"
1882 if [ "$VAL" = "yes" ]; then
1885 if [ "$VAL" = "no" ]; then
1893 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1894 CFG_JAVASCRIPTCORE_JIT="$VAL"
1900 if [ "$VAL" = "yes" ]; then
1901 OPT_CONFIRM_LICENSE="$VAL"
1907 if [ "$VAL" = "yes" ]; then
1913 sql-*|imageformat-*)
1914 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1915 # if autoconf style options were used, $VAL can be "yes" or "no"
1916 [ "$VAL" = "yes" ] && VAL=qt
1917 # now $VAL should be "no", "qt", or "plugin"... double-check
1918 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1921 # now $VAL is "no", "qt", or "plugin"
1923 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1924 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1926 # Grab the available values
1929 avail="$CFG_SQL_AVAILABLE"
1932 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1933 if [ "$OPT" != "plugin" ]; then
1934 # png is always built in
1940 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1944 # Check that that user's value is available.
1947 if [ "$VAL" = "$d" ]; then
1952 [ "$found" = yes ] || ERROR=yes
1954 if [ "$VAR" = "sql" ]; then
1955 # set the CFG_SQL_driver
1956 eval "CFG_SQL_$VAL=\$OPT"
1958 elif [ "$VAR" = "imageformat" ]; then
1959 [ "$OPT" = "qt" ] && OPT=yes
1960 VAL="`echo $VAL |tr a-z A-Z`"
1961 eval "CFG_$VAL=$OPT"
1965 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1966 if [ "$OPT" = "plugin" ]; then
1969 QMakeVar add "${VAR}s" "${VAL}"
1970 elif [ "$OPT" = "no" ]; then
1971 PLUG_VAR="${VAR}-plugin"
1973 QMakeVar del "${IN_VAR}s" "$VAL"
1974 QMakeVar del "${PLUG_VAR}s" "$VAL"
1976 if [ "$ERROR" = "yes" ]; then
1977 echo "$CURRENT_OPT: unknown argument"
1982 if [ "$VAL" = "yes" ]; then
1983 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1984 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1988 elif [ "$VAL" = "no" ]; then
1989 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1990 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1999 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2006 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2013 DEFINES="$DEFINES \"$VAL\""
2014 D_FLAGS="$D_FLAGS -D\"$VAL\""
2017 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2020 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2023 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2026 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2029 if [ "$BUILD_ON_MAC" = "yes" ]; then
2030 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2031 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2037 if [ "$BUILD_ON_MAC" = "yes" ]; then
2038 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2044 W_FLAGS="$W_FLAGS \"${VAL}\""
2059 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2060 CFG_AUDIO_BACKEND="$VAL"
2066 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2073 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2074 CFG_FORCE_ASSERTS="$VAL"
2080 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2087 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2097 if [ "$UNKNOWN_OPT" = "yes" ]; then
2098 echo "${CURRENT_OPT}: invalid command-line switch"
2104 # update QT_CONFIG to show our current predefined configuration
2105 case "$CFG_QCONFIG" in
2106 minimal|small|medium|large|full)
2107 # these are a sequence of increasing functionality
2108 for c in minimal small medium large full; do
2109 QT_CONFIG="$QT_CONFIG $c-config"
2110 [ "$CFG_QCONFIG" = $c ] && break
2114 # not known to be sufficient for anything
2115 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2116 echo >&2 "Error: configuration file not found:"
2117 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2119 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2124 #-------------------------------------------------------------------------------
2125 # build tree initialization
2126 #-------------------------------------------------------------------------------
2128 # where to find which..
2129 unixtests="$relpath/config.tests/unix"
2130 mactests="$relpath/config.tests/mac"
2131 WHICH="$unixtests/which.test"
2133 PERL=`$WHICH perl 2>/dev/null`
2135 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2137 for e in gawk nawk awk; do
2138 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2145 PERL="/usr/bin/perl"
2146 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2150 ### skip this if the user just needs help...
2151 if [ "$OPT_HELP" != "yes" ]; then
2153 # is this a shadow build?
2154 if [ "$OPT_SHADOW" = "maybe" ]; then
2156 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2157 if [ -h "$outpath" ]; then
2158 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2164 if [ "$OPT_SHADOW" = "yes" ]; then
2165 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2166 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2167 echo >&2 "Cannot proceed."
2170 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2173 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2175 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2176 echo "Qt can be built in release mode with separate debug information, so"
2177 echo "-debug-and-release is not necessary anymore"
2181 if [ "$CFG_SILENT" = "yes" ]; then
2182 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2185 # if the source tree is different from the build tree,
2186 # symlink or copy part of the sources
2187 if [ "$OPT_SHADOW" = "yes" ]; then
2188 echo "Preparing build tree..."
2190 if [ -z "$PERL" ]; then
2192 echo "You need perl in your PATH to make a shadow build."
2193 echo "Cannot proceed."
2197 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2199 # make a syncqt script that can be used in the shadow
2200 rm -f "$outpath/bin/syncqt"
2201 if [ -x "$relpath/bin/syncqt" ]; then
2202 mkdir -p "$outpath/bin"
2203 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2204 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2205 chmod 755 "$outpath/bin/syncqt"
2208 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2209 rm -f "$outpath/bin/$i"
2210 if [ -x "$relpath/bin/$i" ]; then
2211 mkdir -p "$outpath/bin"
2212 echo "#!/bin/sh" >"$outpath/bin/$i"
2213 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2214 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2215 chmod 755 "$outpath/bin/$i"
2219 # save a pre-existing mkspecs/modules dir
2220 test -d "$outpath/mkspecs/modules" && \
2221 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2222 # ditto for mkspecs/modules-inst
2223 test -d "$outpath/mkspecs/modules-inst" && \
2224 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2226 # symlink the mkspecs directory
2227 mkdir -p "$outpath/mkspecs"
2228 rm -rf "$outpath"/mkspecs/*
2229 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2230 rm -f "$outpath/mkspecs/default"
2234 rm -rf "$outpath/mkspecs/$1"
2235 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2236 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2239 # Special case for mkspecs/features directory.
2240 # To be able to place .prf files into a shadow build directory,
2241 # we're creating links for files only. The directory structure is reproduced.
2242 ShadowMkspecs features
2244 # The modules dir is special, too.
2245 if test -d "$outpath/mkspecs-modules"; then
2246 rm -rf "$outpath/mkspecs/modules"
2247 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2249 ShadowMkspecs modules
2252 # The modules-inst dir is not quite as special, but still.
2253 if test -d "$outpath/mkspecs-modules-inst"; then
2254 rm -rf "$outpath/mkspecs/modules-inst"
2255 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2258 # Prepare doc directory
2259 mkdir -p "$outpath/doc"
2260 ln -f -s "$relpath"/doc/global "$outpath/doc"
2263 # symlink fonts to be able to run application from build directory
2264 if [ ! -d "${outpath}/lib/fonts" ]; then
2265 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2266 mkdir -p "${outpath}/lib"
2267 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2271 if [ "$OPT_FAST" = "auto" ]; then
2272 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2279 # find a make command
2280 if [ -z "$MAKE" ]; then
2282 for mk in gmake make; do
2283 if "$WHICH" $mk >/dev/null 2>&1; then
2288 if [ -z "$MAKE" ]; then
2289 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2290 echo >&2 "Cannot proceed."
2293 # export MAKE, we need it later in the config.tests
2299 #-------------------------------------------------------------------------------
2300 # auto-detect all that hasn't been specified in the arguments
2301 #-------------------------------------------------------------------------------
2303 if [ -z "$PLATFORM" ]; then
2305 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2307 OSX_VERSION=`uname -r | cut -d. -f1`
2308 # Select compiler. Use g++ unless we find a usable Clang version
2310 if [ "$OSX_VERSION" -ge 12 ]; then
2311 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2313 elif [ "$OSX_VERSION" -eq 11 ]; then
2314 # We're on Lion. Check if we have a supported Clang version
2315 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2317 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2323 #PLATFORM=aix-g++-64
2325 #PLATFORM=aix-xlc-64
2327 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2337 # PLATFORM=dynix-g++
2343 PLATFORM=freebsd-g++
2345 - Also available for FreeBSD: freebsd-icc
2349 PLATFORM=openbsd-g++
2360 #PLATFORM=irix-cc-64
2362 - Also available for IRIX: irix-g++ irix-cc-64
2366 case "$UNAME_MACHINE" in
2368 #PLATFORM=hpuxi-acc-32
2369 PLATFORM=hpuxi-acc-64
2371 - Also available for HP-UXi: hpuxi-acc-32
2377 #PLATFORM=hpux-acc-64
2379 #PLATFORM=hpux-acc-o64
2381 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2390 - Also available for Tru64: tru64-g++
2394 case "$UNAME_MACHINE" in
2396 PLATFORM=linux-g++-64
2403 - Also available for Linux: linux-kcc linux-icc linux-cxx
2407 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2408 PLATFORM="solaris-g++"
2410 #PLATFORM=solaris-g++
2412 #PLATFORM=solaris-cc64
2415 - Also available for Solaris: solaris-g++ solaris-cc-64
2418 ReliantUNIX-*:*|SINIX-*:*)
2419 PLATFORM=reliant-cds
2420 #PLATFORM=reliant-cds-64
2422 - Also available for Reliant UNIX: reliant-cds-64
2432 #PLATFORM=unixware-g++
2433 PLATFORM=unixware-cc
2435 - Also available for OpenUNIX: unixware-g++
2439 #PLATFORM=unixware-g++
2440 PLATFORM=unixware-cc
2442 - Also available for UnixWare: unixware-g++
2449 - Also available for SCO OpenServer: sco-g++
2453 PLATFORM=unixware-g++
2456 PLATFORM=unsupported/qnx-g++
2459 if [ "$OPT_HELP" != "yes" ]; then
2461 echo " The build script does not currently recognize all" >&2
2462 echo " platforms supported by Qt." >&2
2463 echo " Rerun this script with a -platform option listed to" >&2
2464 echo " set the system/compiler combination you use." >&2
2471 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2473 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2474 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2475 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2477 if [ -d "$PLATFORM" ]; then
2478 QMAKESPEC="$PLATFORM"
2480 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2482 if [ -d "$XPLATFORM" ]; then
2483 XQMAKESPEC="$XPLATFORM"
2485 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2487 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2488 QT_CROSS_COMPILE=yes
2489 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2490 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2493 if [ "$BUILD_ON_MAC" = "yes" ]; then
2494 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2496 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2497 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2498 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2499 echo " built with 'macx-g++'" >&2
2505 # check specified platforms are supported
2506 if [ '!' -d "$QMAKESPEC" ]; then
2508 echo " The specified system/compiler is not supported:"
2512 echo " Please see the README file for a complete list."
2516 if [ '!' -d "$XQMAKESPEC" ]; then
2518 echo " The specified system/compiler is not supported:"
2522 echo " Please see the README file for a complete list."
2526 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2528 echo " The specified system/compiler port is not complete:"
2530 echo " $XQMAKESPEC/qplatformdefs.h"
2532 echo " Please use the contact form at http://qt.digia.com/contact-us"
2537 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2538 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2539 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2540 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2541 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2545 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2546 case `basename "$XPLATFORM"` in
2549 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2551 echo "Please use the contact form at http://qt.digia.com/contact-us"
2552 echo "to upgrade your license to include this platform, or install"
2553 echo "the Qt Open Source Edition if you intend to develop free software."
2559 #-------------------------------------------------------------------------------
2560 # tests that don't need qmake (must be run before displaying help)
2561 #-------------------------------------------------------------------------------
2563 # detect build style
2564 if [ "$CFG_DEBUG" = "auto" ]; then
2565 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2566 CFG_DEBUG_RELEASE=yes
2568 elif [ "$CFG_DEV" = "yes" ]; then
2569 CFG_DEBUG_RELEASE=no
2572 CFG_DEBUG_RELEASE=no
2576 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2577 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2580 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2581 QT_CONFIG="$QT_CONFIG force_debug_info"
2584 # pass on $CFG_SDK to the arch/configure tests.
2585 if [ -n "$CFG_SDK" ]; then
2586 MAC_SDK_FLAG="-sdk $CFG_SDK"
2591 # find the default framework value
2592 if [ "$BUILD_ON_MAC" = "yes" ]; then
2593 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2594 CFG_FRAMEWORK="$CFG_SHARED"
2595 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2597 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2605 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2607 TEST_COMPILER=$QMAKE_CONF_COMPILER
2608 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2609 if [ -z "$TEST_COMPILER" ]; then
2610 echo "ERROR: Cannot set the compiler for the configuration tests"
2614 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2617 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2618 if [ -n "$GCC_MACHINE_DUMP" ]; then
2619 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2622 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2623 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2627 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2629 # auto-detect precompiled header support
2630 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2631 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2638 # auto-detect support for separate debug info in objcopy
2639 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2640 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2641 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2642 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2643 CFG_SEPARATE_DEBUG_INFO=no
2647 # binutils on HP-UX is buggy; default to no.
2648 CFG_SEPARATE_DEBUG_INFO=no
2651 CFG_SEPARATE_DEBUG_INFO=yes
2657 # auto-detect -fvisibility support
2658 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2659 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2660 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2661 echo "-reduce-exports was requested but this compiler does not support it"
2662 echo "Re-run configure with -v for more information"
2665 CFG_REDUCE_EXPORTS=no
2667 CFG_REDUCE_EXPORTS=yes
2671 # auto-detect -fstack-protector-strong support (for QNX only currently)
2672 if [ "$XPLATFORM_QNX" = "yes" ]; then
2673 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2674 CFG_STACK_PROTECTOR_STRONG=yes
2676 CFG_STACK_PROTECTOR_STRONG=no
2679 CFG_STACK_PROTECTOR_STRONG=no
2682 # detect the availability of the -Bsymbolic-functions linker optimization
2683 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2684 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2685 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2686 echo "-reduce-relocations was requested but this compiler does not support it"
2687 echo "Re-run configure with -v for more information"
2690 CFG_REDUCE_RELOCATIONS=no
2692 CFG_REDUCE_RELOCATIONS=yes
2696 # auto-detect GNU make support
2697 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2701 # find the default framework value
2702 if [ "$BUILD_ON_MAC" = "yes" ]; then
2703 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2704 CFG_FRAMEWORK="$CFG_SHARED"
2705 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2707 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2715 # auto-detect default include and library search paths
2716 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2717 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2718 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2719 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2720 /^End of search/ { yup=0 }
2721 yup { print substr($0, 2) }
2722 /^\#include </ { yup=1 }
2724 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2726 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2729 #setup the build parts
2730 if [ -z "$CFG_BUILD_PARTS" ]; then
2731 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2733 # build tests by default, if a developer build
2734 if [ "$CFG_DEV" = "yes" ]; then
2735 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2738 # don't build tools by default when cross-compiling
2739 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2740 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2743 for nobuild in $CFG_NOBUILD_PARTS; do
2744 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2746 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2748 # echo "WARNING: libs is a required part of the build."
2750 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2753 #-------------------------------------------------------------------------------
2754 # post process QT_INSTALL_* variables
2755 #-------------------------------------------------------------------------------
2757 if [ -z "$QT_INSTALL_PREFIX" ]; then
2758 if [ "$CFG_DEV" = "yes" ]; then
2759 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2761 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2764 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2766 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2767 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2768 if [ "$BUILD_ON_MAC" = "yes" ]; then
2769 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2772 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2775 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2777 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2778 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2779 if [ "$BUILD_ON_MAC" = "yes" ]; then
2780 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2785 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2788 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2790 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2791 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2792 if [ "$BUILD_ON_MAC" = "yes" ]; then
2793 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2794 QT_INSTALL_LIBS="/Library/Frameworks"
2798 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2800 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2802 if [ -z "$QT_INSTALL_BINS" ]; then #default
2803 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2804 if [ "$BUILD_ON_MAC" = "yes" ]; then
2805 QT_INSTALL_BINS="/Developer/Applications/Qt"
2808 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2810 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2812 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2813 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2814 if [ "$BUILD_ON_MAC" = "yes" ]; then
2815 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2818 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2820 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2822 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2823 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2824 if [ "$BUILD_ON_MAC" = "yes" ]; then
2825 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2828 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2830 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2832 if [ -z "$QT_INSTALL_DATA" ]; then #default
2833 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2835 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2837 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2838 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2840 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2842 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2843 if [ "$BUILD_ON_MAC" = "yes" ]; then
2844 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2846 QT_INSTALL_SETTINGS=/etc/xdg
2849 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2851 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2852 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2853 if [ "$BUILD_ON_MAC" = "yes" ]; then
2854 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2857 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2859 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2862 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2863 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2864 if [ "$BUILD_ON_MAC" = "yes" ]; then
2865 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2868 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2870 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2872 #------- host paths --------
2874 if [ -z "$QT_HOST_PREFIX" ]; then
2875 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2878 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2882 if [ -z "$QT_HOST_BINS" ]; then #default
2884 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2885 if [ "$BUILD_ON_MAC" = "yes" ]; then
2886 QT_HOST_BINS="/Developer/Applications/Qt"
2889 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2891 QT_HOST_BINS="$QT_INSTALL_BINS"
2894 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2896 if [ -z "$QT_HOST_DATA" ]; then #default
2898 QT_HOST_DATA="$QT_HOST_PREFIX"
2900 QT_HOST_DATA="$QT_INSTALL_DATA"
2903 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2906 #-------------------------------------------------------------------------------
2907 # help - interactive parts of the script _after_ this section please
2908 #-------------------------------------------------------------------------------
2910 # next, emit a usage message if something failed.
2911 if [ "$OPT_HELP" = "yes" ]; then
2912 [ "x$ERROR" = "xyes" ] && echo
2913 if [ "$CFG_NIS" = "no" ]; then
2920 if [ "$CFG_CUPS" = "no" ]; then
2927 if [ "$CFG_ICONV" = "no" ]; then
2934 if [ "$CFG_LARGEFILE" = "no" ]; then
2941 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2949 if [ "$CFG_XCB" = "no" ]; then
2957 if [ "$CFG_EGLFS" = "no" ]; then
2965 if [ "$CFG_DIRECTFB" = "no" ]; then
2973 if [ "$CFG_LINUXFB" = "no" ]; then
2981 if [ "$CFG_KMS" = "no" ]; then
2989 if [ "$CFG_XINPUT2" = "no" ]; then
2997 if [ "$CFG_DBUS" = "no" ]; then
3005 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3013 if [ "$CFG_GLIB" = "no" ]; then
3022 Usage: $relconf [options]
3024 Installation options:
3026 These are optional, but you may specify install directories.
3028 -prefix <dir> ...... This will install everything relative to <dir>
3029 (default $QT_INSTALL_PREFIX)
3031 -hostprefix [dir] .. Tools and libraries needed when developing
3032 applications are installed in [dir]. If [dir] is
3033 not given, the current build directory will be used.
3036 * -prefix-install .... Force a sandboxed "local" installation of
3037 Qt. This will install into
3038 $QT_INSTALL_PREFIX, if this option is
3039 disabled then some platforms will attempt a
3040 "system" install by placing default values
3041 in a system location other than PREFIX.
3043 You may use these to separate different parts of the install:
3045 -bindir <dir> ......... Executables will be installed to <dir>
3046 (default PREFIX/bin)
3047 -libdir <dir> ......... Libraries will be installed to <dir>
3048 (default PREFIX/lib)
3049 -docdir <dir> ......... Documentation will be installed to <dir>
3050 (default PREFIX/doc)
3051 -headerdir <dir> ...... Headers will be installed to <dir>
3052 (default PREFIX/include)
3053 -plugindir <dir> ...... Plugins will be installed to <dir>
3054 (default PREFIX/plugins)
3055 -importdir <dir> ...... Imports for QML will be installed to <dir>
3056 (default PREFIX/imports)
3057 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3059 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3060 (default PREFIX/translations)
3061 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3062 (default PREFIX/etc/settings)
3063 -examplesdir <dir> .... Examples will be installed to <dir>
3064 (default PREFIX/examples)
3065 -testsdir <dir> ....... Tests will be installed to <dir>
3066 (default PREFIX/tests)
3068 -hostbindir <dir> .. Host executables will be installed to <dir>
3069 (default HOSTPREFIX/bin)
3070 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3071 (default HOSTPREFIX)
3075 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3076 that needs to be evaluated. If the evaluation succeeds, the feature is
3077 included. Here is a short explanation of each option:
3079 * -release ........... Compile and link Qt with debugging turned off.
3080 -debug ............. Compile and link Qt with debugging turned on.
3081 -debug-and-release . Compile and link two versions of Qt, with and without
3082 debugging turned on (Mac only).
3084 -force-debug-info .. Create symbol files for release builds.
3086 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3088 -opensource ........ Compile and link the Open-Source Edition of Qt.
3089 -commercial ........ Compile and link the Commercial Edition of Qt.
3091 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3092 + -c++11 ............. Compile Qt with C++11 support enabled.
3094 * -shared ............ Create and use shared Qt libraries.
3095 -static ............ Create and use static Qt libraries.
3097 * -process ........... Generate only a top-level Makefile.
3098 -fully-process ..... Generate Makefiles for the entire Qt tree.
3099 -dont-process ...... Do not generate any Makefiles.
3101 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3103 -fast .............. Configure Qt quickly by generating Makefiles only for
3104 library and subdirectory targets. All other Makefiles
3105 are created as wrappers, which will in turn run qmake.
3107 -no-largefile ...... Disables large file support.
3108 + -largefile ......... Enables Qt to access files larger than 4 GB.
3110 -no-accessibility .. Do not compile Accessibility support.
3111 + -accessibility ..... Compile Accessibility support.
3113 -no-sql-<driver> ... Disable SQL <driver> entirely.
3114 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3116 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3119 Possible values for <driver>:
3120 [ $CFG_SQL_AVAILABLE ]
3122 -system-sqlite ..... Use sqlite from the operating system.
3124 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3125 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3127 -no-qml-debug ...... Do not build the in-process QML debugging support.
3128 + -qml-debug ......... Build the QML debugging support.
3130 -platform target ... The operating system and compiler you are building
3133 See the README file for a list of supported
3134 operating systems and compilers.
3136 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3137 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3138 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3139 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3140 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3141 -no-avx ............ Do not compile with use of AVX instructions.
3142 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3143 -no-neon ........... Do not compile with use of NEON instructions.
3144 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3145 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3147 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3148 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3150 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3152 -D <string> ........ Add an explicit define to the preprocessor.
3153 -I <string> ........ Add an explicit include path.
3154 -L <string> ........ Add an explicit library path.
3156 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3157 configure determines whether to use pkg-config or not with
3158 some heuristics such as checking the environment variables.
3159 -no-pkg-config ..... Disable use of pkg-config.
3160 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3161 detection heuristic).
3163 -help, -h .......... Display this information.
3165 Third Party Libraries:
3167 -qt-zlib ........... Use the zlib bundled with Qt.
3168 + -system-zlib ....... Use zlib from the operating system.
3169 See http://www.gzip.org/zlib
3171 -no-gif ............ Do not compile GIF reading support.
3173 -no-libpng ......... Do not compile PNG support.
3174 -qt-libpng ......... Use the libpng bundled with Qt.
3175 + -system-libpng ..... Use libpng from the operating system.
3176 See http://www.libpng.org/pub/png
3178 -no-libjpeg ........ Do not compile JPEG support.
3179 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3180 + -system-libjpeg .... Use libjpeg from the operating system.
3181 See http://www.ijg.org
3183 -no-openssl ........ Do not compile support for OpenSSL.
3184 + -openssl ........... Enable run-time OpenSSL support.
3185 -openssl-linked .... Enabled linked OpenSSL support.
3187 -qt-pcre ........... Use the PCRE library bundled with Qt.
3188 + -system-pcre ....... Use the PCRE library from the operating system.
3192 -make <part> ....... Add part to the list of parts to be built at make time.
3193 ($QT_DEFAULT_BUILD_PARTS)
3194 -nomake <part> ..... Exclude part from the list of parts to be built.
3196 -no-gui ............ Don't build the QtGui library and dependencies.
3197 + -gui ............... Build the QtGui library and dependencies.
3199 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3200 + -widgets ........... Build the QtWidgets library and dependencies.
3202 -R <string> ........ Add an explicit runtime library path to the Qt
3204 -l <string> ........ Add an explicit library.
3206 -no-rpath .......... Do not use the library install path as a runtime
3208 + -rpath ............. Link Qt libraries and executables using the library
3209 install path as a runtime library path. Equivalent
3210 to -R install_libpath
3212 -continue .......... Continue as far as possible if an error occurs.
3214 -verbose, -v ....... Print verbose information about each step of the
3217 -silent ............ Reduce the build output so that warnings and errors
3218 can be seen more easily.
3220 * -no-optimized-qmake ... Do not build qmake optimized.
3221 -optimized-qmake ...... Build qmake optimized.
3223 $NSN -no-nis ............ Do not compile NIS support.
3224 $NSY -nis ............... Compile NIS support.
3226 $CUN -no-cups ........... Do not compile CUPS support.
3227 $CUY -cups .............. Compile CUPS support.
3228 Requires cups/cups.h and libcups.so.2.
3230 $CIN -no-iconv .......... Do not compile support for iconv(3).
3231 $CIY -iconv ............. Compile support for iconv(3).
3233 -no-icu ............ Do not compile support for ICU libraries.
3234 + -icu ............... Compile support for ICU libraries.
3236 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3237 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3239 $PHN -no-pch ............ Do not use precompiled header support.
3240 $PHY -pch ............... Use precompiled header support.
3242 $DBN -no-dbus ........... Do not compile the QtDBus module.
3243 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3244 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3246 -reduce-relocations ..... Reduce relocations in the libraries through extra
3247 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3248 experimental; needs GNU ld >= 2.18).
3250 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3252 -device <name> ............... Cross-compile for device <name> (experimental)
3253 -device-option <key=value> ... Add device specific options for the device mkspec
3256 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3257 $SBY -separate-debug-info .... Strip debug information into a separate file.
3259 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3260 $XCBY -xcb ............... Compile Xcb support.
3262 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3263 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3265 $DFBN -no-directfb ....... Do not compile DirectFB support.
3266 $DFBY -directfb .......... Compile DirectFB support.
3268 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3269 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3271 $KMSN -no-kms ............ Do not compile KMS support.
3272 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3274 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3276 -xplatform target ... The target platform when cross-compiling.
3278 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3279 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3281 -no-feature-<feature> Do not compile in <feature>.
3282 -feature-<feature> .. Compile in <feature>. The available features
3283 are described in src/corelib/global/qfeatures.txt
3285 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3286 default ($CFG_QCONFIG).
3288 -no-opengl .......... Do not support OpenGL.
3289 -opengl <api> ....... Enable OpenGL support
3290 With no parameter, this will attempt to auto-detect
3291 OpenGL ES 2, or regular desktop OpenGL.
3292 Use es2 for <api> to override auto-detection.
3294 $GBN -no-glib ........... Do not compile Glib support.
3295 $GBY -glib .............. Compile Glib support.
3298 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3301 $X2N -no-xinput2......... Do not compile XInput2 support.
3302 $X2Y -xinput2............ Compile XInput2 support.
3308 if [ "$XPLATFORM_QNX" = "yes" ]; then
3311 -no-slog2 .......... Do not compile with slog2 support.
3312 -slog2 ............. Compile with slog2 support.
3318 if [ "$BUILD_ON_MAC" = "yes" ]; then
3323 -Fstring ........... Add an explicit framework path.
3324 -fw string ......... Add an explicit framework.
3326 * -framework ......... Build Qt as a series of frameworks and
3327 link tools against those frameworks.
3328 -no-framework ...... Do not build Qt as a series of frameworks.
3330 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3331 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3333 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3334 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3335 QT_ENABLE_HARFBUZZ environment variable.
3340 [ "x$ERROR" = "xyes" ] && exit 1
3345 # -----------------------------------------------------------------------------
3346 # LICENSING, INTERACTIVE PART
3347 # -----------------------------------------------------------------------------
3350 echo "This is the Qt ${EditionString} Edition."
3353 if [ "$Edition" = "OpenSource" ]; then
3355 echo "You are licensed to use this software under the terms of"
3356 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3357 if [ -f "$relpath/LICENSE.GPL3" ]; then
3358 echo "You are also licensed to use this software under the terms of"
3359 echo "the GNU General Public License (GPL) versions 3."
3365 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3366 echo "You have already accepted the terms of the $LicenseType license."
3369 if [ -f "$relpath/LICENSE.GPL3" ]; then
3370 echo "Type '3' to view the GNU General Public License version 3."
3372 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3373 echo "Type 'yes' to accept this license offer."
3374 echo "Type 'no' to decline this license offer."
3376 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3380 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3382 elif [ "$acceptance" = "no" ]; then
3383 echo "You are not licensed to use this software."
3386 elif [ "$acceptance" = "3" ]; then
3387 more "$relpath/LICENSE.GPL3"
3388 elif [ "$acceptance" = "L" ]; then
3389 more "$relpath/LICENSE.LGPL"
3392 elif [ "$Edition" = "Preview" ]; then
3393 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3396 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3397 echo "You have already accepted the terms of the $LicenseType license."
3400 echo "You are licensed to use this software under the terms of"
3401 echo "the $TheLicense"
3403 echo "Type '?' to read the Preview License."
3404 echo "Type 'yes' to accept this license offer."
3405 echo "Type 'no' to decline this license offer."
3407 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3411 if [ "$acceptance" = "yes" ]; then
3413 elif [ "$acceptance" = "no" ] ;then
3414 echo "You are not licensed to use this software."
3417 elif [ "$acceptance" = "?" ]; then
3418 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3421 elif [ "$Edition" != "OpenSource" ]; then
3422 if [ -n "$ExpiryDate" ]; then
3423 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3424 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3425 Today=`date +%Y%m%d`
3426 if [ "$Today" -gt "$ExpiryDate" ]; then
3427 case "$LicenseType" in
3428 Commercial|Academic|Educational)
3430 echo "WARNING WARNING WARNING WARNING"
3432 echo " Your support and upgrade period has expired."
3434 echo " You may continue to use your last licensed release"
3435 echo " of Qt under the terms of your existing license"
3436 echo " agreement. But you are not entitled to technical"
3437 echo " support, nor are you entitled to use any more recent"
3438 echo " Qt releases."
3440 echo " Please use the contact form at http://qt.digia.com/contact-us"
3441 echo " to renew your support and upgrades for this license."
3443 echo "WARNING WARNING WARNING WARNING"
3449 echo "NOTICE NOTICE NOTICE NOTICE"
3451 echo " Your Evaluation license has expired."
3453 echo " You are no longer licensed to use this software. Please"
3454 echo " use the contact form at http://qt.digia.com/contact-us to"
3455 echo " purchase license, or install the Qt Open Source Edition"
3456 echo " if you intend to develop free software."
3458 echo "NOTICE NOTICE NOTICE NOTICE"
3465 TheLicense=`head -n 1 "$outpath/LICENSE"`
3467 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3468 echo "You have already accepted the terms of the $TheLicense."
3471 echo "You are licensed to use this software under the terms of"
3472 echo "the $TheLicense."
3474 echo "Type '?' to view the $TheLicense."
3475 echo "Type 'yes' to accept this license offer."
3476 echo "Type 'no' to decline this license offer."
3478 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3482 if [ "$acceptance" = "yes" ]; then
3484 elif [ "$acceptance" = "no" ]; then
3485 echo "You are not licensed to use this software."
3488 else [ "$acceptance" = "?" ]
3489 more "$outpath/LICENSE"
3494 # this should be moved somewhere else
3497 AIX_VERSION=`uname -v`
3498 if [ "$AIX_VERSION" -lt "5" ]; then
3499 QMakeVar add QMAKE_LIBS_X11 -lbind
3506 #-------------------------------------------------------------------------------
3507 # generate qconfig.cpp
3508 #-------------------------------------------------------------------------------
3509 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3511 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3513 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3514 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3516 /* Installation date */
3517 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3519 /* Installation Info */
3520 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3521 "qt_prfxpath=$QT_INSTALL_PREFIX",
3522 "qt_docspath=$QT_INSTALL_DOCS",
3523 "qt_hdrspath=$QT_INSTALL_HEADERS",
3524 "qt_libspath=$QT_INSTALL_LIBS",
3525 "qt_binspath=$QT_INSTALL_BINS",
3526 "qt_plugpath=$QT_INSTALL_PLUGINS",
3527 "qt_impspath=$QT_INSTALL_IMPORTS",
3528 "qt_datapath=$QT_INSTALL_DATA",
3529 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3530 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3531 "qt_tstspath=$QT_INSTALL_TESTS",
3532 #ifdef QT_BUILD_QMAKE
3533 "qt_ssrtpath=$CFG_SYSROOT",
3534 "qt_hpfxpath=$QT_HOST_PREFIX",
3535 "qt_hbinpath=$QT_HOST_BINS",
3536 "qt_hdatpath=$QT_HOST_DATA",
3539 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3542 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3544 /* strlen( "qt_lcnsxxxx" ) == 12 */
3545 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3546 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3548 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3551 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3552 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3553 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3555 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3556 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3557 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3560 # -----------------------------------------------------------------------------
3561 if [ "$LicenseType" = "Evaluation" ]; then
3562 EVALKEY=qt_qevalkey=$LicenseKeyExt
3563 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3564 EVALKEY=qt_qevalkey=
3567 if [ -n "$EVALKEY" ]; then
3568 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3569 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3570 /* Evaluation license key */
3571 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3573 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3577 # -----------------------------------------------------------------------------
3579 # -----------------------------------------------------------------------------
3582 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3583 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3586 # $1: input variable name (awk regexp)
3587 # $2: optional output variable name
3588 # $3: optional value transformation (sed command)
3589 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3590 # is where the resulting variable is written to
3591 setBootstrapVariable()
3593 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3597 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3598 echo "Creating qmake. Please wait..."
3600 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3601 rm -rf mkspecs/default mkspecs/default-host
3602 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3603 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3604 mkdir -p "$outpath/qmake" || exit
3606 for mkfile in GNUmakefile Makefile; do
3609 in_mkfile="${mkfile}.in"
3610 if [ "$mkfile" = "Makefile" ]; then
3611 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3612 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3614 in_mkfile="${mkfile}.unix"
3616 in_mkfile="$relpath/qmake/$in_mkfile"
3617 mkfile="$outpath/qmake/$mkfile"
3618 if [ -f "$mkfile" ]; then
3619 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3622 [ -f "$in_mkfile" ] || continue
3624 echo "########################################################################" > "$mkfile"
3625 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3626 echo "########################################################################" >> "$mkfile"
3629 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3630 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3631 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3633 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3634 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3637 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3638 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3639 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3640 setBootstrapVariable QMAKE_CFLAGS
3641 setBootstrapVariable QMAKE_CXXFLAGS
3642 setBootstrapVariable QMAKE_LFLAGS
3644 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3645 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3646 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3648 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3649 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3650 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3651 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3652 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3653 elif [ "$CFG_DEBUG" = "yes" ]; then
3654 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3655 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3656 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3657 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3660 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3661 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3662 for rpath in $RPATH_FLAGS; do
3663 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3666 if [ "$BUILD_ON_MAC" = "yes" ]; then
3667 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3668 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3669 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3670 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3671 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3672 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3673 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3674 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3675 if [ '!' -z "$CFG_SDK" ]; then
3676 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3677 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3678 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3679 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3680 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3683 if [ '!' -z "$D_FLAGS" ]; then
3684 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3686 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3687 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3688 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3689 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3691 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3692 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3693 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3694 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3695 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3696 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3697 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3698 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3699 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3700 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3702 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3703 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3704 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3705 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3710 (cd "$outpath/qmake"; "$MAKE") || exit 2
3713 #-------------------------------------------------------------------------------
3714 # create a qt.conf for the Qt build tree itself
3715 #-------------------------------------------------------------------------------
3717 QTCONFFILE="$outpath/bin/qt.conf"
3718 cat > "$QTCONFFILE" <<EOF
3723 #-------------------------------------------------------------------------------
3724 # write out device config before we run the test.
3725 #-------------------------------------------------------------------------------
3726 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3727 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3728 rm -f "$DEVICE_VARS_FILE"
3730 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3731 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3734 #-------------------------------------------------------------------------------
3736 #-------------------------------------------------------------------------------
3737 if [ -z "$PKG_CONFIG" ]; then
3738 # See if PKG_CONFIG is set in the mkspec:
3739 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3741 if [ -z "$PKG_CONFIG" ]; then
3742 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3745 if [ "$CFG_PKGCONFIG" = "no" ]; then
3747 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3749 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3750 echo >&2 "a correctly setup pkg-config environment!"
3752 elif [ -n "$PKG_CONFIG" ]; then
3753 # found a pkg-config
3754 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3755 # when xcompiling, check environment to see if it's actually usable
3756 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3757 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3758 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3759 if [ -n "$GCC_MACHINE_DUMP" ]; then
3760 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3762 export PKG_CONFIG_LIBDIR
3763 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3764 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3765 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3766 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3767 echo >&2 "Set this variable to the directory that contains target .pc files"
3768 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3769 echo >&2 "use -force-pkg-config to override this test."
3773 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3776 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3777 if [ -n "$CFG_SYSROOT" ]; then
3778 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3779 export PKG_CONFIG_SYSROOT_DIR
3780 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3781 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3782 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3783 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3784 echo >&2 "or use -force-pkg-config to override this test."
3788 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3792 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3793 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3797 if [ -z "$PKG_CONFIG" ]; then
3798 QT_CONFIG="$QT_CONFIG no-pkg-config"
3801 #-------------------------------------------------------------------------------
3802 # tests that need qmake
3803 #-------------------------------------------------------------------------------
3805 # parameters: path, name, extra args
3808 path=config.tests/$1
3811 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3814 #-------------------------------------------------------------------------------
3815 # determine the target and host architectures
3816 #-------------------------------------------------------------------------------
3818 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3819 OUTFILE=$outpath/arch.result
3820 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3821 if [ $? -eq 0 ]; then
3822 eval `cat "$OUTFILE"`
3825 echo "Could not determine the target architecture!"
3826 echo "Turn on verbose messaging (-v) to see the final report."
3828 rm -f "$OUTFILE" 2>/dev/null
3829 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3831 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3832 # Do the same test again, using the host compiler
3833 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3834 if [ $? -eq 0 ]; then
3835 eval `cat "$OUTFILE"`
3838 echo "Could not determine the host architecture!"
3839 echo "Turn on verbose messaging (-v) to see the final report."
3841 rm -f "$OUTFILE" 2>/dev/null
3842 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3844 # not cross compiling, host == target
3845 CFG_HOST_ARCH="$CFG_ARCH"
3846 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3850 if [ "$OPT_VERBOSE" = "yes" ]; then
3851 echo "System architecture: '$CFG_ARCH'"
3852 echo "Host architecture: '$CFG_HOST_ARCH'"
3855 #-------------------------------------------------------------------------------
3856 # functionality tests
3857 #-------------------------------------------------------------------------------
3859 # Detect C++11 support
3860 if [ "$CFG_CXX11" != "no" ]; then
3861 if compileTest common/c++11 "C++11"; then
3863 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3864 echo "C++11 support cannot be enabled due to functionality tests!"
3865 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3866 echo " If you believe this message is in error you may use the continue"
3867 echo " switch (-continue) to $0 to continue."
3874 # detect availability of float math.h functions
3875 if compileTest unix/floatmath "floatmath"; then
3876 CFG_USE_FLOATMATH=yes
3878 CFG_USE_FLOATMATH=no
3881 # detect sse2 support
3882 if [ "${CFG_SSE2}" = "auto" ]; then
3883 if compileTest common/sse2 "sse2"; then
3890 # detect sse3 support
3891 if [ "${CFG_SSE3}" = "auto" ]; then
3892 if compileTest common/sse3 "sse3"; then
3899 # detect ssse3 support
3900 if [ "${CFG_SSSE3}" = "auto" ]; then
3901 if compileTest common/ssse3 "ssse3"; then
3908 # detect sse4.1 support
3909 if [ "${CFG_SSE4_1}" = "auto" ]; then
3910 if compileTest common/sse4_1 "sse4_1"; then
3917 # detect sse4.2 support
3918 if [ "${CFG_SSE4_2}" = "auto" ]; then
3919 if compileTest common/sse4_2 "sse4_2"; then
3926 # detect avx support
3927 if [ "${CFG_AVX}" = "auto" ]; then
3928 if compileTest common/avx "avx"; then
3929 case "$XQMAKESPEC" in
3931 # Some clang versions produce internal compiler errors compiling Qt AVX code
3932 case `$TEST_COMPILER --version` in
3933 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3935 if [ "$OPT_VERBOSE" = "yes" ]; then
3936 echo 'AVX support disabled for blacklisted clang compiler'
3953 # detect avx2 support
3954 if [ "${CFG_AVX}" = "no" ]; then
3957 if [ "${CFG_AVX2}" = "auto" ]; then
3958 if compileTest common/avx2 "avx2"; then
3965 # check iWMMXt support
3966 if [ "$CFG_IWMMXT" = "yes" ]; then
3967 compileTest unix/iwmmxt "iwmmxt"
3968 if [ $? != "0" ]; then
3969 echo "The iWMMXt functionality test failed!"
3970 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3975 # detect neon support
3976 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3977 if compileTest unix/neon "neon"; then
3982 elif [ "$CFG_ARCH" != "arm" ]; then
3986 # detect mips_dsp support
3987 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3988 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dsp "mips_dsp" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3993 elif [ "$CFG_ARCH" != "mips" ]; then
3997 # detect mips_dspr2 support
3998 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3999 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dspr2 "mips_dspr2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4004 elif [ "$CFG_ARCH" != "mips" ]; then
4008 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4011 if [ "$CFG_ZLIB" = "no" ]; then
4012 # Note: Qt no longer support builds without zlib
4013 # So we force a "no" to be "auto" here.
4014 # If you REALLY really need no zlib support, you can still disable
4015 # it by doing the following:
4016 # add "no-zlib" to mkspecs/qconfig.pri
4017 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4019 # There's no guarantee that Qt will build under those conditions
4025 if [ "$XPLATFORM_QNX" = "yes" ]; then
4026 if [ "$CFG_SLOG2" != "no" ]; then
4027 if compileTest unix/slog2 "slog2"; then
4029 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4036 if [ "$CFG_ZLIB" = "auto" ]; then
4037 if compileTest unix/zlib "zlib"; then
4044 if [ "$CFG_LARGEFILE" = "auto" ]; then
4045 #Large files should be enabled for all Linux systems
4049 if [ "$CFG_GUI" = "no" ]; then
4050 QPA_PLATFORM_GUARD=no
4053 # detect how jpeg should be built
4054 if [ "$CFG_JPEG" = "auto" ]; then
4055 if [ "$CFG_SHARED" = "yes" ]; then
4062 if [ "$CFG_LIBJPEG" = "auto" ]; then
4063 if compileTest unix/libjpeg "libjpeg"; then
4070 # detect how gif should be built
4071 if [ "$CFG_GIF" = "auto" ]; then
4072 if [ "$CFG_SHARED" = "yes" ]; then
4080 if [ "$CFG_LIBPNG" = "auto" ]; then
4081 if compileTest unix/libpng "libpng"; then
4088 if [ "$CFG_EGLFS" = "yes" ]; then
4089 if [ "$CFG_EGL" = "no" ]; then
4090 echo "The EGLFS plugin requires EGL support and cannot be built"
4093 if [ "$CFG_OPENGL" != "es2" ]; then
4094 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4101 if [ "$CFG_KMS" = "yes" ]; then
4102 if [ "$CFG_EGL" = "no" ]; then
4103 echo "The KMS plugin requires EGL support and cannot be built"
4106 if [ "$CFG_OPENGL" != "es2" ]; then
4107 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4112 # auto-detect SQL-modules support
4113 for _SQLDR in $CFG_SQL_AVAILABLE; do
4116 if [ "$CFG_SQL_mysql" != "no" ]; then
4117 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4118 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4119 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4120 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4121 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4122 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4123 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4125 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4126 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4127 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4128 echo " You need MySql 4 or higher."
4129 echo " If you believe this message is in error you may use the continue"
4130 echo " switch (-continue) to $0 to continue."
4135 QT_LFLAGS_MYSQL_R=""
4139 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4140 QMakeVar add CONFIG use_libmysqlclient_r
4141 if [ "$CFG_SQL_mysql" = "auto" ]; then
4142 CFG_SQL_mysql=plugin
4144 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4145 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4146 if [ "$CFG_SQL_mysql" = "auto" ]; then
4147 CFG_SQL_mysql=plugin
4150 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4151 echo "MySQL support cannot be enabled due to functionality tests!"
4152 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4153 echo " If you believe this message is in error you may use the continue"
4154 echo " switch (-continue) to $0 to continue."
4159 QT_LFLAGS_MYSQL_R=""
4167 if [ "$CFG_SQL_psql" != "no" ]; then
4168 # Be careful not to use native pg_config when cross building.
4169 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4170 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4171 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4173 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4174 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4175 # But, respect PSQL_LIBS if set
4176 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4177 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4178 if [ "$CFG_SQL_psql" = "auto" ]; then
4182 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4183 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4184 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4185 echo " If you believe this message is in error you may use the continue"
4186 echo " switch (-continue) to $0 to continue."
4197 if [ "$CFG_SQL_odbc" != "no" ]; then
4198 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4199 if [ "$CFG_SQL_odbc" = "auto" ]; then
4203 if compileTest unix/iodbc "iODBC"; then
4204 QT_LFLAGS_ODBC="-liodbc"
4205 if [ "$CFG_SQL_odbc" = "auto" ]; then
4209 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4210 echo "ODBC support cannot be enabled due to functionality tests!"
4211 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4212 echo " If you believe this message is in error you may use the continue"
4213 echo " switch (-continue) to $0 to continue."
4223 if [ "$CFG_SQL_oci" != "no" ]; then
4224 if compileTest unix/oci "OCI"; then
4225 if [ "$CFG_SQL_oci" = "auto" ]; then
4229 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4230 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4231 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4232 echo " If you believe this message is in error you may use the continue"
4233 echo " switch (-continue) to $0 to continue."
4242 if [ "$CFG_SQL_tds" != "no" ]; then
4243 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4244 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4245 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4246 if [ "$CFG_SQL_tds" = "auto" ]; then
4250 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4251 echo "TDS support cannot be enabled due to functionality tests!"
4252 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4253 echo " If you believe this message is in error you may use the continue"
4254 echo " switch (-continue) to $0 to continue."
4263 if [ "$CFG_SQL_db2" != "no" ]; then
4264 if compileTest unix/db2 "DB2"; then
4265 if [ "$CFG_SQL_db2" = "auto" ]; then
4269 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4270 echo "ODBC support cannot be enabled due to functionality tests!"
4271 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4272 echo " If you believe this message is in error you may use the continue"
4273 echo " switch (-continue) to $0 to continue."
4282 if [ "$CFG_SQL_ibase" != "no" ]; then
4283 if compileTest unix/ibase "InterBase"; then
4284 if [ "$CFG_SQL_ibase" = "auto" ]; then
4285 CFG_SQL_ibase=plugin
4288 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4289 echo "InterBase support cannot be enabled due to functionality tests!"
4290 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4291 echo " If you believe this message is in error you may use the continue"
4292 echo " switch (-continue) to $0 to continue."
4301 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4302 if compileTest unix/sqlite2 "SQLite2"; then
4303 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4304 CFG_SQL_sqlite2=plugin
4307 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4308 echo "SQLite2 support cannot be enabled due to functionality tests!"
4309 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4310 echo " If you believe this message is in error you may use the continue"
4311 echo " switch (-continue) to $0 to continue."
4320 if [ "$CFG_SQL_sqlite" != "no" ]; then
4321 SQLITE_AUTODETECT_FAILED="no"
4322 if [ "$CFG_SQLITE" = "system" ]; then
4323 if [ -n "$PKG_CONFIG" ]; then
4324 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4325 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4328 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4330 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4331 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4332 CFG_SQL_sqlite=plugin
4334 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4336 SQLITE_AUTODETECT_FAILED="yes"
4339 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4340 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4341 CFG_SQL_sqlite=plugin
4344 SQLITE_AUTODETECT_FAILED="yes"
4348 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4349 echo "SQLite support cannot be enabled due to functionality tests!"
4350 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4351 echo " If you believe this message is in error you may use the continue"
4352 echo " switch (-continue) to $0 to continue."
4358 if [ "$OPT_VERBOSE" = "yes" ]; then
4359 echo "unknown SQL driver: $_SQLDR"
4365 # auto-detect NIS support
4366 if [ "$CFG_NIS" != "no" ]; then
4367 if compileTest unix/nis "NIS"; then
4370 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4371 echo "NIS support cannot be enabled due to functionality tests!"
4372 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4373 echo " If you believe this message is in error you may use the continue"
4374 echo " switch (-continue) to $0 to continue."
4382 # auto-detect CUPS support
4383 if [ "$CFG_CUPS" != "no" ]; then
4384 if compileTest unix/cups "Cups"; then
4387 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4388 echo "Cups support cannot be enabled due to functionality tests!"
4389 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4390 echo " If you believe this message is in error you may use the continue"
4391 echo " switch (-continue) to $0 to continue."
4399 # auto-detect iconv(3) support
4400 if [ "$CFG_ICONV" != "no" ]; then
4401 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4403 elif compileTest unix/iconv "POSIX iconv"; then
4405 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4407 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4410 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4411 echo "Iconv support cannot be enabled due to functionality tests!"
4412 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4413 echo " If you believe this message is in error you may use the continue"
4414 echo " switch (-continue) to $0 to continue."
4422 # auto-detect libdbus-1 support
4423 if [ "$CFG_DBUS" != "no" ]; then
4424 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4425 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4426 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4428 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4429 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4430 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4431 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4433 if [ "$CFG_DBUS" = "auto" ]; then
4435 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4436 # CFG_DBUS is "yes" or "linked" here
4438 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4439 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4440 echo " If you believe this message is in error you may use the continue"
4441 echo " switch (-continue) to $0 to continue."
4447 # auto-detect Glib support
4448 if [ "$CFG_GLIB" != "no" ]; then
4449 if [ -n "$PKG_CONFIG" ]; then
4450 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4451 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4453 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4455 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4456 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4458 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4459 echo "Glib support cannot be enabled due to functionality tests!"
4460 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4461 echo " If you believe this message is in error you may use the continue"
4462 echo " switch (-continue) to $0 to continue."
4470 # auto-detect GTK style support
4471 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4472 if [ -n "$PKG_CONFIG" ]; then
4473 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4474 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4476 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4478 QT_CONFIG="$QT_CONFIG gtkstyle"
4479 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4480 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4482 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4483 echo "Gtk theme support cannot be enabled due to functionality tests!"
4484 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4485 echo " If you believe this message is in error you may use the continue"
4486 echo " switch (-continue) to $0 to continue."
4492 elif [ "$CFG_GLIB" = "no" ]; then
4497 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4498 if [ -n "$PKG_CONFIG" ]; then
4499 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4500 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4502 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4504 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4505 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4507 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4508 echo "Gstreamer support cannot be enabled due to functionality tests!"
4509 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4510 echo " If you believe this message is in error you may use the continue"
4511 echo " switch (-continue) to $0 to continue."
4517 elif [ "$CFG_GLIB" = "no" ]; then
4521 # auto-detect libicu support
4522 if [ "$CFG_ICU" != "no" ]; then
4523 if compileTest unix/icu "ICU"; then
4524 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4526 if [ "$CFG_ICU" = "auto" ]; then
4528 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4531 echo "The ICU library support cannot be enabled."
4532 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4533 echo " If you believe this message is in error you may use the continue"
4534 echo " switch (-continue) to $0 to continue."
4540 # Auto-detect PulseAudio support
4541 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4542 if [ -n "$PKG_CONFIG" ]; then
4543 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4544 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4546 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4548 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4549 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4551 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4552 echo "PulseAudio support cannot be enabled due to functionality tests!"
4553 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4554 echo " If you believe this message is in error you may use the continue"
4555 echo " switch (-continue) to $0 to continue."
4564 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4565 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4566 if [ "$CFG_GUI" = "no" ]; then
4567 if [ "$CFG_OPENGL" = "auto" ]; then
4570 if [ "$CFG_OPENGL" != "no" ]; then
4571 echo "OpenGL enabled, but GUI disabled."
4572 echo " You might need to either enable the GUI or disable OpenGL"
4576 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4577 if compileTest x11/opengl "OpenGL"; then
4579 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4582 if [ "$CFG_OPENGL" = "yes" ]; then
4583 echo "All the OpenGL functionality tests failed!"
4584 echo " You might need to modify the include and library search paths by editing"
4585 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4586 echo " ${XQMAKESPEC}."
4593 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4594 if [ "$CFG_OPENGL" = "desktop" ]; then
4595 compileTest x11/glxfbconfig "OpenGL"
4596 if [ $? != "0" ]; then
4597 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4604 elif [ "$CFG_OPENGL" = "es2" ]; then
4606 compileTest unix/opengles2 "OpenGL ES 2.x"
4607 if [ $? != "0" ]; then
4608 echo "The OpenGL ES 2.0 functionality test failed!"
4609 echo " You might need to modify the include and library search paths by editing"
4610 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4611 echo " ${XQMAKESPEC}."
4614 elif [ "$CFG_OPENGL" = "desktop" ]; then
4615 # Desktop OpenGL support
4616 compileTest x11/opengl "OpenGL"
4617 if [ $? != "0" ]; then
4618 echo "The OpenGL functionality test failed!"
4619 echo " You might need to modify the include and library search paths by editing"
4620 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4621 echo " ${XQMAKESPEC}."
4626 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4627 compileTest x11/glxfbconfig "OpenGL"
4628 if [ $? != "0" ]; then
4629 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4636 fi # X11/MINGW OpenGL
4638 if [ "$BUILD_ON_MAC" = "yes" ]; then
4639 if [ "$CFG_COREWLAN" = "auto" ]; then
4640 if compileTest mac/corewlan "CoreWlan"; then
4648 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4649 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4650 if compileTest unix/opengldesktop "OpenGL"; then
4652 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4655 if [ "$CFG_OPENGL" = "yes" ]; then
4656 echo "All the OpenGL functionality tests failed!"
4657 echo " You might need to modify the include and library search paths by editing"
4658 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4659 echo " ${XQMAKESPEC}."
4664 elif [ "$CFG_OPENGL" = "es2" ]; then
4666 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4667 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4668 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4669 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4670 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4671 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4672 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4673 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4676 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4677 if [ $? != "0" ]; then
4678 echo "The OpenGL ES 2.0 functionality test failed!"
4679 echo " You might need to modify the include and library search paths by editing"
4680 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4681 echo " ${XQMAKESPEC}."
4684 elif [ "$CFG_OPENGL" = "desktop" ]; then
4685 # Desktop OpenGL support
4686 compileTest unix/opengldesktop "OpenGL"
4687 if [ $? != "0" ]; then
4688 echo "The OpenGL functionality test failed!"
4689 echo " You might need to modify the include and library search paths by editing"
4690 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4691 echo " ${XQMAKESPEC}."
4696 # auto-detect FontConfig support
4697 if [ "$CFG_FONTCONFIG" != "no" ]; then
4698 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4699 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4700 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4702 QT_CFLAGS_FONTCONFIG=
4703 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4705 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4706 QT_CONFIG="$QT_CONFIG fontconfig"
4707 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4708 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4710 CFG_LIBFREETYPE=system
4717 # Save these for a check later
4718 ORIG_CFG_XCB="$CFG_XCB"
4719 ORIG_CFG_EGLFS="$CFG_EGLFS"
4720 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4721 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4722 ORIG_CFG_KMS="$CFG_KMS"
4724 if [ "$CFG_LIBUDEV" != "no" ]; then
4725 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4726 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4727 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4728 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4729 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4731 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4733 QT_CONFIG="$QT_CONFIG libudev"
4734 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4735 echo "The libudev functionality test failed!"
4741 if [ "$CFG_LIBUDEV" = "no" ]; then
4742 QMakeVar add DEFINES QT_NO_LIBUDEV
4745 if [ "$CFG_EVDEV" != "no" ]; then
4746 if compileTest unix/evdev "evdev"; then
4748 QT_CONFIG="$QT_CONFIG evdev"
4749 elif [ "$CFG_EVDEV" = "yes" ]; then
4750 echo "The evdev functionality test failed!"
4756 if [ "$CFG_EVDEV" = "no" ]; then
4757 QMakeVar add DEFINES QT_NO_EVDEV
4760 # Check we actually have X11 :-)
4761 if compileTest x11/xlib "XLib"; then
4762 QT_CONFIG="$QT_CONFIG xlib"
4765 # auto-detect Xrender support
4766 if [ "$CFG_XRENDER" != "no" ]; then
4767 if compileTest x11/xrender "Xrender"; then
4769 QT_CONFIG="$QT_CONFIG xrender"
4771 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4772 echo "Xrender support cannot be enabled due to functionality tests!"
4773 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4774 echo " If you believe this message is in error you may use the continue"
4775 echo " switch (-continue) to $0 to continue."
4783 if [ "$CFG_XCB" != "no" ]; then
4784 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4785 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4786 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4788 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4790 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4791 QT_CONFIG="$QT_CONFIG xcb-render"
4794 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4796 QT_CONFIG="$QT_CONFIG xcb-glx"
4799 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4801 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4804 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4805 QT_CONFIG="$QT_CONFIG xcb-xlib"
4808 # auto-detect XInput2 support. Needed by xcb too.
4809 if [ "$CFG_XINPUT2" != "no" ]; then
4810 if compileTest x11/xinput2 "XInput2"; then
4814 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4815 echo "XInput2 support cannot be enabled due to functionality tests!"
4816 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4817 echo " If you believe this message is in error you may use the continue"
4818 echo " switch (-continue) to $0 to continue."
4826 if [ "$CFG_XCB" = "yes" ]; then
4827 echo "The XCB test failed!"
4828 echo " You might need to install dependency packages."
4829 echo " See src/plugins/platforms/xcb/README."
4835 if [ "$CFG_XCB" = "no" ]; then
4836 QMakeVar add DEFINES QT_NO_XCB
4839 if [ "$CFG_DIRECTFB" != "no" ]; then
4840 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4841 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4842 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4843 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4845 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4846 echo " DirectFB support cannot be enabled due to functionality tests!"
4847 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4848 echo " If you believe this message is in error you may use the continue"
4849 echo " switch (-continue) to $0 to continue."
4859 if [ "$CFG_LINUXFB" != "no" ]; then
4860 if compileTest qpa/linuxfb "LinuxFB"; then
4862 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4863 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4864 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4865 echo " If you believe this message is in error you may use the continue"
4866 echo " switch (-continue) to $0 to continue."
4873 if [ "$CFG_KMS" != "no" ]; then
4874 if compileTest qpa/kms "KMS"; then
4876 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4877 echo " KMS support cannot be enabled due to functionality tests!"
4878 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4879 echo " If you believe this message is in error you may use the continue"
4880 echo " switch (-continue) to $0 to continue."
4887 # Detect libxkbcommon
4888 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4889 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4890 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4891 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4892 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4894 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4898 if [ "$CFG_EGL" != "no" ]; then
4899 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4900 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4901 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4902 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4903 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4904 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4905 fi # detect EGL support
4906 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4908 elif [ "$CFG_EGL" = "yes" ]; then
4909 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4910 echo " You might need to modify the include and library search paths by editing"
4911 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4916 elif [ "$CFG_OPENGL" = "desktop" ]; then
4917 if [ "$CFG_EGL" = "yes" ]; then
4918 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4919 echo "Either disable EGL support or enable OpenGL ES support."
4925 if [ "$CFG_EGLFS" != "no" ]; then
4926 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4927 CFG_EGLFS="$CFG_EGL"
4933 if [ "$CFG_KMS" = "yes" ]; then
4934 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4941 # Detect accessibility support
4942 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4943 if [ "$CFG_XCB" = "no" ]; then
4944 CFG_ACCESSIBILITY=yes
4946 # linux/xcb accessibility needs dbus and atspi-2
4947 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4948 CFG_ACCESSIBILITY=yes
4950 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4951 CFG_ACCESSIBILITY=no
4953 echo "Accessibility support needs pkg-config and libatspi2."
4960 # Determine the default QPA platform
4961 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4963 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4964 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4965 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4966 QT_QPA_DEFAULT_PLATFORM="windows"
4967 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4968 QT_QPA_DEFAULT_PLATFORM="cocoa"
4969 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4970 QT_QPA_DEFAULT_PLATFORM="qnx"
4972 QT_QPA_DEFAULT_PLATFORM="xcb"
4977 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4978 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4979 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4980 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4982 if [ "$CFG_DIRECTFB" = "yes" ]; then
4983 QT_CONFIG="$QT_CONFIG directfb"
4984 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4985 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4987 if [ "$CFG_LINUXFB" = "yes" ]; then
4988 QT_CONFIG="$QT_CONFIG linuxfb"
4990 if [ "$CFG_KMS" = "yes" ]; then
4991 QT_CONFIG="$QT_CONFIG kms"
4994 if [ "$BUILD_ON_MAC" = "yes" ]; then
4995 if compileTest mac/coreservices "CoreServices"; then
4996 QT_CONFIG="$QT_CONFIG coreservices"
4998 QMakeVar add DEFINES QT_NO_CORESERVICES
5002 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5003 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5004 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5005 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5006 echo "No QPA platform plugin enabled!"
5007 echo " If you really want to build without a QPA platform plugin you must pass"
5008 echo " -no-qpa-platform-guard to configure. Doing this will"
5009 echo " produce a Qt that can not run GUI applications."
5010 echo " The dependencies needed for xcb to build are listed in"
5011 echo " src/plugins/platforms/xcb/README"
5018 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5019 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5020 if compileTest unix/freetype "FreeType"; then
5021 CFG_LIBFREETYPE=system
5027 if ! compileTest unix/stl "STL" &&
5028 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5029 echo "STL functionality check failed! Cannot build Qt with this STL library."
5030 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5035 # detect POSIX clock_gettime()
5036 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5037 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5038 CFG_CLOCK_GETTIME=yes
5040 CFG_CLOCK_GETTIME=no
5044 # detect POSIX monotonic clocks
5045 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5046 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5047 CFG_CLOCK_MONOTONIC=yes
5049 CFG_CLOCK_MONOTONIC=no
5051 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5052 CFG_CLOCK_MONOTONIC=no
5056 if [ "$CFG_MREMAP" = "auto" ]; then
5057 if compileTest unix/mremap "mremap"; then
5064 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5065 if [ "$CFG_GETADDRINFO" != "no" ]; then
5066 if compileTest unix/getaddrinfo "getaddrinfo"; then
5069 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5070 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5071 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5072 echo " If you believe this message is in error you may use the continue"
5073 echo " switch (-continue) to $0 to continue."
5081 # find if the platform provides inotify
5082 if [ "$CFG_INOTIFY" != "no" ]; then
5083 if compileTest unix/inotify "inotify"; then
5086 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5087 echo "inotify support cannot be enabled due to functionality tests!"
5088 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5089 echo " If you believe this message is in error you may use the continue"
5090 echo " switch (-continue) to $0 to continue."
5098 # find if the platform provides if_nametoindex (ipv6 interface name support)
5099 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5100 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5103 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5104 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5105 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5106 echo " If you believe this message is in error you may use the continue"
5107 echo " switch (-continue) to $0 to continue."
5115 # find if the platform provides getifaddrs (network interface enumeration)
5116 if [ "$CFG_GETIFADDRS" != "no" ]; then
5117 if compileTest unix/getifaddrs "getifaddrs"; then
5120 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5121 echo "getifaddrs support cannot be enabled due to functionality tests!"
5122 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5123 echo " If you believe this message is in error you may use the continue"
5124 echo " switch (-continue) to $0 to continue."
5133 if [ "$CFG_OPENSSL" != "no" ]; then
5134 if compileTest unix/openssl "OpenSSL"; then
5135 if [ "$CFG_OPENSSL" = "auto" ]; then
5139 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5140 echo "OpenSSL support cannot be enabled due to functionality tests!"
5141 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5142 echo " If you believe this message is in error you may use the continue"
5143 echo " switch (-continue) to $0 to continue."
5152 if [ "$CFG_PCRE" != "qt" ]; then
5153 if compileTest unix/pcre "PCRE"; then
5156 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5157 echo "PCRE support cannot be enabled due to functionality tests!"
5158 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5159 echo " If you believe this message is in error you may use the continue"
5160 echo " switch (-continue) to $0 to continue."
5168 # detect OpenVG support
5169 if [ "$CFG_OPENVG" != "no" ]; then
5170 if compileTest unix/openvg "OpenVG"; then
5171 if [ "$CFG_OPENVG" = "auto" ]; then
5174 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5175 if [ "$CFG_OPENVG" = "auto" ]; then
5178 CFG_OPENVG_ON_OPENGL=yes
5179 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5180 if [ "$CFG_OPENVG" = "auto" ]; then
5183 CFG_OPENVG_LC_INCLUDES=yes
5184 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5185 if [ "$CFG_OPENVG" = "auto" ]; then
5188 CFG_OPENVG_LC_INCLUDES=yes
5189 CFG_OPENVG_ON_OPENGL=yes
5191 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5192 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5193 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5194 echo " If you believe this message is in error you may use the continue"
5195 echo " switch (-continue) to $0 to continue."
5201 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5202 CFG_OPENVG_SHIVA=yes
5206 if [ "$CFG_ALSA" = "auto" ]; then
5207 if compileTest unix/alsa "alsa"; then
5214 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5215 if [ "$CFG_ARCH" = "arm" ]; then
5216 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5217 if [ $? != "0" ]; then
5218 CFG_JAVASCRIPTCORE_JIT=no
5221 case "$XPLATFORM" in
5223 CFG_JAVASCRIPTCORE_JIT=no
5229 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5230 QMakeVar set JAVASCRIPTCORE_JIT yes
5231 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5232 QMakeVar set JAVASCRIPTCORE_JIT no
5235 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5236 CFG_AUDIO_BACKEND=yes
5239 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5240 echo "Warning: largefile support cannot be disabled for win32."
5244 #-------------------------------------------------------------------------------
5245 # ask for all that hasn't been auto-detected or specified in the arguments
5246 #-------------------------------------------------------------------------------
5248 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5250 # disable accessibility
5251 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5252 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5254 QT_CONFIG="$QT_CONFIG accessibility"
5258 if [ "$CFG_EGL" = "yes" ]; then
5259 QT_CONFIG="$QT_CONFIG egl"
5261 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5265 if [ "$CFG_EGLFS" = "yes" ]; then
5266 QT_CONFIG="$QT_CONFIG eglfs"
5268 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5272 if [ "$CFG_OPENVG" = "no" ]; then
5273 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5275 QT_CONFIG="$QT_CONFIG openvg"
5276 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5277 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5279 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5280 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5282 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5283 QT_CONFIG="$QT_CONFIG shivavg"
5284 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5289 if [ "$CFG_OPENGL" = "no" ]; then
5290 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5292 QT_CONFIG="$QT_CONFIG opengl"
5295 if [ "$CFG_OPENGL" = "es2" ]; then
5296 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5299 if [ "$CFG_OPENGL" = "es2" ]; then
5300 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5301 QT_CONFIG="$QT_CONFIG opengles2"
5304 # build up the variables for output
5305 if [ "$CFG_DEBUG" = "yes" ]; then
5306 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5307 elif [ "$CFG_DEBUG" = "no" ]; then
5308 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5310 if [ "$CFG_SHARED" = "yes" ]; then
5311 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5312 QT_CONFIG="$QT_CONFIG shared"
5313 elif [ "$CFG_SHARED" = "no" ]; then
5314 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5315 QT_CONFIG="$QT_CONFIG static"
5318 #FIXME: qpa is implicit this should all be removed
5319 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5320 QT_CONFIG="$QT_CONFIG qpa"
5321 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5322 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5324 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5325 # Do not set this here for Windows. Let qmake do it so
5326 # debug and release precompiled headers are kept separate.
5327 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5329 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5330 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5331 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5332 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5333 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5334 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5336 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5337 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5339 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5340 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5341 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5342 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5343 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5344 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5345 QMakeVar add QMAKE_CFLAGS -g
5346 QMakeVar add QMAKE_CXXFLAGS -g
5347 QT_CONFIG="$QT_CONFIG separate_debug_info"
5349 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5350 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5352 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5353 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5354 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5355 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5356 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5357 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5358 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5359 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5360 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5361 if [ "$CFG_ARCH" = "mips" ]; then
5362 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5363 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5365 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5366 QT_CONFIG="$QT_CONFIG clock-gettime"
5368 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5369 QT_CONFIG="$QT_CONFIG clock-monotonic"
5371 if [ "$CFG_MREMAP" = "yes" ]; then
5372 QT_CONFIG="$QT_CONFIG mremap"
5374 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5375 QT_CONFIG="$QT_CONFIG getaddrinfo"
5377 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5378 QT_CONFIG="$QT_CONFIG ipv6ifname"
5380 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5381 QT_CONFIG="$QT_CONFIG getifaddrs"
5383 if [ "$CFG_INOTIFY" = "yes" ]; then
5384 QT_CONFIG="$QT_CONFIG inotify"
5386 if [ "$CFG_LIBJPEG" = "no" ]; then
5388 elif [ "$CFG_LIBJPEG" = "system" ]; then
5389 QT_CONFIG="$QT_CONFIG system-jpeg"
5391 if [ "$CFG_JPEG" = "no" ]; then
5392 QT_CONFIG="$QT_CONFIG no-jpeg"
5393 elif [ "$CFG_JPEG" = "yes" ]; then
5394 QT_CONFIG="$QT_CONFIG jpeg"
5396 if [ "$CFG_LIBPNG" = "no" ]; then
5399 if [ "$CFG_LIBPNG" = "system" ]; then
5400 QT_CONFIG="$QT_CONFIG system-png"
5402 if [ "$CFG_PNG" = "no" ]; then
5403 QT_CONFIG="$QT_CONFIG no-png"
5404 elif [ "$CFG_PNG" = "yes" ]; then
5405 QT_CONFIG="$QT_CONFIG png"
5407 if [ "$CFG_GIF" = "no" ]; then
5408 QT_CONFIG="$QT_CONFIG no-gif"
5409 elif [ "$CFG_GIF" = "yes" ]; then
5410 QT_CONFIG="$QT_CONFIG gif"
5412 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5413 QT_CONFIG="$QT_CONFIG no-freetype"
5414 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5415 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5416 QT_CONFIG="$QT_CONFIG system-freetype"
5418 QT_CONFIG="$QT_CONFIG freetype"
5420 if [ "$CFG_GUI" = "auto" ]; then
5423 if [ "$CFG_GUI" = "no" ]; then
5424 QT_CONFIG="$QT_CONFIG no-gui"
5427 if [ "$CFG_WIDGETS" = "no" ]; then
5428 QT_CONFIG="$QT_CONFIG no-widgets"
5429 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5432 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5433 #On Mac we implicitly link against libz, so we
5434 #never use the 3rdparty stuff.
5435 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5437 if [ "$CFG_ZLIB" = "yes" ]; then
5438 QT_CONFIG="$QT_CONFIG zlib"
5439 elif [ "$CFG_ZLIB" = "system" ]; then
5440 QT_CONFIG="$QT_CONFIG system-zlib"
5443 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5444 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5445 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5446 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5447 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5448 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5449 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5450 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5451 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5452 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5453 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5454 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5455 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5456 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5458 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5459 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5461 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5462 if [ "$CFG_RPATH" = "yes" ]; then
5463 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5465 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5466 if [ -n "$RPATH_FLAGS" ]; then
5468 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5472 elif [ "$CFG_RPATH" = "yes" ]; then
5473 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5477 if [ -n "$RPATH_FLAGS" ]; then
5478 # add the user defined rpaths
5479 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5482 if [ "$CFG_RPATH" = "yes" ]; then
5483 QT_CONFIG="$QT_CONFIG rpath"
5486 if [ '!' -z "$I_FLAGS" ]; then
5487 # add the user define include paths
5488 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5489 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5492 if [ '!' -z "$W_FLAGS" ]; then
5493 # add the user defined warning flags
5494 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5495 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5496 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5499 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5500 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5501 # Follow default behavior of configure.exe by overriding with "rtti".
5502 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5505 if [ "$CFG_ALSA" = "yes" ]; then
5506 QT_CONFIG="$QT_CONFIG alsa"
5509 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5510 QT_CONFIG="$QT_CONFIG pulseaudio"
5513 if [ "$CFG_COREWLAN" = "yes" ]; then
5514 QT_CONFIG="$QT_CONFIG corewlan"
5517 if [ "$CFG_ICU" = "yes" ]; then
5518 QT_CONFIG="$QT_CONFIG icu"
5521 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5522 QT_CONFIG="$QT_CONFIG force_asserts"
5525 if [ "$CFG_PCRE" = "qt" ]; then
5526 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5530 # Some Qt modules are too advanced in C++ for some old compilers
5531 # Detect here the platforms where they are known to work.
5533 # See Qt documentation for more information on which features are
5534 # supported and on which compilers.
5536 canBuildQtConcurrent="yes"
5537 canUseV8Snapshot="yes"
5539 case "$XPLATFORM" in
5541 # PA-RISC's assembly is too limited
5542 # gcc 3.4 on that platform can't build QtXmlPatterns
5543 # the assembly it generates cannot be compiled
5545 # Check gcc's version
5546 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5550 canBuildQtXmlPatterns="no"
5554 canBuildQtXmlPatterns="no"
5558 unsupported/vxworks-*-g++*)
5561 unsupported/vxworks-*-dcc*)
5563 canBuildQtXmlPatterns="no"
5566 # Check gcc's version
5567 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5575 canBuildQtXmlPatterns="no"
5580 # Check the compiler version
5581 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5584 canBuildQtXmlPatterns="no"
5585 canBuildQtConcurrent="no"
5589 canBuildQtConcurrent="no"
5595 canBuildQtXmlPatterns="no"
5596 canBuildQtConcurrent="no"
5602 # Get the xlC version
5603 cat > xlcver.c <<EOF
5607 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5612 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5613 xlcver=`./xlcver 2>/dev/null`
5616 if [ "$OPT_VERBOSE" = "yes" ]; then
5617 if [ -n "$xlcver" ]; then
5618 echo Found IBM xlC version: $xlcver.
5620 echo Could not determine IBM xlC version, assuming oldest supported.
5627 canBuildQtXmlPatterns="no"
5628 canBuildQtConcurrent="no"
5632 canBuildQtConcurrent="no"
5638 canBuildQtConcurrent="no"
5642 if [ "$CFG_GUI" = "no" ]; then
5643 # WebKit requires QtGui
5647 if [ "$CFG_SHARED" = "no" ]; then
5649 echo "WARNING: Using static linking will disable the WebKit module."
5654 CFG_CONCURRENT="yes"
5655 if [ "$canBuildQtConcurrent" = "no" ]; then
5656 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5659 QT_CONFIG="$QT_CONFIG concurrent"
5663 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5664 QT_CONFIG="$QT_CONFIG audio-backend"
5668 if [ "$CFG_WEBKIT" = "debug" ]; then
5669 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5673 QT_CONFIG="$QT_CONFIG v8"
5674 # Detect snapshot support
5675 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5676 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5679 *) canUseV8Snapshot="no"
5683 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5684 # QEMU crashes when building inside Scratchbox with an ARM target
5685 canUseV8Snapshot="no"
5688 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5689 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5691 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5692 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5695 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5696 QT_CONFIG="$QT_CONFIG v8snapshot"
5700 if [ "$CFG_QML_DEBUG" = "no" ]; then
5701 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5704 case "$QMAKE_CONF_COMPILER" in
5707 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5709 case "$COMPILER_VERSION" in
5711 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5712 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5713 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5716 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5717 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5718 QT_GCC_PATCH_VERSION=0
5728 #-------------------------------------------------------------------------------
5729 # part of configuration information goes into qconfig.h
5730 #-------------------------------------------------------------------------------
5732 case "$CFG_QCONFIG" in
5734 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5737 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5738 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5739 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5740 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5741 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5742 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5744 echo "#endif" >>"$tmpconfig"
5748 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5752 # define QT_EDITION $QT_EDITION
5756 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5757 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5759 if [ "$CFG_SHARED" = "no" ]; then
5760 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5761 /* Qt was configured for a static build */
5762 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5769 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5770 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5773 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5774 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5777 if [ "$BUILD_ON_MAC" = "yes" ]; then
5778 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5779 #if defined(__LP64__)
5780 # define QT_POINTER_SIZE 8
5782 # define QT_POINTER_SIZE 4
5786 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5787 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5790 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5791 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5792 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5795 # Add compiler sub-architecture support
5796 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5797 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5798 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5800 MIPS_DSP MIPS_DSPR2; do
5801 eval "VAL=\$CFG_$SUBARCH"
5804 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5805 >>"$outpath/src/corelib/global/qconfig.h.new"
5810 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5812 if [ "$CFG_DEV" = "yes" ]; then
5813 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5816 # Add QPA to config.h
5817 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5819 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5820 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5823 # Add turned on SQL drivers
5824 for DRIVER in $CFG_SQL_AVAILABLE; do
5825 eval "VAL=\$CFG_SQL_$DRIVER"
5828 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5829 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5830 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5833 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5838 QMakeVar set sql-drivers "$SQL_DRIVERS"
5839 QMakeVar set sql-plugins "$SQL_PLUGINS"
5841 # Add other configuration options to the qconfig.h file
5842 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5843 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5844 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5845 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5846 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5848 # X11/Unix/Mac only configs
5849 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5850 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5851 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5852 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5853 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5854 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5855 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5856 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5857 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5858 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5859 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5860 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5861 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5862 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5864 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5865 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5866 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5867 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5868 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5869 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5870 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5871 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5872 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5873 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5874 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5875 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5876 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5878 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5879 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5880 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5881 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5882 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5883 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5884 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5885 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5887 # sort QCONFIG_FLAGS for neatness if we can
5888 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5889 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5891 if [ -n "$QCONFIG_FLAGS" ]; then
5892 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5893 #ifndef QT_BOOTSTRAPPED
5896 for cfg in $QCONFIG_FLAGS; do
5897 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5898 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5899 # figure out define logic, so we can output the correct
5900 # ifdefs to override the global defines in a project
5902 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5903 # QT_NO_option can be forcefully turned on by QT_option
5904 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5905 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5906 # QT_option can be forcefully turned off by QT_NO_option
5907 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5910 if [ -z $cfgdNeg ]; then
5911 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5918 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5919 #if defined($cfgd) && defined($cfgdNeg)
5921 #elif !defined($cfgd) && !defined($cfgdNeg)
5928 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5929 #endif // QT_BOOTSTRAPPED
5934 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5935 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5936 #define QT_VISIBILITY_AVAILABLE
5941 if [ -n "$QT_LIBINFIX" ]; then
5942 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5943 #define QT_LIBINFIX "$QT_LIBINFIX"
5948 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5950 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5951 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5952 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5954 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5955 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5956 chmod -w "$outpath/src/corelib/global/qconfig.h"
5957 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5958 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5962 #-------------------------------------------------------------------------------
5963 # save configuration into qconfig.pri
5964 #-------------------------------------------------------------------------------
5965 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5966 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5967 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5968 if [ "$CFG_DEBUG" = "yes" ]; then
5969 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5970 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5971 QT_CONFIG="$QT_CONFIG release"
5973 QT_CONFIG="$QT_CONFIG debug"
5974 elif [ "$CFG_DEBUG" = "no" ]; then
5975 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5976 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5977 QT_CONFIG="$QT_CONFIG debug"
5979 QT_CONFIG="$QT_CONFIG release"
5981 if [ "$CFG_FRAMEWORK" = "no" ]; then
5982 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5984 QT_CONFIG="$QT_CONFIG qt_framework"
5985 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5987 if [ "$CFG_DEV" = "yes" ]; then
5988 QT_CONFIG="$QT_CONFIG private_tests"
5991 cat >>"$QTCONFIG.tmp" <<EOF
5993 CONFIG += $QTCONFIG_CONFIG
5995 QT_HOST_ARCH = $CFG_HOST_ARCH
5996 QT_CPU_FEATURES = $CFG_CPUFEATURES
5997 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5998 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5999 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6000 QT_EDITION = $Edition
6001 QT_CONFIG += $QT_CONFIG
6004 QT_VERSION = $QT_VERSION
6005 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6006 QT_MINOR_VERSION = $QT_MINOR_VERSION
6007 QT_PATCH_VERSION = $QT_PATCH_VERSION
6010 QT_LIBINFIX = $QT_LIBINFIX
6011 QT_NAMESPACE = $QT_NAMESPACE
6015 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6016 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6017 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6018 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6019 echo >> "$QTCONFIG.tmp"
6022 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6023 echo "# sysroot" >>"$QTCONFIG.tmp"
6024 echo "!host_build {" >>"$QTCONFIG.tmp"
6025 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6026 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6027 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6028 echo "}" >> "$QTCONFIG.tmp"
6029 echo >> "$QTCONFIG.tmp"
6031 if [ -n "$RPATH_FLAGS" ]; then
6032 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6034 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6035 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6036 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6037 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6040 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6041 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6042 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6045 # replace qconfig.pri if it differs from the newly created temp file
6046 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6047 rm -f "$QTCONFIG.tmp"
6049 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6052 #-------------------------------------------------------------------------------
6053 # save configuration into qmodule.pri
6054 #-------------------------------------------------------------------------------
6055 QTMODULE="$outpath/mkspecs/qmodule.pri"
6057 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6058 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6060 if [ -n "$QT_CFLAGS_PSQL" ]; then
6061 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6063 if [ -n "$QT_LFLAGS_PSQL" ]; then
6064 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6066 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6067 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6069 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6070 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6072 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6073 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6075 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6076 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6078 if [ -n "$QT_LFLAGS_ODBC" ]; then
6079 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6081 if [ -n "$QT_LFLAGS_TDS" ]; then
6082 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6085 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6086 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6089 #dump in the OPENSSL_LIBS info
6090 if [ '!' -z "$OPENSSL_LIBS" ]; then
6091 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6092 elif [ "$CFG_OPENSSL" = "linked" ]; then
6093 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6096 #dump in the SDK info
6097 if [ '!' -z "$CFG_SDK" ]; then
6098 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6102 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6103 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6105 # replace qmodule.pri if it differs from the newly created temp file
6106 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6107 rm -f "$QTMODULE.tmp"
6109 mv -f "$QTMODULE.tmp" "$QTMODULE"
6112 #-------------------------------------------------------------------------------
6113 # save configuration into .qmake.cache
6114 #-------------------------------------------------------------------------------
6116 CACHEFILE="$outpath/.qmake.cache"
6117 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6118 cat >>"$CACHEFILE.tmp" <<EOF
6120 QT_SOURCE_TREE = \$\$quote($relpath)
6121 QT_BUILD_TREE = \$\$quote($outpath)
6123 CONFIG += fix_output_dirs no_private_qt_headers_warning QTDIR_build
6127 # replace .qmake.cache if it differs from the newly created temp file
6128 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6129 rm -f "$CACHEFILE.tmp"
6131 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6134 #-------------------------------------------------------------------------------
6135 # give feedback on configuration
6136 #-------------------------------------------------------------------------------
6137 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6140 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6141 echo "Build type: $PLATFORM"
6143 echo "Building on: $PLATFORM"
6144 echo "Building for: $XPLATFORM"
6147 # the missing space before $CFG_FEATURES is intentional
6148 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6149 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6151 if [ -n "$PLATFORM_NOTES" ]; then
6152 echo "Platform notes:"
6153 echo "$PLATFORM_NOTES"
6158 if [ "$OPT_VERBOSE" = "yes" ]; then
6159 echo $ECHO_N "qmake vars .......... $ECHO_C"
6160 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6161 echo "qmake switches ......... $QMAKE_SWITCHES"
6164 echo "Build .................. $CFG_BUILD_PARTS"
6165 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6166 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6167 echo "Debug .................. yes (combined)"
6168 if [ "$CFG_DEBUG" = "yes" ]; then
6169 echo "Default Link ........... debug"
6171 echo "Default Link ........... release"
6174 echo "Debug .................. $CFG_DEBUG"
6176 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6177 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6179 echo "C++11 support .......... $CFG_CXX11"
6180 if [ -n "$PKG_CONFIG" ]; then
6181 echo "pkg-config ............. yes"
6183 echo "pkg-config ............. no"
6185 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6186 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6187 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6188 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6189 echo "QtGui module ........... $CFG_GUI"
6190 echo "QtWidgets module ....... $CFG_WIDGETS"
6191 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6192 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6194 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6196 echo "QML debugging .......... $CFG_QML_DEBUG"
6197 echo "PCH support ............ $CFG_PRECOMPILE"
6198 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6199 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6200 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6201 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6202 elif [ "$CFG_ARCH" = "arm" ]; then
6203 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6204 echo "NEON support ........... ${CFG_NEON}"
6206 if [ "$CFG_ARCH" = "mips" ]; then
6207 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6209 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6210 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6211 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6212 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6213 echo "NIS support ............ $CFG_NIS"
6214 echo "CUPS support ........... $CFG_CUPS"
6215 echo "Iconv support .......... $CFG_ICONV"
6216 echo "Glib support ........... $CFG_GLIB"
6217 echo "GStreamer support ...... $CFG_GSTREAMER"
6218 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6219 echo "Large File support ..... $CFG_LARGEFILE"
6220 echo "GIF support ............ $CFG_GIF"
6221 if [ "$CFG_JPEG" = "no" ]; then
6222 echo "JPEG support ........... $CFG_JPEG"
6224 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6226 if [ "$CFG_PNG" = "no" ]; then
6227 echo "PNG support ............ $CFG_PNG"
6229 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6231 echo "zlib support ........... $CFG_ZLIB"
6232 echo "Session management ..... $CFG_SM"
6233 echo "libudev support ........ $CFG_LIBUDEV"
6235 if [ "$XPLATFORM_QNX" = "yes" ]; then
6236 echo "SLOG2 support .......... $CFG_SLOG2"
6239 if [ "$CFG_OPENGL" = "desktop" ]; then
6240 echo "OpenGL support ......... yes (Desktop OpenGL)"
6241 elif [ "$CFG_OPENGL" = "es2" ]; then
6242 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6244 echo "OpenGL support ......... no"
6247 if [ "$CFG_OPENVG" ]; then
6248 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6249 echo "OpenVG support ......... ShivaVG"
6251 echo "OpenVG support ......... $CFG_OPENVG"
6255 echo "XShape support ......... $CFG_XSHAPE"
6256 echo "XVideo support ......... $CFG_XVIDEO"
6257 echo "XSync support .......... $CFG_XSYNC"
6258 echo "Xinerama support ....... $CFG_XINERAMA"
6259 echo "Xcursor support ........ $CFG_XCURSOR"
6260 echo "Xfixes support ......... $CFG_XFIXES"
6261 echo "Xrandr support ......... $CFG_XRANDR"
6262 echo "Xi support ............. $CFG_XINPUT"
6263 echo "Xi2 support ............ $CFG_XINPUT2"
6264 echo "MIT-SHM support ........ $CFG_MITSHM"
6265 echo "FontConfig support ..... $CFG_FONTCONFIG"
6266 echo "XKB Support ............ $CFG_XKB"
6267 echo "immodule support ....... $CFG_IM"
6268 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6270 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6271 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6272 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6273 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6274 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6275 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6276 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6277 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6278 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6281 if [ "$CFG_OPENSSL" = "yes" ]; then
6282 OPENSSL_LINKAGE="(run-time)"
6283 elif [ "$CFG_OPENSSL" = "linked" ]; then
6284 OPENSSL_LINKAGE="(linked)"
6286 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6287 echo "Alsa support ........... $CFG_ALSA"
6288 if [ "$BUILD_ON_MAC" = "yes" ]; then
6289 echo "CoreWlan support ....... $CFG_COREWLAN"
6291 echo "libICU support ......... $CFG_ICU"
6292 echo "PCRE support ........... $CFG_PCRE"
6293 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6294 echo "Xcb support ............ limited (old version)"
6296 echo "Xcb support ............ $CFG_XCB"
6298 echo "Xrender support ........ $CFG_XRENDER"
6299 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6300 echo "XInput2 support ........ $CFG_XINPUT2"
6302 echo "EGLFS support .......... $CFG_EGLFS"
6303 echo "DirectFB support ....... $CFG_DIRECTFB"
6304 echo "LinuxFB support ........ $CFG_LINUXFB"
6305 echo "KMS support ............ $CFG_KMS"
6308 # complain about not being able to use dynamic plugins if we are using a static build
6309 if [ "$CFG_SHARED" = "no" ]; then
6311 echo "WARNING: Using static linking will disable the use of dynamically"
6312 echo "loaded plugins. Make sure to import all needed static plugins,"
6313 echo "or compile needed modules into the library."
6316 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6318 echo "NOTE: When linking against OpenSSL, you can override the default"
6319 echo "library names through OPENSSL_LIBS."
6321 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6325 exec 1>&3 3>&- # restore stdout
6326 cat $outpath/config.summary # display config feedback to user
6328 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6330 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6331 echo "if you want a pure debug build."
6336 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6341 #-------------------------------------------------------------------------------
6342 # build makefiles based on the configuration
6343 #-------------------------------------------------------------------------------
6345 if [ "$CFG_PROCESS" != "no" ]; then
6347 if [ "$CFG_PROCESS" = "full" ]; then
6348 echo "Creating makefiles. Please wait..."
6349 "$outpath/bin/qmake" -r "$relpath"
6352 "$outpath/bin/qmake" "$relpath"
6355 if [ "$OPT_FAST" = "yes" ]; then
6357 for part in $CFG_BUILD_PARTS; do
6359 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6362 if [ "x$PART_ROOTS" != "x" ]; then
6364 echo "Creating stub makefiles. Please wait..."
6365 QMAKE="$outpath/bin/qmake"
6366 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6367 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6369 test -f "$outpath/$d/Makefile" && continue
6370 echo " for $relpath/$p"
6372 mkdir -p "$outpath/$d" || exit
6373 cat > "$outpath/$d/Makefile" <<EOF || exit
6374 # $outpath/$d/Makefile: generated by configure
6376 # WARNING: This makefile will be replaced with a real makefile.
6377 # All changes made to this file will be lost.
6382 all clean install qmake first Makefile: FORCE
6383 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6393 #-------------------------------------------------------------------------------
6394 # check for platforms that we don't yet know about
6395 #-------------------------------------------------------------------------------
6396 if [ "$CFG_ARCH" = "unknown" ]; then
6399 NOTICE: configure was unable to determine the architecture
6400 for the $XQMAKESPEC target.
6402 Qt will not use a specialized implementation for any atomic
6403 operations. Instead a generic implemention based on either GCC
6404 intrinsics or C++11 std::atomic<T> will be used (when
6405 available). The generic implementations are generally as fast
6406 as and always as safe as a specialized implementation.
6408 If no generic implementation is available, Qt will use a
6409 fallback UNIX implementation which uses a single
6410 pthread_mutex_t to protect all atomic operations. This
6411 implementation is the slow (but safe) fallback implementation
6412 for architectures Qt does not yet support.
6416 #-------------------------------------------------------------------------------
6417 # check if the user passed the -no-zlib option, which is no longer supported
6418 #-------------------------------------------------------------------------------
6419 if [ -n "$ZLIB_FORCED" ]; then
6420 which_zlib="supplied"
6421 if [ "$CFG_ZLIB" = "system" ]; then
6427 NOTICE: The -no-zlib option was supplied but is no longer
6430 Qt now requires zlib support in all builds, so the -no-zlib
6431 option was ignored. Qt will be built using the $which_zlib
6436 #-------------------------------------------------------------------------------
6437 # check if the user passed the obsoleted -wayland or -no-wayland flag
6438 #-------------------------------------------------------------------------------
6439 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6442 NOTICE: The -wayland and -no-wayland flags are now obsolete
6444 All configuring of QtWayland plugin and QtCompositor happens in the module
6448 #-------------------------------------------------------------------------------
6449 # check if the user passed the obsoleted -arch or -host-arch options
6450 #-------------------------------------------------------------------------------
6451 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6454 NOTICE: The -arch and -host-arch options are obsolete.
6456 Qt now detects the target and host architectures based on compiler
6457 output. Qt will be built using $CFG_ARCH for the target architecture
6458 and $CFG_HOST_ARCH for the host architecture (note that these two
6459 will be the same unless you are cross-compiling).
6463 #-------------------------------------------------------------------------------
6464 # finally save the executed command to another script
6465 #-------------------------------------------------------------------------------
6466 if [ `basename $0` != "config.status" ]; then
6467 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6469 # add the system variables
6470 for varname in $SYSTEM_VARIABLES; do
6472 'if [ -n "\$'${varname}'" ]; then
6473 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6478 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6480 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6481 echo "#!/bin/sh" > "$outpath/config.status"
6482 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6483 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6484 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6485 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6486 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6487 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6488 echo "else" >> "$outpath/config.status"
6489 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6490 echo "fi" >> "$outpath/config.status"
6491 chmod +x "$outpath/config.status"
6494 if [ -n "$RPATH_MESSAGE" ]; then
6496 echo "$RPATH_MESSAGE"
6499 MAKE=`basename "$MAKE"`
6501 echo Qt is now configured for building. Just run \'$MAKE\'.
6502 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6503 echo Once everything is built, Qt is installed.
6504 echo You should not run \'$MAKE install\'.
6506 echo Once everything is built, you must run \'$MAKE install\'.
6507 echo Qt will be installed into $QT_INSTALL_PREFIX
6510 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.