2 #############################################################################
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia. For licensing terms and
15 ## conditions see http://qt.digia.com/licensing. For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file. Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights. These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 compilerSupportsFlag()
229 cat >conftest.cpp <<EOF
230 int main() { return 0; }
232 "$@" -o conftest-out.o conftest.cpp
234 rm -f conftest.cpp conftest-out.o
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag $compiler $lflags >/dev/null 2>&1
251 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 #-------------------------------------------------------------------------------
399 #-------------------------------------------------------------------------------
403 EditionString=Commercial
407 # parse the arguments, setting things to "yes" or "no"
408 while [ "$#" -gt 0 ]; do
412 #Autoconf style options
414 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
418 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
422 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
426 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
429 -h|help|--help|-help)
430 if [ "$VAL" = "yes" ]; then
432 COMMERCIAL_USER="no" #doesn't matter we will display the help
435 COMMERCIAL_USER="no" #doesn't matter we will display the help
439 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
443 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
450 if [ "$UNKNOWN_ARG" = "yes" ]; then
462 COMMERCIAL_USER="yes"
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
478 echo "Which edition of Qt do you want to use ?"
480 echo "Type 'c' if you want to use the Commercial Edition."
481 echo "Type 'o' if you want to use the Open Source Edition."
485 if [ "$commercial" = "c" ]; then
486 COMMERCIAL_USER="yes"
488 elif [ "$commercial" = "o" ]; then
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496 # Commercial preview release
497 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
500 QT_EDITION="QT_EDITION_DESKTOP"
501 LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503 # one of commercial editions
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
506 # read in the license file
507 if [ -f "$LICENSE_FILE" ]; then
508 . "$LICENSE_FILE" >/dev/null 2>&1
509 if [ -z "$LicenseKeyExt" ]; then
511 echo "You are using an old license file."
513 echo "Please install the license file supplied by Digia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please use the contact form at http://qt.digia.com/contact-us"
621 echo "to upgrade your license to include the $Platform platform, or install"
622 echo "the Qt Open Source Edition if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "mac fusion windows"
732 # QTDIR may be set and point to an old or system-wide Qt installation
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
742 CFG_GUI=auto # (yes|no|auto)
748 CFG_FORCEDEBUGINFO=no
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
781 CFG_AUDIO_BACKEND=auto
784 CFG_JAVASCRIPTCORE_JIT=auto
786 CFG_STACK_PROTECTOR_STRONG=auto
788 CFG_SYSTEM_PROXIES=no
790 # Target architecture
793 # Host architecture, same as CFG_ARCH when not cross-compiling
795 CFG_HOST_CPUFEATURES=
796 # Set when the -arch or -host-arch arguments are used
797 OPT_OBSOLETE_HOST_ARG=no
810 CFG_OBSOLETE_WAYLAND=no
822 CFG_SEPARATE_DEBUG_INFO=no
823 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
824 CFG_REDUCE_EXPORTS=auto
832 CFG_REDUCE_RELOCATIONS=auto
833 CFG_ACCESSIBILITY=auto
838 CFG_CLOCK_GETTIME=auto
839 CFG_CLOCK_MONOTONIC=auto
856 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
857 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
862 OPT_CONFIRM_LICENSE=no
875 QPA_PLATFORM_GUARD=yes
879 # initalize variables used for installation
891 QT_INSTALL_TRANSLATIONS=
896 CFG_GCC_SYSROOT="yes"
901 #flags for SQL drivers
909 QT_LFLAGS_ODBC="-lodbc"
912 # flags for libdbus-1
916 # flags for Glib (X11 only)
920 # flags for GStreamer (X11 only)
924 # default qpa platform
925 QT_QPA_DEFAULT_PLATFORM=
927 #-------------------------------------------------------------------------------
928 # check SQL drivers available in this package
929 #-------------------------------------------------------------------------------
931 # opensource version removes some drivers, so force them to be off
937 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
938 for a in "$relpath/src/plugins/sqldrivers/"*; do
940 base_a=`basename "$a"`
941 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
942 eval "CFG_SQL_${base_a}=auto"
947 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
948 if [ -d "$relpath/src/plugins/imageformats" ]; then
949 for a in "$relpath/src/plugins/imageformats/"*; do
951 base_a=`basename "$a"`
952 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
957 #-------------------------------------------------------------------------------
958 # parse command line arguments
959 #-------------------------------------------------------------------------------
961 # parse the arguments, setting things to "yes" or "no"
962 while [ "$#" -gt 0 ]; do
966 #Autoconf style options
968 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
972 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
976 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
977 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
980 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
984 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
988 -no-*-*|-plugin-*-*|-qt-*-*)
989 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
990 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
994 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
997 #Qt style options that pass an argument
998 -prefix|-docdir|-headerdir|-plugindir|-importdir|-qmldir|-archdatadir|-datadir|-libdir|-bindir|-libexecdir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa|-qconfig)
999 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1003 #Qt style complex options in one command
1004 -enable-*|-disable-*)
1005 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1006 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1016 #Qt Builtin/System style options
1017 -no-*|-system-*|-qt-*)
1018 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1019 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1021 #Options that cannot be generalized
1028 # this option may or may not be followed by an argument
1029 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1038 # this option may or may not be followed by an argument
1039 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1047 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1048 # this option may or may not be followed by an argument
1049 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1068 if [ "$1" = "-D" ]; then
1072 VAL=`echo $1 | sed 's,-D,,'`
1077 # this option may or may not be followed by an argument
1078 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1087 if [ "$1" = "-I" ]; then
1091 VAL=`echo $1 | sed 's,-I,,'`
1096 if [ "$1" = "-L" ]; then
1100 VAL=`echo $1 | sed 's,-L,,'`
1105 if [ "$1" = "-R" ]; then
1109 VAL=`echo $1 | sed 's,-R,,'`
1118 if [ "$1" = "-l" ]; then
1122 VAL=`echo $1 | sed 's,-l,,'`
1127 if [ "$1" = "-F" ]; then
1131 VAL=`echo $1 | sed 's,-F,,'`
1136 if [ "$1" = "-fw" ]; then
1140 VAL=`echo $1 | sed 's,-fw,,'`
1147 #General options, including Qt style yes options
1149 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1156 if [ "$UNKNOWN_ARG" = "yes" ]; then
1157 echo "$1: unknown argument"
1168 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1169 CFG_ACCESSIBILITY="$VAL"
1178 CFG_USE_GNUMAKE="$VAL"
1181 CFG_MYSQL_CONFIG="$VAL"
1184 QT_INSTALL_PREFIX="$VAL"
1187 QT_HOST_PREFIX="$VAL"
1196 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1197 CFG_PKGCONFIG="$VAL"
1203 CFG_PKGCONFIG="force"
1206 QT_INSTALL_DOCS="$VAL"
1209 QT_INSTALL_HEADERS="$VAL"
1212 QT_INSTALL_PLUGINS="$VAL"
1215 QT_INSTALL_IMPORTS="$VAL"
1218 QT_INSTALL_QML="$VAL"
1221 QT_INSTALL_ARCHDATA="$VAL"
1224 QT_INSTALL_DATA="$VAL"
1227 QT_INSTALL_LIBS="$VAL"
1236 QT_INSTALL_TRANSLATIONS="$VAL"
1238 sysconfdir|settingsdir)
1239 QT_INSTALL_SETTINGS="$VAL"
1242 QT_INSTALL_EXAMPLES="$VAL"
1245 QT_INSTALL_TESTS="$VAL"
1254 CFG_GCC_SYSROOT="$VAL"
1257 QT_INSTALL_BINS="$VAL"
1260 QT_INSTALL_LIBEXECS="$VAL"
1263 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1270 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1271 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1272 [ "$VAL" = "es2" ]; then
1279 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1286 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1289 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1292 if [ "$BUILD_ON_MAC" = "yes" ]; then
1294 DeviceVar set QMAKE_MAC_SDK "$VAL"
1300 OPT_OBSOLETE_HOST_ARG=yes
1303 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1304 CFG_MAC_HARFBUZZ="$VAL"
1311 if [ "$BUILD_ON_MAC" = "yes" ]; then
1312 CFG_FRAMEWORK="$VAL"
1318 if [ "$VAL" = "yes" ]; then
1320 QMakeVar add QMAKE_CFLAGS -pg
1321 QMakeVar add QMAKE_CXXFLAGS -pg
1322 QMakeVar add QMAKE_LFLAGS -pg
1323 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1329 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1336 if [ "$VAL" = "yes" ]; then
1337 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1342 # keep compatibility with old platform names
1348 PLATFORM=hpux-acc-o64
1351 PLATFORM=hpux-acc-64
1354 PLATFORM=hpux-acc-64
1366 PLATFORM=reliant-cds-64
1369 PLATFORM=solaris-cc-64
1372 PLATFORM=unixware-cc
1375 PLATFORM=unixware-g++
1378 PLATFORM=unixware-cc
1381 PLATFORM=unixware-g++
1387 i386) NATIVE_64_ARCH="x86_64" ;;
1388 powerpc) NATIVE_64_ARCH="ppc64" ;;
1389 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1391 if [ ! -z "$NATIVE_64_ARCH" ]; then
1392 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1399 case `basename "$XPLATFORM"` in win32-g++*)
1402 CFG_REDUCE_EXPORTS=no
1407 XPLATFORM=`resolveDeviceMkspec $VAL`
1408 [ "$XPLATFORM" = "undefined" ] && exit 101
1411 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1412 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1413 DeviceVar set $DEV_VAR $DEV_VAL
1416 QT_QPA_DEFAULT_PLATFORM="$VAL"
1419 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1420 CFG_DEBUG_RELEASE="$VAL"
1426 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1427 CFG_RELEASE_QMAKE="$VAL"
1433 if [ "$VAL" = "yes" ]; then
1435 elif [ "$VAL" = "no" ]; then
1445 CFG_FORCEDEBUGINFO="$VAL"
1447 developer-build|commercial|opensource)
1448 # These switches have been dealt with already
1451 if [ "$VAL" = "yes" ]; then
1453 elif [ "$VAL" = "no" ]; then
1460 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1461 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1467 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1468 if [ "$VAL" = "no" ]; then
1469 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1470 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1471 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1477 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1484 if [ "$VAL" = "no" ]; then
1491 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1499 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1506 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1513 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1520 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1527 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1534 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1541 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1548 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1549 CFG_PRECOMPILE="$VAL"
1554 separate-debug-info)
1555 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1556 CFG_SEPARATE_DEBUG_INFO="$VAL"
1557 elif [ "$VAL" = "nocopy" ] ; then
1558 CFG_SEPARATE_DEBUG_INFO="yes"
1559 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1565 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1566 CFG_REDUCE_EXPORTS="$VAL"
1572 if [ "$VAL" = "no" ]; then
1579 if [ "$VAL" = "no" ]; then
1586 if [ "$VAL" = "no" ]; then
1593 if [ "$VAL" = "no" ]; then
1600 if [ "$VAL" = "no" ]; then
1607 if [ "$VAL" = "no" ]; then
1614 if [ "$VAL" = "no" ]; then
1624 if [ "$VAL" = "no" ]; then
1631 if [ "$VAL" = "no" ]; then
1638 if [ "$VAL" = "no" ]; then
1639 CFG_MIPS_DSPR2="$VAL"
1645 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1646 CFG_REDUCE_RELOCATIONS="$VAL"
1652 [ "$VAL" = "qt" ] && VAL=yes
1653 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1658 # No longer supported:
1659 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1662 if [ "$VAL" = "system" ]; then
1669 [ "$VAL" = "yes" ] && VAL=qt
1670 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1677 [ "$VAL" = "yes" ] && VAL=qt
1678 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1685 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1692 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1699 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1706 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1713 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1720 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1721 CFG_FONTCONFIG="$VAL"
1727 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1734 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ] || [ "$VAL" = "qt" ]; then
1736 if [ "$VAL" = "yes" ]; then
1744 CFG_OBSOLETE_WAYLAND=yes
1747 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1754 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1761 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1768 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1775 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1782 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1789 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1796 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1803 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1810 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1817 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1818 CFG_GSTREAMER="$VAL"
1824 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1825 CFG_QGTKSTYLE="$VAL"
1831 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1834 if [ "$VAL" = "no" ]; then
1842 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1844 elif [ "$VAL" = "no" ]; then
1851 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1852 QPA_PLATFORM_GUARD="$VAL"
1858 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1860 elif [ "$VAL" = "runtime" ]; then
1867 if [ "$VAL" = "yes" ]; then
1874 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1881 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1882 CFG_LARGEFILE="$VAL"
1888 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1895 if [ "$VAL" = "yes" ]; then
1896 CFG_OPENSSL="linked"
1902 if [ "$VAL" = "yes" ]; then
1905 if [ "$VAL" = "no" ]; then
1913 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1914 CFG_JAVASCRIPTCORE_JIT="$VAL"
1920 if [ "$VAL" = "yes" ]; then
1921 OPT_CONFIRM_LICENSE="$VAL"
1927 if [ "$VAL" = "yes" ]; then
1933 sql-*|imageformat-*)
1934 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1935 # if autoconf style options were used, $VAL can be "yes" or "no"
1936 [ "$VAL" = "yes" ] && VAL=qt
1937 # now $VAL should be "no", "qt", or "plugin"... double-check
1938 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1941 # now $VAL is "no", "qt", or "plugin"
1943 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1944 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1946 # Grab the available values
1949 avail="$CFG_SQL_AVAILABLE"
1952 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1953 if [ "$OPT" != "plugin" ]; then
1954 # png is always built in
1960 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1964 # Check that that user's value is available.
1967 if [ "$VAL" = "$d" ]; then
1972 [ "$found" = yes ] || ERROR=yes
1974 if [ "$VAR" = "sql" ]; then
1975 # set the CFG_SQL_driver
1976 eval "CFG_SQL_$VAL=\$OPT"
1978 elif [ "$VAR" = "imageformat" ]; then
1979 [ "$OPT" = "qt" ] && OPT=yes
1980 VAL="`echo $VAL |tr a-z A-Z`"
1981 eval "CFG_$VAL=$OPT"
1985 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1986 if [ "$OPT" = "plugin" ]; then
1989 QMakeVar add "${VAR}s" "${VAL}"
1990 elif [ "$OPT" = "no" ]; then
1991 PLUG_VAR="${VAR}-plugin"
1993 QMakeVar del "${IN_VAR}s" "$VAL"
1994 QMakeVar del "${PLUG_VAR}s" "$VAL"
1996 if [ "$ERROR" = "yes" ]; then
1997 echo "$CURRENT_OPT: unknown argument"
2002 if [ "$VAL" = "yes" ]; then
2003 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
2004 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
2008 elif [ "$VAL" = "no" ]; then
2009 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
2010 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2019 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2026 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2033 DEFINES="$DEFINES \"$VAL\""
2034 D_FLAGS="$D_FLAGS -D\"$VAL\""
2037 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2040 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2043 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2046 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2049 if [ "$BUILD_ON_MAC" = "yes" ]; then
2050 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2051 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2057 if [ "$BUILD_ON_MAC" = "yes" ]; then
2058 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2064 W_FLAGS="$W_FLAGS \"${VAL}\""
2079 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2080 CFG_AUDIO_BACKEND="$VAL"
2086 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2093 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2094 CFG_FORCE_ASSERTS="$VAL"
2100 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2107 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2114 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2115 CFG_SYSTEM_PROXIES="$VAL"
2121 if [ "$XPLATFORM_MINGW" = "yes" ] ; then
2122 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2123 CFG_DIRECTWRITE="$VAL"
2135 if [ "$UNKNOWN_OPT" = "yes" ]; then
2136 echo "${CURRENT_OPT}: invalid command-line switch"
2142 # update QT_CONFIG to show our current predefined configuration
2143 case "$CFG_QCONFIG" in
2144 minimal|small|medium|large|full)
2145 # these are a sequence of increasing functionality
2146 for c in minimal small medium large full; do
2147 QT_CONFIG="$QT_CONFIG $c-config"
2148 [ "$CFG_QCONFIG" = $c ] && break
2152 # not known to be sufficient for anything
2153 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2154 echo >&2 "Error: configuration file not found:"
2155 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2157 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2162 #-------------------------------------------------------------------------------
2163 # build tree initialization
2164 #-------------------------------------------------------------------------------
2166 # where to find which..
2167 unixtests="$relpath/config.tests/unix"
2168 mactests="$relpath/config.tests/mac"
2169 WHICH="$unixtests/which.test"
2171 PERL=`$WHICH perl 2>/dev/null`
2173 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2175 for e in gawk nawk awk; do
2176 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2183 PERL="/usr/bin/perl"
2184 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2188 ### skip this if the user just needs help...
2189 if [ "$OPT_HELP" != "yes" ]; then
2191 # is this a shadow build?
2192 if [ "$OPT_SHADOW" = "maybe" ]; then
2194 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2195 if [ -h "$outpath" ]; then
2196 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2202 if [ "$OPT_SHADOW" = "yes" ]; then
2203 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2204 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2205 echo >&2 "Cannot proceed."
2208 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2211 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2213 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2214 echo "Qt can be built in release mode with separate debug information, so"
2215 echo "-debug-and-release is not necessary anymore"
2219 if [ "$CFG_SILENT" = "yes" ]; then
2220 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2223 # if the source tree is different from the build tree,
2224 # symlink or copy part of the sources
2225 if [ "$OPT_SHADOW" = "yes" ]; then
2226 echo "Preparing build tree..."
2228 if [ -z "$PERL" ]; then
2230 echo "You need perl in your PATH to make a shadow build."
2231 echo "Cannot proceed."
2235 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2237 # make a syncqt script that can be used in the shadow
2238 rm -f "$outpath/bin/syncqt"
2239 if [ -x "$relpath/bin/syncqt" ]; then
2240 mkdir -p "$outpath/bin"
2241 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2242 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2243 chmod 755 "$outpath/bin/syncqt"
2246 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2247 rm -f "$outpath/bin/$i"
2248 if [ -x "$relpath/bin/$i" ]; then
2249 mkdir -p "$outpath/bin"
2250 echo "#!/bin/sh" >"$outpath/bin/$i"
2251 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2252 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2253 chmod 755 "$outpath/bin/$i"
2257 # save a pre-existing mkspecs/modules dir
2258 test -d "$outpath/mkspecs/modules" && \
2259 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2260 # ditto for mkspecs/modules-inst
2261 test -d "$outpath/mkspecs/modules-inst" && \
2262 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2264 # symlink the mkspecs directory
2265 mkdir -p "$outpath/mkspecs"
2266 rm -rf "$outpath"/mkspecs/*
2267 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2271 rm -rf "$outpath/mkspecs/$1"
2272 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2273 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2276 # Special case for mkspecs/features directory.
2277 # To be able to place .prf files into a shadow build directory,
2278 # we're creating links for files only. The directory structure is reproduced.
2279 ShadowMkspecs features
2281 # The modules dir is special, too.
2282 if test -d "$outpath/mkspecs-modules"; then
2283 rm -rf "$outpath/mkspecs/modules"
2284 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2286 ShadowMkspecs modules
2289 # The modules-inst dir is not quite as special, but still.
2290 if test -d "$outpath/mkspecs-modules-inst"; then
2291 rm -rf "$outpath/mkspecs/modules-inst"
2292 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2295 # Prepare doc directory
2296 mkdir -p "$outpath/doc"
2297 ln -f -s "$relpath"/doc/global "$outpath/doc"
2300 # symlink fonts to be able to run application from build directory
2301 if [ ! -d "${outpath}/lib/fonts" ]; then
2302 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2303 mkdir -p "${outpath}/lib"
2304 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2308 if [ "$OPT_FAST" = "auto" ]; then
2309 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2316 # find a make command
2317 if [ -z "$MAKE" ]; then
2319 for mk in gmake make; do
2320 if "$WHICH" $mk >/dev/null 2>&1; then
2325 if [ -z "$MAKE" ]; then
2326 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2327 echo >&2 "Cannot proceed."
2330 # export MAKE, we need it later in the config.tests
2336 #-------------------------------------------------------------------------------
2337 # auto-detect all that hasn't been specified in the arguments
2338 #-------------------------------------------------------------------------------
2340 if [ -z "$PLATFORM" ]; then
2342 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2344 OSX_VERSION=`uname -r | cut -d. -f1`
2345 # Select compiler. Use g++ unless we find a usable Clang version
2347 if [ "$OSX_VERSION" -ge 12 ]; then
2348 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2350 elif [ "$OSX_VERSION" -eq 11 ]; then
2351 # We're on Lion. Check if we have a supported Clang version
2352 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2354 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2360 #PLATFORM=aix-g++-64
2362 #PLATFORM=aix-xlc-64
2364 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2374 # PLATFORM=dynix-g++
2380 PLATFORM=freebsd-g++
2382 - Also available for FreeBSD: freebsd-icc
2386 PLATFORM=openbsd-g++
2397 #PLATFORM=irix-cc-64
2399 - Also available for IRIX: irix-g++ irix-cc-64
2403 case "$UNAME_MACHINE" in
2405 #PLATFORM=hpuxi-acc-32
2406 PLATFORM=hpuxi-acc-64
2408 - Also available for HP-UXi: hpuxi-acc-32
2414 #PLATFORM=hpux-acc-64
2416 #PLATFORM=hpux-acc-o64
2418 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2427 - Also available for Tru64: tru64-g++
2431 case "$UNAME_MACHINE" in
2433 PLATFORM=linux-g++-64
2440 - Also available for Linux: linux-kcc linux-icc linux-cxx
2444 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2445 PLATFORM="solaris-g++"
2447 #PLATFORM=solaris-g++
2449 #PLATFORM=solaris-cc64
2452 - Also available for Solaris: solaris-g++ solaris-cc-64
2455 ReliantUNIX-*:*|SINIX-*:*)
2456 PLATFORM=reliant-cds
2457 #PLATFORM=reliant-cds-64
2459 - Also available for Reliant UNIX: reliant-cds-64
2469 #PLATFORM=unixware-g++
2470 PLATFORM=unixware-cc
2472 - Also available for OpenUNIX: unixware-g++
2476 #PLATFORM=unixware-g++
2477 PLATFORM=unixware-cc
2479 - Also available for UnixWare: unixware-g++
2486 - Also available for SCO OpenServer: sco-g++
2490 PLATFORM=unixware-g++
2493 PLATFORM=unsupported/qnx-g++
2496 if [ "$OPT_HELP" != "yes" ]; then
2498 echo " The build script does not currently recognize all" >&2
2499 echo " platforms supported by Qt." >&2
2500 echo " Rerun this script with a -platform option listed to" >&2
2501 echo " set the system/compiler combination you use." >&2
2508 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2510 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2511 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2512 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2514 if [ -d "$PLATFORM" ]; then
2515 QMAKESPEC="$PLATFORM"
2517 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2519 if [ -d "$XPLATFORM" ]; then
2520 XQMAKESPEC="$XPLATFORM"
2522 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2524 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2525 QT_CROSS_COMPILE=yes
2526 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2527 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2530 if [ "$BUILD_ON_MAC" = "yes" ]; then
2531 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2533 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2534 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2535 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2536 echo " built with 'macx-g++'" >&2
2542 # check specified platforms are supported
2543 if [ '!' -d "$QMAKESPEC" ]; then
2545 echo " The specified system/compiler is not supported:"
2549 echo " Please see the README file for a complete list."
2553 if [ '!' -d "$XQMAKESPEC" ]; then
2555 echo " The specified system/compiler is not supported:"
2559 echo " Please see the README file for a complete list."
2563 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2565 echo " The specified system/compiler port is not complete:"
2567 echo " $XQMAKESPEC/qplatformdefs.h"
2569 echo " Please use the contact form at http://qt.digia.com/contact-us"
2574 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2575 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2576 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2577 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2578 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2582 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2583 case `basename "$XPLATFORM"` in
2586 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2588 echo "Please use the contact form at http://qt.digia.com/contact-us"
2589 echo "to upgrade your license to include this platform, or install"
2590 echo "the Qt Open Source Edition if you intend to develop free software."
2596 #-------------------------------------------------------------------------------
2597 # tests that don't need qmake (must be run before displaying help)
2598 #-------------------------------------------------------------------------------
2600 # detect build style
2601 if [ "$CFG_DEBUG" = "auto" ]; then
2602 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2603 CFG_DEBUG_RELEASE=yes
2605 elif [ "$CFG_DEV" = "yes" ]; then
2606 CFG_DEBUG_RELEASE=no
2609 CFG_DEBUG_RELEASE=no
2613 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2614 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2617 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2618 QT_CONFIG="$QT_CONFIG force_debug_info"
2621 # pass on $CFG_SDK to the arch/configure tests.
2622 if [ -n "$CFG_SDK" ]; then
2623 MAC_SDK_FLAG="-sdk $CFG_SDK"
2628 # find the default framework value
2629 if [ "$BUILD_ON_MAC" = "yes" ]; then
2630 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2631 CFG_FRAMEWORK="$CFG_SHARED"
2632 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2634 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2642 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2644 TEST_COMPILER=$QMAKE_CONF_COMPILER
2645 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2646 if [ -z "$TEST_COMPILER" ]; then
2647 echo "ERROR: Cannot set the compiler for the configuration tests"
2651 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2654 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2655 if [ -n "$GCC_MACHINE_DUMP" ]; then
2656 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2659 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2660 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2664 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2666 # auto-detect precompiled header support
2667 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2668 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2675 # auto-detect support for separate debug info in objcopy
2676 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2677 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2678 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2679 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2680 CFG_SEPARATE_DEBUG_INFO=no
2684 # binutils on HP-UX is buggy; default to no.
2685 CFG_SEPARATE_DEBUG_INFO=no
2688 CFG_SEPARATE_DEBUG_INFO=yes
2694 # auto-detect -fvisibility support
2695 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2696 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2697 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2698 echo "-reduce-exports was requested but this compiler does not support it"
2699 echo "Re-run configure with -v for more information"
2702 CFG_REDUCE_EXPORTS=no
2704 CFG_REDUCE_EXPORTS=yes
2708 # auto-detect -fstack-protector-strong support (for QNX only currently)
2709 if [ "$XPLATFORM_QNX" = "yes" ]; then
2710 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2711 CFG_STACK_PROTECTOR_STRONG=yes
2713 CFG_STACK_PROTECTOR_STRONG=no
2716 CFG_STACK_PROTECTOR_STRONG=no
2719 # detect the availability of the -Bsymbolic-functions linker optimization
2720 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2721 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2722 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2723 echo "-reduce-relocations was requested but this compiler does not support it"
2724 echo "Re-run configure with -v for more information"
2727 CFG_REDUCE_RELOCATIONS=no
2729 CFG_REDUCE_RELOCATIONS=yes
2733 # auto-detect GNU make support
2734 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2738 # find the default framework value
2739 if [ "$BUILD_ON_MAC" = "yes" ]; then
2740 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2741 CFG_FRAMEWORK="$CFG_SHARED"
2742 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2744 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2752 # auto-detect default include and library search paths
2753 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2754 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2755 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2756 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2757 /^End of search/ { yup=0 }
2758 yup { print substr($0, 2) }
2759 /^\#include </ { yup=1 }
2761 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2763 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2766 #setup the build parts
2767 if [ -z "$CFG_BUILD_PARTS" ]; then
2768 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2770 # build tests by default, if a developer build
2771 if [ "$CFG_DEV" = "yes" ]; then
2772 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2775 # don't build tools by default when cross-compiling
2776 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2777 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2780 for nobuild in $CFG_NOBUILD_PARTS; do
2781 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2783 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2785 # echo "WARNING: libs is a required part of the build."
2787 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2790 #-------------------------------------------------------------------------------
2791 # post process QT_INSTALL_* variables
2792 #-------------------------------------------------------------------------------
2794 if [ -z "$QT_INSTALL_PREFIX" ]; then
2795 if [ "$CFG_DEV" = "yes" ]; then
2796 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2798 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2801 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2803 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2804 QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2806 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2808 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2809 QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2811 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2813 if [ -z "$QT_INSTALL_ARCHDATA" ]; then #default
2814 QT_INSTALL_ARCHDATA="$QT_INSTALL_PREFIX" #fallback
2816 QT_INSTALL_ARCHDATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_ARCHDATA"`
2818 if [ -z "$QT_INSTALL_DATA" ]; then #default
2819 QT_INSTALL_DATA="$QT_INSTALL_PREFIX" #fallback
2821 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2823 if [ -z "$QT_INSTALL_BINS" ]; then #default
2824 QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2826 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2828 if [ -z "$QT_INSTALL_LIBEXECS" ]; then #default
2829 QT_INSTALL_LIBEXECS="$QT_INSTALL_ARCHDATA/libexec" #fallback
2831 QT_INSTALL_LIBEXECS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBEXECS"`
2833 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2834 QT_INSTALL_DOCS="$QT_INSTALL_DATA/doc" #fallback
2836 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2838 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2839 QT_INSTALL_PLUGINS="$QT_INSTALL_ARCHDATA/plugins" #fallback
2841 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2843 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2844 QT_INSTALL_IMPORTS="$QT_INSTALL_ARCHDATA/imports" #fallback
2846 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2849 if [ -z "$QT_INSTALL_QML" ]; then #default
2850 QT_INSTALL_QML="$QT_INSTALL_ARCHDATA/qml" #fallback
2852 QT_INSTALL_QML=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_QML"`
2854 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2855 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_DATA/translations" #fallback
2857 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2859 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2860 if [ "$BUILD_ON_MAC" = "yes" ]; then
2861 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2863 QT_INSTALL_SETTINGS=/etc/xdg
2866 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2868 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2869 QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2871 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2874 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2875 QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2877 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2879 #------- host paths --------
2881 if [ -z "$QT_HOST_PREFIX" ]; then
2882 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2885 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2889 if [ -z "$QT_HOST_BINS" ]; then #default
2891 QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2893 QT_HOST_BINS="$QT_INSTALL_BINS"
2896 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2898 if [ -z "$QT_HOST_DATA" ]; then #default
2900 QT_HOST_DATA="$QT_HOST_PREFIX"
2902 QT_HOST_DATA="$QT_INSTALL_ARCHDATA"
2905 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2908 #-------------------------------------------------------------------------------
2909 # help - interactive parts of the script _after_ this section please
2910 #-------------------------------------------------------------------------------
2912 # next, emit a usage message if something failed.
2913 if [ "$OPT_HELP" = "yes" ]; then
2914 [ "x$ERROR" = "xyes" ] && echo
2915 if [ "$CFG_NIS" = "no" ]; then
2922 if [ "$CFG_CUPS" = "no" ]; then
2929 if [ "$CFG_ICONV" = "no" ]; then
2936 if [ "$CFG_LARGEFILE" = "no" ]; then
2943 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2951 if [ "$CFG_XCB" = "no" ]; then
2959 if [ "$CFG_EGLFS" = "no" ]; then
2967 if [ "$CFG_DIRECTFB" = "no" ]; then
2975 if [ "$CFG_LINUXFB" = "no" ]; then
2983 if [ "$CFG_KMS" = "no" ]; then
2991 if [ "$CFG_XINPUT2" = "no" ]; then
2999 if [ "$CFG_DBUS" = "no" ]; then
3007 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3015 if [ "$CFG_GLIB" = "no" ]; then
3024 Usage: $relconf [options]
3026 Installation options:
3028 These are optional, but you may specify install directories.
3030 -prefix <dir> ...... This will install everything relative to <dir>
3031 (default $QT_INSTALL_PREFIX)
3033 -hostprefix [dir] .. Tools and libraries needed when developing
3034 applications are installed in [dir]. If [dir] is
3035 not given, the current build directory will be used.
3038 You may use these to separate different parts of the install:
3040 -bindir <dir> ......... User executables will be installed to <dir>
3041 (default PREFIX/bin)
3042 -headerdir <dir> ...... Headers will be installed to <dir>
3043 (default PREFIX/include)
3044 -libdir <dir> ......... Libraries will be installed to <dir>
3045 (default PREFIX/lib)
3046 -archdatadir <dir>..... Arch-dependent data used by Qt will be installed to <dir>
3048 -plugindir <dir> ...... Plugins will be installed to <dir>
3049 (default ARCHDATADIR/plugins)
3050 -libexecdir <dir> ..... Program executables will be installed to <dir>
3051 (default ARCHDATADIR/libexec)
3052 -importdir <dir> ...... Imports for QML1 will be installed to <dir>
3053 (default ARCHDATADIR/imports)
3054 -qmldir <dir> ......... Imports for QML2 will be installed to <dir>
3055 (default ARCHDATADIR/qml)
3056 -datadir <dir> ........ Arch-independent data used by Qt will be installed to <dir>
3058 -docdir <dir> ......... Documentation will be installed to <dir>
3059 (default DATADIR/doc)
3060 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3061 (default DATADIR/translations)
3062 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3063 (default PREFIX/etc/settings)
3064 -examplesdir <dir> .... Examples will be installed to <dir>
3065 (default PREFIX/examples)
3066 -testsdir <dir> ....... Tests will be installed to <dir>
3067 (default PREFIX/tests)
3069 -hostbindir <dir> .. Host executables will be installed to <dir>
3070 (default HOSTPREFIX/bin)
3071 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3072 (default HOSTPREFIX)
3076 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3077 that needs to be evaluated. If the evaluation succeeds, the feature is
3078 included. Here is a short explanation of each option:
3080 * -release ........... Compile and link Qt with debugging turned off.
3081 -debug ............. Compile and link Qt with debugging turned on.
3082 -debug-and-release . Compile and link two versions of Qt, with and without
3083 debugging turned on (Mac only).
3085 -force-debug-info .. Create symbol files for release builds.
3087 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3089 -opensource ........ Compile and link the Open-Source Edition of Qt.
3090 -commercial ........ Compile and link the Commercial Edition of Qt.
3092 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3093 + -c++11 ............. Compile Qt with C++11 support enabled.
3095 * -shared ............ Create and use shared Qt libraries.
3096 -static ............ Create and use static Qt libraries.
3098 * -process ........... Generate only a top-level Makefile.
3099 -fully-process ..... Generate Makefiles for the entire Qt tree.
3100 -dont-process ...... Do not generate any Makefiles.
3102 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3104 -fast .............. Configure Qt quickly by generating Makefiles only for
3105 library and subdirectory targets. All other Makefiles
3106 are created as wrappers, which will in turn run qmake.
3108 -no-largefile ...... Disables large file support.
3109 + -largefile ......... Enables Qt to access files larger than 4 GB.
3111 -no-accessibility .. Do not compile Accessibility support.
3112 + -accessibility ..... Compile Accessibility support.
3114 -no-sql-<driver> ... Disable SQL <driver> entirely.
3115 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3117 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3120 Possible values for <driver>:
3121 [ $CFG_SQL_AVAILABLE ]
3123 -system-sqlite ..... Use sqlite from the operating system.
3125 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3126 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3128 -no-qml-debug ...... Do not build the in-process QML debugging support.
3129 + -qml-debug ......... Build the QML debugging support.
3131 -platform target ... The operating system and compiler you are building
3134 See the README file for a list of supported
3135 operating systems and compilers.
3137 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3138 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3139 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3140 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3141 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3142 -no-avx ............ Do not compile with use of AVX instructions.
3143 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3144 -no-neon ........... Do not compile with use of NEON instructions.
3145 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3146 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3148 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3149 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3151 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3153 -D <string> ........ Add an explicit define to the preprocessor.
3154 -I <string> ........ Add an explicit include path.
3155 -L <string> ........ Add an explicit library path.
3157 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3158 configure determines whether to use pkg-config or not with
3159 some heuristics such as checking the environment variables.
3160 -no-pkg-config ..... Disable use of pkg-config.
3161 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3162 detection heuristic).
3164 -help, -h .......... Display this information.
3166 Third Party Libraries:
3168 -qt-zlib ........... Use the zlib bundled with Qt.
3169 + -system-zlib ....... Use zlib from the operating system.
3170 See http://www.gzip.org/zlib
3172 -no-gif ............ Do not compile GIF reading support.
3174 -no-libpng ......... Do not compile PNG support.
3175 -qt-libpng ......... Use the libpng bundled with Qt.
3176 + -system-libpng ..... Use libpng from the operating system.
3177 See http://www.libpng.org/pub/png
3179 -no-libjpeg ........ Do not compile JPEG support.
3180 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3181 + -system-libjpeg .... Use libjpeg from the operating system.
3182 See http://www.ijg.org
3184 -no-openssl ........ Do not compile support for OpenSSL.
3185 + -openssl ........... Enable run-time OpenSSL support.
3186 -openssl-linked .... Enabled linked OpenSSL support.
3188 -qt-pcre ........... Use the PCRE library bundled with Qt.
3189 + -system-pcre ....... Use the PCRE library from the operating system.
3191 -qt-xcb ............ Use xcb- libraries bundled with Qt.
3192 (libxcb.so will still be used from operating system).
3193 + -system-xcb ........ Use xcb- libraries from the operating system.
3197 -make <part> ....... Add part to the list of parts to be built at make time.
3198 ($QT_DEFAULT_BUILD_PARTS)
3199 -nomake <part> ..... Exclude part from the list of parts to be built.
3201 -no-gui ............ Don't build the QtGui library and dependencies.
3202 + -gui ............... Build the QtGui library and dependencies.
3204 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3205 + -widgets ........... Build the QtWidgets library and dependencies.
3207 -R <string> ........ Add an explicit runtime library path to the Qt
3209 -l <string> ........ Add an explicit library.
3211 -no-rpath .......... Do not use the library install path as a runtime
3213 + -rpath ............. Link Qt libraries and executables using the library
3214 install path as a runtime library path. Equivalent
3215 to -R install_libpath
3217 -continue .......... Continue as far as possible if an error occurs.
3219 -verbose, -v ....... Print verbose information about each step of the
3222 -silent ............ Reduce the build output so that warnings and errors
3223 can be seen more easily.
3225 * -no-optimized-qmake ... Do not build qmake optimized.
3226 -optimized-qmake ...... Build qmake optimized.
3228 $NSN -no-nis ............ Do not compile NIS support.
3229 $NSY -nis ............... Compile NIS support.
3231 $CUN -no-cups ........... Do not compile CUPS support.
3232 $CUY -cups .............. Compile CUPS support.
3233 Requires cups/cups.h and libcups.so.2.
3235 $CIN -no-iconv .......... Do not compile support for iconv(3).
3236 $CIY -iconv ............. Compile support for iconv(3).
3238 -no-icu ............ Do not compile support for ICU libraries.
3239 + -icu ............... Compile support for ICU libraries.
3241 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3242 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3244 $PHN -no-pch ............ Do not use precompiled header support.
3245 $PHY -pch ............... Use precompiled header support.
3247 $DBN -no-dbus ........... Do not compile the QtDBus module.
3248 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3249 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3251 -reduce-relocations ..... Reduce relocations in the libraries through extra
3252 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3253 experimental; needs GNU ld >= 2.18).
3255 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3257 -device <name> ............... Cross-compile for device <name> (experimental)
3258 -device-option <key=value> ... Add device specific options for the device mkspec
3261 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3262 $SBY -separate-debug-info .... Strip debug information into a separate file.
3264 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3265 $XCBY -xcb ............... Compile Xcb support.
3267 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3268 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3270 $DFBN -no-directfb ....... Do not compile DirectFB support.
3271 $DFBY -directfb .......... Compile DirectFB support.
3273 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3274 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3276 $KMSN -no-kms ............ Do not compile KMS support.
3277 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3279 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3281 -xplatform target ... The target platform when cross-compiling.
3283 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3284 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3286 -no-feature-<feature> Do not compile in <feature>.
3287 -feature-<feature> .. Compile in <feature>. The available features
3288 are described in src/corelib/global/qfeatures.txt
3290 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3291 default ($CFG_QCONFIG).
3293 -no-opengl .......... Do not support OpenGL.
3294 -opengl <api> ....... Enable OpenGL support
3295 With no parameter, this will attempt to auto-detect
3296 OpenGL ES 2, or regular desktop OpenGL.
3297 Use es2 for <api> to override auto-detection.
3299 * -no-system-proxies .. Do not use system network proxies by default.
3300 -system-proxies ..... Use system network proxies by default.
3302 $GBN -no-glib ........... Do not compile Glib support.
3303 $GBY -glib .............. Compile Glib support.
3306 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3309 $X2N -no-xinput2......... Do not compile XInput2 support.
3310 $X2Y -xinput2............ Compile XInput2 support.
3316 if [ "$XPLATFORM_QNX" = "yes" ]; then
3319 -no-slog2 .......... Do not compile with slog2 support.
3320 -slog2 ............. Compile with slog2 support.
3326 if [ "$BUILD_ON_MAC" = "yes" ]; then
3331 -Fstring ........... Add an explicit framework path.
3332 -fw string ......... Add an explicit framework.
3334 * -framework ......... Build Qt as a series of frameworks and
3335 link tools against those frameworks.
3336 -no-framework ...... Do not build Qt as a series of frameworks.
3338 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3339 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3341 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3342 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3343 QT_ENABLE_HARFBUZZ environment variable.
3348 [ "x$ERROR" = "xyes" ] && exit 1
3353 # -----------------------------------------------------------------------------
3354 # LICENSING, INTERACTIVE PART
3355 # -----------------------------------------------------------------------------
3358 echo "This is the Qt ${EditionString} Edition."
3361 if [ "$Edition" = "OpenSource" ]; then
3363 echo "You are licensed to use this software under the terms of"
3364 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3365 if [ -f "$relpath/LICENSE.GPL3" ]; then
3366 echo "You are also licensed to use this software under the terms of"
3367 echo "the GNU General Public License (GPL) versions 3."
3373 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3374 echo "You have already accepted the terms of the $LicenseType license."
3377 if [ -f "$relpath/LICENSE.GPL3" ]; then
3378 echo "Type '3' to view the GNU General Public License version 3."
3380 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3381 echo "Type 'yes' to accept this license offer."
3382 echo "Type 'no' to decline this license offer."
3384 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3388 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3390 elif [ "$acceptance" = "no" ]; then
3391 echo "You are not licensed to use this software."
3394 elif [ "$acceptance" = "3" ]; then
3395 more "$relpath/LICENSE.GPL3"
3396 elif [ "$acceptance" = "L" ]; then
3397 more "$relpath/LICENSE.LGPL"
3400 elif [ "$Edition" = "Preview" ]; then
3401 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3404 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3405 echo "You have already accepted the terms of the $LicenseType license."
3408 echo "You are licensed to use this software under the terms of"
3409 echo "the $TheLicense"
3411 echo "Type '?' to read the Preview License."
3412 echo "Type 'yes' to accept this license offer."
3413 echo "Type 'no' to decline this license offer."
3415 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3419 if [ "$acceptance" = "yes" ]; then
3421 elif [ "$acceptance" = "no" ] ;then
3422 echo "You are not licensed to use this software."
3425 elif [ "$acceptance" = "?" ]; then
3426 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3429 elif [ "$Edition" != "OpenSource" ]; then
3430 if [ -n "$ExpiryDate" ]; then
3431 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3432 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3433 Today=`date +%Y%m%d`
3434 if [ "$Today" -gt "$ExpiryDate" ]; then
3435 case "$LicenseType" in
3436 Commercial|Academic|Educational)
3438 echo "WARNING WARNING WARNING WARNING"
3440 echo " Your support and upgrade period has expired."
3442 echo " You may continue to use your last licensed release"
3443 echo " of Qt under the terms of your existing license"
3444 echo " agreement. But you are not entitled to technical"
3445 echo " support, nor are you entitled to use any more recent"
3446 echo " Qt releases."
3448 echo " Please use the contact form at http://qt.digia.com/contact-us"
3449 echo " to renew your support and upgrades for this license."
3451 echo "WARNING WARNING WARNING WARNING"
3457 echo "NOTICE NOTICE NOTICE NOTICE"
3459 echo " Your Evaluation license has expired."
3461 echo " You are no longer licensed to use this software. Please"
3462 echo " use the contact form at http://qt.digia.com/contact-us to"
3463 echo " purchase license, or install the Qt Open Source Edition"
3464 echo " if you intend to develop free software."
3466 echo "NOTICE NOTICE NOTICE NOTICE"
3473 TheLicense=`head -n 1 "$outpath/LICENSE"`
3475 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3476 echo "You have already accepted the terms of the $TheLicense."
3479 echo "You are licensed to use this software under the terms of"
3480 echo "the $TheLicense."
3482 echo "Type '?' to view the $TheLicense."
3483 echo "Type 'yes' to accept this license offer."
3484 echo "Type 'no' to decline this license offer."
3486 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3490 if [ "$acceptance" = "yes" ]; then
3492 elif [ "$acceptance" = "no" ]; then
3493 echo "You are not licensed to use this software."
3496 else [ "$acceptance" = "?" ]
3497 more "$outpath/LICENSE"
3502 # this should be moved somewhere else
3505 AIX_VERSION=`uname -v`
3506 if [ "$AIX_VERSION" -lt "5" ]; then
3507 QMakeVar add QMAKE_LIBS_X11 -lbind
3514 #-------------------------------------------------------------------------------
3515 # generate qconfig.cpp
3516 #-------------------------------------------------------------------------------
3517 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3519 shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3520 shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3522 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3524 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3525 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3527 /* Installation date */
3528 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3530 /* Installation Info */
3531 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3532 "qt_prfxpath=$QT_INSTALL_PREFIX",
3533 "qt_docspath=$QT_INSTALL_DOCS",
3534 "qt_hdrspath=$QT_INSTALL_HEADERS",
3535 "qt_libspath=$QT_INSTALL_LIBS",
3536 "qt_lbexpath=$QT_INSTALL_LIBEXECS",
3537 "qt_binspath=$QT_INSTALL_BINS",
3538 "qt_plugpath=$QT_INSTALL_PLUGINS",
3539 "qt_impspath=$QT_INSTALL_IMPORTS",
3540 "qt_qml2path=$QT_INSTALL_QML",
3541 "qt_adatpath=$QT_INSTALL_ARCHDATA",
3542 "qt_datapath=$QT_INSTALL_DATA",
3543 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3544 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3545 "qt_tstspath=$QT_INSTALL_TESTS",
3546 #ifdef QT_BUILD_QMAKE
3547 "qt_ssrtpath=$CFG_SYSROOT",
3548 "qt_hpfxpath=$QT_HOST_PREFIX",
3549 "qt_hbinpath=$QT_HOST_BINS",
3550 "qt_hdatpath=$QT_HOST_DATA",
3551 "qt_targspec=$shortxspec",
3552 "qt_hostspec=$shortspec",
3555 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3558 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3560 /* strlen( "qt_lcnsxxxx" ) == 12 */
3561 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3562 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3564 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3567 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3568 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3569 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3571 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3572 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3573 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3576 # -----------------------------------------------------------------------------
3577 if [ "$LicenseType" = "Evaluation" ]; then
3578 EVALKEY=qt_qevalkey=$LicenseKeyExt
3579 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3580 EVALKEY=qt_qevalkey=
3583 if [ -n "$EVALKEY" ]; then
3584 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3585 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3586 /* Evaluation license key */
3587 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3589 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3593 # -----------------------------------------------------------------------------
3595 # -----------------------------------------------------------------------------
3598 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3599 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3602 # $1: input variable name (awk regexp)
3603 # $2: optional output variable name
3604 # $3: optional value transformation (sed command)
3605 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3606 # is where the resulting variable is written to
3607 setBootstrapVariable()
3609 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3613 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3614 echo "Creating qmake. Please wait..."
3616 mkdir -p "$outpath/qmake" || exit
3618 for mkfile in GNUmakefile Makefile; do
3621 in_mkfile="${mkfile}.in"
3622 if [ "$mkfile" = "Makefile" ]; then
3623 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3624 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3626 in_mkfile="${mkfile}.unix"
3628 in_mkfile="$relpath/qmake/$in_mkfile"
3629 mkfile="$outpath/qmake/$mkfile"
3630 if [ -f "$mkfile" ]; then
3631 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3634 [ -f "$in_mkfile" ] || continue
3636 echo "########################################################################" > "$mkfile"
3637 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3638 echo "########################################################################" >> "$mkfile"
3641 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3642 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3643 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3645 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3646 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3649 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3650 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3651 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3652 setBootstrapVariable QMAKE_CFLAGS
3653 setBootstrapVariable QMAKE_CXXFLAGS
3654 setBootstrapVariable QMAKE_LFLAGS
3656 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3657 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3658 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3660 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3661 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3662 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3663 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3664 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3665 elif [ "$CFG_DEBUG" = "yes" ]; then
3666 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3667 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3668 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3669 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3672 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3673 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3674 for rpath in $RPATH_FLAGS; do
3675 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3678 if [ "$BUILD_ON_MAC" = "yes" ]; then
3679 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3680 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3681 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3682 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3683 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3684 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3685 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3686 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3687 if [ '!' -z "$CFG_SDK" ]; then
3688 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3689 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3690 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3691 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3692 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3695 if [ '!' -z "$D_FLAGS" ]; then
3696 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3698 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3699 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3700 QMAKE_DATA_DIR="$QT_INSTALL_ARCHDATA"
3701 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3703 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3704 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3705 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3706 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3707 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3708 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3709 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3710 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3711 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3712 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3714 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3715 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3716 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3717 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3722 (cd "$outpath/qmake"; "$MAKE") || exit 2
3725 #-------------------------------------------------------------------------------
3726 # create a qt.conf for the Qt build tree itself
3727 #-------------------------------------------------------------------------------
3729 QTCONFFILE="$outpath/bin/qt.conf"
3730 cat > "$QTCONFFILE" <<EOF
3735 #-------------------------------------------------------------------------------
3736 # write out device config before we run the test.
3737 #-------------------------------------------------------------------------------
3738 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3739 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3740 rm -f "$DEVICE_VARS_FILE"
3742 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3743 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3746 #-------------------------------------------------------------------------------
3748 #-------------------------------------------------------------------------------
3749 if [ -z "$PKG_CONFIG" ]; then
3750 # See if PKG_CONFIG is set in the mkspec:
3751 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3753 if [ -z "$PKG_CONFIG" ]; then
3754 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3757 if [ "$CFG_PKGCONFIG" = "no" ]; then
3759 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3761 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3762 echo >&2 "a correctly setup pkg-config environment!"
3764 elif [ -n "$PKG_CONFIG" ]; then
3765 # found a pkg-config
3766 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3767 # when xcompiling, check environment to see if it's actually usable
3768 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3769 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3770 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3771 if [ -n "$GCC_MACHINE_DUMP" ]; then
3772 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3774 export PKG_CONFIG_LIBDIR
3775 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3776 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3777 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3778 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3779 echo >&2 "Set this variable to the directory that contains target .pc files"
3780 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3781 echo >&2 "use -force-pkg-config to override this test."
3785 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3788 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3789 if [ -n "$CFG_SYSROOT" ]; then
3790 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3791 export PKG_CONFIG_SYSROOT_DIR
3792 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3793 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3794 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3795 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3796 echo >&2 "or use -force-pkg-config to override this test."
3800 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3804 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3805 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3809 if [ -z "$PKG_CONFIG" ]; then
3810 QT_CONFIG="$QT_CONFIG no-pkg-config"
3813 #-------------------------------------------------------------------------------
3814 # tests that need qmake
3815 #-------------------------------------------------------------------------------
3817 # parameters: path, name, extra args
3820 path=config.tests/$1
3823 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3826 #-------------------------------------------------------------------------------
3827 # determine the target and host architectures
3828 #-------------------------------------------------------------------------------
3830 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3831 OUTFILE=$outpath/arch.result
3832 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3833 if [ $? -eq 0 ]; then
3834 eval `cat "$OUTFILE"`
3837 echo "Could not determine the target architecture!"
3838 echo "Turn on verbose messaging (-v) to see the final report."
3840 rm -f "$OUTFILE" 2>/dev/null
3841 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3843 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3844 # Do the same test again, using the host compiler
3845 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3846 if [ $? -eq 0 ]; then
3847 eval `cat "$OUTFILE"`
3850 echo "Could not determine the host architecture!"
3851 echo "Turn on verbose messaging (-v) to see the final report."
3853 rm -f "$OUTFILE" 2>/dev/null
3854 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3856 # not cross compiling, host == target
3857 CFG_HOST_ARCH="$CFG_ARCH"
3858 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3862 if [ "$OPT_VERBOSE" = "yes" ]; then
3863 echo "System architecture: '$CFG_ARCH'"
3864 echo "Host architecture: '$CFG_HOST_ARCH'"
3867 #-------------------------------------------------------------------------------
3868 # functionality tests
3869 #-------------------------------------------------------------------------------
3871 # Detect C++11 support
3872 if [ "$CFG_CXX11" != "no" ]; then
3873 if compileTest common/c++11 "C++11"; then
3875 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3876 echo "C++11 support cannot be enabled due to functionality tests!"
3877 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3878 echo " If you believe this message is in error you may use the continue"
3879 echo " switch (-continue) to $0 to continue."
3886 # detect availability of float math.h functions
3887 if compileTest unix/floatmath "floatmath"; then
3888 CFG_USE_FLOATMATH=yes
3890 CFG_USE_FLOATMATH=no
3893 # detect sse2 support
3894 if [ "${CFG_SSE2}" = "auto" ]; then
3895 if compileTest common/sse2 "sse2"; then
3902 # detect sse3 support
3903 if [ "${CFG_SSE3}" = "auto" ]; then
3904 if compileTest common/sse3 "sse3"; then
3911 # detect ssse3 support
3912 if [ "${CFG_SSSE3}" = "auto" ]; then
3913 if compileTest common/ssse3 "ssse3"; then
3920 # detect sse4.1 support
3921 if [ "${CFG_SSE4_1}" = "auto" ]; then
3922 if compileTest common/sse4_1 "sse4_1"; then
3929 # detect sse4.2 support
3930 if [ "${CFG_SSE4_2}" = "auto" ]; then
3931 if compileTest common/sse4_2 "sse4_2"; then
3938 # detect avx support
3939 if [ "${CFG_AVX}" = "auto" ]; then
3940 if compileTest common/avx "avx"; then
3941 case "$XQMAKESPEC" in
3943 # Some clang versions produce internal compiler errors compiling Qt AVX code
3944 case `$TEST_COMPILER --version` in
3945 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3947 if [ "$OPT_VERBOSE" = "yes" ]; then
3948 echo 'AVX support disabled for blacklisted clang compiler'
3965 # detect avx2 support
3966 if [ "${CFG_AVX}" = "no" ]; then
3969 if [ "${CFG_AVX2}" = "auto" ]; then
3970 if compileTest common/avx2 "avx2"; then
3977 # check iWMMXt support
3978 if [ "$CFG_IWMMXT" = "yes" ]; then
3979 compileTest unix/iwmmxt "iwmmxt"
3980 if [ $? != "0" ]; then
3981 echo "The iWMMXt functionality test failed!"
3982 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3987 # detect neon support
3988 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3989 if compileTest unix/neon "neon"; then
3994 elif [ "$CFG_ARCH" != "arm" ]; then
3998 # detect mips_dsp support
3999 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
4000 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
4005 elif [ "$CFG_ARCH" != "mips" ]; then
4009 # detect mips_dspr2 support
4010 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
4011 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
4016 elif [ "$CFG_ARCH" != "mips" ]; then
4020 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4023 if [ "$CFG_ZLIB" = "no" ]; then
4024 # Note: Qt no longer support builds without zlib
4025 # So we force a "no" to be "auto" here.
4026 # If you REALLY really need no zlib support, you can still disable
4027 # it by doing the following:
4028 # add "no-zlib" to mkspecs/qconfig.pri
4029 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4031 # There's no guarantee that Qt will build under those conditions
4037 if [ "$XPLATFORM_QNX" = "yes" ]; then
4038 if [ "$CFG_SLOG2" != "no" ]; then
4039 if compileTest unix/slog2 "slog2"; then
4041 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4048 if [ "$CFG_ZLIB" = "auto" ]; then
4049 if compileTest unix/zlib "zlib"; then
4056 if [ "$CFG_LARGEFILE" = "auto" ]; then
4057 #Large files should be enabled for all Linux systems
4061 if [ "$CFG_GUI" = "no" ]; then
4062 QPA_PLATFORM_GUARD=no
4065 # detect how jpeg should be built
4066 if [ "$CFG_JPEG" = "auto" ]; then
4067 if [ "$CFG_SHARED" = "yes" ]; then
4074 if [ "$CFG_LIBJPEG" = "auto" ]; then
4075 if compileTest unix/libjpeg "libjpeg"; then
4082 # detect how gif should be built
4083 if [ "$CFG_GIF" = "auto" ]; then
4084 if [ "$CFG_SHARED" = "yes" ]; then
4092 if [ "$CFG_LIBPNG" = "auto" ]; then
4093 if compileTest unix/libpng "libpng"; then
4100 if [ "$CFG_EGLFS" = "yes" ]; then
4101 if [ "$CFG_EGL" = "no" ]; then
4102 echo "The EGLFS plugin requires EGL support and cannot be built"
4105 if [ "$CFG_OPENGL" != "es2" ]; then
4106 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4113 if [ "$CFG_KMS" = "yes" ]; then
4114 if [ "$CFG_EGL" = "no" ]; then
4115 echo "The KMS plugin requires EGL support and cannot be built"
4118 if [ "$CFG_OPENGL" != "es2" ]; then
4119 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4124 # auto-detect SQL-modules support
4125 for _SQLDR in $CFG_SQL_AVAILABLE; do
4128 if [ "$CFG_SQL_mysql" != "no" ]; then
4129 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4130 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4131 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4132 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4133 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4134 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4135 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4137 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4138 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4139 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4140 echo " You need MySql 4 or higher."
4141 echo " If you believe this message is in error you may use the continue"
4142 echo " switch (-continue) to $0 to continue."
4147 QT_LFLAGS_MYSQL_R=""
4151 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4152 QMakeVar add CONFIG use_libmysqlclient_r
4153 if [ "$CFG_SQL_mysql" = "auto" ]; then
4154 CFG_SQL_mysql=plugin
4156 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4157 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4158 if [ "$CFG_SQL_mysql" = "auto" ]; then
4159 CFG_SQL_mysql=plugin
4162 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4163 echo "MySQL support cannot be enabled due to functionality tests!"
4164 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4165 echo " If you believe this message is in error you may use the continue"
4166 echo " switch (-continue) to $0 to continue."
4171 QT_LFLAGS_MYSQL_R=""
4179 if [ "$CFG_SQL_psql" != "no" ]; then
4180 # Be careful not to use native pg_config when cross building.
4181 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4182 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4183 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4185 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4186 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4187 # But, respect PSQL_LIBS if set
4188 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4189 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4190 if [ "$CFG_SQL_psql" = "auto" ]; then
4194 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4195 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4196 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4197 echo " If you believe this message is in error you may use the continue"
4198 echo " switch (-continue) to $0 to continue."
4209 if [ "$CFG_SQL_odbc" != "no" ]; then
4210 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4211 if [ "$CFG_SQL_odbc" = "auto" ]; then
4215 if compileTest unix/iodbc "iODBC"; then
4216 QT_LFLAGS_ODBC="-liodbc"
4217 if [ "$CFG_SQL_odbc" = "auto" ]; then
4221 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4222 echo "ODBC support cannot be enabled due to functionality tests!"
4223 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4224 echo " If you believe this message is in error you may use the continue"
4225 echo " switch (-continue) to $0 to continue."
4235 if [ "$CFG_SQL_oci" != "no" ]; then
4236 if compileTest unix/oci "OCI"; then
4237 if [ "$CFG_SQL_oci" = "auto" ]; then
4241 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4242 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4243 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4244 echo " If you believe this message is in error you may use the continue"
4245 echo " switch (-continue) to $0 to continue."
4254 if [ "$CFG_SQL_tds" != "no" ]; then
4255 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4256 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4257 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4258 if [ "$CFG_SQL_tds" = "auto" ]; then
4262 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4263 echo "TDS support cannot be enabled due to functionality tests!"
4264 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4265 echo " If you believe this message is in error you may use the continue"
4266 echo " switch (-continue) to $0 to continue."
4275 if [ "$CFG_SQL_db2" != "no" ]; then
4276 if compileTest unix/db2 "DB2"; then
4277 if [ "$CFG_SQL_db2" = "auto" ]; then
4281 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4282 echo "ODBC support cannot be enabled due to functionality tests!"
4283 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4284 echo " If you believe this message is in error you may use the continue"
4285 echo " switch (-continue) to $0 to continue."
4294 if [ "$CFG_SQL_ibase" != "no" ]; then
4295 if compileTest unix/ibase "InterBase"; then
4296 if [ "$CFG_SQL_ibase" = "auto" ]; then
4297 CFG_SQL_ibase=plugin
4300 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4301 echo "InterBase support cannot be enabled due to functionality tests!"
4302 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4303 echo " If you believe this message is in error you may use the continue"
4304 echo " switch (-continue) to $0 to continue."
4313 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4314 if compileTest unix/sqlite2 "SQLite2"; then
4315 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4316 CFG_SQL_sqlite2=plugin
4319 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4320 echo "SQLite2 support cannot be enabled due to functionality tests!"
4321 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4322 echo " If you believe this message is in error you may use the continue"
4323 echo " switch (-continue) to $0 to continue."
4332 if [ "$CFG_SQL_sqlite" != "no" ]; then
4333 SQLITE_AUTODETECT_FAILED="no"
4334 if [ "$CFG_SQLITE" = "system" ]; then
4335 if [ -n "$PKG_CONFIG" ]; then
4336 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4337 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4340 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4342 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4343 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4344 CFG_SQL_sqlite=plugin
4346 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4348 SQLITE_AUTODETECT_FAILED="yes"
4351 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4352 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4353 CFG_SQL_sqlite=plugin
4356 SQLITE_AUTODETECT_FAILED="yes"
4360 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4361 echo "SQLite support cannot be enabled due to functionality tests!"
4362 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4363 echo " If you believe this message is in error you may use the continue"
4364 echo " switch (-continue) to $0 to continue."
4370 if [ "$OPT_VERBOSE" = "yes" ]; then
4371 echo "unknown SQL driver: $_SQLDR"
4377 # auto-detect NIS support
4378 if [ "$CFG_NIS" != "no" ]; then
4379 if compileTest unix/nis "NIS"; then
4382 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4383 echo "NIS support cannot be enabled due to functionality tests!"
4384 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4385 echo " If you believe this message is in error you may use the continue"
4386 echo " switch (-continue) to $0 to continue."
4394 # auto-detect CUPS support
4395 if [ "$CFG_CUPS" != "no" ]; then
4396 if compileTest unix/cups "Cups"; then
4399 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4400 echo "Cups support cannot be enabled due to functionality tests!"
4401 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4402 echo " If you believe this message is in error you may use the continue"
4403 echo " switch (-continue) to $0 to continue."
4411 # auto-detect iconv(3) support
4412 if [ "$CFG_ICONV" != "no" ]; then
4413 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4415 elif compileTest unix/iconv "POSIX iconv"; then
4417 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4419 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4422 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4423 echo "Iconv support cannot be enabled due to functionality tests!"
4424 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4425 echo " If you believe this message is in error you may use the continue"
4426 echo " switch (-continue) to $0 to continue."
4434 # auto-detect libdbus-1 support
4435 if [ "$CFG_DBUS" != "no" ]; then
4436 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4437 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4438 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4440 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4441 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4442 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4443 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4445 if [ "$CFG_DBUS" = "auto" ]; then
4447 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4448 # CFG_DBUS is "yes" or "linked" here
4450 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4451 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4452 echo " If you believe this message is in error you may use the continue"
4453 echo " switch (-continue) to $0 to continue."
4459 # auto-detect Glib support
4460 if [ "$CFG_GLIB" != "no" ]; then
4461 if [ -n "$PKG_CONFIG" ]; then
4462 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4463 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4465 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4467 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4468 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4470 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4471 echo "Glib support cannot be enabled due to functionality tests!"
4472 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4473 echo " If you believe this message is in error you may use the continue"
4474 echo " switch (-continue) to $0 to continue."
4482 # auto-detect GTK style support
4483 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4484 if [ -n "$PKG_CONFIG" ]; then
4485 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4486 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4488 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4490 QT_CONFIG="$QT_CONFIG gtkstyle"
4491 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4492 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4494 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4495 echo "Gtk theme support cannot be enabled due to functionality tests!"
4496 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4497 echo " If you believe this message is in error you may use the continue"
4498 echo " switch (-continue) to $0 to continue."
4504 elif [ "$CFG_GLIB" = "no" ]; then
4509 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4510 if [ -n "$PKG_CONFIG" ]; then
4511 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4512 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4514 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4516 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4517 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4519 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4520 echo "Gstreamer support cannot be enabled due to functionality tests!"
4521 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4522 echo " If you believe this message is in error you may use the continue"
4523 echo " switch (-continue) to $0 to continue."
4529 elif [ "$CFG_GLIB" = "no" ]; then
4533 # auto-detect libicu support
4534 if [ "$CFG_ICU" != "no" ]; then
4535 if compileTest unix/icu "ICU"; then
4536 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4538 if [ "$CFG_ICU" = "auto" ]; then
4540 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4543 echo "The ICU library support cannot be enabled."
4544 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4545 echo " If you believe this message is in error you may use the continue"
4546 echo " switch (-continue) to $0 to continue."
4552 # Auto-detect PulseAudio support
4553 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4554 if [ -n "$PKG_CONFIG" ]; then
4555 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4556 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4558 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4560 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4561 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4563 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4564 echo "PulseAudio support cannot be enabled due to functionality tests!"
4565 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4566 echo " If you believe this message is in error you may use the continue"
4567 echo " switch (-continue) to $0 to continue."
4576 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4577 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4578 if [ "$CFG_GUI" = "no" ]; then
4579 if [ "$CFG_OPENGL" = "auto" ]; then
4582 if [ "$CFG_OPENGL" != "no" ]; then
4583 echo "OpenGL enabled, but GUI disabled."
4584 echo " You might need to either enable the GUI or disable OpenGL"
4588 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4589 if compileTest x11/opengl "OpenGL"; then
4591 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4594 if [ "$CFG_OPENGL" = "yes" ]; then
4595 echo "All the OpenGL functionality tests failed!"
4596 echo " You might need to modify the include and library search paths by editing"
4597 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4598 echo " ${XQMAKESPEC}."
4605 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4606 if [ "$CFG_OPENGL" = "desktop" ]; then
4607 compileTest x11/glxfbconfig "OpenGL"
4608 if [ $? != "0" ]; then
4609 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4616 elif [ "$CFG_OPENGL" = "es2" ]; then
4618 compileTest unix/opengles2 "OpenGL ES 2.x"
4619 if [ $? != "0" ]; then
4620 echo "The OpenGL ES 2.0 functionality test failed!"
4621 echo " You might need to modify the include and library search paths by editing"
4622 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4623 echo " ${XQMAKESPEC}."
4626 elif [ "$CFG_OPENGL" = "desktop" ]; then
4627 # Desktop OpenGL support
4628 compileTest x11/opengl "OpenGL"
4629 if [ $? != "0" ]; then
4630 echo "The OpenGL functionality test failed!"
4631 echo " You might need to modify the include and library search paths by editing"
4632 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4633 echo " ${XQMAKESPEC}."
4638 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4639 compileTest x11/glxfbconfig "OpenGL"
4640 if [ $? != "0" ]; then
4641 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4648 fi # X11/MINGW OpenGL
4650 if [ "$BUILD_ON_MAC" = "yes" ]; then
4651 if [ "$CFG_COREWLAN" = "auto" ]; then
4652 if compileTest mac/corewlan "CoreWlan"; then
4660 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4661 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4662 if compileTest unix/opengldesktop "OpenGL"; then
4664 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4667 if [ "$CFG_OPENGL" = "yes" ]; then
4668 echo "All the OpenGL functionality tests failed!"
4669 echo " You might need to modify the include and library search paths by editing"
4670 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4671 echo " ${XQMAKESPEC}."
4676 elif [ "$CFG_OPENGL" = "es2" ]; then
4678 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4679 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4680 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4681 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4682 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4683 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4684 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4685 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4688 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4689 if [ $? != "0" ]; then
4690 echo "The OpenGL ES 2.0 functionality test failed!"
4691 echo " You might need to modify the include and library search paths by editing"
4692 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4693 echo " ${XQMAKESPEC}."
4696 elif [ "$CFG_OPENGL" = "desktop" ]; then
4697 # Desktop OpenGL support
4698 compileTest unix/opengldesktop "OpenGL"
4699 if [ $? != "0" ]; then
4700 echo "The OpenGL functionality test failed!"
4701 echo " You might need to modify the include and library search paths by editing"
4702 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4703 echo " ${XQMAKESPEC}."
4708 # auto-detect FontConfig support
4709 if [ "$CFG_FONTCONFIG" != "no" ]; then
4710 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4711 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4712 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4714 QT_CFLAGS_FONTCONFIG=
4715 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4717 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4718 QT_CONFIG="$QT_CONFIG fontconfig"
4719 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4720 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4722 CFG_LIBFREETYPE=system
4729 # Save these for a check later
4730 ORIG_CFG_XCB="$CFG_XCB"
4731 ORIG_CFG_EGLFS="$CFG_EGLFS"
4732 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4733 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4734 ORIG_CFG_KMS="$CFG_KMS"
4736 if [ "$CFG_LIBUDEV" != "no" ]; then
4737 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4738 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4739 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4740 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4741 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4743 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4745 QT_CONFIG="$QT_CONFIG libudev"
4746 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4747 echo "The libudev functionality test failed!"
4753 if [ "$CFG_LIBUDEV" = "no" ]; then
4754 QMakeVar add DEFINES QT_NO_LIBUDEV
4757 if [ "$CFG_EVDEV" != "no" ]; then
4758 if compileTest unix/evdev "evdev"; then
4760 QT_CONFIG="$QT_CONFIG evdev"
4761 elif [ "$CFG_EVDEV" = "yes" ]; then
4762 echo "The evdev functionality test failed!"
4768 if [ "$CFG_EVDEV" = "no" ]; then
4769 QMakeVar add DEFINES QT_NO_EVDEV
4772 # Check we actually have X11 :-)
4773 if compileTest x11/xlib "XLib"; then
4774 QT_CONFIG="$QT_CONFIG xlib"
4777 # auto-detect Xrender support
4778 if [ "$CFG_XRENDER" != "no" ]; then
4779 if compileTest x11/xrender "Xrender"; then
4781 QT_CONFIG="$QT_CONFIG xrender"
4783 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4784 echo "Xrender support cannot be enabled due to functionality tests!"
4785 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4786 echo " If you believe this message is in error you may use the continue"
4787 echo " switch (-continue) to $0 to continue."
4795 if [ "$CFG_XCB" != "no" ]; then
4796 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4797 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4798 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4800 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4802 if [ "$CFG_XCB" = "qt" ]; then
4803 QT_CONFIG="$QT_CONFIG xcb-qt"
4807 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4808 XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm"
4809 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
4810 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
4813 if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4814 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4815 QT_CONFIG="$QT_CONFIG xcb-render"
4818 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4820 QT_CONFIG="$QT_CONFIG xcb-glx"
4823 echo "The test for linking against libxcb and support libraries failed!"
4824 echo " You might need install dependency packages, or pass -qt-xcb."
4825 echo " See src/plugins/platforms/xcb/README."
4830 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4831 QT_CONFIG="$QT_CONFIG xcb-xlib"
4834 # auto-detect XInput2 support. Needed by xcb too.
4835 if [ "$CFG_XINPUT2" != "no" ]; then
4836 if compileTest x11/xinput2 "XInput2"; then
4840 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4841 echo "XInput2 support cannot be enabled due to functionality tests!"
4842 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4843 echo " If you believe this message is in error you may use the continue"
4844 echo " switch (-continue) to $0 to continue."
4852 if [ "$CFG_XCB" != "auto" ]; then
4853 echo "The test for linking against libxcb failed!"
4854 echo " You might need to install dependency packages for libxcb."
4855 echo " See src/plugins/platforms/xcb/README."
4861 if [ "$CFG_XCB" = "no" ]; then
4862 QMakeVar add DEFINES QT_NO_XCB
4865 if [ "$CFG_DIRECTFB" != "no" ]; then
4866 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4867 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4868 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4869 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4871 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4872 echo " DirectFB support cannot be enabled due to functionality tests!"
4873 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4874 echo " If you believe this message is in error you may use the continue"
4875 echo " switch (-continue) to $0 to continue."
4885 if [ "$CFG_LINUXFB" != "no" ]; then
4886 if compileTest qpa/linuxfb "LinuxFB"; then
4888 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4889 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4890 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4891 echo " If you believe this message is in error you may use the continue"
4892 echo " switch (-continue) to $0 to continue."
4899 if [ "$CFG_KMS" != "no" ]; then
4900 if compileTest qpa/kms "KMS"; then
4902 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4903 echo " KMS support cannot be enabled due to functionality tests!"
4904 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4905 echo " If you believe this message is in error you may use the continue"
4906 echo " switch (-continue) to $0 to continue."
4913 # Detect libxkbcommon
4914 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4915 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4916 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4917 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4918 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4920 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4924 if [ "$CFG_EGL" != "no" ]; then
4925 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4926 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4927 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4928 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4929 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4930 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4931 fi # detect EGL support
4932 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4934 elif [ "$CFG_EGL" = "yes" ]; then
4935 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4936 echo " You might need to modify the include and library search paths by editing"
4937 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4942 elif [ "$CFG_OPENGL" = "desktop" ]; then
4943 if [ "$CFG_EGL" = "yes" ]; then
4944 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4945 echo "Either disable EGL support or enable OpenGL ES support."
4951 if [ "$CFG_EGLFS" != "no" ]; then
4952 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4953 CFG_EGLFS="$CFG_EGL"
4959 if [ "$CFG_KMS" = "yes" ]; then
4960 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4967 # Detect accessibility support
4968 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4969 if [ "$CFG_XCB" = "no" ]; then
4970 CFG_ACCESSIBILITY=yes
4972 # linux/xcb accessibility needs dbus
4973 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ]; then
4974 CFG_ACCESSIBILITY=yes
4976 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4977 CFG_ACCESSIBILITY=no
4979 echo "Accessibility support needs DBus."
4986 # Determine the default QPA platform
4987 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4989 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4990 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4991 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4992 QT_QPA_DEFAULT_PLATFORM="windows"
4993 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4994 QT_QPA_DEFAULT_PLATFORM="cocoa"
4995 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4996 QT_QPA_DEFAULT_PLATFORM="qnx"
4998 QT_QPA_DEFAULT_PLATFORM="xcb"
5003 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
5004 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
5005 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
5006 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
5008 if [ "$CFG_DIRECTFB" = "yes" ]; then
5009 QT_CONFIG="$QT_CONFIG directfb"
5010 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
5011 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
5013 if [ "$CFG_LINUXFB" = "yes" ]; then
5014 QT_CONFIG="$QT_CONFIG linuxfb"
5016 if [ "$CFG_KMS" = "yes" ]; then
5017 QT_CONFIG="$QT_CONFIG kms"
5020 if [ "$BUILD_ON_MAC" = "yes" ]; then
5021 if compileTest mac/coreservices "CoreServices"; then
5022 QT_CONFIG="$QT_CONFIG coreservices"
5024 QMakeVar add DEFINES QT_NO_CORESERVICES
5028 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5029 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5030 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5031 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5032 echo "No QPA platform plugin enabled!"
5033 echo " If you really want to build without a QPA platform plugin you must pass"
5034 echo " -no-qpa-platform-guard to configure. Doing this will"
5035 echo " produce a Qt that can not run GUI applications."
5036 echo " The dependencies needed for xcb to build are listed in"
5037 echo " src/plugins/platforms/xcb/README"
5044 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5045 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5046 if compileTest unix/freetype "FreeType"; then
5047 CFG_LIBFREETYPE=system
5053 if ! compileTest unix/stl "STL" &&
5054 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5055 echo "STL functionality check failed! Cannot build Qt with this STL library."
5056 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5061 # detect POSIX clock_gettime()
5062 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5063 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5064 CFG_CLOCK_GETTIME=yes
5066 CFG_CLOCK_GETTIME=no
5070 # detect POSIX monotonic clocks
5071 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5072 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5073 CFG_CLOCK_MONOTONIC=yes
5075 CFG_CLOCK_MONOTONIC=no
5077 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5078 CFG_CLOCK_MONOTONIC=no
5082 if [ "$CFG_MREMAP" = "auto" ]; then
5083 if compileTest unix/mremap "mremap"; then
5090 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5091 if [ "$CFG_GETADDRINFO" != "no" ]; then
5092 if compileTest unix/getaddrinfo "getaddrinfo"; then
5095 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5096 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5097 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5098 echo " If you believe this message is in error you may use the continue"
5099 echo " switch (-continue) to $0 to continue."
5107 # find if the platform provides inotify
5108 if [ "$CFG_INOTIFY" != "no" ]; then
5109 if compileTest unix/inotify "inotify"; then
5112 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5113 echo "inotify support cannot be enabled due to functionality tests!"
5114 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5115 echo " If you believe this message is in error you may use the continue"
5116 echo " switch (-continue) to $0 to continue."
5124 # find if the platform provides if_nametoindex (ipv6 interface name support)
5125 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5126 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5129 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5130 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5131 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5132 echo " If you believe this message is in error you may use the continue"
5133 echo " switch (-continue) to $0 to continue."
5141 # find if the platform provides getifaddrs (network interface enumeration)
5142 if [ "$CFG_GETIFADDRS" != "no" ]; then
5143 if compileTest unix/getifaddrs "getifaddrs"; then
5146 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5147 echo "getifaddrs support cannot be enabled due to functionality tests!"
5148 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5149 echo " If you believe this message is in error you may use the continue"
5150 echo " switch (-continue) to $0 to continue."
5159 if [ "$CFG_OPENSSL" != "no" ]; then
5160 if compileTest unix/openssl "OpenSSL"; then
5161 if [ "$CFG_OPENSSL" = "auto" ]; then
5165 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5166 echo "OpenSSL support cannot be enabled due to functionality tests!"
5167 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5168 echo " If you believe this message is in error you may use the continue"
5169 echo " switch (-continue) to $0 to continue."
5178 if [ "$CFG_PCRE" != "qt" ]; then
5179 if compileTest unix/pcre "PCRE"; then
5182 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5183 echo "PCRE support cannot be enabled due to functionality tests!"
5184 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5185 echo " If you believe this message is in error you may use the continue"
5186 echo " switch (-continue) to $0 to continue."
5194 # detect OpenVG support
5195 if [ "$CFG_OPENVG" != "no" ]; then
5196 if compileTest unix/openvg "OpenVG"; then
5197 if [ "$CFG_OPENVG" = "auto" ]; then
5200 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5201 if [ "$CFG_OPENVG" = "auto" ]; then
5204 CFG_OPENVG_ON_OPENGL=yes
5205 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5206 if [ "$CFG_OPENVG" = "auto" ]; then
5209 CFG_OPENVG_LC_INCLUDES=yes
5210 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5211 if [ "$CFG_OPENVG" = "auto" ]; then
5214 CFG_OPENVG_LC_INCLUDES=yes
5215 CFG_OPENVG_ON_OPENGL=yes
5217 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5218 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5219 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5220 echo " If you believe this message is in error you may use the continue"
5221 echo " switch (-continue) to $0 to continue."
5227 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5228 CFG_OPENVG_SHIVA=yes
5232 if [ "$CFG_ALSA" = "auto" ]; then
5233 if compileTest unix/alsa "alsa"; then
5240 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5241 if [ "$CFG_ARCH" = "arm" ]; then
5242 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5243 if [ $? != "0" ]; then
5244 CFG_JAVASCRIPTCORE_JIT=no
5247 case "$XPLATFORM" in
5249 CFG_JAVASCRIPTCORE_JIT=no
5255 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5256 QMakeVar set JAVASCRIPTCORE_JIT yes
5257 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5258 QMakeVar set JAVASCRIPTCORE_JIT no
5261 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5262 CFG_AUDIO_BACKEND=yes
5265 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5266 echo "Warning: largefile support cannot be disabled for win32."
5270 #-------------------------------------------------------------------------------
5271 # ask for all that hasn't been auto-detected or specified in the arguments
5272 #-------------------------------------------------------------------------------
5274 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5276 # disable accessibility
5277 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5278 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5280 QT_CONFIG="$QT_CONFIG accessibility"
5284 if [ "$CFG_EGL" = "yes" ]; then
5285 QT_CONFIG="$QT_CONFIG egl"
5287 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5291 if [ "$CFG_EGLFS" = "yes" ]; then
5292 QT_CONFIG="$QT_CONFIG eglfs"
5294 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5298 if [ "$CFG_OPENVG" = "no" ]; then
5299 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5301 QT_CONFIG="$QT_CONFIG openvg"
5302 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5303 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5305 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5306 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5308 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5309 QT_CONFIG="$QT_CONFIG shivavg"
5310 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5315 if [ "$CFG_OPENGL" = "no" ]; then
5316 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5318 QT_CONFIG="$QT_CONFIG opengl"
5321 if [ "$CFG_OPENGL" = "es2" ]; then
5322 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5325 if [ "$CFG_OPENGL" = "es2" ]; then
5326 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5327 QT_CONFIG="$QT_CONFIG opengles2"
5330 # build up the variables for output
5331 if [ "$CFG_DEBUG" = "yes" ]; then
5332 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5333 elif [ "$CFG_DEBUG" = "no" ]; then
5334 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5336 if [ "$CFG_SHARED" = "yes" ]; then
5337 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5338 QT_CONFIG="$QT_CONFIG shared"
5339 elif [ "$CFG_SHARED" = "no" ]; then
5340 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5341 QT_CONFIG="$QT_CONFIG static"
5344 #FIXME: qpa is implicit this should all be removed
5345 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5346 QT_CONFIG="$QT_CONFIG qpa"
5347 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5349 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5350 # Do not set this here for Windows. Let qmake do it so
5351 # debug and release precompiled headers are kept separate.
5352 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5354 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5355 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5356 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5357 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5358 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5359 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5361 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5362 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5364 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5365 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5366 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5367 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5368 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5369 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5370 QMakeVar add QMAKE_CFLAGS -g
5371 QMakeVar add QMAKE_CXXFLAGS -g
5372 QT_CONFIG="$QT_CONFIG separate_debug_info"
5374 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5375 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5377 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5378 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5379 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5380 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5381 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5382 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5383 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5384 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5385 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5386 if [ "$CFG_ARCH" = "mips" ]; then
5387 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5388 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5390 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5391 QT_CONFIG="$QT_CONFIG clock-gettime"
5393 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5394 QT_CONFIG="$QT_CONFIG clock-monotonic"
5396 if [ "$CFG_MREMAP" = "yes" ]; then
5397 QT_CONFIG="$QT_CONFIG mremap"
5399 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5400 QT_CONFIG="$QT_CONFIG getaddrinfo"
5402 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5403 QT_CONFIG="$QT_CONFIG ipv6ifname"
5405 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5406 QT_CONFIG="$QT_CONFIG getifaddrs"
5408 if [ "$CFG_INOTIFY" = "yes" ]; then
5409 QT_CONFIG="$QT_CONFIG inotify"
5411 if [ "$CFG_LIBJPEG" = "no" ]; then
5413 elif [ "$CFG_LIBJPEG" = "system" ]; then
5414 QT_CONFIG="$QT_CONFIG system-jpeg"
5416 if [ "$CFG_JPEG" = "no" ]; then
5417 QT_CONFIG="$QT_CONFIG no-jpeg"
5418 elif [ "$CFG_JPEG" = "yes" ]; then
5419 QT_CONFIG="$QT_CONFIG jpeg"
5421 if [ "$CFG_LIBPNG" = "no" ]; then
5424 if [ "$CFG_LIBPNG" = "system" ]; then
5425 QT_CONFIG="$QT_CONFIG system-png"
5427 if [ "$CFG_PNG" = "no" ]; then
5428 QT_CONFIG="$QT_CONFIG no-png"
5429 elif [ "$CFG_PNG" = "yes" ]; then
5430 QT_CONFIG="$QT_CONFIG png"
5432 if [ "$CFG_GIF" = "no" ]; then
5433 QT_CONFIG="$QT_CONFIG no-gif"
5434 elif [ "$CFG_GIF" = "yes" ]; then
5435 QT_CONFIG="$QT_CONFIG gif"
5437 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5438 QT_CONFIG="$QT_CONFIG no-freetype"
5439 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5440 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5441 QT_CONFIG="$QT_CONFIG system-freetype"
5443 QT_CONFIG="$QT_CONFIG freetype"
5445 if [ "$CFG_GUI" = "auto" ]; then
5448 if [ "$CFG_GUI" = "no" ]; then
5449 QT_CONFIG="$QT_CONFIG no-gui"
5452 if [ "$CFG_WIDGETS" = "no" ]; then
5453 QT_CONFIG="$QT_CONFIG no-widgets"
5454 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5457 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5458 #On Mac we implicitly link against libz, so we
5459 #never use the 3rdparty stuff.
5460 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5462 if [ "$CFG_ZLIB" = "yes" ]; then
5463 QT_CONFIG="$QT_CONFIG zlib"
5464 elif [ "$CFG_ZLIB" = "system" ]; then
5465 QT_CONFIG="$QT_CONFIG system-zlib"
5468 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5469 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5470 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5471 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5472 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5473 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5474 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5475 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5476 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5477 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5478 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5479 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5480 [ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb"
5481 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5482 [ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies"
5483 [ "$CFG_DIRECTWRITE" = "yes" ] && QT_CONFIG="$QT_CONFIG directwrite"
5485 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5486 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5488 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5489 if [ "$CFG_RPATH" = "yes" ]; then
5490 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5492 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5493 if [ -n "$RPATH_FLAGS" ]; then
5495 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5499 elif [ "$CFG_RPATH" = "yes" ]; then
5500 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5504 if [ -n "$RPATH_FLAGS" ]; then
5505 # add the user defined rpaths
5506 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5509 if [ "$CFG_RPATH" = "yes" ]; then
5510 QT_CONFIG="$QT_CONFIG rpath"
5513 if [ '!' -z "$I_FLAGS" ]; then
5514 # add the user define include paths
5515 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5516 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5519 if [ '!' -z "$W_FLAGS" ]; then
5520 # add the user defined warning flags
5521 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5522 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5523 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5526 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5527 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5528 # Follow default behavior of configure.exe by overriding with "rtti".
5529 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5532 if [ "$CFG_ALSA" = "yes" ]; then
5533 QT_CONFIG="$QT_CONFIG alsa"
5536 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5537 QT_CONFIG="$QT_CONFIG pulseaudio"
5540 if [ "$CFG_COREWLAN" = "yes" ]; then
5541 QT_CONFIG="$QT_CONFIG corewlan"
5544 if [ "$CFG_ICU" = "yes" ]; then
5545 QT_CONFIG="$QT_CONFIG icu"
5548 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5549 QT_CONFIG="$QT_CONFIG force_asserts"
5552 if [ "$CFG_PCRE" = "qt" ]; then
5553 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5557 # Some Qt modules are too advanced in C++ for some old compilers
5558 # Detect here the platforms where they are known to work.
5560 # See Qt documentation for more information on which features are
5561 # supported and on which compilers.
5563 canBuildQtConcurrent="yes"
5564 canUseV8Snapshot="yes"
5566 case "$XPLATFORM" in
5568 # PA-RISC's assembly is too limited
5569 # gcc 3.4 on that platform can't build QtXmlPatterns
5570 # the assembly it generates cannot be compiled
5572 # Check gcc's version
5573 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5577 canBuildQtXmlPatterns="no"
5581 canBuildQtXmlPatterns="no"
5585 unsupported/vxworks-*-g++*)
5588 unsupported/vxworks-*-dcc*)
5590 canBuildQtXmlPatterns="no"
5593 # Check gcc's version
5594 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5602 canBuildQtXmlPatterns="no"
5607 # Check the compiler version
5608 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5611 canBuildQtXmlPatterns="no"
5612 canBuildQtConcurrent="no"
5616 canBuildQtConcurrent="no"
5622 canBuildQtXmlPatterns="no"
5623 canBuildQtConcurrent="no"
5629 # Get the xlC version
5630 cat > xlcver.c <<EOF
5634 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5639 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5640 xlcver=`./xlcver 2>/dev/null`
5643 if [ "$OPT_VERBOSE" = "yes" ]; then
5644 if [ -n "$xlcver" ]; then
5645 echo Found IBM xlC version: $xlcver.
5647 echo Could not determine IBM xlC version, assuming oldest supported.
5654 canBuildQtXmlPatterns="no"
5655 canBuildQtConcurrent="no"
5659 canBuildQtConcurrent="no"
5665 canBuildQtConcurrent="no"
5669 if [ "$CFG_GUI" = "no" ]; then
5670 # WebKit requires QtGui
5674 if [ "$CFG_SHARED" = "no" ]; then
5676 echo "WARNING: Using static linking will disable the WebKit module."
5681 CFG_CONCURRENT="yes"
5682 if [ "$canBuildQtConcurrent" = "no" ]; then
5683 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5686 QT_CONFIG="$QT_CONFIG concurrent"
5690 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5691 QT_CONFIG="$QT_CONFIG audio-backend"
5695 if [ "$CFG_WEBKIT" = "debug" ]; then
5696 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5700 QT_CONFIG="$QT_CONFIG v8"
5701 # Detect snapshot support
5702 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5703 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5706 *) canUseV8Snapshot="no"
5710 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5711 # QEMU crashes when building inside Scratchbox with an ARM target
5712 canUseV8Snapshot="no"
5715 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5716 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5718 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5719 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5722 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5723 QT_CONFIG="$QT_CONFIG v8snapshot"
5727 if [ "$CFG_QML_DEBUG" = "no" ]; then
5728 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5731 case "$QMAKE_CONF_COMPILER" in
5734 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5736 case "$COMPILER_VERSION" in
5738 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5739 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5740 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5743 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5744 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5745 QT_GCC_PATCH_VERSION=0
5755 #-------------------------------------------------------------------------------
5756 # part of configuration information goes into qconfig.h
5757 #-------------------------------------------------------------------------------
5759 case "$CFG_QCONFIG" in
5761 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5764 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5765 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5766 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5767 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5768 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5769 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5771 echo "#endif" >>"$tmpconfig"
5775 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5779 # define QT_EDITION $QT_EDITION
5783 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5784 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5786 if [ "$CFG_SHARED" = "no" ]; then
5787 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5788 /* Qt was configured for a static build */
5789 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5796 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5797 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5800 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5801 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5804 if [ "$BUILD_ON_MAC" = "yes" ]; then
5805 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5806 #if defined(__LP64__)
5807 # define QT_POINTER_SIZE 8
5809 # define QT_POINTER_SIZE 4
5813 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5814 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5817 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5818 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5819 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5822 # Add compiler sub-architecture support
5823 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5824 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5825 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5827 MIPS_DSP MIPS_DSPR2; do
5828 eval "VAL=\$CFG_$SUBARCH"
5831 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5832 >>"$outpath/src/corelib/global/qconfig.h.new"
5837 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5839 if [ "$CFG_DEV" = "yes" ]; then
5840 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5843 # Add QPA to config.h
5844 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5846 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5847 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5850 # Add turned on SQL drivers
5851 for DRIVER in $CFG_SQL_AVAILABLE; do
5852 eval "VAL=\$CFG_SQL_$DRIVER"
5855 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5856 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5857 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5860 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5865 QMakeVar set sql-drivers "$SQL_DRIVERS"
5866 QMakeVar set sql-plugins "$SQL_PLUGINS"
5868 # Add other configuration options to the qconfig.h file
5869 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5870 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5871 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5872 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5873 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5875 # X11/Unix/Mac only configs
5876 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5877 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5878 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5879 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5880 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5881 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5882 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5883 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5884 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5885 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5886 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5887 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5888 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5889 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5891 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5892 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5893 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5894 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5895 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5896 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5897 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5898 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5899 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5900 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5901 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5902 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5903 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5905 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5906 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5907 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5908 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5909 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5910 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5911 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5912 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5914 # sort QCONFIG_FLAGS for neatness if we can
5915 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5916 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5918 if [ -n "$QCONFIG_FLAGS" ]; then
5919 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5920 #ifndef QT_BOOTSTRAPPED
5923 for cfg in $QCONFIG_FLAGS; do
5924 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5925 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5926 # figure out define logic, so we can output the correct
5927 # ifdefs to override the global defines in a project
5929 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5930 # QT_NO_option can be forcefully turned on by QT_option
5931 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5932 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5933 # QT_option can be forcefully turned off by QT_NO_option
5934 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5937 if [ -z $cfgdNeg ]; then
5938 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5945 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5946 #if defined($cfgd) && defined($cfgdNeg)
5948 #elif !defined($cfgd) && !defined($cfgdNeg)
5955 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5956 #endif // QT_BOOTSTRAPPED
5961 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5962 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5963 #define QT_VISIBILITY_AVAILABLE
5968 if [ -n "$QT_LIBINFIX" ]; then
5969 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5970 #define QT_LIBINFIX "$QT_LIBINFIX"
5975 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5977 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5978 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5979 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5981 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5982 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5983 chmod -w "$outpath/src/corelib/global/qconfig.h"
5984 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5985 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5989 #-------------------------------------------------------------------------------
5990 # save configuration into qconfig.pri
5991 #-------------------------------------------------------------------------------
5992 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5993 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5994 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5995 if [ "$CFG_DEBUG" = "yes" ]; then
5996 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5997 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5998 QT_CONFIG="$QT_CONFIG release"
6000 QT_CONFIG="$QT_CONFIG debug"
6001 elif [ "$CFG_DEBUG" = "no" ]; then
6002 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
6003 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6004 QT_CONFIG="$QT_CONFIG debug"
6006 QT_CONFIG="$QT_CONFIG release"
6008 if [ "$CFG_FRAMEWORK" = "no" ]; then
6009 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
6011 QT_CONFIG="$QT_CONFIG qt_framework"
6012 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
6014 if [ "$CFG_DEV" = "yes" ]; then
6015 QT_CONFIG="$QT_CONFIG private_tests"
6018 cat >>"$QTCONFIG.tmp" <<EOF
6020 CONFIG += $QTCONFIG_CONFIG
6022 QT_HOST_ARCH = $CFG_HOST_ARCH
6023 QT_CPU_FEATURES = $CFG_CPUFEATURES
6024 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
6025 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6026 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6027 QT_EDITION = $Edition
6028 QT_CONFIG += $QT_CONFIG
6031 QT_VERSION = $QT_VERSION
6032 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6033 QT_MINOR_VERSION = $QT_MINOR_VERSION
6034 QT_PATCH_VERSION = $QT_PATCH_VERSION
6037 QT_LIBINFIX = $QT_LIBINFIX
6038 QT_NAMESPACE = $QT_NAMESPACE
6042 if [ "$CFG_SHARED" = "no" ]; then
6043 echo "QT_DEFAULT_QPA_PLUGIN = q$QT_QPA_DEFAULT_PLATFORM" >> "$QTCONFIG.tmp"
6044 echo >> "$QTCONFIG.tmp"
6047 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6048 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6049 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6050 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6051 echo >> "$QTCONFIG.tmp"
6054 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6055 echo "# sysroot" >>"$QTCONFIG.tmp"
6056 echo "!host_build {" >>"$QTCONFIG.tmp"
6057 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6058 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6059 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6060 echo "}" >> "$QTCONFIG.tmp"
6061 echo >> "$QTCONFIG.tmp"
6063 if [ -n "$RPATH_FLAGS" ]; then
6064 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6066 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6067 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6068 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6069 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6072 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6073 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6074 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6077 # replace qconfig.pri if it differs from the newly created temp file
6078 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6079 rm -f "$QTCONFIG.tmp"
6081 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6084 #-------------------------------------------------------------------------------
6085 # save configuration into qmodule.pri
6086 #-------------------------------------------------------------------------------
6087 QTMODULE="$outpath/mkspecs/qmodule.pri"
6089 echo "CONFIG += $QMAKE_CONFIG" >> "$QTMODULE.tmp"
6090 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6092 if [ -n "$QT_CFLAGS_PSQL" ]; then
6093 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6095 if [ -n "$QT_LFLAGS_PSQL" ]; then
6096 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6098 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6099 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6101 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6102 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6104 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6105 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6107 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6108 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6110 if [ -n "$QT_LFLAGS_ODBC" ]; then
6111 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6113 if [ -n "$QT_LFLAGS_TDS" ]; then
6114 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6117 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6118 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6121 #dump in the OPENSSL_LIBS info
6122 if [ '!' -z "$OPENSSL_LIBS" ]; then
6123 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6124 elif [ "$CFG_OPENSSL" = "linked" ]; then
6125 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6129 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6130 # QMAKE_VARS_FILE will be still needed for a status message.
6132 # replace qmodule.pri if it differs from the newly created temp file
6133 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6134 rm -f "$QTMODULE.tmp"
6136 mv -f "$QTMODULE.tmp" "$QTMODULE"
6139 #-------------------------------------------------------------------------------
6140 # save configuration into .qmake.cache
6141 #-------------------------------------------------------------------------------
6143 CACHEFILE="$outpath/.qmake.cache"
6144 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6145 cat >>"$CACHEFILE.tmp" <<EOF
6146 QT_SOURCE_TREE = \$\$quote($relpath)
6147 QT_BUILD_TREE = \$\$quote($outpath)
6150 # replace .qmake.cache if it differs from the newly created temp file
6151 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6152 rm -f "$CACHEFILE.tmp"
6154 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6157 #-------------------------------------------------------------------------------
6158 # give feedback on configuration
6159 #-------------------------------------------------------------------------------
6160 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6163 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6164 echo "Build type: $PLATFORM"
6166 echo "Building on: $PLATFORM"
6167 echo "Building for: $XPLATFORM"
6170 # the missing space before $CFG_FEATURES is intentional
6171 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6172 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6174 if [ -n "$PLATFORM_NOTES" ]; then
6175 echo "Platform notes:"
6176 echo "$PLATFORM_NOTES"
6181 if [ "$OPT_VERBOSE" = "yes" ]; then
6182 echo $ECHO_N "qmake vars .......... $ECHO_C"
6183 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6184 echo "qmake switches ......... $QMAKE_SWITCHES"
6187 echo "Build .................. $CFG_BUILD_PARTS"
6188 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6189 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6190 echo "Debug .................. yes (combined)"
6191 if [ "$CFG_DEBUG" = "yes" ]; then
6192 echo "Default Link ........... debug"
6194 echo "Default Link ........... release"
6197 echo "Debug .................. $CFG_DEBUG"
6199 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6200 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6202 echo "C++11 support .......... $CFG_CXX11"
6203 if [ -n "$PKG_CONFIG" ]; then
6204 echo "pkg-config ............. yes"
6206 echo "pkg-config ............. no"
6208 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6209 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6210 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6211 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6212 echo "QtGui module ........... $CFG_GUI"
6213 echo "QtWidgets module ....... $CFG_WIDGETS"
6214 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6215 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6217 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6219 echo "QML debugging .......... $CFG_QML_DEBUG"
6220 echo "PCH support ............ $CFG_PRECOMPILE"
6221 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6222 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6223 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6224 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6225 elif [ "$CFG_ARCH" = "arm" ]; then
6226 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6227 echo "NEON support ........... ${CFG_NEON}"
6229 if [ "$CFG_ARCH" = "mips" ]; then
6230 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6232 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6233 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6234 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6235 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6236 echo "NIS support ............ $CFG_NIS"
6237 echo "CUPS support ........... $CFG_CUPS"
6238 echo "Iconv support .......... $CFG_ICONV"
6239 echo "Glib support ........... $CFG_GLIB"
6240 echo "GStreamer support ...... $CFG_GSTREAMER"
6241 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6242 echo "Large File support ..... $CFG_LARGEFILE"
6243 echo "GIF support ............ $CFG_GIF"
6244 if [ "$CFG_JPEG" = "no" ]; then
6245 echo "JPEG support ........... $CFG_JPEG"
6247 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6249 if [ "$CFG_PNG" = "no" ]; then
6250 echo "PNG support ............ $CFG_PNG"
6252 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6254 echo "zlib support ........... $CFG_ZLIB"
6255 echo "Session management ..... $CFG_SM"
6256 echo "libudev support ........ $CFG_LIBUDEV"
6258 if [ "$XPLATFORM_QNX" = "yes" ]; then
6259 echo "SLOG2 support .......... $CFG_SLOG2"
6261 echo "Use system proxies ..... $CFG_SYSTEM_PROXIES"
6263 if [ "$CFG_OPENGL" = "desktop" ]; then
6264 echo "OpenGL support ......... yes (Desktop OpenGL)"
6265 elif [ "$CFG_OPENGL" = "es2" ]; then
6266 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6268 echo "OpenGL support ......... no"
6271 if [ "$CFG_OPENVG" ]; then
6272 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6273 echo "OpenVG support ......... ShivaVG"
6275 echo "OpenVG support ......... $CFG_OPENVG"
6279 echo "XShape support ......... $CFG_XSHAPE"
6280 echo "XVideo support ......... $CFG_XVIDEO"
6281 echo "XSync support .......... $CFG_XSYNC"
6282 echo "Xinerama support ....... $CFG_XINERAMA"
6283 echo "Xcursor support ........ $CFG_XCURSOR"
6284 echo "Xfixes support ......... $CFG_XFIXES"
6285 echo "Xrandr support ......... $CFG_XRANDR"
6286 echo "Xi support ............. $CFG_XINPUT"
6287 echo "Xi2 support ............ $CFG_XINPUT2"
6288 echo "MIT-SHM support ........ $CFG_MITSHM"
6289 echo "FontConfig support ..... $CFG_FONTCONFIG"
6290 echo "XKB Support ............ $CFG_XKB"
6291 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6293 if [ "$XPLATFORM_MINGW" = "yes" ] ; then
6294 echo "DirectWrite support .... $CFG_DIRECTWRITE"
6297 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6298 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6299 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6300 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6301 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6302 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6303 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6304 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6305 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6308 if [ "$CFG_OPENSSL" = "yes" ]; then
6309 OPENSSL_LINKAGE="(run-time)"
6310 elif [ "$CFG_OPENSSL" = "linked" ]; then
6311 OPENSSL_LINKAGE="(linked)"
6313 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6314 echo "Alsa support ........... $CFG_ALSA"
6315 if [ "$BUILD_ON_MAC" = "yes" ]; then
6316 echo "CoreWlan support ....... $CFG_COREWLAN"
6318 echo "libICU support ......... $CFG_ICU"
6319 echo "PCRE support ........... $CFG_PCRE"
6320 echo "Xcb support ............ $CFG_XCB"
6321 echo "Xrender support ........ $CFG_XRENDER"
6322 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" != "no" ]; then
6323 echo "XInput2 support ........ $CFG_XINPUT2"
6325 echo "EGLFS support .......... $CFG_EGLFS"
6326 echo "DirectFB support ....... $CFG_DIRECTFB"
6327 echo "LinuxFB support ........ $CFG_LINUXFB"
6328 echo "KMS support ............ $CFG_KMS"
6331 # complain about not being able to use dynamic plugins if we are using a static build
6332 if [ "$CFG_SHARED" = "no" ]; then
6334 echo "WARNING: Using static linking will disable the use of dynamically"
6335 echo "loaded plugins. Make sure to import all needed static plugins,"
6336 echo "or compile needed modules into the library."
6339 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6341 echo "NOTE: When linking against OpenSSL, you can override the default"
6342 echo "library names through OPENSSL_LIBS."
6344 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6348 exec 1>&3 3>&- # restore stdout
6349 cat $outpath/config.summary # display config feedback to user
6351 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6353 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6354 echo "if you want a pure debug build."
6359 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6363 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6365 #-------------------------------------------------------------------------------
6366 # build makefiles based on the configuration
6367 #-------------------------------------------------------------------------------
6369 if [ "$CFG_PROCESS" != "no" ]; then
6371 if [ "$CFG_PROCESS" = "full" ]; then
6372 echo "Creating makefiles. Please wait..."
6373 "$outpath/bin/qmake" -r "$relpath"
6376 "$outpath/bin/qmake" "$relpath"
6379 if [ "$OPT_FAST" = "yes" ]; then
6381 for part in $CFG_BUILD_PARTS; do
6383 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6386 if [ "x$PART_ROOTS" != "x" ]; then
6388 echo "Creating stub makefiles. Please wait..."
6389 QMAKE="$outpath/bin/qmake"
6390 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6391 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6393 test -f "$outpath/$d/Makefile" && continue
6394 echo " for $relpath/$p"
6396 mkdir -p "$outpath/$d" || exit
6397 cat > "$outpath/$d/Makefile" <<EOF || exit
6398 # $outpath/$d/Makefile: generated by configure
6400 # WARNING: This makefile will be replaced with a real makefile.
6401 # All changes made to this file will be lost.
6406 all clean install qmake first Makefile: FORCE
6407 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6417 #-------------------------------------------------------------------------------
6418 # check for platforms that we don't yet know about
6419 #-------------------------------------------------------------------------------
6420 if [ "$CFG_ARCH" = "unknown" ]; then
6423 NOTICE: configure was unable to determine the architecture
6424 for the $XQMAKESPEC target.
6426 Qt will not use a specialized implementation for any atomic
6427 operations. Instead a generic implemention based on either GCC
6428 intrinsics or C++11 std::atomic<T> will be used (when
6429 available). The generic implementations are generally as fast
6430 as and always as safe as a specialized implementation.
6432 If no generic implementation is available, Qt will use a
6433 fallback UNIX implementation which uses a single
6434 pthread_mutex_t to protect all atomic operations. This
6435 implementation is the slow (but safe) fallback implementation
6436 for architectures Qt does not yet support.
6440 #-------------------------------------------------------------------------------
6441 # check if the user passed the -no-zlib option, which is no longer supported
6442 #-------------------------------------------------------------------------------
6443 if [ -n "$ZLIB_FORCED" ]; then
6444 which_zlib="supplied"
6445 if [ "$CFG_ZLIB" = "system" ]; then
6451 NOTICE: The -no-zlib option was supplied but is no longer
6454 Qt now requires zlib support in all builds, so the -no-zlib
6455 option was ignored. Qt will be built using the $which_zlib
6460 #-------------------------------------------------------------------------------
6461 # check if the user passed the obsoleted -wayland or -no-wayland flag
6462 #-------------------------------------------------------------------------------
6463 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6466 NOTICE: The -wayland and -no-wayland flags are now obsolete
6468 All configuring of QtWayland plugin and QtCompositor happens in the module
6472 #-------------------------------------------------------------------------------
6473 # check if the user passed the obsoleted -arch or -host-arch options
6474 #-------------------------------------------------------------------------------
6475 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6478 NOTICE: The -arch and -host-arch options are obsolete.
6480 Qt now detects the target and host architectures based on compiler
6481 output. Qt will be built using $CFG_ARCH for the target architecture
6482 and $CFG_HOST_ARCH for the host architecture (note that these two
6483 will be the same unless you are cross-compiling).
6487 #-------------------------------------------------------------------------------
6488 # finally save the executed command to another script
6489 #-------------------------------------------------------------------------------
6490 if [ `basename $0` != "config.status" ]; then
6491 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6493 # add the system variables
6494 for varname in $SYSTEM_VARIABLES; do
6496 'if [ -n "\$'${varname}'" ]; then
6497 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6502 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6504 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6505 echo "#!/bin/sh" > "$outpath/config.status"
6506 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6507 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6508 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6509 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6510 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6511 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6512 echo "else" >> "$outpath/config.status"
6513 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6514 echo "fi" >> "$outpath/config.status"
6515 chmod +x "$outpath/config.status"
6518 if [ -n "$RPATH_MESSAGE" ]; then
6520 echo "$RPATH_MESSAGE"
6523 MAKE=`basename "$MAKE"`
6525 echo Qt is now configured for building. Just run \'$MAKE\'.
6526 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6527 echo Once everything is built, Qt is installed.
6528 echo You should not run \'$MAKE install\'.
6530 echo Once everything is built, you must run \'$MAKE install\'.
6531 echo Qt will be installed into $QT_INSTALL_PREFIX
6534 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.