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 # relies on $TEST_COMPILER being set correctly
228 compilerSupportsFlag()
230 cat >conftest.cpp <<EOF
231 int main() { return 0; }
233 $TEST_COMPILER "$@" -o conftest-out.o conftest.cpp
235 rm -f conftest.cpp conftest-out.o
239 # relies on $TEST_COMPILER being set correctly
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag "$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 "cde mac motif plastique cleanlooks 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 # Target architecture
791 # Host architecture, same as CFG_ARCH when not cross-compiling
793 CFG_HOST_CPUFEATURES=
794 # Set when the -arch or -host-arch arguments are used
795 OPT_OBSOLETE_HOST_ARG=no
809 CFG_OBSOLETE_WAYLAND=no
821 CFG_SEPARATE_DEBUG_INFO=no
822 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
823 CFG_REDUCE_EXPORTS=auto
831 CFG_REDUCE_RELOCATIONS=auto
832 CFG_ACCESSIBILITY=auto
837 CFG_CLOCK_GETTIME=auto
838 CFG_CLOCK_MONOTONIC=auto
847 CFG_PREFIX_INSTALL=yes
856 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
857 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
862 OPT_CONFIRM_LICENSE=no
875 QPA_PLATFORM_GUARD=yes
878 # initalize variables used for installation
887 QT_INSTALL_TRANSLATIONS=
892 CFG_GCC_SYSROOT="yes"
897 #flags for SQL drivers
905 QT_LFLAGS_ODBC="-lodbc"
908 # flags for libdbus-1
912 # flags for Glib (X11 only)
916 # flags for GStreamer (X11 only)
920 # default qpa platform
921 QT_QPA_DEFAULT_PLATFORM=
923 #-------------------------------------------------------------------------------
924 # check SQL drivers available in this package
925 #-------------------------------------------------------------------------------
927 # opensource version removes some drivers, so force them to be off
933 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
934 for a in "$relpath/src/plugins/sqldrivers/"*; do
936 base_a=`basename "$a"`
937 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
938 eval "CFG_SQL_${base_a}=auto"
943 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
944 if [ -d "$relpath/src/plugins/imageformats" ]; then
945 for a in "$relpath/src/plugins/imageformats/"*; do
947 base_a=`basename "$a"`
948 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
953 #-------------------------------------------------------------------------------
954 # parse command line arguments
955 #-------------------------------------------------------------------------------
957 # parse the arguments, setting things to "yes" or "no"
958 while [ "$#" -gt 0 ]; do
962 #Autoconf style options
964 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
968 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
972 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
973 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
976 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
980 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
984 -no-*-*|-plugin-*-*|-qt-*-*)
985 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
986 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
990 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
993 #Qt style options that pass an argument
994 -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa|-qconfig)
995 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
999 #Qt style complex options in one command
1000 -enable-*|-disable-*)
1001 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1002 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1004 #Qt Builtin/System style options
1005 -no-*|-system-*|-qt-*)
1006 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1007 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1009 #Options that cannot be generalized
1016 # this option may or may not be followed by an argument
1017 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1026 # this option may or may not be followed by an argument
1027 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1035 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1036 # this option may or may not be followed by an argument
1037 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1056 if [ "$1" = "-D" ]; then
1060 VAL=`echo $1 | sed 's,-D,,'`
1065 # this option may or may not be followed by an argument
1066 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1075 if [ "$1" = "-I" ]; then
1079 VAL=`echo $1 | sed 's,-I,,'`
1084 if [ "$1" = "-L" ]; then
1088 VAL=`echo $1 | sed 's,-L,,'`
1093 if [ "$1" = "-R" ]; then
1097 VAL=`echo $1 | sed 's,-R,,'`
1102 if [ "$1" = "-l" ]; then
1106 VAL=`echo $1 | sed 's,-l,,'`
1111 if [ "$1" = "-F" ]; then
1115 VAL=`echo $1 | sed 's,-F,,'`
1120 if [ "$1" = "-fw" ]; then
1124 VAL=`echo $1 | sed 's,-fw,,'`
1131 #General options, including Qt style yes options
1133 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1140 if [ "$UNKNOWN_ARG" = "yes" ]; then
1141 echo "$1: unknown argument"
1152 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1153 CFG_ACCESSIBILITY="$VAL"
1162 CFG_USE_GNUMAKE="$VAL"
1165 CFG_MYSQL_CONFIG="$VAL"
1168 QT_INSTALL_PREFIX="$VAL"
1171 QT_HOST_PREFIX="$VAL"
1180 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1181 CFG_PKGCONFIG="$VAL"
1187 CFG_PKGCONFIG="force"
1190 QT_INSTALL_DOCS="$VAL"
1193 QT_INSTALL_HEADERS="$VAL"
1196 QT_INSTALL_PLUGINS="$VAL"
1199 QT_INSTALL_IMPORTS="$VAL"
1202 QT_INSTALL_DATA="$VAL"
1205 QT_INSTALL_LIBS="$VAL"
1214 QT_INSTALL_TRANSLATIONS="$VAL"
1216 sysconfdir|settingsdir)
1217 QT_INSTALL_SETTINGS="$VAL"
1220 QT_INSTALL_EXAMPLES="$VAL"
1223 QT_INSTALL_TESTS="$VAL"
1232 CFG_GCC_SYSROOT="$VAL"
1235 QT_INSTALL_BINS="$VAL"
1238 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1245 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1246 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1247 [ "$VAL" = "es2" ]; then
1254 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1261 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1264 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1267 if [ "$BUILD_ON_MAC" = "yes" ]; then
1274 OPT_OBSOLETE_HOST_ARG=yes
1277 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1278 CFG_MAC_HARFBUZZ="$VAL"
1285 if [ "$BUILD_ON_MAC" = "yes" ]; then
1286 CFG_FRAMEWORK="$VAL"
1292 if [ "$VAL" = "yes" ]; then
1294 QMakeVar add QMAKE_CFLAGS -pg
1295 QMakeVar add QMAKE_CXXFLAGS -pg
1296 QMakeVar add QMAKE_LFLAGS -pg
1297 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1303 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1310 if [ "$VAL" = "yes" ]; then
1311 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1316 # keep compatibility with old platform names
1322 PLATFORM=hpux-acc-o64
1325 PLATFORM=hpux-acc-64
1328 PLATFORM=hpux-acc-64
1340 PLATFORM=reliant-cds-64
1343 PLATFORM=solaris-cc-64
1346 PLATFORM=unixware-cc
1349 PLATFORM=unixware-g++
1352 PLATFORM=unixware-cc
1355 PLATFORM=unixware-g++
1361 i386) NATIVE_64_ARCH="x86_64" ;;
1362 powerpc) NATIVE_64_ARCH="ppc64" ;;
1363 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1365 if [ ! -z "$NATIVE_64_ARCH" ]; then
1366 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1373 case `basename "$XPLATFORM"` in win32-g++*)
1376 CFG_REDUCE_EXPORTS=no
1381 XPLATFORM=`resolveDeviceMkspec $VAL`
1382 [ "$XPLATFORM" = "undefined" ] && exit 101
1385 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1386 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1387 DeviceVar set $DEV_VAR $DEV_VAL
1390 QT_QPA_DEFAULT_PLATFORM="$VAL"
1393 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1394 CFG_DEBUG_RELEASE="$VAL"
1400 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1401 CFG_RELEASE_QMAKE="$VAL"
1407 if [ "$VAL" = "yes" ]; then
1409 elif [ "$VAL" = "no" ]; then
1416 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1417 CFG_PREFIX_INSTALL="$VAL"
1426 CFG_FORCEDEBUGINFO="$VAL"
1428 developer-build|commercial|opensource)
1429 # These switches have been dealt with already
1432 if [ "$VAL" = "yes" ]; then
1434 elif [ "$VAL" = "no" ]; then
1441 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1442 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1448 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1449 if [ "$VAL" = "no" ]; then
1450 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1451 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1452 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1458 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1465 if [ "$VAL" = "no" ]; then
1472 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1480 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1487 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1494 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1501 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1508 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1515 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1522 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1529 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1530 CFG_PRECOMPILE="$VAL"
1535 separate-debug-info)
1536 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1537 CFG_SEPARATE_DEBUG_INFO="$VAL"
1538 elif [ "$VAL" = "nocopy" ] ; then
1539 CFG_SEPARATE_DEBUG_INFO="yes"
1540 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1546 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1547 CFG_REDUCE_EXPORTS="$VAL"
1553 if [ "$VAL" = "no" ]; then
1560 if [ "$VAL" = "no" ]; then
1567 if [ "$VAL" = "no" ]; then
1574 if [ "$VAL" = "no" ]; then
1581 if [ "$VAL" = "no" ]; then
1588 if [ "$VAL" = "no" ]; then
1595 if [ "$VAL" = "no" ]; then
1605 if [ "$VAL" = "no" ]; then
1612 if [ "$VAL" = "no" ]; then
1619 if [ "$VAL" = "no" ]; then
1620 CFG_MIPS_DSPR2="$VAL"
1626 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1627 CFG_REDUCE_RELOCATIONS="$VAL"
1633 [ "$VAL" = "qt" ] && VAL=yes
1634 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1639 # No longer supported:
1640 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1643 if [ "$VAL" = "system" ]; then
1650 [ "$VAL" = "yes" ] && VAL=qt
1651 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1658 [ "$VAL" = "yes" ] && VAL=qt
1659 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1666 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1673 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1680 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1687 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1694 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1701 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1702 CFG_FONTCONFIG="$VAL"
1708 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1715 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1722 CFG_OBSOLETE_WAYLAND=yes
1725 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1732 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1739 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1746 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1753 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1760 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1767 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1774 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1781 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1788 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1789 CFG_GSTREAMER="$VAL"
1795 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1796 CFG_QGTKSTYLE="$VAL"
1802 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1805 if [ "$VAL" = "no" ]; then
1813 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1815 elif [ "$VAL" = "no" ]; then
1822 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1823 QPA_PLATFORM_GUARD="$VAL"
1829 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1831 elif [ "$VAL" = "runtime" ]; then
1838 if [ "$VAL" = "yes" ]; then
1845 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1852 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1853 CFG_LARGEFILE="$VAL"
1859 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1866 if [ "$VAL" = "yes" ]; then
1867 CFG_OPENSSL="linked"
1873 if [ "$VAL" = "yes" ]; then
1876 if [ "$VAL" = "no" ]; then
1884 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1885 CFG_JAVASCRIPTCORE_JIT="$VAL"
1891 if [ "$VAL" = "yes" ]; then
1892 OPT_CONFIRM_LICENSE="$VAL"
1898 if [ "$VAL" = "yes" ]; then
1904 sql-*|imageformat-*)
1905 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1906 # if autoconf style options were used, $VAL can be "yes" or "no"
1907 [ "$VAL" = "yes" ] && VAL=qt
1908 # now $VAL should be "no", "qt", or "plugin"... double-check
1909 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1912 # now $VAL is "no", "qt", or "plugin"
1914 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1915 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1917 # Grab the available values
1920 avail="$CFG_SQL_AVAILABLE"
1923 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1924 if [ "$OPT" != "plugin" ]; then
1925 # png is always built in
1931 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1935 # Check that that user's value is available.
1938 if [ "$VAL" = "$d" ]; then
1943 [ "$found" = yes ] || ERROR=yes
1945 if [ "$VAR" = "sql" ]; then
1946 # set the CFG_SQL_driver
1947 eval "CFG_SQL_$VAL=\$OPT"
1949 elif [ "$VAR" = "imageformat" ]; then
1950 [ "$OPT" = "qt" ] && OPT=yes
1951 VAL="`echo $VAL |tr a-z A-Z`"
1952 eval "CFG_$VAL=$OPT"
1956 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1957 if [ "$OPT" = "plugin" ]; then
1960 QMakeVar add "${VAR}s" "${VAL}"
1961 elif [ "$OPT" = "no" ]; then
1962 PLUG_VAR="${VAR}-plugin"
1964 QMakeVar del "${IN_VAR}s" "$VAL"
1965 QMakeVar del "${PLUG_VAR}s" "$VAL"
1967 if [ "$ERROR" = "yes" ]; then
1968 echo "$CURRENT_OPT: unknown argument"
1973 if [ "$VAL" = "yes" ]; then
1974 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1975 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1979 elif [ "$VAL" = "no" ]; then
1980 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1981 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1990 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1997 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2004 DEFINES="$DEFINES \"$VAL\""
2005 D_FLAGS="$D_FLAGS -D\"$VAL\""
2008 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2011 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2014 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2017 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2020 if [ "$BUILD_ON_MAC" = "yes" ]; then
2021 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2022 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2028 if [ "$BUILD_ON_MAC" = "yes" ]; then
2029 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2035 W_FLAGS="$W_FLAGS \"${VAL}\""
2050 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2051 CFG_AUDIO_BACKEND="$VAL"
2057 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2064 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2065 CFG_FORCE_ASSERTS="$VAL"
2071 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2078 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2088 if [ "$UNKNOWN_OPT" = "yes" ]; then
2089 echo "${CURRENT_OPT}: invalid command-line switch"
2095 # update QT_CONFIG to show our current predefined configuration
2096 case "$CFG_QCONFIG" in
2097 minimal|small|medium|large|full)
2098 # these are a sequence of increasing functionality
2099 for c in minimal small medium large full; do
2100 QT_CONFIG="$QT_CONFIG $c-config"
2101 [ "$CFG_QCONFIG" = $c ] && break
2105 # not known to be sufficient for anything
2106 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2107 echo >&2 "Error: configuration file not found:"
2108 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2110 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2115 #-------------------------------------------------------------------------------
2116 # build tree initialization
2117 #-------------------------------------------------------------------------------
2119 # where to find which..
2120 unixtests="$relpath/config.tests/unix"
2121 mactests="$relpath/config.tests/mac"
2122 WHICH="$unixtests/which.test"
2124 PERL=`$WHICH perl 2>/dev/null`
2126 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2128 for e in gawk nawk awk; do
2129 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2136 PERL="/usr/bin/perl"
2137 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2141 ### skip this if the user just needs help...
2142 if [ "$OPT_HELP" != "yes" ]; then
2144 # is this a shadow build?
2145 if [ "$OPT_SHADOW" = "maybe" ]; then
2147 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2148 if [ -h "$outpath" ]; then
2149 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2155 if [ "$OPT_SHADOW" = "yes" ]; then
2156 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2157 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2158 echo >&2 "Cannot proceed."
2161 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2164 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2166 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2167 echo "Qt can be built in release mode with separate debug information, so"
2168 echo "-debug-and-release is not necessary anymore"
2172 if [ "$CFG_SILENT" = "yes" ]; then
2173 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2176 # if the source tree is different from the build tree,
2177 # symlink or copy part of the sources
2178 if [ "$OPT_SHADOW" = "yes" ]; then
2179 echo "Preparing build tree..."
2181 if [ -z "$PERL" ]; then
2183 echo "You need perl in your PATH to make a shadow build."
2184 echo "Cannot proceed."
2188 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2190 # make a syncqt script that can be used in the shadow
2191 rm -f "$outpath/bin/syncqt"
2192 if [ -x "$relpath/bin/syncqt" ]; then
2193 mkdir -p "$outpath/bin"
2194 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2195 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2196 chmod 755 "$outpath/bin/syncqt"
2199 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2200 rm -f "$outpath/bin/$i"
2201 if [ -x "$relpath/bin/$i" ]; then
2202 mkdir -p "$outpath/bin"
2203 echo "#!/bin/sh" >"$outpath/bin/$i"
2204 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2205 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2206 chmod 755 "$outpath/bin/$i"
2210 # save a pre-existing mkspecs/modules dir
2211 test -d "$outpath/mkspecs/modules" && \
2212 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2213 # ditto for mkspecs/modules-inst
2214 test -d "$outpath/mkspecs/modules-inst" && \
2215 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2217 # symlink the mkspecs directory
2218 mkdir -p "$outpath/mkspecs"
2219 rm -rf "$outpath"/mkspecs/*
2220 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2221 rm -f "$outpath/mkspecs/default"
2225 rm -rf "$outpath/mkspecs/$1"
2226 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2227 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2230 # Special case for mkspecs/features directory.
2231 # To be able to place .prf files into a shadow build directory,
2232 # we're creating links for files only. The directory structure is reproduced.
2233 ShadowMkspecs features
2235 # The modules dir is special, too.
2236 if test -d "$outpath/mkspecs-modules"; then
2237 rm -rf "$outpath/mkspecs/modules"
2238 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2240 ShadowMkspecs modules
2243 # The modules-inst dir is not quite as special, but still.
2244 if test -d "$outpath/mkspecs-modules-inst"; then
2245 rm -rf "$outpath/mkspecs/modules-inst"
2246 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2249 # symlink the doc directory
2250 rm -rf "$outpath/doc"
2251 ln -s "$relpath/doc" "$outpath/doc"
2254 # symlink fonts to be able to run application from build directory
2255 if [ ! -d "${outpath}/lib/fonts" ]; then
2256 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2257 mkdir -p "${outpath}/lib"
2258 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2262 if [ "$OPT_FAST" = "auto" ]; then
2263 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2270 # find a make command
2271 if [ -z "$MAKE" ]; then
2273 for mk in gmake make; do
2274 if "$WHICH" $mk >/dev/null 2>&1; then
2279 if [ -z "$MAKE" ]; then
2280 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2281 echo >&2 "Cannot proceed."
2284 # export MAKE, we need it later in the config.tests
2290 #-------------------------------------------------------------------------------
2291 # auto-detect all that hasn't been specified in the arguments
2292 #-------------------------------------------------------------------------------
2294 if [ -z "$PLATFORM" ]; then
2296 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2298 OSX_VERSION=`uname -r | cut -d. -f1`
2299 # Select compiler. Use g++ unless we find a usable Clang version
2301 if [ "$OSX_VERSION" -ge 12 ]; then
2302 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2304 elif [ "$OSX_VERSION" -eq 11 ]; then
2305 # We're on Lion. Check if we have a supported Clang version
2306 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2309 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2316 #PLATFORM=aix-g++-64
2318 #PLATFORM=aix-xlc-64
2320 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2330 # PLATFORM=dynix-g++
2336 PLATFORM=freebsd-g++
2338 - Also available for FreeBSD: freebsd-icc
2342 PLATFORM=openbsd-g++
2353 #PLATFORM=irix-cc-64
2355 - Also available for IRIX: irix-g++ irix-cc-64
2359 case "$UNAME_MACHINE" in
2361 #PLATFORM=hpuxi-acc-32
2362 PLATFORM=hpuxi-acc-64
2364 - Also available for HP-UXi: hpuxi-acc-32
2370 #PLATFORM=hpux-acc-64
2372 #PLATFORM=hpux-acc-o64
2374 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2383 - Also available for Tru64: tru64-g++
2387 case "$UNAME_MACHINE" in
2389 PLATFORM=linux-g++-64
2396 - Also available for Linux: linux-kcc linux-icc linux-cxx
2400 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2401 PLATFORM="solaris-g++"
2403 #PLATFORM=solaris-g++
2405 #PLATFORM=solaris-cc64
2408 - Also available for Solaris: solaris-g++ solaris-cc-64
2411 ReliantUNIX-*:*|SINIX-*:*)
2412 PLATFORM=reliant-cds
2413 #PLATFORM=reliant-cds-64
2415 - Also available for Reliant UNIX: reliant-cds-64
2425 #PLATFORM=unixware-g++
2426 PLATFORM=unixware-cc
2428 - Also available for OpenUNIX: unixware-g++
2432 #PLATFORM=unixware-g++
2433 PLATFORM=unixware-cc
2435 - Also available for UnixWare: unixware-g++
2442 - Also available for SCO OpenServer: sco-g++
2446 PLATFORM=unixware-g++
2449 PLATFORM=unsupported/qnx-g++
2452 if [ "$OPT_HELP" != "yes" ]; then
2454 echo " The build script does not currently recognize all" >&2
2455 echo " platforms supported by Qt." >&2
2456 echo " Rerun this script with a -platform option listed to" >&2
2457 echo " set the system/compiler combination you use." >&2
2464 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2466 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2467 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2468 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2470 if [ -d "$PLATFORM" ]; then
2471 QMAKESPEC="$PLATFORM"
2473 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2475 if [ -d "$XPLATFORM" ]; then
2476 XQMAKESPEC="$XPLATFORM"
2478 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2480 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2481 QT_CROSS_COMPILE=yes
2482 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2483 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2486 if [ "$BUILD_ON_MAC" = "yes" ]; then
2487 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2489 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2490 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2491 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2492 echo " built with 'macx-g++'" >&2
2498 # check specified platforms are supported
2499 if [ '!' -d "$QMAKESPEC" ]; then
2501 echo " The specified system/compiler is not supported:"
2505 echo " Please see the README file for a complete list."
2509 if [ '!' -d "$XQMAKESPEC" ]; then
2511 echo " The specified system/compiler is not supported:"
2515 echo " Please see the README file for a complete list."
2519 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2521 echo " The specified system/compiler port is not complete:"
2523 echo " $XQMAKESPEC/qplatformdefs.h"
2525 echo " Please use the contact form at http://qt.digia.com/contact-us"
2530 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2531 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2532 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2533 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2534 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2538 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2539 case `basename "$XPLATFORM"` in
2542 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2544 echo "Please use the contact form at http://qt.digia.com/contact-us"
2545 echo "to upgrade your license to include this platform, or install"
2546 echo "the Qt Open Source Edition if you intend to develop free software."
2552 #-------------------------------------------------------------------------------
2553 # tests that don't need qmake (must be run before displaying help)
2554 #-------------------------------------------------------------------------------
2556 # detect build style
2557 if [ "$CFG_DEBUG" = "auto" ]; then
2558 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2559 CFG_DEBUG_RELEASE=yes
2561 elif [ "$CFG_DEV" = "yes" ]; then
2562 CFG_DEBUG_RELEASE=no
2565 CFG_DEBUG_RELEASE=no
2569 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2570 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2573 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2574 QT_CONFIG="$QT_CONFIG force_debug_info"
2577 # pass on $CFG_SDK to the arch/configure tests.
2578 if [ -n "$CFG_SDK" ]; then
2579 MAC_SDK_FLAG="-sdk $CFG_SDK"
2584 # find the default framework value
2585 if [ "$BUILD_ON_MAC" = "yes" ]; then
2586 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2587 CFG_FRAMEWORK="$CFG_SHARED"
2588 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2590 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2598 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2600 TEST_COMPILER=$QMAKE_CONF_COMPILER
2601 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2602 if [ -z "$TEST_COMPILER" ]; then
2603 echo "ERROR: Cannot set the compiler for the configuration tests"
2607 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2610 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2611 if [ -n "$GCC_MACHINE_DUMP" ]; then
2612 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2615 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2616 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2620 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2622 # auto-detect precompiled header support
2623 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2624 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2631 # auto-detect support for separate debug info in objcopy
2632 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2633 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2634 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2635 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2636 CFG_SEPARATE_DEBUG_INFO=no
2640 # binutils on HP-UX is buggy; default to no.
2641 CFG_SEPARATE_DEBUG_INFO=no
2644 CFG_SEPARATE_DEBUG_INFO=yes
2650 # auto-detect -fvisibility support
2651 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2652 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2653 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2654 echo "-reduce-exports was requested but this compiler does not support it"
2655 echo "Re-run configure with -v for more information"
2658 CFG_REDUCE_EXPORTS=no
2660 CFG_REDUCE_EXPORTS=yes
2664 # auto-detect -fstack-protector-strong support (for QNX only currently)
2665 if [ "$XPLATFORM_QNX" = "yes" ]; then
2666 if compilerSupportsFlag -fstack-protector-strong; then
2667 CFG_STACK_PROTECTOR_STRONG=yes
2669 CFG_STACK_PROTECTOR_STRONG=no
2672 CFG_STACK_PROTECTOR_STRONG=no
2675 # detect the availability of the -Bsymbolic-functions linker optimization
2676 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2677 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2678 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2679 echo "-reduce-relocations was requested but this compiler does not support it"
2680 echo "Re-run configure with -v for more information"
2683 CFG_REDUCE_RELOCATIONS=no
2685 CFG_REDUCE_RELOCATIONS=yes
2689 # auto-detect GNU make support
2690 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2694 # find the default framework value
2695 if [ "$BUILD_ON_MAC" = "yes" ]; then
2696 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2697 CFG_FRAMEWORK="$CFG_SHARED"
2698 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2700 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2708 # auto-detect default include and library search paths
2709 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2710 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2711 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2712 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2713 /^End of search/ { yup=0 }
2714 yup { print substr($0, 2) }
2715 /^\#include </ { yup=1 }
2717 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2719 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2722 #setup the build parts
2723 if [ -z "$CFG_BUILD_PARTS" ]; then
2724 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2726 # build tests by default, if a developer build
2727 if [ "$CFG_DEV" = "yes" ]; then
2728 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2731 # don't build tools by default when cross-compiling
2732 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2733 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2736 for nobuild in $CFG_NOBUILD_PARTS; do
2737 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2739 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2741 # echo "WARNING: libs is a required part of the build."
2743 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2746 #-------------------------------------------------------------------------------
2747 # post process QT_INSTALL_* variables
2748 #-------------------------------------------------------------------------------
2750 if [ -z "$QT_INSTALL_PREFIX" ]; then
2751 if [ "$CFG_DEV" = "yes" ]; then
2752 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2754 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2757 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2759 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2760 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2761 if [ "$BUILD_ON_MAC" = "yes" ]; then
2762 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2765 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2768 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2770 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2771 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2772 if [ "$BUILD_ON_MAC" = "yes" ]; then
2773 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2778 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2781 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2783 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2784 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2785 if [ "$BUILD_ON_MAC" = "yes" ]; then
2786 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2787 QT_INSTALL_LIBS="/Library/Frameworks"
2791 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2793 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2795 if [ -z "$QT_INSTALL_BINS" ]; then #default
2796 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2797 if [ "$BUILD_ON_MAC" = "yes" ]; then
2798 QT_INSTALL_BINS="/Developer/Applications/Qt"
2801 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2803 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2805 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2806 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2807 if [ "$BUILD_ON_MAC" = "yes" ]; then
2808 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2811 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2813 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2815 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2816 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2817 if [ "$BUILD_ON_MAC" = "yes" ]; then
2818 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2821 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2823 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2825 if [ -z "$QT_INSTALL_DATA" ]; then #default
2826 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2828 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2830 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2831 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2833 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2835 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2836 if [ "$BUILD_ON_MAC" = "yes" ]; then
2837 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2839 QT_INSTALL_SETTINGS=/etc/xdg
2842 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2844 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2845 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2846 if [ "$BUILD_ON_MAC" = "yes" ]; then
2847 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2850 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2852 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2855 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2856 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2857 if [ "$BUILD_ON_MAC" = "yes" ]; then
2858 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2861 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2863 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2865 #------- host paths --------
2867 if [ -z "$QT_HOST_PREFIX" ]; then
2868 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2871 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2875 if [ -z "$QT_HOST_BINS" ]; then #default
2877 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2878 if [ "$BUILD_ON_MAC" = "yes" ]; then
2879 QT_HOST_BINS="/Developer/Applications/Qt"
2882 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2884 QT_HOST_BINS="$QT_INSTALL_BINS"
2887 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2889 if [ -z "$QT_HOST_DATA" ]; then #default
2891 QT_HOST_DATA="$QT_HOST_PREFIX"
2893 QT_HOST_DATA="$QT_INSTALL_DATA"
2896 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2899 #-------------------------------------------------------------------------------
2900 # help - interactive parts of the script _after_ this section please
2901 #-------------------------------------------------------------------------------
2903 # next, emit a usage message if something failed.
2904 if [ "$OPT_HELP" = "yes" ]; then
2905 [ "x$ERROR" = "xyes" ] && echo
2906 if [ "$CFG_NIS" = "no" ]; then
2913 if [ "$CFG_CUPS" = "no" ]; then
2920 if [ "$CFG_ICONV" = "no" ]; then
2927 if [ "$CFG_LARGEFILE" = "no" ]; then
2934 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2942 if [ "$CFG_XCB" = "no" ]; then
2950 if [ "$CFG_EGLFS" = "no" ]; then
2958 if [ "$CFG_DIRECTFB" = "no" ]; then
2966 if [ "$CFG_LINUXFB" = "no" ]; then
2974 if [ "$CFG_KMS" = "no" ]; then
2982 if [ "$CFG_XINPUT2" = "no" ]; then
2990 if [ "$CFG_DBUS" = "no" ]; then
2998 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3006 if [ "$CFG_GLIB" = "no" ]; then
3015 Usage: $relconf [options]
3017 Installation options:
3019 These are optional, but you may specify install directories.
3021 -prefix <dir> ...... This will install everything relative to <dir>
3022 (default $QT_INSTALL_PREFIX)
3024 -hostprefix [dir] .. Tools and libraries needed when developing
3025 applications are installed in [dir]. If [dir] is
3026 not given, the current build directory will be used.
3029 * -prefix-install .... Force a sandboxed "local" installation of
3030 Qt. This will install into
3031 $QT_INSTALL_PREFIX, if this option is
3032 disabled then some platforms will attempt a
3033 "system" install by placing default values
3034 in a system location other than PREFIX.
3036 You may use these to separate different parts of the install:
3038 -bindir <dir> ......... Executables will be installed to <dir>
3039 (default PREFIX/bin)
3040 -libdir <dir> ......... Libraries will be installed to <dir>
3041 (default PREFIX/lib)
3042 -docdir <dir> ......... Documentation will be installed to <dir>
3043 (default PREFIX/doc)
3044 -headerdir <dir> ...... Headers will be installed to <dir>
3045 (default PREFIX/include)
3046 -plugindir <dir> ...... Plugins will be installed to <dir>
3047 (default PREFIX/plugins)
3048 -importdir <dir> ...... Imports for QML will be installed to <dir>
3049 (default PREFIX/imports)
3050 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3052 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3053 (default PREFIX/translations)
3054 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3055 (default PREFIX/etc/settings)
3056 -examplesdir <dir> .... Examples will be installed to <dir>
3057 (default PREFIX/examples)
3058 -testsdir <dir> ....... Tests will be installed to <dir>
3059 (default PREFIX/tests)
3061 -hostbindir <dir> .. Host executables will be installed to <dir>
3062 (default HOSTPREFIX/bin)
3063 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3064 (default HOSTPREFIX)
3068 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3069 that needs to be evaluated. If the evaluation succeeds, the feature is
3070 included. Here is a short explanation of each option:
3072 * -release ........... Compile and link Qt with debugging turned off.
3073 -debug ............. Compile and link Qt with debugging turned on.
3074 -debug-and-release . Compile and link two versions of Qt, with and without
3075 debugging turned on (Mac only).
3077 -force-debug-info .. Create symbol files for release builds.
3079 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3081 -opensource ........ Compile and link the Open-Source Edition of Qt.
3082 -commercial ........ Compile and link the Commercial Edition of Qt.
3084 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3085 + -c++11 ............. Compile Qt with C++11 support enabled.
3087 * -shared ............ Create and use shared Qt libraries.
3088 -static ............ Create and use static Qt libraries.
3090 * -process ........... Generate only a top-level Makefile.
3091 -fully-process ..... Generate Makefiles for the entire Qt tree.
3092 -dont-process ...... Do not generate any Makefiles.
3094 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3096 -fast .............. Configure Qt quickly by generating Makefiles only for
3097 library and subdirectory targets. All other Makefiles
3098 are created as wrappers, which will in turn run qmake.
3100 -no-largefile ...... Disables large file support.
3101 + -largefile ......... Enables Qt to access files larger than 4 GB.
3103 -no-accessibility .. Do not compile Accessibility support.
3104 + -accessibility ..... Compile Accessibility support.
3106 -no-sql-<driver> ... Disable SQL <driver> entirely.
3107 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3109 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3112 Possible values for <driver>:
3113 [ $CFG_SQL_AVAILABLE ]
3115 -system-sqlite ..... Use sqlite from the operating system.
3117 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3118 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3120 -no-qml-debug ...... Do not build the in-process QML debugging support.
3121 + -qml-debug ......... Build the QML debugging support.
3123 -platform target ... The operating system and compiler you are building
3126 See the README file for a list of supported
3127 operating systems and compilers.
3129 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3130 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3131 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3132 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3133 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3134 -no-avx ............ Do not compile with use of AVX instructions.
3135 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3136 -no-neon ........... Do not compile with use of NEON instructions.
3137 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3138 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3140 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3141 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3143 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3145 -D <string> ........ Add an explicit define to the preprocessor.
3146 -I <string> ........ Add an explicit include path.
3147 -L <string> ........ Add an explicit library path.
3149 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3150 configure determines whether to use pkg-config or not with
3151 some heuristics such as checking the environment variables.
3152 -no-pkg-config ..... Disable use of pkg-config.
3153 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3154 detection heuristic).
3156 -help, -h .......... Display this information.
3158 Third Party Libraries:
3160 -qt-zlib ........... Use the zlib bundled with Qt.
3161 + -system-zlib ....... Use zlib from the operating system.
3162 See http://www.gzip.org/zlib
3164 -no-gif ............ Do not compile GIF reading support.
3166 -no-libpng ......... Do not compile PNG support.
3167 -qt-libpng ......... Use the libpng bundled with Qt.
3168 + -system-libpng ..... Use libpng from the operating system.
3169 See http://www.libpng.org/pub/png
3171 -no-libjpeg ........ Do not compile JPEG support.
3172 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3173 + -system-libjpeg .... Use libjpeg from the operating system.
3174 See http://www.ijg.org
3176 -no-openssl ........ Do not compile support for OpenSSL.
3177 + -openssl ........... Enable run-time OpenSSL support.
3178 -openssl-linked .... Enabled linked OpenSSL support.
3180 -qt-pcre ........... Use the PCRE library bundled with Qt.
3181 + -system-pcre ....... Use the PCRE library from the operating system.
3185 -make <part> ....... Add part to the list of parts to be built at make time.
3186 ($QT_DEFAULT_BUILD_PARTS)
3187 -nomake <part> ..... Exclude part from the list of parts to be built.
3189 -no-gui ............ Don't build the QtGui library and dependencies.
3190 + -gui ............... Build the QtGui library and dependencies.
3192 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3193 + -widgets ........... Build the QtWidgets library and dependencies.
3195 -R <string> ........ Add an explicit runtime library path to the Qt
3197 -l <string> ........ Add an explicit library.
3199 -no-rpath .......... Do not use the library install path as a runtime
3201 + -rpath ............. Link Qt libraries and executables using the library
3202 install path as a runtime library path. Equivalent
3203 to -R install_libpath
3205 -continue .......... Continue as far as possible if an error occurs.
3207 -verbose, -v ....... Print verbose information about each step of the
3210 -silent ............ Reduce the build output so that warnings and errors
3211 can be seen more easily.
3213 * -no-optimized-qmake ... Do not build qmake optimized.
3214 -optimized-qmake ...... Build qmake optimized.
3216 $NSN -no-nis ............ Do not compile NIS support.
3217 $NSY -nis ............... Compile NIS support.
3219 $CUN -no-cups ........... Do not compile CUPS support.
3220 $CUY -cups .............. Compile CUPS support.
3221 Requires cups/cups.h and libcups.so.2.
3223 $CIN -no-iconv .......... Do not compile support for iconv(3).
3224 $CIY -iconv ............. Compile support for iconv(3).
3226 -no-icu ............ Do not compile support for ICU libraries.
3227 + -icu ............... Compile support for ICU libraries.
3229 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3230 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3232 $PHN -no-pch ............ Do not use precompiled header support.
3233 $PHY -pch ............... Use precompiled header support.
3235 $DBN -no-dbus ........... Do not compile the QtDBus module.
3236 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3237 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3239 -reduce-relocations ..... Reduce relocations in the libraries through extra
3240 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3241 experimental; needs GNU ld >= 2.18).
3243 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3245 -device <name> ............... Cross-compile for device <name> (experimental)
3246 -device-option <key=value> ... Add device specific options for the device mkspec
3249 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3250 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3252 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3253 $XCBY -xcb ............... Compile Xcb support.
3255 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3256 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3258 $DFBN -no-directfb ....... Do not compile DirectFB support.
3259 $DFBY -directfb .......... Compile DirectFB support.
3261 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3262 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3264 $KMSN -no-kms ............ Do not compile KMS support.
3265 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3267 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3269 -xplatform target ... The target platform when cross-compiling.
3271 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3272 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3274 -no-feature-<feature> Do not compile in <feature>.
3275 -feature-<feature> .. Compile in <feature>. The available features
3276 are described in src/corelib/global/qfeatures.txt
3278 -no-freetype ........ Do not compile in Freetype2 support.
3279 -qt-freetype ........ Use the libfreetype bundled with Qt.
3280 * -system-freetype .... Use libfreetype from the operating system.
3281 See http://www.freetype.org/
3283 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3284 default ($CFG_QCONFIG).
3286 -no-opengl .......... Do not support OpenGL.
3287 -opengl <api> ....... Enable OpenGL support
3288 With no parameter, this will attempt to auto-detect
3289 OpenGL ES 2, or regular desktop OpenGL.
3290 Use es2 for <api> to override auto-detection.
3292 $GBN -no-glib ........... Do not compile Glib support.
3293 $GBY -glib .............. Compile Glib support.
3296 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3299 $X2N -no-xinput2......... Do not compile XInput2 support.
3300 $X2Y -xinput2............ Compile XInput2 support.
3306 if [ "$BUILD_ON_MAC" = "yes" ]; then
3311 -Fstring ........... Add an explicit framework path.
3312 -fw string ......... Add an explicit framework.
3314 * -framework ......... Build Qt as a series of frameworks and
3315 link tools against those frameworks.
3316 -no-framework ...... Do not build Qt as a series of frameworks.
3318 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3319 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3321 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3322 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3323 QT_ENABLE_HARFBUZZ environment variable.
3328 [ "x$ERROR" = "xyes" ] && exit 1
3333 # -----------------------------------------------------------------------------
3334 # LICENSING, INTERACTIVE PART
3335 # -----------------------------------------------------------------------------
3338 echo "This is the Qt ${EditionString} Edition."
3341 if [ "$Edition" = "OpenSource" ]; then
3343 echo "You are licensed to use this software under the terms of"
3344 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3345 if [ -f "$relpath/LICENSE.GPL3" ]; then
3346 echo "You are also licensed to use this software under the terms of"
3347 echo "the GNU General Public License (GPL) versions 3."
3353 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3354 echo "You have already accepted the terms of the $LicenseType license."
3357 if [ -f "$relpath/LICENSE.GPL3" ]; then
3358 echo "Type '3' to view the GNU General Public License version 3."
3360 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3361 echo "Type 'yes' to accept this license offer."
3362 echo "Type 'no' to decline this license offer."
3364 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3368 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3370 elif [ "$acceptance" = "no" ]; then
3371 echo "You are not licensed to use this software."
3374 elif [ "$acceptance" = "3" ]; then
3375 more "$relpath/LICENSE.GPL3"
3376 elif [ "$acceptance" = "L" ]; then
3377 more "$relpath/LICENSE.LGPL"
3380 elif [ "$Edition" = "Preview" ]; then
3381 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3384 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3385 echo "You have already accepted the terms of the $LicenseType license."
3388 echo "You are licensed to use this software under the terms of"
3389 echo "the $TheLicense"
3391 echo "Type '?' to read the Preview License."
3392 echo "Type 'yes' to accept this license offer."
3393 echo "Type 'no' to decline this license offer."
3395 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3399 if [ "$acceptance" = "yes" ]; then
3401 elif [ "$acceptance" = "no" ] ;then
3402 echo "You are not licensed to use this software."
3405 elif [ "$acceptance" = "?" ]; then
3406 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3409 elif [ "$Edition" != "OpenSource" ]; then
3410 if [ -n "$ExpiryDate" ]; then
3411 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3412 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3413 Today=`date +%Y%m%d`
3414 if [ "$Today" -gt "$ExpiryDate" ]; then
3415 case "$LicenseType" in
3416 Commercial|Academic|Educational)
3418 echo "WARNING WARNING WARNING WARNING"
3420 echo " Your support and upgrade period has expired."
3422 echo " You may continue to use your last licensed release"
3423 echo " of Qt under the terms of your existing license"
3424 echo " agreement. But you are not entitled to technical"
3425 echo " support, nor are you entitled to use any more recent"
3426 echo " Qt releases."
3428 echo " Please use the contact form at http://qt.digia.com/contact-us"
3429 echo " to renew your support and upgrades for this license."
3431 echo "WARNING WARNING WARNING WARNING"
3437 echo "NOTICE NOTICE NOTICE NOTICE"
3439 echo " Your Evaluation license has expired."
3441 echo " You are no longer licensed to use this software. Please"
3442 echo " use the contact form at http://qt.digia.com/contact-us to"
3443 echo " purchase license, or install the Qt Open Source Edition"
3444 echo " if you intend to develop free software."
3446 echo "NOTICE NOTICE NOTICE NOTICE"
3453 TheLicense=`head -n 1 "$outpath/LICENSE"`
3455 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3456 echo "You have already accepted the terms of the $TheLicense."
3459 echo "You are licensed to use this software under the terms of"
3460 echo "the $TheLicense."
3462 echo "Type '?' to view the $TheLicense."
3463 echo "Type 'yes' to accept this license offer."
3464 echo "Type 'no' to decline this license offer."
3466 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3470 if [ "$acceptance" = "yes" ]; then
3472 elif [ "$acceptance" = "no" ]; then
3473 echo "You are not licensed to use this software."
3476 else [ "$acceptance" = "?" ]
3477 more "$outpath/LICENSE"
3482 # this should be moved somewhere else
3485 AIX_VERSION=`uname -v`
3486 if [ "$AIX_VERSION" -lt "5" ]; then
3487 QMakeVar add QMAKE_LIBS_X11 -lbind
3494 #-------------------------------------------------------------------------------
3495 # generate qconfig.cpp
3496 #-------------------------------------------------------------------------------
3497 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3499 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3501 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3502 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3504 /* Installation date */
3505 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3507 /* Installation Info */
3508 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3509 "qt_prfxpath=$QT_INSTALL_PREFIX",
3510 "qt_docspath=$QT_INSTALL_DOCS",
3511 "qt_hdrspath=$QT_INSTALL_HEADERS",
3512 "qt_libspath=$QT_INSTALL_LIBS",
3513 "qt_binspath=$QT_INSTALL_BINS",
3514 "qt_plugpath=$QT_INSTALL_PLUGINS",
3515 "qt_impspath=$QT_INSTALL_IMPORTS",
3516 "qt_datapath=$QT_INSTALL_DATA",
3517 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3518 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3519 "qt_tstspath=$QT_INSTALL_TESTS",
3520 #ifdef QT_BUILD_QMAKE
3521 "qt_ssrtpath=$CFG_SYSROOT",
3522 "qt_hpfxpath=$QT_HOST_PREFIX",
3523 "qt_hbinpath=$QT_HOST_BINS",
3524 "qt_hdatpath=$QT_HOST_DATA",
3527 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3530 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3532 /* strlen( "qt_lcnsxxxx" ) == 12 */
3533 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3534 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3536 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3539 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3540 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3541 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3543 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3544 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3545 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3548 # -----------------------------------------------------------------------------
3549 if [ "$LicenseType" = "Evaluation" ]; then
3550 EVALKEY=qt_qevalkey=$LicenseKeyExt
3551 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3552 EVALKEY=qt_qevalkey=
3555 if [ -n "$EVALKEY" ]; then
3556 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3557 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3558 /* Evaluation license key */
3559 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3561 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3565 # -----------------------------------------------------------------------------
3567 # -----------------------------------------------------------------------------
3570 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3571 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3574 # $1: input variable name (awk regexp)
3575 # $2: optional output variable name
3576 # $3: optional value transformation (sed command)
3577 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3578 # is where the resulting variable is written to
3579 setBootstrapVariable()
3581 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3585 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3586 echo "Creating qmake. Please wait..."
3588 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3589 rm -rf mkspecs/default mkspecs/default-host
3590 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3591 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3592 mkdir -p "$outpath/qmake" || exit
3594 for mkfile in GNUmakefile Makefile; do
3597 in_mkfile="${mkfile}.in"
3598 if [ "$mkfile" = "Makefile" ]; then
3599 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3600 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3602 in_mkfile="${mkfile}.unix"
3604 in_mkfile="$relpath/qmake/$in_mkfile"
3605 mkfile="$outpath/qmake/$mkfile"
3606 if [ -f "$mkfile" ]; then
3607 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3610 [ -f "$in_mkfile" ] || continue
3612 echo "########################################################################" > "$mkfile"
3613 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3614 echo "########################################################################" >> "$mkfile"
3617 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3618 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3619 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3621 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3622 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3625 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3626 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3627 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3628 setBootstrapVariable QMAKE_CFLAGS
3629 setBootstrapVariable QMAKE_CXXFLAGS
3630 setBootstrapVariable QMAKE_LFLAGS
3632 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3633 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3634 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3636 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3637 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3638 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3639 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3640 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3641 elif [ "$CFG_DEBUG" = "yes" ]; then
3642 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3643 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3644 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3645 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3648 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3649 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3650 for rpath in $RPATH_FLAGS; do
3651 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3654 if [ "$BUILD_ON_MAC" = "yes" ]; then
3655 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3656 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3657 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3658 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3659 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3660 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3661 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3662 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3663 if [ '!' -z "$CFG_SDK" ]; then
3664 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3665 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3666 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3667 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3668 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3671 if [ '!' -z "$D_FLAGS" ]; then
3672 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3674 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3675 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3676 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3677 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3679 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3680 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3681 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3682 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3683 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3684 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3685 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3686 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3687 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3688 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3690 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3691 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3692 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3693 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3698 (cd "$outpath/qmake"; "$MAKE") || exit 2
3701 #-------------------------------------------------------------------------------
3702 # create a qt.conf for the Qt build tree itself
3703 #-------------------------------------------------------------------------------
3705 QTCONFFILE="$outpath/bin/qt.conf"
3706 cat > "$QTCONFFILE" <<EOF
3711 #-------------------------------------------------------------------------------
3712 # write out device config before we run the test.
3713 #-------------------------------------------------------------------------------
3714 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3715 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3716 rm -f "$DEVICE_VARS_FILE"
3718 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3719 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3722 #-------------------------------------------------------------------------------
3724 #-------------------------------------------------------------------------------
3725 if [ -z "$PKG_CONFIG" ]; then
3726 # See if PKG_CONFIG is set in the mkspec:
3727 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3729 if [ -z "$PKG_CONFIG" ]; then
3730 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3733 if [ "$CFG_PKGCONFIG" = "no" ]; then
3735 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3737 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3738 echo >&2 "a correctly setup pkg-config environment!"
3740 elif [ -n "$PKG_CONFIG" ]; then
3741 # found a pkg-config
3742 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3743 # when xcompiling, check environment to see if it's actually usable
3744 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3745 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3746 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3747 if [ -n "$GCC_MACHINE_DUMP" ]; then
3748 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3750 export PKG_CONFIG_LIBDIR
3751 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3752 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3753 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3754 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3755 echo >&2 "Set this variable to the directory that contains target .pc files"
3756 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3757 echo >&2 "use -force-pkg-config to override this test."
3761 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3764 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3765 if [ -n "$CFG_SYSROOT" ]; then
3766 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3767 export PKG_CONFIG_SYSROOT_DIR
3768 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3769 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3770 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3771 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3772 echo >&2 "or use -force-pkg-config to override this test."
3776 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3780 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3781 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3785 if [ -z "$PKG_CONFIG" ]; then
3786 QT_CONFIG="$QT_CONFIG no-pkg-config"
3789 #-------------------------------------------------------------------------------
3790 # tests that need qmake
3791 #-------------------------------------------------------------------------------
3793 # parameters: path, name, extra args
3796 path=config.tests/$1
3799 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3802 #-------------------------------------------------------------------------------
3803 # determine the target and host architectures
3804 #-------------------------------------------------------------------------------
3806 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3807 OUTFILE=$outpath/arch.result
3808 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3809 if [ $? -eq 0 ]; then
3810 eval `cat "$OUTFILE"`
3813 echo "Could not determine the target architecture!"
3814 echo "Turn on verbose messaging (-v) to see the final report."
3816 rm -f "$OUTFILE" 2>/dev/null
3817 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3819 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3820 # Do the same test again, using the host compiler
3821 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3822 if [ $? -eq 0 ]; then
3823 eval `cat "$OUTFILE"`
3826 echo "Could not determine the host architecture!"
3827 echo "Turn on verbose messaging (-v) to see the final report."
3829 rm -f "$OUTFILE" 2>/dev/null
3830 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3832 # not cross compiling, host == target
3833 CFG_HOST_ARCH="$CFG_ARCH"
3834 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3838 if [ "$OPT_VERBOSE" = "yes" ]; then
3839 echo "System architecture: '$CFG_ARCH'"
3840 echo "Host architecture: '$CFG_HOST_ARCH'"
3843 #-------------------------------------------------------------------------------
3844 # functionality tests
3845 #-------------------------------------------------------------------------------
3847 # Detect C++11 support
3848 if [ "$CFG_CXX11" != "no" ]; then
3849 if compileTest common/c++11 "C++11"; then
3851 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3852 echo "C++11 support cannot be enabled due to functionality tests!"
3853 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3854 echo " If you believe this message is in error you may use the continue"
3855 echo " switch (-continue) to $0 to continue."
3862 # detect availability of float math.h functions
3863 if compileTest unix/floatmath "floatmath"; then
3864 CFG_USE_FLOATMATH=yes
3866 CFG_USE_FLOATMATH=no
3869 # detect sse2 support
3870 if [ "${CFG_SSE2}" = "auto" ]; then
3871 if compileTest common/sse2 "sse2"; then
3878 # detect sse3 support
3879 if [ "${CFG_SSE3}" = "auto" ]; then
3880 if compileTest common/sse3 "sse3"; then
3887 # detect ssse3 support
3888 if [ "${CFG_SSSE3}" = "auto" ]; then
3889 if compileTest common/ssse3 "ssse3"; then
3896 # detect sse4.1 support
3897 if [ "${CFG_SSE4_1}" = "auto" ]; then
3898 if compileTest common/sse4_1 "sse4_1"; then
3905 # detect sse4.2 support
3906 if [ "${CFG_SSE4_2}" = "auto" ]; then
3907 if compileTest common/sse4_2 "sse4_2"; then
3914 # detect avx support
3915 if [ "${CFG_AVX}" = "auto" ]; then
3916 if compileTest common/avx "avx"; then
3917 case "$XQMAKESPEC" in
3919 # Some clang versions produce internal compiler errors compiling Qt AVX code
3920 case `$TEST_COMPILER --version` in
3921 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3923 if [ "$OPT_VERBOSE" = "yes" ]; then
3924 echo 'AVX support disabled for blacklisted clang compiler'
3941 # detect avx2 support
3942 if [ "${CFG_AVX}" = "no" ]; then
3945 if [ "${CFG_AVX2}" = "auto" ]; then
3946 if compileTest common/avx2 "avx2"; then
3953 # check iWMMXt support
3954 if [ "$CFG_IWMMXT" = "yes" ]; then
3955 compileTest unix/iwmmxt "iwmmxt"
3956 if [ $? != "0" ]; then
3957 echo "The iWMMXt functionality test failed!"
3958 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3963 # detect neon support
3964 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3965 if compileTest unix/neon "neon"; then
3970 elif [ "$CFG_ARCH" != "arm" ]; then
3974 # detect mips_dsp support
3975 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3976 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
3981 elif [ "$CFG_ARCH" != "mips" ]; then
3985 # detect mips_dspr2 support
3986 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3987 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
3992 elif [ "$CFG_ARCH" != "mips" ]; then
3996 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3999 if [ "$CFG_ZLIB" = "no" ]; then
4000 # Note: Qt no longer support builds without zlib
4001 # So we force a "no" to be "auto" here.
4002 # If you REALLY really need no zlib support, you can still disable
4003 # it by doing the following:
4004 # add "no-zlib" to mkspecs/qconfig.pri
4005 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4007 # There's no guarantee that Qt will build under those conditions
4012 if [ "$CFG_ZLIB" = "auto" ]; then
4013 if compileTest unix/zlib "zlib"; then
4020 if [ "$CFG_LARGEFILE" = "auto" ]; then
4021 #Large files should be enabled for all Linux systems
4025 if [ "$CFG_GUI" = "no" ]; then
4026 QPA_PLATFORM_GUARD=no
4029 # detect how jpeg should be built
4030 if [ "$CFG_JPEG" = "auto" ]; then
4031 if [ "$CFG_SHARED" = "yes" ]; then
4038 if [ "$CFG_LIBJPEG" = "auto" ]; then
4039 if compileTest unix/libjpeg "libjpeg"; then
4046 # detect how gif should be built
4047 if [ "$CFG_GIF" = "auto" ]; then
4048 if [ "$CFG_SHARED" = "yes" ]; then
4056 if [ "$CFG_LIBPNG" = "auto" ]; then
4057 if compileTest unix/libpng "libpng"; then
4064 if [ "$CFG_EGLFS" = "yes" ]; then
4065 if [ "$CFG_EGL" = "no" ]; then
4066 echo "The EGLFS plugin requires EGL support and cannot be built"
4069 if [ "$CFG_OPENGL" != "es2" ]; then
4070 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4077 if [ "$CFG_KMS" = "yes" ]; then
4078 if [ "$CFG_EGL" = "no" ]; then
4079 echo "The KMS plugin requires EGL support and cannot be built"
4082 if [ "$CFG_OPENGL" != "es2" ]; then
4083 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4088 # auto-detect SQL-modules support
4089 for _SQLDR in $CFG_SQL_AVAILABLE; do
4092 if [ "$CFG_SQL_mysql" != "no" ]; then
4093 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4094 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4095 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4096 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4097 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4098 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4099 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4101 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4102 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4103 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4104 echo " You need MySql 4 or higher."
4105 echo " If you believe this message is in error you may use the continue"
4106 echo " switch (-continue) to $0 to continue."
4111 QT_LFLAGS_MYSQL_R=""
4115 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4116 QMakeVar add CONFIG use_libmysqlclient_r
4117 if [ "$CFG_SQL_mysql" = "auto" ]; then
4118 CFG_SQL_mysql=plugin
4120 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4121 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4122 if [ "$CFG_SQL_mysql" = "auto" ]; then
4123 CFG_SQL_mysql=plugin
4126 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4127 echo "MySQL support cannot be enabled due to functionality tests!"
4128 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4129 echo " If you believe this message is in error you may use the continue"
4130 echo " switch (-continue) to $0 to continue."
4135 QT_LFLAGS_MYSQL_R=""
4143 if [ "$CFG_SQL_psql" != "no" ]; then
4144 # Be careful not to use native pg_config when cross building.
4145 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4146 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4147 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4149 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4150 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4151 # But, respect PSQL_LIBS if set
4152 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4153 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4154 if [ "$CFG_SQL_psql" = "auto" ]; then
4158 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4159 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4160 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4161 echo " If you believe this message is in error you may use the continue"
4162 echo " switch (-continue) to $0 to continue."
4173 if [ "$CFG_SQL_odbc" != "no" ]; then
4174 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4175 if [ "$CFG_SQL_odbc" = "auto" ]; then
4179 if compileTest unix/iodbc "iODBC"; then
4180 QT_LFLAGS_ODBC="-liodbc"
4181 if [ "$CFG_SQL_odbc" = "auto" ]; then
4185 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4186 echo "ODBC support cannot be enabled due to functionality tests!"
4187 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4188 echo " If you believe this message is in error you may use the continue"
4189 echo " switch (-continue) to $0 to continue."
4199 if [ "$CFG_SQL_oci" != "no" ]; then
4200 if compileTest unix/oci "OCI"; then
4201 if [ "$CFG_SQL_oci" = "auto" ]; then
4205 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4206 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4207 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4208 echo " If you believe this message is in error you may use the continue"
4209 echo " switch (-continue) to $0 to continue."
4218 if [ "$CFG_SQL_tds" != "no" ]; then
4219 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4220 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4221 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4222 if [ "$CFG_SQL_tds" = "auto" ]; then
4226 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4227 echo "TDS support cannot be enabled due to functionality tests!"
4228 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4229 echo " If you believe this message is in error you may use the continue"
4230 echo " switch (-continue) to $0 to continue."
4239 if [ "$CFG_SQL_db2" != "no" ]; then
4240 if compileTest unix/db2 "DB2"; then
4241 if [ "$CFG_SQL_db2" = "auto" ]; then
4245 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4246 echo "ODBC support cannot be enabled due to functionality tests!"
4247 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4248 echo " If you believe this message is in error you may use the continue"
4249 echo " switch (-continue) to $0 to continue."
4258 if [ "$CFG_SQL_ibase" != "no" ]; then
4259 if compileTest unix/ibase "InterBase"; then
4260 if [ "$CFG_SQL_ibase" = "auto" ]; then
4261 CFG_SQL_ibase=plugin
4264 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4265 echo "InterBase support cannot be enabled due to functionality tests!"
4266 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4267 echo " If you believe this message is in error you may use the continue"
4268 echo " switch (-continue) to $0 to continue."
4277 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4278 if compileTest unix/sqlite2 "SQLite2"; then
4279 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4280 CFG_SQL_sqlite2=plugin
4283 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4284 echo "SQLite2 support cannot be enabled due to functionality tests!"
4285 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4286 echo " If you believe this message is in error you may use the continue"
4287 echo " switch (-continue) to $0 to continue."
4296 if [ "$CFG_SQL_sqlite" != "no" ]; then
4297 SQLITE_AUTODETECT_FAILED="no"
4298 if [ "$CFG_SQLITE" = "system" ]; then
4299 if [ -n "$PKG_CONFIG" ]; then
4300 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4301 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4304 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4306 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4307 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4308 CFG_SQL_sqlite=plugin
4310 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4312 SQLITE_AUTODETECT_FAILED="yes"
4315 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4316 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4317 CFG_SQL_sqlite=plugin
4320 SQLITE_AUTODETECT_FAILED="yes"
4324 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4325 echo "SQLite support cannot be enabled due to functionality tests!"
4326 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4327 echo " If you believe this message is in error you may use the continue"
4328 echo " switch (-continue) to $0 to continue."
4334 if [ "$OPT_VERBOSE" = "yes" ]; then
4335 echo "unknown SQL driver: $_SQLDR"
4341 # auto-detect NIS support
4342 if [ "$CFG_NIS" != "no" ]; then
4343 if compileTest unix/nis "NIS"; then
4346 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4347 echo "NIS support cannot be enabled due to functionality tests!"
4348 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4349 echo " If you believe this message is in error you may use the continue"
4350 echo " switch (-continue) to $0 to continue."
4358 # auto-detect CUPS support
4359 if [ "$CFG_CUPS" != "no" ]; then
4360 if compileTest unix/cups "Cups"; then
4363 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4364 echo "Cups support cannot be enabled due to functionality tests!"
4365 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4366 echo " If you believe this message is in error you may use the continue"
4367 echo " switch (-continue) to $0 to continue."
4375 # auto-detect iconv(3) support
4376 if [ "$CFG_ICONV" != "no" ]; then
4377 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4379 elif compileTest unix/iconv "POSIX iconv"; then
4381 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4383 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4386 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4387 echo "Iconv support cannot be enabled due to functionality tests!"
4388 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4389 echo " If you believe this message is in error you may use the continue"
4390 echo " switch (-continue) to $0 to continue."
4398 # auto-detect libdbus-1 support
4399 if [ "$CFG_DBUS" != "no" ]; then
4400 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4401 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4402 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4404 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4405 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4406 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4407 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4409 if [ "$CFG_DBUS" = "auto" ]; then
4411 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4412 # CFG_DBUS is "yes" or "linked" here
4414 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4415 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4416 echo " If you believe this message is in error you may use the continue"
4417 echo " switch (-continue) to $0 to continue."
4423 # auto-detect Glib support
4424 if [ "$CFG_GLIB" != "no" ]; then
4425 if [ -n "$PKG_CONFIG" ]; then
4426 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4427 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4429 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4431 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4432 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4434 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4435 echo "Glib support cannot be enabled due to functionality tests!"
4436 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4437 echo " If you believe this message is in error you may use the continue"
4438 echo " switch (-continue) to $0 to continue."
4446 # auto-detect GTK style support
4447 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4448 if [ -n "$PKG_CONFIG" ]; then
4449 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4450 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4452 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4454 QT_CONFIG="$QT_CONFIG gtkstyle"
4455 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4456 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4458 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4459 echo "Gtk theme support cannot be enabled due to functionality tests!"
4460 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4461 echo " If you believe this message is in error you may use the continue"
4462 echo " switch (-continue) to $0 to continue."
4468 elif [ "$CFG_GLIB" = "no" ]; then
4473 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4474 if [ -n "$PKG_CONFIG" ]; then
4475 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4476 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4478 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4480 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4481 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4483 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4484 echo "Gstreamer support cannot be enabled due to functionality tests!"
4485 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4486 echo " If you believe this message is in error you may use the continue"
4487 echo " switch (-continue) to $0 to continue."
4493 elif [ "$CFG_GLIB" = "no" ]; then
4497 # auto-detect libicu support
4498 if [ "$CFG_ICU" != "no" ]; then
4499 if compileTest unix/icu "ICU"; then
4500 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4502 if [ "$CFG_ICU" = "auto" ]; then
4504 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4507 echo "The ICU library support cannot be enabled."
4508 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4509 echo " If you believe this message is in error you may use the continue"
4510 echo " switch (-continue) to $0 to continue."
4516 # Auto-detect PulseAudio support
4517 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4518 if [ -n "$PKG_CONFIG" ]; then
4519 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4520 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4522 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4524 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4525 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4527 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4528 echo "PulseAudio support cannot be enabled due to functionality tests!"
4529 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4530 echo " If you believe this message is in error you may use the continue"
4531 echo " switch (-continue) to $0 to continue."
4540 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4541 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4542 if [ "$CFG_GUI" = "no" ]; then
4543 if [ "$CFG_OPENGL" = "auto" ]; then
4546 if [ "$CFG_OPENGL" != "no" ]; then
4547 echo "OpenGL enabled, but GUI disabled."
4548 echo " You might need to either enable the GUI or disable OpenGL"
4552 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4553 if compileTest x11/opengl "OpenGL"; then
4555 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4558 if [ "$CFG_OPENGL" = "yes" ]; then
4559 echo "All the OpenGL functionality tests failed!"
4560 echo " You might need to modify the include and library search paths by editing"
4561 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4562 echo " ${XQMAKESPEC}."
4569 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4570 if [ "$CFG_OPENGL" = "desktop" ]; then
4571 compileTest x11/glxfbconfig "OpenGL"
4572 if [ $? != "0" ]; then
4573 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4580 elif [ "$CFG_OPENGL" = "es2" ]; then
4582 compileTest unix/opengles2 "OpenGL ES 2.x"
4583 if [ $? != "0" ]; then
4584 echo "The OpenGL ES 2.0 functionality test failed!"
4585 echo " You might need to modify the include and library search paths by editing"
4586 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4587 echo " ${XQMAKESPEC}."
4590 elif [ "$CFG_OPENGL" = "desktop" ]; then
4591 # Desktop OpenGL support
4592 compileTest x11/opengl "OpenGL"
4593 if [ $? != "0" ]; then
4594 echo "The OpenGL functionality test failed!"
4595 echo " You might need to modify the include and library search paths by editing"
4596 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4597 echo " ${XQMAKESPEC}."
4602 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4603 compileTest x11/glxfbconfig "OpenGL"
4604 if [ $? != "0" ]; then
4605 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4612 fi # X11/MINGW OpenGL
4614 if [ "$BUILD_ON_MAC" = "yes" ]; then
4615 if [ "$CFG_COREWLAN" = "auto" ]; then
4616 if compileTest mac/corewlan "CoreWlan"; then
4624 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4625 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4626 if compileTest unix/opengldesktop "OpenGL"; then
4628 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4631 if [ "$CFG_OPENGL" = "yes" ]; then
4632 echo "All the OpenGL functionality tests failed!"
4633 echo " You might need to modify the include and library search paths by editing"
4634 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4635 echo " ${XQMAKESPEC}."
4640 elif [ "$CFG_OPENGL" = "es2" ]; then
4642 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4643 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4644 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4645 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4646 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4647 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4648 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4649 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4652 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4653 if [ $? != "0" ]; then
4654 echo "The OpenGL ES 2.0 functionality test failed!"
4655 echo " You might need to modify the include and library search paths by editing"
4656 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4657 echo " ${XQMAKESPEC}."
4660 elif [ "$CFG_OPENGL" = "desktop" ]; then
4661 # Desktop OpenGL support
4662 compileTest unix/opengldesktop "OpenGL"
4663 if [ $? != "0" ]; then
4664 echo "The OpenGL functionality test failed!"
4665 echo " You might need to modify the include and library search paths by editing"
4666 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4667 echo " ${XQMAKESPEC}."
4672 # auto-detect FontConfig support
4673 if [ "$CFG_FONTCONFIG" != "no" ]; then
4674 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4675 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4676 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4678 QT_CFLAGS_FONTCONFIG=
4679 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4681 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4682 QT_CONFIG="$QT_CONFIG fontconfig"
4683 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4684 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4686 CFG_LIBFREETYPE=system
4693 # Save these for a check later
4694 ORIG_CFG_XCB="$CFG_XCB"
4695 ORIG_CFG_EGLFS="$CFG_EGLFS"
4696 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4697 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4698 ORIG_CFG_KMS="$CFG_KMS"
4700 if [ "$CFG_LIBUDEV" != "no" ]; then
4701 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4702 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4703 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4704 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4705 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4707 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4709 QT_CONFIG="$QT_CONFIG libudev"
4710 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4711 echo "The libudev functionality test failed!"
4717 if [ "$CFG_LIBUDEV" = "no" ]; then
4718 QMakeVar add DEFINES QT_NO_LIBUDEV
4721 if [ "$CFG_EVDEV" != "no" ]; then
4722 if compileTest unix/evdev "evdev"; then
4724 QT_CONFIG="$QT_CONFIG evdev"
4725 elif [ "$CFG_EVDEV" = "yes" ]; then
4726 echo "The evdev functionality test failed!"
4732 if [ "$CFG_EVDEV" = "no" ]; then
4733 QMakeVar add DEFINES QT_NO_EVDEV
4736 # Check we actually have X11 :-)
4737 if compileTest x11/xlib "XLib"; then
4738 QT_CONFIG="$QT_CONFIG xlib"
4741 # auto-detect Xrender support
4742 if [ "$CFG_XRENDER" != "no" ]; then
4743 if compileTest x11/xrender "Xrender"; then
4745 QT_CONFIG="$QT_CONFIG xrender"
4747 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4748 echo "Xrender support cannot be enabled due to functionality tests!"
4749 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4750 echo " If you believe this message is in error you may use the continue"
4751 echo " switch (-continue) to $0 to continue."
4759 if [ "$CFG_XCB" != "no" ]; then
4760 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4761 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4762 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4764 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4766 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4767 QT_CONFIG="$QT_CONFIG xcb-render"
4770 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4772 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4775 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4776 QT_CONFIG="$QT_CONFIG xcb-xlib"
4779 # auto-detect XInput2 support. Needed by xcb too.
4780 if [ "$CFG_XINPUT2" != "no" ]; then
4781 if compileTest x11/xinput2 "XInput2"; then
4785 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4786 echo "XInput2 support cannot be enabled due to functionality tests!"
4787 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4788 echo " If you believe this message is in error you may use the continue"
4789 echo " switch (-continue) to $0 to continue."
4797 if [ "$CFG_XCB" = "yes" ]; then
4798 echo "The XCB test failed!"
4799 echo " You might need to install dependency packages."
4800 echo " See src/plugins/platforms/xcb/README."
4806 if [ "$CFG_XCB" = "no" ]; then
4807 QMakeVar add DEFINES QT_NO_XCB
4810 if [ "$CFG_DIRECTFB" != "no" ]; then
4811 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4812 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4813 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4814 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4816 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4817 echo " DirectFB support cannot be enabled due to functionality tests!"
4818 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4819 echo " If you believe this message is in error you may use the continue"
4820 echo " switch (-continue) to $0 to continue."
4830 if [ "$CFG_LINUXFB" != "no" ]; then
4831 if compileTest qpa/linuxfb "LinuxFB"; then
4833 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4834 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4835 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4836 echo " If you believe this message is in error you may use the continue"
4837 echo " switch (-continue) to $0 to continue."
4844 if [ "$CFG_KMS" != "no" ]; then
4845 if compileTest qpa/kms "KMS"; then
4847 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4848 echo " KMS support cannot be enabled due to functionality tests!"
4849 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4850 echo " If you believe this message is in error you may use the continue"
4851 echo " switch (-continue) to $0 to continue."
4858 # Detect libxkbcommon
4859 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4860 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4861 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4862 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4863 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4865 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4869 if [ "$CFG_EGL" != "no" ]; then
4870 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4871 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4872 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4873 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4874 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4875 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4876 fi # detect EGL support
4877 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4879 elif [ "$CFG_EGL" = "yes" ]; then
4880 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4881 echo " You might need to modify the include and library search paths by editing"
4882 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4887 elif [ "$CFG_OPENGL" = "desktop" ]; then
4888 if [ "$CFG_EGL" = "yes" ]; then
4889 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4890 echo "Either disable EGL support or enable OpenGL ES support."
4896 if [ "$CFG_EGLFS" != "no" ]; then
4897 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4898 CFG_EGLFS="$CFG_EGL"
4904 if [ "$CFG_KMS" = "yes" ]; then
4905 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4912 # Detect accessibility support
4913 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4914 if [ "$CFG_XCB" = "no" ]; then
4915 CFG_ACCESSIBILITY=yes
4917 # linux/xcb accessibility needs dbus and atspi-2
4918 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4919 CFG_ACCESSIBILITY=yes
4921 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4922 CFG_ACCESSIBILITY=no
4924 echo "Accessibility support needs pkg-config and libatspi2."
4931 # Determine the default QPA platform
4932 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4934 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4935 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4936 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4937 QT_QPA_DEFAULT_PLATFORM="windows"
4938 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4939 QT_QPA_DEFAULT_PLATFORM="cocoa"
4940 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4941 QT_QPA_DEFAULT_PLATFORM="qnx"
4943 QT_QPA_DEFAULT_PLATFORM="xcb"
4948 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4949 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4950 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4951 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4953 if [ "$CFG_DIRECTFB" = "yes" ]; then
4954 QT_CONFIG="$QT_CONFIG directfb"
4955 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4956 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4958 if [ "$CFG_LINUXFB" = "yes" ]; then
4959 QT_CONFIG="$QT_CONFIG linuxfb"
4961 if [ "$CFG_KMS" = "yes" ]; then
4962 QT_CONFIG="$QT_CONFIG kms"
4965 if [ "$BUILD_ON_MAC" = "yes" ]; then
4966 if compileTest mac/coreservices "CoreServices"; then
4967 QT_CONFIG="$QT_CONFIG coreservices"
4969 QMakeVar add DEFINES QT_NO_CORESERVICES
4973 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4974 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4975 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4976 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4977 echo "No QPA platform plugin enabled!"
4978 echo " If you really want to build without a QPA platform plugin you must pass"
4979 echo " -no-qpa-platform-guard to configure. Doing this will"
4980 echo " produce a Qt that can not run GUI applications."
4981 echo " The dependencies needed for xcb to build are listed in"
4982 echo " src/plugins/platforms/xcb/README"
4989 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4990 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4991 if compileTest unix/freetype "FreeType"; then
4992 CFG_LIBFREETYPE=system
4998 if ! compileTest unix/stl "STL" &&
4999 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5000 echo "STL functionality check failed! Cannot build Qt with this STL library."
5001 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5006 # detect POSIX clock_gettime()
5007 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5008 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5009 CFG_CLOCK_GETTIME=yes
5011 CFG_CLOCK_GETTIME=no
5015 # detect POSIX monotonic clocks
5016 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5017 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5018 CFG_CLOCK_MONOTONIC=yes
5020 CFG_CLOCK_MONOTONIC=no
5022 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5023 CFG_CLOCK_MONOTONIC=no
5027 if [ "$CFG_MREMAP" = "auto" ]; then
5028 if compileTest unix/mremap "mremap"; then
5035 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5036 if [ "$CFG_GETADDRINFO" != "no" ]; then
5037 if compileTest unix/getaddrinfo "getaddrinfo"; then
5040 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5041 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5042 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5043 echo " If you believe this message is in error you may use the continue"
5044 echo " switch (-continue) to $0 to continue."
5052 # find if the platform provides inotify
5053 if [ "$CFG_INOTIFY" != "no" ]; then
5054 if compileTest unix/inotify "inotify"; then
5057 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5058 echo "inotify support cannot be enabled due to functionality tests!"
5059 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5060 echo " If you believe this message is in error you may use the continue"
5061 echo " switch (-continue) to $0 to continue."
5069 # find if the platform provides if_nametoindex (ipv6 interface name support)
5070 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5071 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5074 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5075 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5076 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5077 echo " If you believe this message is in error you may use the continue"
5078 echo " switch (-continue) to $0 to continue."
5086 # find if the platform provides getifaddrs (network interface enumeration)
5087 if [ "$CFG_GETIFADDRS" != "no" ]; then
5088 if compileTest unix/getifaddrs "getifaddrs"; then
5091 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5092 echo "getifaddrs support cannot be enabled due to functionality tests!"
5093 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5094 echo " If you believe this message is in error you may use the continue"
5095 echo " switch (-continue) to $0 to continue."
5104 if [ "$CFG_OPENSSL" != "no" ]; then
5105 if compileTest unix/openssl "OpenSSL"; then
5106 if [ "$CFG_OPENSSL" = "auto" ]; then
5110 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5111 echo "OpenSSL support cannot be enabled due to functionality tests!"
5112 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5113 echo " If you believe this message is in error you may use the continue"
5114 echo " switch (-continue) to $0 to continue."
5123 if [ "$CFG_PCRE" != "qt" ]; then
5124 if compileTest unix/pcre "PCRE"; then
5127 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5128 echo "PCRE support cannot be enabled due to functionality tests!"
5129 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5130 echo " If you believe this message is in error you may use the continue"
5131 echo " switch (-continue) to $0 to continue."
5139 # detect OpenVG support
5140 if [ "$CFG_OPENVG" != "no" ]; then
5141 if compileTest unix/openvg "OpenVG"; then
5142 if [ "$CFG_OPENVG" = "auto" ]; then
5145 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5146 if [ "$CFG_OPENVG" = "auto" ]; then
5149 CFG_OPENVG_ON_OPENGL=yes
5150 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5151 if [ "$CFG_OPENVG" = "auto" ]; then
5154 CFG_OPENVG_LC_INCLUDES=yes
5155 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5156 if [ "$CFG_OPENVG" = "auto" ]; then
5159 CFG_OPENVG_LC_INCLUDES=yes
5160 CFG_OPENVG_ON_OPENGL=yes
5162 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5163 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5164 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5165 echo " If you believe this message is in error you may use the continue"
5166 echo " switch (-continue) to $0 to continue."
5172 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5173 CFG_OPENVG_SHIVA=yes
5177 if [ "$CFG_ALSA" = "auto" ]; then
5178 if compileTest unix/alsa "alsa"; then
5185 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5186 if [ "$CFG_ARCH" = "arm" ]; then
5187 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5188 if [ $? != "0" ]; then
5189 CFG_JAVASCRIPTCORE_JIT=no
5192 case "$XPLATFORM" in
5194 CFG_JAVASCRIPTCORE_JIT=no
5200 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5201 QMakeVar set JAVASCRIPTCORE_JIT yes
5202 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5203 QMakeVar set JAVASCRIPTCORE_JIT no
5206 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5207 CFG_AUDIO_BACKEND=yes
5210 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5211 echo "Warning: largefile support cannot be disabled for win32."
5215 #-------------------------------------------------------------------------------
5216 # ask for all that hasn't been auto-detected or specified in the arguments
5217 #-------------------------------------------------------------------------------
5219 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5221 # disable accessibility
5222 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5223 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5225 QT_CONFIG="$QT_CONFIG accessibility"
5229 if [ "$CFG_EGL" = "yes" ]; then
5230 QT_CONFIG="$QT_CONFIG egl"
5232 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5236 if [ "$CFG_EGLFS" = "yes" ]; then
5237 QT_CONFIG="$QT_CONFIG eglfs"
5239 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5243 if [ "$CFG_OPENVG" = "no" ]; then
5244 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5246 QT_CONFIG="$QT_CONFIG openvg"
5247 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5248 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5250 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5251 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5253 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5254 QT_CONFIG="$QT_CONFIG shivavg"
5255 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5260 if [ "$CFG_OPENGL" = "no" ]; then
5261 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5263 QT_CONFIG="$QT_CONFIG opengl"
5266 if [ "$CFG_OPENGL" = "es2" ]; then
5267 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5270 if [ "$CFG_OPENGL" = "es2" ]; then
5271 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5272 QT_CONFIG="$QT_CONFIG opengles2"
5275 # build up the variables for output
5276 if [ "$CFG_DEBUG" = "yes" ]; then
5277 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5278 elif [ "$CFG_DEBUG" = "no" ]; then
5279 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5281 if [ "$CFG_SHARED" = "yes" ]; then
5282 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5283 QT_CONFIG="$QT_CONFIG shared"
5284 elif [ "$CFG_SHARED" = "no" ]; then
5285 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5286 QT_CONFIG="$QT_CONFIG static"
5289 #FIXME: qpa is implicit this should all be removed
5290 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5291 QT_CONFIG="$QT_CONFIG qpa"
5292 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5293 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5295 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5296 # Do not set this here for Windows. Let qmake do it so
5297 # debug and release precompiled headers are kept separate.
5298 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5300 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5301 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5302 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5303 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5304 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5305 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5307 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5308 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5310 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5311 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5312 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5313 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5314 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5315 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5316 QMakeVar add QMAKE_CFLAGS -g
5317 QMakeVar add QMAKE_CXXFLAGS -g
5318 QT_CONFIG="$QT_CONFIG separate_debug_info"
5320 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5321 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5323 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5324 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5325 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5326 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5327 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5328 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5329 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5330 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5331 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5332 if [ "$CFG_ARCH" = "mips" ]; then
5333 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5334 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5336 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5337 QT_CONFIG="$QT_CONFIG clock-gettime"
5339 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5340 QT_CONFIG="$QT_CONFIG clock-monotonic"
5342 if [ "$CFG_MREMAP" = "yes" ]; then
5343 QT_CONFIG="$QT_CONFIG mremap"
5345 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5346 QT_CONFIG="$QT_CONFIG getaddrinfo"
5348 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5349 QT_CONFIG="$QT_CONFIG ipv6ifname"
5351 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5352 QT_CONFIG="$QT_CONFIG getifaddrs"
5354 if [ "$CFG_INOTIFY" = "yes" ]; then
5355 QT_CONFIG="$QT_CONFIG inotify"
5357 if [ "$CFG_LIBJPEG" = "no" ]; then
5359 elif [ "$CFG_LIBJPEG" = "system" ]; then
5360 QT_CONFIG="$QT_CONFIG system-jpeg"
5362 if [ "$CFG_JPEG" = "no" ]; then
5363 QT_CONFIG="$QT_CONFIG no-jpeg"
5364 elif [ "$CFG_JPEG" = "yes" ]; then
5365 QT_CONFIG="$QT_CONFIG jpeg"
5367 if [ "$CFG_LIBPNG" = "no" ]; then
5370 if [ "$CFG_LIBPNG" = "system" ]; then
5371 QT_CONFIG="$QT_CONFIG system-png"
5373 if [ "$CFG_PNG" = "no" ]; then
5374 QT_CONFIG="$QT_CONFIG no-png"
5375 elif [ "$CFG_PNG" = "yes" ]; then
5376 QT_CONFIG="$QT_CONFIG png"
5378 if [ "$CFG_GIF" = "no" ]; then
5379 QT_CONFIG="$QT_CONFIG no-gif"
5380 elif [ "$CFG_GIF" = "yes" ]; then
5381 QT_CONFIG="$QT_CONFIG gif"
5383 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5384 QT_CONFIG="$QT_CONFIG no-freetype"
5385 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5386 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5387 QT_CONFIG="$QT_CONFIG system-freetype"
5389 QT_CONFIG="$QT_CONFIG freetype"
5391 if [ "$CFG_GUI" = "auto" ]; then
5394 if [ "$CFG_GUI" = "no" ]; then
5395 QT_CONFIG="$QT_CONFIG no-gui"
5398 if [ "$CFG_WIDGETS" = "no" ]; then
5399 QT_CONFIG="$QT_CONFIG no-widgets"
5400 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5403 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5404 #On Mac we implicitly link against libz, so we
5405 #never use the 3rdparty stuff.
5406 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5408 if [ "$CFG_ZLIB" = "yes" ]; then
5409 QT_CONFIG="$QT_CONFIG zlib"
5410 elif [ "$CFG_ZLIB" = "system" ]; then
5411 QT_CONFIG="$QT_CONFIG system-zlib"
5414 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5415 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5416 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5417 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5418 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5419 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5420 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5421 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5422 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5423 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5424 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5425 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5426 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5427 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5429 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5430 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5432 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5433 if [ "$CFG_RPATH" = "yes" ]; then
5434 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5436 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5437 if [ -n "$RPATH_FLAGS" ]; then
5439 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5443 elif [ "$CFG_RPATH" = "yes" ]; then
5444 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5448 if [ -n "$RPATH_FLAGS" ]; then
5449 # add the user defined rpaths
5450 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5453 if [ "$CFG_RPATH" = "yes" ]; then
5454 QT_CONFIG="$QT_CONFIG rpath"
5457 if [ '!' -z "$I_FLAGS" ]; then
5458 # add the user define include paths
5459 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5460 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5463 if [ '!' -z "$W_FLAGS" ]; then
5464 # add the user defined warning flags
5465 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5466 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5467 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5470 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5471 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5472 # Follow default behavior of configure.exe by overriding with "rtti".
5473 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5476 if [ "$CFG_ALSA" = "yes" ]; then
5477 QT_CONFIG="$QT_CONFIG alsa"
5480 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5481 QT_CONFIG="$QT_CONFIG pulseaudio"
5484 if [ "$CFG_COREWLAN" = "yes" ]; then
5485 QT_CONFIG="$QT_CONFIG corewlan"
5488 if [ "$CFG_ICU" = "yes" ]; then
5489 QT_CONFIG="$QT_CONFIG icu"
5492 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5493 QT_CONFIG="$QT_CONFIG force_asserts"
5496 if [ "$CFG_PCRE" = "qt" ]; then
5497 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5501 # Some Qt modules are too advanced in C++ for some old compilers
5502 # Detect here the platforms where they are known to work.
5504 # See Qt documentation for more information on which features are
5505 # supported and on which compilers.
5507 canBuildQtConcurrent="yes"
5508 canUseV8Snapshot="yes"
5510 case "$XPLATFORM" in
5512 # PA-RISC's assembly is too limited
5513 # gcc 3.4 on that platform can't build QtXmlPatterns
5514 # the assembly it generates cannot be compiled
5516 # Check gcc's version
5517 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5521 canBuildQtXmlPatterns="no"
5525 canBuildQtXmlPatterns="no"
5529 unsupported/vxworks-*-g++*)
5532 unsupported/vxworks-*-dcc*)
5534 canBuildQtXmlPatterns="no"
5537 # Check gcc's version
5538 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5546 canBuildQtXmlPatterns="no"
5551 # Check the compiler version
5552 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5555 canBuildQtXmlPatterns="no"
5556 canBuildQtConcurrent="no"
5560 canBuildQtConcurrent="no"
5566 canBuildQtXmlPatterns="no"
5567 canBuildQtConcurrent="no"
5573 # Get the xlC version
5574 cat > xlcver.c <<EOF
5578 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5583 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5584 xlcver=`./xlcver 2>/dev/null`
5587 if [ "$OPT_VERBOSE" = "yes" ]; then
5588 if [ -n "$xlcver" ]; then
5589 echo Found IBM xlC version: $xlcver.
5591 echo Could not determine IBM xlC version, assuming oldest supported.
5598 canBuildQtXmlPatterns="no"
5599 canBuildQtConcurrent="no"
5603 canBuildQtConcurrent="no"
5609 canBuildQtConcurrent="no"
5613 if [ "$CFG_GUI" = "no" ]; then
5614 # WebKit requires QtGui
5618 if [ "$CFG_SHARED" = "no" ]; then
5620 echo "WARNING: Using static linking will disable the WebKit module."
5625 CFG_CONCURRENT="yes"
5626 if [ "$canBuildQtConcurrent" = "no" ]; then
5627 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5630 QT_CONFIG="$QT_CONFIG concurrent"
5634 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5635 QT_CONFIG="$QT_CONFIG audio-backend"
5639 if [ "$CFG_WEBKIT" = "debug" ]; then
5640 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5644 QT_CONFIG="$QT_CONFIG v8"
5645 # Detect snapshot support
5646 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5647 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5650 *) canUseV8Snapshot="no"
5654 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5655 # QEMU crashes when building inside Scratchbox with an ARM target
5656 canUseV8Snapshot="no"
5659 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5660 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5662 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5663 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5666 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5667 QT_CONFIG="$QT_CONFIG v8snapshot"
5671 if [ "$CFG_QML_DEBUG" = "no" ]; then
5672 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5675 case "$QMAKE_CONF_COMPILER" in
5678 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5680 case "$COMPILER_VERSION" in
5682 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5683 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5684 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5687 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5688 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5689 QT_GCC_PATCH_VERSION=0
5699 #-------------------------------------------------------------------------------
5700 # part of configuration information goes into qconfig.h
5701 #-------------------------------------------------------------------------------
5703 case "$CFG_QCONFIG" in
5705 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5708 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5709 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5710 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5711 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5712 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5713 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5715 echo "#endif" >>"$tmpconfig"
5719 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5723 # define QT_EDITION $QT_EDITION
5727 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5728 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5730 if [ "$CFG_SHARED" = "no" ]; then
5731 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5732 /* Qt was configured for a static build */
5733 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5740 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5741 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5744 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5745 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5748 if [ "$BUILD_ON_MAC" = "yes" ]; then
5749 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5750 #if defined(__LP64__)
5751 # define QT_POINTER_SIZE 8
5753 # define QT_POINTER_SIZE 4
5757 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5758 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5761 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5762 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5763 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5766 # Add compiler sub-architecture support
5767 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5768 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5769 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5771 MIPS_DSP MIPS_DSPR2; do
5772 eval "VAL=\$CFG_$SUBARCH"
5775 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5776 >>"$outpath/src/corelib/global/qconfig.h.new"
5781 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5783 if [ "$CFG_DEV" = "yes" ]; then
5784 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5787 # Add QPA to config.h
5788 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5790 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5791 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5794 # Add turned on SQL drivers
5795 for DRIVER in $CFG_SQL_AVAILABLE; do
5796 eval "VAL=\$CFG_SQL_$DRIVER"
5799 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5800 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5801 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5804 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5809 QMakeVar set sql-drivers "$SQL_DRIVERS"
5810 QMakeVar set sql-plugins "$SQL_PLUGINS"
5812 # Add other configuration options to the qconfig.h file
5813 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5814 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5815 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5816 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5817 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5819 # X11/Unix/Mac only configs
5820 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5821 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5822 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5823 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5824 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5825 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5826 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5827 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5828 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5829 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5830 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5831 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5832 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5833 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5835 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5836 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5837 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5838 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5839 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5840 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5841 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5842 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5843 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5844 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5845 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5846 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5847 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5849 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5850 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5851 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5852 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5853 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5854 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5855 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5856 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5858 # sort QCONFIG_FLAGS for neatness if we can
5859 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5860 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5862 if [ -n "$QCONFIG_FLAGS" ]; then
5863 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5864 #ifndef QT_BOOTSTRAPPED
5867 for cfg in $QCONFIG_FLAGS; do
5868 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5869 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5870 # figure out define logic, so we can output the correct
5871 # ifdefs to override the global defines in a project
5873 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5874 # QT_NO_option can be forcefully turned on by QT_option
5875 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5876 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5877 # QT_option can be forcefully turned off by QT_NO_option
5878 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5881 if [ -z $cfgdNeg ]; then
5882 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5889 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5890 #if defined($cfgd) && defined($cfgdNeg)
5892 #elif !defined($cfgd) && !defined($cfgdNeg)
5899 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5900 #endif // QT_BOOTSTRAPPED
5905 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5906 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5907 #define QT_VISIBILITY_AVAILABLE
5912 if [ -n "$QT_LIBINFIX" ]; then
5913 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5914 #define QT_LIBINFIX "$QT_LIBINFIX"
5919 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5921 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5922 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5923 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5925 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5926 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5927 chmod -w "$outpath/src/corelib/global/qconfig.h"
5928 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5929 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5933 #-------------------------------------------------------------------------------
5934 # save configuration into qconfig.pri
5935 #-------------------------------------------------------------------------------
5936 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5937 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5938 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5939 if [ "$CFG_DEBUG" = "yes" ]; then
5940 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5941 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5942 QT_CONFIG="$QT_CONFIG release"
5944 QT_CONFIG="$QT_CONFIG debug"
5945 elif [ "$CFG_DEBUG" = "no" ]; then
5946 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5947 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5948 QT_CONFIG="$QT_CONFIG debug"
5950 QT_CONFIG="$QT_CONFIG release"
5952 if [ "$CFG_FRAMEWORK" = "no" ]; then
5953 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5955 QT_CONFIG="$QT_CONFIG qt_framework"
5956 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5958 if [ "$CFG_DEV" = "yes" ]; then
5959 QT_CONFIG="$QT_CONFIG private_tests"
5962 cat >>"$QTCONFIG.tmp" <<EOF
5964 CONFIG += $QTCONFIG_CONFIG
5966 QT_HOST_ARCH = $CFG_HOST_ARCH
5967 QT_CPU_FEATURES = $CFG_CPUFEATURES
5968 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5969 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5970 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5971 QT_EDITION = $Edition
5972 QT_CONFIG += $QT_CONFIG
5975 QT_VERSION = $QT_VERSION
5976 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5977 QT_MINOR_VERSION = $QT_MINOR_VERSION
5978 QT_PATCH_VERSION = $QT_PATCH_VERSION
5981 QT_LIBINFIX = $QT_LIBINFIX
5982 QT_NAMESPACE = $QT_NAMESPACE
5986 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5987 echo "# pkgconfig" >> "$QTCONFIG.tmp"
5988 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5989 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5990 echo >> "$QTCONFIG.tmp"
5993 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5994 echo "# sysroot" >>"$QTCONFIG.tmp"
5995 echo "!host_build {" >>"$QTCONFIG.tmp"
5996 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5997 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5998 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5999 echo "}" >> "$QTCONFIG.tmp"
6000 echo >> "$QTCONFIG.tmp"
6002 if [ -n "$RPATH_FLAGS" ]; then
6003 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6005 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6006 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6007 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6008 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6011 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6012 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6013 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6016 # replace qconfig.pri if it differs from the newly created temp file
6017 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6018 rm -f "$QTCONFIG.tmp"
6020 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6023 #-------------------------------------------------------------------------------
6024 # save configuration into qmodule.pri
6025 #-------------------------------------------------------------------------------
6026 QTMODULE="$outpath/mkspecs/qmodule.pri"
6028 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6029 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6031 if [ -n "$QT_CFLAGS_PSQL" ]; then
6032 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6034 if [ -n "$QT_LFLAGS_PSQL" ]; then
6035 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6037 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6038 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6040 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6041 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6043 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6044 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6046 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6047 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6049 if [ -n "$QT_LFLAGS_ODBC" ]; then
6050 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6052 if [ -n "$QT_LFLAGS_TDS" ]; then
6053 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6056 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6057 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6060 #dump in the OPENSSL_LIBS info
6061 if [ '!' -z "$OPENSSL_LIBS" ]; then
6062 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6063 elif [ "$CFG_OPENSSL" = "linked" ]; then
6064 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6067 #dump in the SDK info
6068 if [ '!' -z "$CFG_SDK" ]; then
6069 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6073 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6074 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6076 # replace qmodule.pri if it differs from the newly created temp file
6077 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6078 rm -f "$QTMODULE.tmp"
6080 mv -f "$QTMODULE.tmp" "$QTMODULE"
6083 #-------------------------------------------------------------------------------
6084 # save configuration into .qmake.cache
6085 #-------------------------------------------------------------------------------
6087 CACHEFILE="$outpath/.qmake.cache"
6088 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6089 cat >>"$CACHEFILE.tmp" <<EOF
6091 QT_SOURCE_TREE = \$\$quote($relpath)
6092 QT_BUILD_TREE = \$\$quote($outpath)
6094 include(\$\$PWD/mkspecs/qmodule.pri)
6095 CONFIG += dylib fix_output_dirs no_private_qt_headers_warning QTDIR_build
6099 # replace .qmake.cache if it differs from the newly created temp file
6100 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6101 rm -f "$CACHEFILE.tmp"
6103 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6106 #-------------------------------------------------------------------------------
6107 # give feedback on configuration
6108 #-------------------------------------------------------------------------------
6109 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6112 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6113 echo "Build type: $PLATFORM"
6115 echo "Building on: $PLATFORM"
6116 echo "Building for: $XPLATFORM"
6119 # the missing space before $CFG_FEATURES is intentional
6120 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6121 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6123 if [ -n "$PLATFORM_NOTES" ]; then
6124 echo "Platform notes:"
6125 echo "$PLATFORM_NOTES"
6130 if [ "$OPT_VERBOSE" = "yes" ]; then
6131 echo $ECHO_N "qmake vars .......... $ECHO_C"
6132 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6133 echo "qmake switches ......... $QMAKE_SWITCHES"
6136 echo "Build .................. $CFG_BUILD_PARTS"
6137 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6138 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6139 echo "Debug .................. yes (combined)"
6140 if [ "$CFG_DEBUG" = "yes" ]; then
6141 echo "Default Link ........... debug"
6143 echo "Default Link ........... release"
6146 echo "Debug .................. $CFG_DEBUG"
6148 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6149 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6151 echo "C++11 support .......... $CFG_CXX11"
6152 if [ -n "$PKG_CONFIG" ]; then
6153 echo "pkg-config ............. yes"
6155 echo "pkg-config ............. no"
6157 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6158 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6159 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6160 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6161 echo "QtGui module ........... $CFG_GUI"
6162 echo "QtWidgets module ....... $CFG_WIDGETS"
6163 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6164 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6166 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6168 echo "QML debugging .......... $CFG_QML_DEBUG"
6169 echo "PCH support ............ $CFG_PRECOMPILE"
6170 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6171 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6172 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6173 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6174 elif [ "$CFG_ARCH" = "arm" ]; then
6175 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6176 echo "NEON support ........... ${CFG_NEON}"
6178 if [ "$CFG_ARCH" = "mips" ]; then
6179 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6181 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6182 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6183 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6184 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6185 echo "NIS support ............ $CFG_NIS"
6186 echo "CUPS support ........... $CFG_CUPS"
6187 echo "Iconv support .......... $CFG_ICONV"
6188 echo "Glib support ........... $CFG_GLIB"
6189 echo "GStreamer support ...... $CFG_GSTREAMER"
6190 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6191 echo "Large File support ..... $CFG_LARGEFILE"
6192 echo "GIF support ............ $CFG_GIF"
6193 if [ "$CFG_JPEG" = "no" ]; then
6194 echo "JPEG support ........... $CFG_JPEG"
6196 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6198 if [ "$CFG_PNG" = "no" ]; then
6199 echo "PNG support ............ $CFG_PNG"
6201 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6203 echo "zlib support ........... $CFG_ZLIB"
6204 echo "Session management ..... $CFG_SM"
6205 echo "libudev support ........ $CFG_LIBUDEV"
6207 if [ "$CFG_OPENGL" = "desktop" ]; then
6208 echo "OpenGL support ......... yes (Desktop OpenGL)"
6209 elif [ "$CFG_OPENGL" = "es2" ]; then
6210 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6212 echo "OpenGL support ......... no"
6215 if [ "$CFG_OPENVG" ]; then
6216 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6217 echo "OpenVG support ......... ShivaVG"
6219 echo "OpenVG support ......... $CFG_OPENVG"
6223 echo "XShape support ......... $CFG_XSHAPE"
6224 echo "XVideo support ......... $CFG_XVIDEO"
6225 echo "XSync support .......... $CFG_XSYNC"
6226 echo "Xinerama support ....... $CFG_XINERAMA"
6227 echo "Xcursor support ........ $CFG_XCURSOR"
6228 echo "Xfixes support ......... $CFG_XFIXES"
6229 echo "Xrandr support ......... $CFG_XRANDR"
6230 echo "Xi support ............. $CFG_XINPUT"
6231 echo "Xi2 support ............ $CFG_XINPUT2"
6232 echo "MIT-SHM support ........ $CFG_MITSHM"
6233 echo "FontConfig support ..... $CFG_FONTCONFIG"
6234 echo "XKB Support ............ $CFG_XKB"
6235 echo "immodule support ....... $CFG_IM"
6236 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6238 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6239 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6240 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6241 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6242 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6243 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6244 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6245 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6246 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6249 if [ "$CFG_OPENSSL" = "yes" ]; then
6250 OPENSSL_LINKAGE="(run-time)"
6251 elif [ "$CFG_OPENSSL" = "linked" ]; then
6252 OPENSSL_LINKAGE="(linked)"
6254 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6255 echo "Alsa support ........... $CFG_ALSA"
6256 if [ "$BUILD_ON_MAC" = "yes" ]; then
6257 echo "CoreWlan support ....... $CFG_COREWLAN"
6259 echo "libICU support ......... $CFG_ICU"
6260 echo "PCRE support ........... $CFG_PCRE"
6261 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6262 echo "Xcb support ............ limited (old version)"
6264 echo "Xcb support ............ $CFG_XCB"
6266 echo "Xrender support ........ $CFG_XRENDER"
6267 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6268 echo "XInput2 support ........ $CFG_XINPUT2"
6270 echo "EGLFS support .......... $CFG_EGLFS"
6271 echo "DirectFB support ....... $CFG_DIRECTFB"
6272 echo "LinuxFB support ........ $CFG_LINUXFB"
6273 echo "KMS support ............ $CFG_KMS"
6276 # complain about not being able to use dynamic plugins if we are using a static build
6277 if [ "$CFG_SHARED" = "no" ]; then
6279 echo "WARNING: Using static linking will disable the use of dynamically"
6280 echo "loaded plugins. Make sure to import all needed static plugins,"
6281 echo "or compile needed modules into the library."
6284 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6286 echo "NOTE: When linking against OpenSSL, you can override the default"
6287 echo "library names through OPENSSL_LIBS."
6289 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6293 exec 1>&3 3>&- # restore stdout
6294 cat $outpath/config.summary # display config feedback to user
6296 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6298 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6299 echo "if you want a pure debug build."
6304 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6309 #-------------------------------------------------------------------------------
6310 # build makefiles based on the configuration
6311 #-------------------------------------------------------------------------------
6313 if [ "$CFG_PROCESS" != "no" ]; then
6315 if [ "$CFG_PROCESS" = "full" ]; then
6316 echo "Creating makefiles. Please wait..."
6317 "$outpath/bin/qmake" -r "$relpath"
6320 "$outpath/bin/qmake" "$relpath"
6323 if [ "$OPT_FAST" = "yes" ]; then
6325 for part in $CFG_BUILD_PARTS; do
6327 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6330 if [ "x$PART_ROOTS" != "x" ]; then
6332 echo "Creating stub makefiles. Please wait..."
6333 QMAKE="$outpath/bin/qmake"
6334 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6335 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6337 test -f "$outpath/$d/Makefile" && continue
6338 echo " for $relpath/$p"
6340 mkdir -p "$outpath/$d" || exit
6341 cat > "$outpath/$d/Makefile" <<EOF || exit
6342 # $outpath/$d/Makefile: generated by configure
6344 # WARNING: This makefile will be replaced with a real makefile.
6345 # All changes made to this file will be lost.
6350 all clean install qmake first Makefile: FORCE
6351 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6361 #-------------------------------------------------------------------------------
6362 # check for platforms that we don't yet know about
6363 #-------------------------------------------------------------------------------
6364 if [ "$CFG_ARCH" = "unknown" ]; then
6367 NOTICE: configure was unable to determine the architecture
6368 for the $XQMAKESPEC target.
6370 Qt will not use a specialized implementation for any atomic
6371 operations. Instead a generic implemention based on either GCC
6372 intrinsics or C++11 std::atomic<T> will be used (when
6373 available). The generic implementations are generally as fast
6374 as and always as safe as a specialized implementation.
6376 If no generic implementation is available, Qt will use a
6377 fallback UNIX implementation which uses a single
6378 pthread_mutex_t to protect all atomic operations. This
6379 implementation is the slow (but safe) fallback implementation
6380 for architectures Qt does not yet support.
6384 #-------------------------------------------------------------------------------
6385 # check if the user passed the -no-zlib option, which is no longer supported
6386 #-------------------------------------------------------------------------------
6387 if [ -n "$ZLIB_FORCED" ]; then
6388 which_zlib="supplied"
6389 if [ "$CFG_ZLIB" = "system" ]; then
6395 NOTICE: The -no-zlib option was supplied but is no longer
6398 Qt now requires zlib support in all builds, so the -no-zlib
6399 option was ignored. Qt will be built using the $which_zlib
6404 #-------------------------------------------------------------------------------
6405 # check if the user passed the obsoleted -wayland or -no-wayland flag
6406 #-------------------------------------------------------------------------------
6407 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6410 NOTICE: The -wayland and -no-wayland flags are now obsolete
6412 All configuring of QtWayland plugin and QtCompositor happens in the module
6416 #-------------------------------------------------------------------------------
6417 # check if the user passed the obsoleted -arch or -host-arch options
6418 #-------------------------------------------------------------------------------
6419 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6422 NOTICE: The -arch and -host-arch options are obsolete.
6424 Qt now detects the target and host architectures based on compiler
6425 output. Qt will be built using $CFG_ARCH for the target architecture
6426 and $CFG_HOST_ARCH for the host architecture (note that these two
6427 will be the same unless you are cross-compiling).
6431 #-------------------------------------------------------------------------------
6432 # finally save the executed command to another script
6433 #-------------------------------------------------------------------------------
6434 if [ `basename $0` != "config.status" ]; then
6435 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6437 # add the system variables
6438 for varname in $SYSTEM_VARIABLES; do
6440 'if [ -n "\$'${varname}'" ]; then
6441 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6446 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6448 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6449 echo "#!/bin/sh" > "$outpath/config.status"
6450 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6451 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6452 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6453 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6454 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6455 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6456 echo "else" >> "$outpath/config.status"
6457 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6458 echo "fi" >> "$outpath/config.status"
6459 chmod +x "$outpath/config.status"
6462 if [ -n "$RPATH_MESSAGE" ]; then
6464 echo "$RPATH_MESSAGE"
6467 MAKE=`basename "$MAKE"`
6469 echo Qt is now configured for building. Just run \'$MAKE\'.
6470 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6471 echo Once everything is built, Qt is installed.
6472 echo You should not run \'$MAKE install\'.
6474 echo Once everything is built, you must run \'$MAKE install\'.
6475 echo Qt will be installed into $QT_INSTALL_PREFIX
6478 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.