2 #############################################################################
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia. For licensing terms and
15 ## conditions see http://qt.digia.com/licensing. For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file. Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights. These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 compilerSupportsFlag()
229 cat >conftest.cpp <<EOF
230 int main() { return 0; }
232 "$@" -o conftest-out.o conftest.cpp
234 rm -f conftest.cpp conftest-out.o
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag $compiler $lflags >/dev/null 2>&1
251 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 #-------------------------------------------------------------------------------
399 #-------------------------------------------------------------------------------
403 EditionString=Commercial
407 # parse the arguments, setting things to "yes" or "no"
408 while [ "$#" -gt 0 ]; do
412 #Autoconf style options
414 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
418 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
422 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
426 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
429 -h|help|--help|-help)
430 if [ "$VAL" = "yes" ]; then
432 COMMERCIAL_USER="no" #doesn't matter we will display the help
435 COMMERCIAL_USER="no" #doesn't matter we will display the help
439 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
443 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
450 if [ "$UNKNOWN_ARG" = "yes" ]; then
462 COMMERCIAL_USER="yes"
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
478 echo "Which edition of Qt do you want to use ?"
480 echo "Type 'c' if you want to use the Commercial Edition."
481 echo "Type 'o' if you want to use the Open Source Edition."
485 if [ "$commercial" = "c" ]; then
486 COMMERCIAL_USER="yes"
488 elif [ "$commercial" = "o" ]; then
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496 # Commercial preview release
497 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
500 QT_EDITION="QT_EDITION_DESKTOP"
501 LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503 # one of commercial editions
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
506 # read in the license file
507 if [ -f "$LICENSE_FILE" ]; then
508 . "$LICENSE_FILE" >/dev/null 2>&1
509 if [ -z "$LicenseKeyExt" ]; then
511 echo "You are using an old license file."
513 echo "Please install the license file supplied by Digia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please use the contact form at http://qt.digia.com/contact-us"
621 echo "to upgrade your license to include the $Platform platform, or install"
622 echo "the Qt Open Source Edition if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "mac fusion windows"
732 # QTDIR may be set and point to an old or system-wide Qt installation
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
742 CFG_GUI=auto # (yes|no|auto)
748 CFG_FORCEDEBUGINFO=no
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
781 CFG_AUDIO_BACKEND=auto
784 CFG_JAVASCRIPTCORE_JIT=auto
786 CFG_STACK_PROTECTOR_STRONG=auto
788 CFG_SYSTEM_PROXIES=no
790 # Target architecture
793 # Host architecture, same as CFG_ARCH when not cross-compiling
795 CFG_HOST_CPUFEATURES=
796 # Set when the -arch or -host-arch arguments are used
797 OPT_OBSOLETE_HOST_ARG=no
811 CFG_OBSOLETE_WAYLAND=no
823 CFG_SEPARATE_DEBUG_INFO=no
824 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
825 CFG_REDUCE_EXPORTS=auto
833 CFG_REDUCE_RELOCATIONS=auto
834 CFG_ACCESSIBILITY=auto
839 CFG_CLOCK_GETTIME=auto
840 CFG_CLOCK_MONOTONIC=auto
849 CFG_PREFIX_INSTALL=yes
858 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
859 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
864 OPT_CONFIRM_LICENSE=no
877 QPA_PLATFORM_GUARD=yes
880 # initalize variables used for installation
889 QT_INSTALL_TRANSLATIONS=
894 CFG_GCC_SYSROOT="yes"
899 #flags for SQL drivers
907 QT_LFLAGS_ODBC="-lodbc"
910 # flags for libdbus-1
914 # flags for Glib (X11 only)
918 # flags for GStreamer (X11 only)
922 # default qpa platform
923 QT_QPA_DEFAULT_PLATFORM=
925 #-------------------------------------------------------------------------------
926 # check SQL drivers available in this package
927 #-------------------------------------------------------------------------------
929 # opensource version removes some drivers, so force them to be off
935 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
936 for a in "$relpath/src/plugins/sqldrivers/"*; do
938 base_a=`basename "$a"`
939 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
940 eval "CFG_SQL_${base_a}=auto"
945 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
946 if [ -d "$relpath/src/plugins/imageformats" ]; then
947 for a in "$relpath/src/plugins/imageformats/"*; do
949 base_a=`basename "$a"`
950 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
955 #-------------------------------------------------------------------------------
956 # parse command line arguments
957 #-------------------------------------------------------------------------------
959 # parse the arguments, setting things to "yes" or "no"
960 while [ "$#" -gt 0 ]; do
964 #Autoconf style options
966 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
970 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
974 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
975 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
978 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
982 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
986 -no-*-*|-plugin-*-*|-qt-*-*)
987 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
988 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
992 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
995 #Qt style options that pass an argument
996 -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa|-qconfig)
997 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1001 #Qt style complex options in one command
1002 -enable-*|-disable-*)
1003 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1004 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1014 #Qt Builtin/System style options
1015 -no-*|-system-*|-qt-*)
1016 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1017 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1019 #Options that cannot be generalized
1026 # this option may or may not be followed by an argument
1027 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1036 # this option may or may not be followed by an argument
1037 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1045 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1046 # this option may or may not be followed by an argument
1047 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1066 if [ "$1" = "-D" ]; then
1070 VAL=`echo $1 | sed 's,-D,,'`
1075 # this option may or may not be followed by an argument
1076 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1085 if [ "$1" = "-I" ]; then
1089 VAL=`echo $1 | sed 's,-I,,'`
1094 if [ "$1" = "-L" ]; then
1098 VAL=`echo $1 | sed 's,-L,,'`
1103 if [ "$1" = "-R" ]; then
1107 VAL=`echo $1 | sed 's,-R,,'`
1112 if [ "$1" = "-l" ]; then
1116 VAL=`echo $1 | sed 's,-l,,'`
1121 if [ "$1" = "-F" ]; then
1125 VAL=`echo $1 | sed 's,-F,,'`
1130 if [ "$1" = "-fw" ]; then
1134 VAL=`echo $1 | sed 's,-fw,,'`
1141 #General options, including Qt style yes options
1143 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1150 if [ "$UNKNOWN_ARG" = "yes" ]; then
1151 echo "$1: unknown argument"
1162 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1163 CFG_ACCESSIBILITY="$VAL"
1172 CFG_USE_GNUMAKE="$VAL"
1175 CFG_MYSQL_CONFIG="$VAL"
1178 QT_INSTALL_PREFIX="$VAL"
1181 QT_HOST_PREFIX="$VAL"
1190 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1191 CFG_PKGCONFIG="$VAL"
1197 CFG_PKGCONFIG="force"
1200 QT_INSTALL_DOCS="$VAL"
1203 QT_INSTALL_HEADERS="$VAL"
1206 QT_INSTALL_PLUGINS="$VAL"
1209 QT_INSTALL_IMPORTS="$VAL"
1212 QT_INSTALL_DATA="$VAL"
1215 QT_INSTALL_LIBS="$VAL"
1224 QT_INSTALL_TRANSLATIONS="$VAL"
1226 sysconfdir|settingsdir)
1227 QT_INSTALL_SETTINGS="$VAL"
1230 QT_INSTALL_EXAMPLES="$VAL"
1233 QT_INSTALL_TESTS="$VAL"
1242 CFG_GCC_SYSROOT="$VAL"
1245 QT_INSTALL_BINS="$VAL"
1248 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1255 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1256 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1257 [ "$VAL" = "es2" ]; then
1264 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1271 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1274 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1277 if [ "$BUILD_ON_MAC" = "yes" ]; then
1284 OPT_OBSOLETE_HOST_ARG=yes
1287 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1288 CFG_MAC_HARFBUZZ="$VAL"
1295 if [ "$BUILD_ON_MAC" = "yes" ]; then
1296 CFG_FRAMEWORK="$VAL"
1302 if [ "$VAL" = "yes" ]; then
1304 QMakeVar add QMAKE_CFLAGS -pg
1305 QMakeVar add QMAKE_CXXFLAGS -pg
1306 QMakeVar add QMAKE_LFLAGS -pg
1307 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1313 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1320 if [ "$VAL" = "yes" ]; then
1321 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1326 # keep compatibility with old platform names
1332 PLATFORM=hpux-acc-o64
1335 PLATFORM=hpux-acc-64
1338 PLATFORM=hpux-acc-64
1350 PLATFORM=reliant-cds-64
1353 PLATFORM=solaris-cc-64
1356 PLATFORM=unixware-cc
1359 PLATFORM=unixware-g++
1362 PLATFORM=unixware-cc
1365 PLATFORM=unixware-g++
1371 i386) NATIVE_64_ARCH="x86_64" ;;
1372 powerpc) NATIVE_64_ARCH="ppc64" ;;
1373 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1375 if [ ! -z "$NATIVE_64_ARCH" ]; then
1376 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1383 case `basename "$XPLATFORM"` in win32-g++*)
1386 CFG_REDUCE_EXPORTS=no
1391 XPLATFORM=`resolveDeviceMkspec $VAL`
1392 [ "$XPLATFORM" = "undefined" ] && exit 101
1395 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1396 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1397 DeviceVar set $DEV_VAR $DEV_VAL
1400 QT_QPA_DEFAULT_PLATFORM="$VAL"
1403 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1404 CFG_DEBUG_RELEASE="$VAL"
1410 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1411 CFG_RELEASE_QMAKE="$VAL"
1417 if [ "$VAL" = "yes" ]; then
1419 elif [ "$VAL" = "no" ]; then
1426 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1427 CFG_PREFIX_INSTALL="$VAL"
1436 CFG_FORCEDEBUGINFO="$VAL"
1438 developer-build|commercial|opensource)
1439 # These switches have been dealt with already
1442 if [ "$VAL" = "yes" ]; then
1444 elif [ "$VAL" = "no" ]; then
1451 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1452 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1458 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1459 if [ "$VAL" = "no" ]; then
1460 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1461 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1462 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1468 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1475 if [ "$VAL" = "no" ]; then
1482 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1490 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1497 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1504 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1511 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1518 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1525 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1532 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1539 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1540 CFG_PRECOMPILE="$VAL"
1545 separate-debug-info)
1546 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1547 CFG_SEPARATE_DEBUG_INFO="$VAL"
1548 elif [ "$VAL" = "nocopy" ] ; then
1549 CFG_SEPARATE_DEBUG_INFO="yes"
1550 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1556 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1557 CFG_REDUCE_EXPORTS="$VAL"
1563 if [ "$VAL" = "no" ]; then
1570 if [ "$VAL" = "no" ]; then
1577 if [ "$VAL" = "no" ]; then
1584 if [ "$VAL" = "no" ]; then
1591 if [ "$VAL" = "no" ]; then
1598 if [ "$VAL" = "no" ]; then
1605 if [ "$VAL" = "no" ]; then
1615 if [ "$VAL" = "no" ]; then
1622 if [ "$VAL" = "no" ]; then
1629 if [ "$VAL" = "no" ]; then
1630 CFG_MIPS_DSPR2="$VAL"
1636 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1637 CFG_REDUCE_RELOCATIONS="$VAL"
1643 [ "$VAL" = "qt" ] && VAL=yes
1644 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1649 # No longer supported:
1650 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1653 if [ "$VAL" = "system" ]; then
1660 [ "$VAL" = "yes" ] && VAL=qt
1661 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1668 [ "$VAL" = "yes" ] && VAL=qt
1669 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1676 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1683 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1690 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1697 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1704 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1711 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1712 CFG_FONTCONFIG="$VAL"
1718 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1725 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ] || [ "$VAL" = "qt" ]; then
1727 if [ "$VAL" = "yes" ]; then
1735 CFG_OBSOLETE_WAYLAND=yes
1738 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1745 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1752 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1759 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1766 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1773 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1780 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1787 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1794 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1801 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1808 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1809 CFG_GSTREAMER="$VAL"
1815 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1816 CFG_QGTKSTYLE="$VAL"
1822 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1825 if [ "$VAL" = "no" ]; then
1833 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1835 elif [ "$VAL" = "no" ]; then
1842 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1843 QPA_PLATFORM_GUARD="$VAL"
1849 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1851 elif [ "$VAL" = "runtime" ]; then
1858 if [ "$VAL" = "yes" ]; then
1865 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1872 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1873 CFG_LARGEFILE="$VAL"
1879 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1886 if [ "$VAL" = "yes" ]; then
1887 CFG_OPENSSL="linked"
1893 if [ "$VAL" = "yes" ]; then
1896 if [ "$VAL" = "no" ]; then
1904 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1905 CFG_JAVASCRIPTCORE_JIT="$VAL"
1911 if [ "$VAL" = "yes" ]; then
1912 OPT_CONFIRM_LICENSE="$VAL"
1918 if [ "$VAL" = "yes" ]; then
1924 sql-*|imageformat-*)
1925 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1926 # if autoconf style options were used, $VAL can be "yes" or "no"
1927 [ "$VAL" = "yes" ] && VAL=qt
1928 # now $VAL should be "no", "qt", or "plugin"... double-check
1929 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1932 # now $VAL is "no", "qt", or "plugin"
1934 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1935 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1937 # Grab the available values
1940 avail="$CFG_SQL_AVAILABLE"
1943 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1944 if [ "$OPT" != "plugin" ]; then
1945 # png is always built in
1951 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1955 # Check that that user's value is available.
1958 if [ "$VAL" = "$d" ]; then
1963 [ "$found" = yes ] || ERROR=yes
1965 if [ "$VAR" = "sql" ]; then
1966 # set the CFG_SQL_driver
1967 eval "CFG_SQL_$VAL=\$OPT"
1969 elif [ "$VAR" = "imageformat" ]; then
1970 [ "$OPT" = "qt" ] && OPT=yes
1971 VAL="`echo $VAL |tr a-z A-Z`"
1972 eval "CFG_$VAL=$OPT"
1976 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1977 if [ "$OPT" = "plugin" ]; then
1980 QMakeVar add "${VAR}s" "${VAL}"
1981 elif [ "$OPT" = "no" ]; then
1982 PLUG_VAR="${VAR}-plugin"
1984 QMakeVar del "${IN_VAR}s" "$VAL"
1985 QMakeVar del "${PLUG_VAR}s" "$VAL"
1987 if [ "$ERROR" = "yes" ]; then
1988 echo "$CURRENT_OPT: unknown argument"
1993 if [ "$VAL" = "yes" ]; then
1994 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1995 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1999 elif [ "$VAL" = "no" ]; then
2000 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
2001 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2010 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2017 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2024 DEFINES="$DEFINES \"$VAL\""
2025 D_FLAGS="$D_FLAGS -D\"$VAL\""
2028 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2031 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2034 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2037 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2040 if [ "$BUILD_ON_MAC" = "yes" ]; then
2041 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2042 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2048 if [ "$BUILD_ON_MAC" = "yes" ]; then
2049 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2055 W_FLAGS="$W_FLAGS \"${VAL}\""
2070 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2071 CFG_AUDIO_BACKEND="$VAL"
2077 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2084 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2085 CFG_FORCE_ASSERTS="$VAL"
2091 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2098 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2105 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2106 CFG_SYSTEM_PROXIES="$VAL"
2115 if [ "$UNKNOWN_OPT" = "yes" ]; then
2116 echo "${CURRENT_OPT}: invalid command-line switch"
2122 # update QT_CONFIG to show our current predefined configuration
2123 case "$CFG_QCONFIG" in
2124 minimal|small|medium|large|full)
2125 # these are a sequence of increasing functionality
2126 for c in minimal small medium large full; do
2127 QT_CONFIG="$QT_CONFIG $c-config"
2128 [ "$CFG_QCONFIG" = $c ] && break
2132 # not known to be sufficient for anything
2133 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2134 echo >&2 "Error: configuration file not found:"
2135 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2137 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2142 #-------------------------------------------------------------------------------
2143 # build tree initialization
2144 #-------------------------------------------------------------------------------
2146 # where to find which..
2147 unixtests="$relpath/config.tests/unix"
2148 mactests="$relpath/config.tests/mac"
2149 WHICH="$unixtests/which.test"
2151 PERL=`$WHICH perl 2>/dev/null`
2153 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2155 for e in gawk nawk awk; do
2156 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2163 PERL="/usr/bin/perl"
2164 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2168 ### skip this if the user just needs help...
2169 if [ "$OPT_HELP" != "yes" ]; then
2171 # is this a shadow build?
2172 if [ "$OPT_SHADOW" = "maybe" ]; then
2174 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2175 if [ -h "$outpath" ]; then
2176 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2182 if [ "$OPT_SHADOW" = "yes" ]; then
2183 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2184 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2185 echo >&2 "Cannot proceed."
2188 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2191 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2193 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2194 echo "Qt can be built in release mode with separate debug information, so"
2195 echo "-debug-and-release is not necessary anymore"
2199 if [ "$CFG_SILENT" = "yes" ]; then
2200 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2203 # if the source tree is different from the build tree,
2204 # symlink or copy part of the sources
2205 if [ "$OPT_SHADOW" = "yes" ]; then
2206 echo "Preparing build tree..."
2208 if [ -z "$PERL" ]; then
2210 echo "You need perl in your PATH to make a shadow build."
2211 echo "Cannot proceed."
2215 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2217 # make a syncqt script that can be used in the shadow
2218 rm -f "$outpath/bin/syncqt"
2219 if [ -x "$relpath/bin/syncqt" ]; then
2220 mkdir -p "$outpath/bin"
2221 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2222 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2223 chmod 755 "$outpath/bin/syncqt"
2226 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2227 rm -f "$outpath/bin/$i"
2228 if [ -x "$relpath/bin/$i" ]; then
2229 mkdir -p "$outpath/bin"
2230 echo "#!/bin/sh" >"$outpath/bin/$i"
2231 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2232 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2233 chmod 755 "$outpath/bin/$i"
2237 # save a pre-existing mkspecs/modules dir
2238 test -d "$outpath/mkspecs/modules" && \
2239 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2240 # ditto for mkspecs/modules-inst
2241 test -d "$outpath/mkspecs/modules-inst" && \
2242 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2244 # symlink the mkspecs directory
2245 mkdir -p "$outpath/mkspecs"
2246 rm -rf "$outpath"/mkspecs/*
2247 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2251 rm -rf "$outpath/mkspecs/$1"
2252 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2253 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2256 # Special case for mkspecs/features directory.
2257 # To be able to place .prf files into a shadow build directory,
2258 # we're creating links for files only. The directory structure is reproduced.
2259 ShadowMkspecs features
2261 # The modules dir is special, too.
2262 if test -d "$outpath/mkspecs-modules"; then
2263 rm -rf "$outpath/mkspecs/modules"
2264 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2266 ShadowMkspecs modules
2269 # The modules-inst dir is not quite as special, but still.
2270 if test -d "$outpath/mkspecs-modules-inst"; then
2271 rm -rf "$outpath/mkspecs/modules-inst"
2272 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2275 # Prepare doc directory
2276 mkdir -p "$outpath/doc"
2277 ln -f -s "$relpath"/doc/global "$outpath/doc"
2280 # symlink fonts to be able to run application from build directory
2281 if [ ! -d "${outpath}/lib/fonts" ]; then
2282 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2283 mkdir -p "${outpath}/lib"
2284 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2288 if [ "$OPT_FAST" = "auto" ]; then
2289 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2296 # find a make command
2297 if [ -z "$MAKE" ]; then
2299 for mk in gmake make; do
2300 if "$WHICH" $mk >/dev/null 2>&1; then
2305 if [ -z "$MAKE" ]; then
2306 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2307 echo >&2 "Cannot proceed."
2310 # export MAKE, we need it later in the config.tests
2316 #-------------------------------------------------------------------------------
2317 # auto-detect all that hasn't been specified in the arguments
2318 #-------------------------------------------------------------------------------
2320 if [ -z "$PLATFORM" ]; then
2322 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2324 OSX_VERSION=`uname -r | cut -d. -f1`
2325 # Select compiler. Use g++ unless we find a usable Clang version
2327 if [ "$OSX_VERSION" -ge 12 ]; then
2328 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2330 elif [ "$OSX_VERSION" -eq 11 ]; then
2331 # We're on Lion. Check if we have a supported Clang version
2332 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2334 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2340 #PLATFORM=aix-g++-64
2342 #PLATFORM=aix-xlc-64
2344 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2354 # PLATFORM=dynix-g++
2360 PLATFORM=freebsd-g++
2362 - Also available for FreeBSD: freebsd-icc
2366 PLATFORM=openbsd-g++
2377 #PLATFORM=irix-cc-64
2379 - Also available for IRIX: irix-g++ irix-cc-64
2383 case "$UNAME_MACHINE" in
2385 #PLATFORM=hpuxi-acc-32
2386 PLATFORM=hpuxi-acc-64
2388 - Also available for HP-UXi: hpuxi-acc-32
2394 #PLATFORM=hpux-acc-64
2396 #PLATFORM=hpux-acc-o64
2398 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2407 - Also available for Tru64: tru64-g++
2411 case "$UNAME_MACHINE" in
2413 PLATFORM=linux-g++-64
2420 - Also available for Linux: linux-kcc linux-icc linux-cxx
2424 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2425 PLATFORM="solaris-g++"
2427 #PLATFORM=solaris-g++
2429 #PLATFORM=solaris-cc64
2432 - Also available for Solaris: solaris-g++ solaris-cc-64
2435 ReliantUNIX-*:*|SINIX-*:*)
2436 PLATFORM=reliant-cds
2437 #PLATFORM=reliant-cds-64
2439 - Also available for Reliant UNIX: reliant-cds-64
2449 #PLATFORM=unixware-g++
2450 PLATFORM=unixware-cc
2452 - Also available for OpenUNIX: unixware-g++
2456 #PLATFORM=unixware-g++
2457 PLATFORM=unixware-cc
2459 - Also available for UnixWare: unixware-g++
2466 - Also available for SCO OpenServer: sco-g++
2470 PLATFORM=unixware-g++
2473 PLATFORM=unsupported/qnx-g++
2476 if [ "$OPT_HELP" != "yes" ]; then
2478 echo " The build script does not currently recognize all" >&2
2479 echo " platforms supported by Qt." >&2
2480 echo " Rerun this script with a -platform option listed to" >&2
2481 echo " set the system/compiler combination you use." >&2
2488 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2490 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2491 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2492 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2494 if [ -d "$PLATFORM" ]; then
2495 QMAKESPEC="$PLATFORM"
2497 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2499 if [ -d "$XPLATFORM" ]; then
2500 XQMAKESPEC="$XPLATFORM"
2502 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2504 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2505 QT_CROSS_COMPILE=yes
2506 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2507 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2510 if [ "$BUILD_ON_MAC" = "yes" ]; then
2511 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2513 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2514 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2515 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2516 echo " built with 'macx-g++'" >&2
2522 # check specified platforms are supported
2523 if [ '!' -d "$QMAKESPEC" ]; then
2525 echo " The specified system/compiler is not supported:"
2529 echo " Please see the README file for a complete list."
2533 if [ '!' -d "$XQMAKESPEC" ]; then
2535 echo " The specified system/compiler is not supported:"
2539 echo " Please see the README file for a complete list."
2543 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2545 echo " The specified system/compiler port is not complete:"
2547 echo " $XQMAKESPEC/qplatformdefs.h"
2549 echo " Please use the contact form at http://qt.digia.com/contact-us"
2554 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2555 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2556 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2557 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2558 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2562 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2563 case `basename "$XPLATFORM"` in
2566 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2568 echo "Please use the contact form at http://qt.digia.com/contact-us"
2569 echo "to upgrade your license to include this platform, or install"
2570 echo "the Qt Open Source Edition if you intend to develop free software."
2576 #-------------------------------------------------------------------------------
2577 # tests that don't need qmake (must be run before displaying help)
2578 #-------------------------------------------------------------------------------
2580 # detect build style
2581 if [ "$CFG_DEBUG" = "auto" ]; then
2582 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2583 CFG_DEBUG_RELEASE=yes
2585 elif [ "$CFG_DEV" = "yes" ]; then
2586 CFG_DEBUG_RELEASE=no
2589 CFG_DEBUG_RELEASE=no
2593 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2594 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2597 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2598 QT_CONFIG="$QT_CONFIG force_debug_info"
2601 # pass on $CFG_SDK to the arch/configure tests.
2602 if [ -n "$CFG_SDK" ]; then
2603 MAC_SDK_FLAG="-sdk $CFG_SDK"
2608 # find the default framework value
2609 if [ "$BUILD_ON_MAC" = "yes" ]; then
2610 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2611 CFG_FRAMEWORK="$CFG_SHARED"
2612 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2614 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2622 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2624 TEST_COMPILER=$QMAKE_CONF_COMPILER
2625 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2626 if [ -z "$TEST_COMPILER" ]; then
2627 echo "ERROR: Cannot set the compiler for the configuration tests"
2631 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2634 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2635 if [ -n "$GCC_MACHINE_DUMP" ]; then
2636 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2639 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2640 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2644 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2646 # auto-detect precompiled header support
2647 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2648 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2655 # auto-detect support for separate debug info in objcopy
2656 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2657 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2658 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2659 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2660 CFG_SEPARATE_DEBUG_INFO=no
2664 # binutils on HP-UX is buggy; default to no.
2665 CFG_SEPARATE_DEBUG_INFO=no
2668 CFG_SEPARATE_DEBUG_INFO=yes
2674 # auto-detect -fvisibility support
2675 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2676 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2677 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2678 echo "-reduce-exports was requested but this compiler does not support it"
2679 echo "Re-run configure with -v for more information"
2682 CFG_REDUCE_EXPORTS=no
2684 CFG_REDUCE_EXPORTS=yes
2688 # auto-detect -fstack-protector-strong support (for QNX only currently)
2689 if [ "$XPLATFORM_QNX" = "yes" ]; then
2690 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2691 CFG_STACK_PROTECTOR_STRONG=yes
2693 CFG_STACK_PROTECTOR_STRONG=no
2696 CFG_STACK_PROTECTOR_STRONG=no
2699 # detect the availability of the -Bsymbolic-functions linker optimization
2700 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2701 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2702 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2703 echo "-reduce-relocations was requested but this compiler does not support it"
2704 echo "Re-run configure with -v for more information"
2707 CFG_REDUCE_RELOCATIONS=no
2709 CFG_REDUCE_RELOCATIONS=yes
2713 # auto-detect GNU make support
2714 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2718 # find the default framework value
2719 if [ "$BUILD_ON_MAC" = "yes" ]; then
2720 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2721 CFG_FRAMEWORK="$CFG_SHARED"
2722 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2724 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2732 # auto-detect default include and library search paths
2733 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2734 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2735 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2736 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2737 /^End of search/ { yup=0 }
2738 yup { print substr($0, 2) }
2739 /^\#include </ { yup=1 }
2741 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2743 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2746 #setup the build parts
2747 if [ -z "$CFG_BUILD_PARTS" ]; then
2748 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2750 # build tests by default, if a developer build
2751 if [ "$CFG_DEV" = "yes" ]; then
2752 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2755 # don't build tools by default when cross-compiling
2756 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2757 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2760 for nobuild in $CFG_NOBUILD_PARTS; do
2761 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2763 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2765 # echo "WARNING: libs is a required part of the build."
2767 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2770 #-------------------------------------------------------------------------------
2771 # post process QT_INSTALL_* variables
2772 #-------------------------------------------------------------------------------
2774 if [ -z "$QT_INSTALL_PREFIX" ]; then
2775 if [ "$CFG_DEV" = "yes" ]; then
2776 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2778 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2781 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2783 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2784 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2785 if [ "$BUILD_ON_MAC" = "yes" ]; then
2786 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2789 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2792 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2794 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2795 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2796 if [ "$BUILD_ON_MAC" = "yes" ]; then
2797 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2802 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2805 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2807 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2808 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2809 if [ "$BUILD_ON_MAC" = "yes" ]; then
2810 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2811 QT_INSTALL_LIBS="/Library/Frameworks"
2815 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2817 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2819 if [ -z "$QT_INSTALL_BINS" ]; then #default
2820 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2821 if [ "$BUILD_ON_MAC" = "yes" ]; then
2822 QT_INSTALL_BINS="/Developer/Applications/Qt"
2825 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2827 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2829 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2830 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2831 if [ "$BUILD_ON_MAC" = "yes" ]; then
2832 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2835 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2837 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2839 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2840 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2841 if [ "$BUILD_ON_MAC" = "yes" ]; then
2842 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2845 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2847 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2849 if [ -z "$QT_INSTALL_DATA" ]; then #default
2850 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2852 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2854 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2855 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2857 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2859 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2860 if [ "$BUILD_ON_MAC" = "yes" ]; then
2861 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2863 QT_INSTALL_SETTINGS=/etc/xdg
2866 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2868 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2869 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2870 if [ "$BUILD_ON_MAC" = "yes" ]; then
2871 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2874 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2876 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2879 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2880 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2881 if [ "$BUILD_ON_MAC" = "yes" ]; then
2882 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2885 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2887 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2889 #------- host paths --------
2891 if [ -z "$QT_HOST_PREFIX" ]; then
2892 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2895 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2899 if [ -z "$QT_HOST_BINS" ]; then #default
2901 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2902 if [ "$BUILD_ON_MAC" = "yes" ]; then
2903 QT_HOST_BINS="/Developer/Applications/Qt"
2906 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2908 QT_HOST_BINS="$QT_INSTALL_BINS"
2911 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2913 if [ -z "$QT_HOST_DATA" ]; then #default
2915 QT_HOST_DATA="$QT_HOST_PREFIX"
2917 QT_HOST_DATA="$QT_INSTALL_DATA"
2920 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2923 #-------------------------------------------------------------------------------
2924 # help - interactive parts of the script _after_ this section please
2925 #-------------------------------------------------------------------------------
2927 # next, emit a usage message if something failed.
2928 if [ "$OPT_HELP" = "yes" ]; then
2929 [ "x$ERROR" = "xyes" ] && echo
2930 if [ "$CFG_NIS" = "no" ]; then
2937 if [ "$CFG_CUPS" = "no" ]; then
2944 if [ "$CFG_ICONV" = "no" ]; then
2951 if [ "$CFG_LARGEFILE" = "no" ]; then
2958 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2966 if [ "$CFG_XCB" = "no" ]; then
2974 if [ "$CFG_EGLFS" = "no" ]; then
2982 if [ "$CFG_DIRECTFB" = "no" ]; then
2990 if [ "$CFG_LINUXFB" = "no" ]; then
2998 if [ "$CFG_KMS" = "no" ]; then
3006 if [ "$CFG_XINPUT2" = "no" ]; then
3014 if [ "$CFG_DBUS" = "no" ]; then
3022 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3030 if [ "$CFG_GLIB" = "no" ]; then
3039 Usage: $relconf [options]
3041 Installation options:
3043 These are optional, but you may specify install directories.
3045 -prefix <dir> ...... This will install everything relative to <dir>
3046 (default $QT_INSTALL_PREFIX)
3048 -hostprefix [dir] .. Tools and libraries needed when developing
3049 applications are installed in [dir]. If [dir] is
3050 not given, the current build directory will be used.
3053 * -prefix-install .... Force a sandboxed "local" installation of
3054 Qt. This will install into
3055 $QT_INSTALL_PREFIX, if this option is
3056 disabled then some platforms will attempt a
3057 "system" install by placing default values
3058 in a system location other than PREFIX.
3060 You may use these to separate different parts of the install:
3062 -bindir <dir> ......... Executables will be installed to <dir>
3063 (default PREFIX/bin)
3064 -libdir <dir> ......... Libraries will be installed to <dir>
3065 (default PREFIX/lib)
3066 -docdir <dir> ......... Documentation will be installed to <dir>
3067 (default PREFIX/doc)
3068 -headerdir <dir> ...... Headers will be installed to <dir>
3069 (default PREFIX/include)
3070 -plugindir <dir> ...... Plugins will be installed to <dir>
3071 (default PREFIX/plugins)
3072 -importdir <dir> ...... Imports for QML will be installed to <dir>
3073 (default PREFIX/imports)
3074 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3076 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3077 (default PREFIX/translations)
3078 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3079 (default PREFIX/etc/settings)
3080 -examplesdir <dir> .... Examples will be installed to <dir>
3081 (default PREFIX/examples)
3082 -testsdir <dir> ....... Tests will be installed to <dir>
3083 (default PREFIX/tests)
3085 -hostbindir <dir> .. Host executables will be installed to <dir>
3086 (default HOSTPREFIX/bin)
3087 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3088 (default HOSTPREFIX)
3092 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3093 that needs to be evaluated. If the evaluation succeeds, the feature is
3094 included. Here is a short explanation of each option:
3096 * -release ........... Compile and link Qt with debugging turned off.
3097 -debug ............. Compile and link Qt with debugging turned on.
3098 -debug-and-release . Compile and link two versions of Qt, with and without
3099 debugging turned on (Mac only).
3101 -force-debug-info .. Create symbol files for release builds.
3103 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3105 -opensource ........ Compile and link the Open-Source Edition of Qt.
3106 -commercial ........ Compile and link the Commercial Edition of Qt.
3108 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3109 + -c++11 ............. Compile Qt with C++11 support enabled.
3111 * -shared ............ Create and use shared Qt libraries.
3112 -static ............ Create and use static Qt libraries.
3114 * -process ........... Generate only a top-level Makefile.
3115 -fully-process ..... Generate Makefiles for the entire Qt tree.
3116 -dont-process ...... Do not generate any Makefiles.
3118 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3120 -fast .............. Configure Qt quickly by generating Makefiles only for
3121 library and subdirectory targets. All other Makefiles
3122 are created as wrappers, which will in turn run qmake.
3124 -no-largefile ...... Disables large file support.
3125 + -largefile ......... Enables Qt to access files larger than 4 GB.
3127 -no-accessibility .. Do not compile Accessibility support.
3128 + -accessibility ..... Compile Accessibility support.
3130 -no-sql-<driver> ... Disable SQL <driver> entirely.
3131 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3133 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3136 Possible values for <driver>:
3137 [ $CFG_SQL_AVAILABLE ]
3139 -system-sqlite ..... Use sqlite from the operating system.
3141 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3142 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3144 -no-qml-debug ...... Do not build the in-process QML debugging support.
3145 + -qml-debug ......... Build the QML debugging support.
3147 -platform target ... The operating system and compiler you are building
3150 See the README file for a list of supported
3151 operating systems and compilers.
3153 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3154 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3155 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3156 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3157 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3158 -no-avx ............ Do not compile with use of AVX instructions.
3159 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3160 -no-neon ........... Do not compile with use of NEON instructions.
3161 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3162 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3164 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3165 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3167 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3169 -D <string> ........ Add an explicit define to the preprocessor.
3170 -I <string> ........ Add an explicit include path.
3171 -L <string> ........ Add an explicit library path.
3173 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3174 configure determines whether to use pkg-config or not with
3175 some heuristics such as checking the environment variables.
3176 -no-pkg-config ..... Disable use of pkg-config.
3177 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3178 detection heuristic).
3180 -help, -h .......... Display this information.
3182 Third Party Libraries:
3184 -qt-zlib ........... Use the zlib bundled with Qt.
3185 + -system-zlib ....... Use zlib from the operating system.
3186 See http://www.gzip.org/zlib
3188 -no-gif ............ Do not compile GIF reading support.
3190 -no-libpng ......... Do not compile PNG support.
3191 -qt-libpng ......... Use the libpng bundled with Qt.
3192 + -system-libpng ..... Use libpng from the operating system.
3193 See http://www.libpng.org/pub/png
3195 -no-libjpeg ........ Do not compile JPEG support.
3196 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3197 + -system-libjpeg .... Use libjpeg from the operating system.
3198 See http://www.ijg.org
3200 -no-openssl ........ Do not compile support for OpenSSL.
3201 + -openssl ........... Enable run-time OpenSSL support.
3202 -openssl-linked .... Enabled linked OpenSSL support.
3204 -qt-pcre ........... Use the PCRE library bundled with Qt.
3205 + -system-pcre ....... Use the PCRE library from the operating system.
3207 -qt-xcb ............ Use xcb- libraries bundled with Qt.
3208 (libxcb.so will still be used from operating system).
3209 + -system-xcb ........ Use xcb- libraries from the operating system.
3213 -make <part> ....... Add part to the list of parts to be built at make time.
3214 ($QT_DEFAULT_BUILD_PARTS)
3215 -nomake <part> ..... Exclude part from the list of parts to be built.
3217 -no-gui ............ Don't build the QtGui library and dependencies.
3218 + -gui ............... Build the QtGui library and dependencies.
3220 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3221 + -widgets ........... Build the QtWidgets library and dependencies.
3223 -R <string> ........ Add an explicit runtime library path to the Qt
3225 -l <string> ........ Add an explicit library.
3227 -no-rpath .......... Do not use the library install path as a runtime
3229 + -rpath ............. Link Qt libraries and executables using the library
3230 install path as a runtime library path. Equivalent
3231 to -R install_libpath
3233 -continue .......... Continue as far as possible if an error occurs.
3235 -verbose, -v ....... Print verbose information about each step of the
3238 -silent ............ Reduce the build output so that warnings and errors
3239 can be seen more easily.
3241 * -no-optimized-qmake ... Do not build qmake optimized.
3242 -optimized-qmake ...... Build qmake optimized.
3244 $NSN -no-nis ............ Do not compile NIS support.
3245 $NSY -nis ............... Compile NIS support.
3247 $CUN -no-cups ........... Do not compile CUPS support.
3248 $CUY -cups .............. Compile CUPS support.
3249 Requires cups/cups.h and libcups.so.2.
3251 $CIN -no-iconv .......... Do not compile support for iconv(3).
3252 $CIY -iconv ............. Compile support for iconv(3).
3254 -no-icu ............ Do not compile support for ICU libraries.
3255 + -icu ............... Compile support for ICU libraries.
3257 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3258 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3260 $PHN -no-pch ............ Do not use precompiled header support.
3261 $PHY -pch ............... Use precompiled header support.
3263 $DBN -no-dbus ........... Do not compile the QtDBus module.
3264 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3265 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3267 -reduce-relocations ..... Reduce relocations in the libraries through extra
3268 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3269 experimental; needs GNU ld >= 2.18).
3271 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3273 -device <name> ............... Cross-compile for device <name> (experimental)
3274 -device-option <key=value> ... Add device specific options for the device mkspec
3277 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3278 $SBY -separate-debug-info .... Strip debug information into a separate file.
3280 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3281 $XCBY -xcb ............... Compile Xcb support.
3283 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3284 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3286 $DFBN -no-directfb ....... Do not compile DirectFB support.
3287 $DFBY -directfb .......... Compile DirectFB support.
3289 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3290 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3292 $KMSN -no-kms ............ Do not compile KMS support.
3293 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3295 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3297 -xplatform target ... The target platform when cross-compiling.
3299 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3300 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3302 -no-feature-<feature> Do not compile in <feature>.
3303 -feature-<feature> .. Compile in <feature>. The available features
3304 are described in src/corelib/global/qfeatures.txt
3306 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3307 default ($CFG_QCONFIG).
3309 -no-opengl .......... Do not support OpenGL.
3310 -opengl <api> ....... Enable OpenGL support
3311 With no parameter, this will attempt to auto-detect
3312 OpenGL ES 2, or regular desktop OpenGL.
3313 Use es2 for <api> to override auto-detection.
3315 * -no-system-proxies .. Do not use system network proxies by default.
3316 -system-proxies ..... Use system network proxies by default.
3318 $GBN -no-glib ........... Do not compile Glib support.
3319 $GBY -glib .............. Compile Glib support.
3322 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3325 $X2N -no-xinput2......... Do not compile XInput2 support.
3326 $X2Y -xinput2............ Compile XInput2 support.
3332 if [ "$XPLATFORM_QNX" = "yes" ]; then
3335 -no-slog2 .......... Do not compile with slog2 support.
3336 -slog2 ............. Compile with slog2 support.
3342 if [ "$BUILD_ON_MAC" = "yes" ]; then
3347 -Fstring ........... Add an explicit framework path.
3348 -fw string ......... Add an explicit framework.
3350 * -framework ......... Build Qt as a series of frameworks and
3351 link tools against those frameworks.
3352 -no-framework ...... Do not build Qt as a series of frameworks.
3354 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3355 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3357 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3358 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3359 QT_ENABLE_HARFBUZZ environment variable.
3364 [ "x$ERROR" = "xyes" ] && exit 1
3369 # -----------------------------------------------------------------------------
3370 # LICENSING, INTERACTIVE PART
3371 # -----------------------------------------------------------------------------
3374 echo "This is the Qt ${EditionString} Edition."
3377 if [ "$Edition" = "OpenSource" ]; then
3379 echo "You are licensed to use this software under the terms of"
3380 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3381 if [ -f "$relpath/LICENSE.GPL3" ]; then
3382 echo "You are also licensed to use this software under the terms of"
3383 echo "the GNU General Public License (GPL) versions 3."
3389 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3390 echo "You have already accepted the terms of the $LicenseType license."
3393 if [ -f "$relpath/LICENSE.GPL3" ]; then
3394 echo "Type '3' to view the GNU General Public License version 3."
3396 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3397 echo "Type 'yes' to accept this license offer."
3398 echo "Type 'no' to decline this license offer."
3400 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3404 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3406 elif [ "$acceptance" = "no" ]; then
3407 echo "You are not licensed to use this software."
3410 elif [ "$acceptance" = "3" ]; then
3411 more "$relpath/LICENSE.GPL3"
3412 elif [ "$acceptance" = "L" ]; then
3413 more "$relpath/LICENSE.LGPL"
3416 elif [ "$Edition" = "Preview" ]; then
3417 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3420 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3421 echo "You have already accepted the terms of the $LicenseType license."
3424 echo "You are licensed to use this software under the terms of"
3425 echo "the $TheLicense"
3427 echo "Type '?' to read the Preview License."
3428 echo "Type 'yes' to accept this license offer."
3429 echo "Type 'no' to decline this license offer."
3431 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3435 if [ "$acceptance" = "yes" ]; then
3437 elif [ "$acceptance" = "no" ] ;then
3438 echo "You are not licensed to use this software."
3441 elif [ "$acceptance" = "?" ]; then
3442 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3445 elif [ "$Edition" != "OpenSource" ]; then
3446 if [ -n "$ExpiryDate" ]; then
3447 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3448 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3449 Today=`date +%Y%m%d`
3450 if [ "$Today" -gt "$ExpiryDate" ]; then
3451 case "$LicenseType" in
3452 Commercial|Academic|Educational)
3454 echo "WARNING WARNING WARNING WARNING"
3456 echo " Your support and upgrade period has expired."
3458 echo " You may continue to use your last licensed release"
3459 echo " of Qt under the terms of your existing license"
3460 echo " agreement. But you are not entitled to technical"
3461 echo " support, nor are you entitled to use any more recent"
3462 echo " Qt releases."
3464 echo " Please use the contact form at http://qt.digia.com/contact-us"
3465 echo " to renew your support and upgrades for this license."
3467 echo "WARNING WARNING WARNING WARNING"
3473 echo "NOTICE NOTICE NOTICE NOTICE"
3475 echo " Your Evaluation license has expired."
3477 echo " You are no longer licensed to use this software. Please"
3478 echo " use the contact form at http://qt.digia.com/contact-us to"
3479 echo " purchase license, or install the Qt Open Source Edition"
3480 echo " if you intend to develop free software."
3482 echo "NOTICE NOTICE NOTICE NOTICE"
3489 TheLicense=`head -n 1 "$outpath/LICENSE"`
3491 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3492 echo "You have already accepted the terms of the $TheLicense."
3495 echo "You are licensed to use this software under the terms of"
3496 echo "the $TheLicense."
3498 echo "Type '?' to view the $TheLicense."
3499 echo "Type 'yes' to accept this license offer."
3500 echo "Type 'no' to decline this license offer."
3502 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3506 if [ "$acceptance" = "yes" ]; then
3508 elif [ "$acceptance" = "no" ]; then
3509 echo "You are not licensed to use this software."
3512 else [ "$acceptance" = "?" ]
3513 more "$outpath/LICENSE"
3518 # this should be moved somewhere else
3521 AIX_VERSION=`uname -v`
3522 if [ "$AIX_VERSION" -lt "5" ]; then
3523 QMakeVar add QMAKE_LIBS_X11 -lbind
3530 #-------------------------------------------------------------------------------
3531 # generate qconfig.cpp
3532 #-------------------------------------------------------------------------------
3533 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3535 shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3536 shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3538 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3540 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3541 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3543 /* Installation date */
3544 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3546 /* Installation Info */
3547 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3548 "qt_prfxpath=$QT_INSTALL_PREFIX",
3549 "qt_docspath=$QT_INSTALL_DOCS",
3550 "qt_hdrspath=$QT_INSTALL_HEADERS",
3551 "qt_libspath=$QT_INSTALL_LIBS",
3552 "qt_binspath=$QT_INSTALL_BINS",
3553 "qt_plugpath=$QT_INSTALL_PLUGINS",
3554 "qt_impspath=$QT_INSTALL_IMPORTS",
3555 "qt_datapath=$QT_INSTALL_DATA",
3556 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3557 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3558 "qt_tstspath=$QT_INSTALL_TESTS",
3559 #ifdef QT_BUILD_QMAKE
3560 "qt_ssrtpath=$CFG_SYSROOT",
3561 "qt_hpfxpath=$QT_HOST_PREFIX",
3562 "qt_hbinpath=$QT_HOST_BINS",
3563 "qt_hdatpath=$QT_HOST_DATA",
3564 "qt_targspec=$shortxspec",
3565 "qt_hostspec=$shortspec",
3568 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3571 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3573 /* strlen( "qt_lcnsxxxx" ) == 12 */
3574 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3575 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3577 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3580 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3581 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3582 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3584 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3585 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3586 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3589 # -----------------------------------------------------------------------------
3590 if [ "$LicenseType" = "Evaluation" ]; then
3591 EVALKEY=qt_qevalkey=$LicenseKeyExt
3592 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3593 EVALKEY=qt_qevalkey=
3596 if [ -n "$EVALKEY" ]; then
3597 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3598 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3599 /* Evaluation license key */
3600 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3602 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3606 # -----------------------------------------------------------------------------
3608 # -----------------------------------------------------------------------------
3611 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3612 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3615 # $1: input variable name (awk regexp)
3616 # $2: optional output variable name
3617 # $3: optional value transformation (sed command)
3618 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3619 # is where the resulting variable is written to
3620 setBootstrapVariable()
3622 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3626 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3627 echo "Creating qmake. Please wait..."
3629 mkdir -p "$outpath/qmake" || exit
3631 for mkfile in GNUmakefile Makefile; do
3634 in_mkfile="${mkfile}.in"
3635 if [ "$mkfile" = "Makefile" ]; then
3636 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3637 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3639 in_mkfile="${mkfile}.unix"
3641 in_mkfile="$relpath/qmake/$in_mkfile"
3642 mkfile="$outpath/qmake/$mkfile"
3643 if [ -f "$mkfile" ]; then
3644 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3647 [ -f "$in_mkfile" ] || continue
3649 echo "########################################################################" > "$mkfile"
3650 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3651 echo "########################################################################" >> "$mkfile"
3654 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3655 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3656 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3658 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3659 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3662 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3663 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3664 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3665 setBootstrapVariable QMAKE_CFLAGS
3666 setBootstrapVariable QMAKE_CXXFLAGS
3667 setBootstrapVariable QMAKE_LFLAGS
3669 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3670 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3671 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3673 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3674 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3675 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3676 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3677 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3678 elif [ "$CFG_DEBUG" = "yes" ]; then
3679 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3680 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3681 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3682 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3685 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3686 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3687 for rpath in $RPATH_FLAGS; do
3688 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3691 if [ "$BUILD_ON_MAC" = "yes" ]; then
3692 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3693 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3694 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3695 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3696 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3697 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3698 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3699 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3700 if [ '!' -z "$CFG_SDK" ]; then
3701 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3702 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3703 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3704 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3705 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3708 if [ '!' -z "$D_FLAGS" ]; then
3709 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3711 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3712 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3713 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3714 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3716 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3717 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3718 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3719 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3720 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3721 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3722 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3723 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3724 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3725 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3727 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3728 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3729 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3730 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3735 (cd "$outpath/qmake"; "$MAKE") || exit 2
3738 #-------------------------------------------------------------------------------
3739 # create a qt.conf for the Qt build tree itself
3740 #-------------------------------------------------------------------------------
3742 QTCONFFILE="$outpath/bin/qt.conf"
3743 cat > "$QTCONFFILE" <<EOF
3748 #-------------------------------------------------------------------------------
3749 # write out device config before we run the test.
3750 #-------------------------------------------------------------------------------
3751 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3752 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3753 rm -f "$DEVICE_VARS_FILE"
3755 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3756 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3759 #-------------------------------------------------------------------------------
3761 #-------------------------------------------------------------------------------
3762 if [ -z "$PKG_CONFIG" ]; then
3763 # See if PKG_CONFIG is set in the mkspec:
3764 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3766 if [ -z "$PKG_CONFIG" ]; then
3767 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3770 if [ "$CFG_PKGCONFIG" = "no" ]; then
3772 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3774 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3775 echo >&2 "a correctly setup pkg-config environment!"
3777 elif [ -n "$PKG_CONFIG" ]; then
3778 # found a pkg-config
3779 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3780 # when xcompiling, check environment to see if it's actually usable
3781 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3782 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3783 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3784 if [ -n "$GCC_MACHINE_DUMP" ]; then
3785 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3787 export PKG_CONFIG_LIBDIR
3788 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3789 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3790 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3791 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3792 echo >&2 "Set this variable to the directory that contains target .pc files"
3793 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3794 echo >&2 "use -force-pkg-config to override this test."
3798 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3801 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3802 if [ -n "$CFG_SYSROOT" ]; then
3803 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3804 export PKG_CONFIG_SYSROOT_DIR
3805 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3806 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3807 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3808 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3809 echo >&2 "or use -force-pkg-config to override this test."
3813 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3817 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3818 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3822 if [ -z "$PKG_CONFIG" ]; then
3823 QT_CONFIG="$QT_CONFIG no-pkg-config"
3826 #-------------------------------------------------------------------------------
3827 # tests that need qmake
3828 #-------------------------------------------------------------------------------
3830 # parameters: path, name, extra args
3833 path=config.tests/$1
3836 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3839 #-------------------------------------------------------------------------------
3840 # determine the target and host architectures
3841 #-------------------------------------------------------------------------------
3843 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3844 OUTFILE=$outpath/arch.result
3845 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3846 if [ $? -eq 0 ]; then
3847 eval `cat "$OUTFILE"`
3850 echo "Could not determine the target architecture!"
3851 echo "Turn on verbose messaging (-v) to see the final report."
3853 rm -f "$OUTFILE" 2>/dev/null
3854 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3856 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3857 # Do the same test again, using the host compiler
3858 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3859 if [ $? -eq 0 ]; then
3860 eval `cat "$OUTFILE"`
3863 echo "Could not determine the host architecture!"
3864 echo "Turn on verbose messaging (-v) to see the final report."
3866 rm -f "$OUTFILE" 2>/dev/null
3867 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3869 # not cross compiling, host == target
3870 CFG_HOST_ARCH="$CFG_ARCH"
3871 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3875 if [ "$OPT_VERBOSE" = "yes" ]; then
3876 echo "System architecture: '$CFG_ARCH'"
3877 echo "Host architecture: '$CFG_HOST_ARCH'"
3880 #-------------------------------------------------------------------------------
3881 # functionality tests
3882 #-------------------------------------------------------------------------------
3884 # Detect C++11 support
3885 if [ "$CFG_CXX11" != "no" ]; then
3886 if compileTest common/c++11 "C++11"; then
3888 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3889 echo "C++11 support cannot be enabled due to functionality tests!"
3890 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3891 echo " If you believe this message is in error you may use the continue"
3892 echo " switch (-continue) to $0 to continue."
3899 # detect availability of float math.h functions
3900 if compileTest unix/floatmath "floatmath"; then
3901 CFG_USE_FLOATMATH=yes
3903 CFG_USE_FLOATMATH=no
3906 # detect sse2 support
3907 if [ "${CFG_SSE2}" = "auto" ]; then
3908 if compileTest common/sse2 "sse2"; then
3915 # detect sse3 support
3916 if [ "${CFG_SSE3}" = "auto" ]; then
3917 if compileTest common/sse3 "sse3"; then
3924 # detect ssse3 support
3925 if [ "${CFG_SSSE3}" = "auto" ]; then
3926 if compileTest common/ssse3 "ssse3"; then
3933 # detect sse4.1 support
3934 if [ "${CFG_SSE4_1}" = "auto" ]; then
3935 if compileTest common/sse4_1 "sse4_1"; then
3942 # detect sse4.2 support
3943 if [ "${CFG_SSE4_2}" = "auto" ]; then
3944 if compileTest common/sse4_2 "sse4_2"; then
3951 # detect avx support
3952 if [ "${CFG_AVX}" = "auto" ]; then
3953 if compileTest common/avx "avx"; then
3954 case "$XQMAKESPEC" in
3956 # Some clang versions produce internal compiler errors compiling Qt AVX code
3957 case `$TEST_COMPILER --version` in
3958 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3960 if [ "$OPT_VERBOSE" = "yes" ]; then
3961 echo 'AVX support disabled for blacklisted clang compiler'
3978 # detect avx2 support
3979 if [ "${CFG_AVX}" = "no" ]; then
3982 if [ "${CFG_AVX2}" = "auto" ]; then
3983 if compileTest common/avx2 "avx2"; then
3990 # check iWMMXt support
3991 if [ "$CFG_IWMMXT" = "yes" ]; then
3992 compileTest unix/iwmmxt "iwmmxt"
3993 if [ $? != "0" ]; then
3994 echo "The iWMMXt functionality test failed!"
3995 echo " Please make sure your compiler supports iWMMXt intrinsics!"
4000 # detect neon support
4001 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
4002 if compileTest unix/neon "neon"; then
4007 elif [ "$CFG_ARCH" != "arm" ]; then
4011 # detect mips_dsp support
4012 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
4013 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
4018 elif [ "$CFG_ARCH" != "mips" ]; then
4022 # detect mips_dspr2 support
4023 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
4024 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
4029 elif [ "$CFG_ARCH" != "mips" ]; then
4033 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4036 if [ "$CFG_ZLIB" = "no" ]; then
4037 # Note: Qt no longer support builds without zlib
4038 # So we force a "no" to be "auto" here.
4039 # If you REALLY really need no zlib support, you can still disable
4040 # it by doing the following:
4041 # add "no-zlib" to mkspecs/qconfig.pri
4042 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4044 # There's no guarantee that Qt will build under those conditions
4050 if [ "$XPLATFORM_QNX" = "yes" ]; then
4051 if [ "$CFG_SLOG2" != "no" ]; then
4052 if compileTest unix/slog2 "slog2"; then
4054 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4061 if [ "$CFG_ZLIB" = "auto" ]; then
4062 if compileTest unix/zlib "zlib"; then
4069 if [ "$CFG_LARGEFILE" = "auto" ]; then
4070 #Large files should be enabled for all Linux systems
4074 if [ "$CFG_GUI" = "no" ]; then
4075 QPA_PLATFORM_GUARD=no
4078 # detect how jpeg should be built
4079 if [ "$CFG_JPEG" = "auto" ]; then
4080 if [ "$CFG_SHARED" = "yes" ]; then
4087 if [ "$CFG_LIBJPEG" = "auto" ]; then
4088 if compileTest unix/libjpeg "libjpeg"; then
4095 # detect how gif should be built
4096 if [ "$CFG_GIF" = "auto" ]; then
4097 if [ "$CFG_SHARED" = "yes" ]; then
4105 if [ "$CFG_LIBPNG" = "auto" ]; then
4106 if compileTest unix/libpng "libpng"; then
4113 if [ "$CFG_EGLFS" = "yes" ]; then
4114 if [ "$CFG_EGL" = "no" ]; then
4115 echo "The EGLFS plugin requires EGL support and cannot be built"
4118 if [ "$CFG_OPENGL" != "es2" ]; then
4119 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4126 if [ "$CFG_KMS" = "yes" ]; then
4127 if [ "$CFG_EGL" = "no" ]; then
4128 echo "The KMS plugin requires EGL support and cannot be built"
4131 if [ "$CFG_OPENGL" != "es2" ]; then
4132 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4137 # auto-detect SQL-modules support
4138 for _SQLDR in $CFG_SQL_AVAILABLE; do
4141 if [ "$CFG_SQL_mysql" != "no" ]; then
4142 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4143 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4144 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4145 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4146 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4147 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4148 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4150 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4151 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4152 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4153 echo " You need MySql 4 or higher."
4154 echo " If you believe this message is in error you may use the continue"
4155 echo " switch (-continue) to $0 to continue."
4160 QT_LFLAGS_MYSQL_R=""
4164 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4165 QMakeVar add CONFIG use_libmysqlclient_r
4166 if [ "$CFG_SQL_mysql" = "auto" ]; then
4167 CFG_SQL_mysql=plugin
4169 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4170 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4171 if [ "$CFG_SQL_mysql" = "auto" ]; then
4172 CFG_SQL_mysql=plugin
4175 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4176 echo "MySQL support cannot be enabled due to functionality tests!"
4177 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4178 echo " If you believe this message is in error you may use the continue"
4179 echo " switch (-continue) to $0 to continue."
4184 QT_LFLAGS_MYSQL_R=""
4192 if [ "$CFG_SQL_psql" != "no" ]; then
4193 # Be careful not to use native pg_config when cross building.
4194 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4195 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4196 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4198 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4199 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4200 # But, respect PSQL_LIBS if set
4201 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4202 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4203 if [ "$CFG_SQL_psql" = "auto" ]; then
4207 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4208 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4209 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4210 echo " If you believe this message is in error you may use the continue"
4211 echo " switch (-continue) to $0 to continue."
4222 if [ "$CFG_SQL_odbc" != "no" ]; then
4223 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4224 if [ "$CFG_SQL_odbc" = "auto" ]; then
4228 if compileTest unix/iodbc "iODBC"; then
4229 QT_LFLAGS_ODBC="-liodbc"
4230 if [ "$CFG_SQL_odbc" = "auto" ]; then
4234 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4235 echo "ODBC support cannot be enabled due to functionality tests!"
4236 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4237 echo " If you believe this message is in error you may use the continue"
4238 echo " switch (-continue) to $0 to continue."
4248 if [ "$CFG_SQL_oci" != "no" ]; then
4249 if compileTest unix/oci "OCI"; then
4250 if [ "$CFG_SQL_oci" = "auto" ]; then
4254 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4255 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4256 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4257 echo " If you believe this message is in error you may use the continue"
4258 echo " switch (-continue) to $0 to continue."
4267 if [ "$CFG_SQL_tds" != "no" ]; then
4268 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4269 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4270 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4271 if [ "$CFG_SQL_tds" = "auto" ]; then
4275 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4276 echo "TDS support cannot be enabled due to functionality tests!"
4277 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4278 echo " If you believe this message is in error you may use the continue"
4279 echo " switch (-continue) to $0 to continue."
4288 if [ "$CFG_SQL_db2" != "no" ]; then
4289 if compileTest unix/db2 "DB2"; then
4290 if [ "$CFG_SQL_db2" = "auto" ]; then
4294 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4295 echo "ODBC support cannot be enabled due to functionality tests!"
4296 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4297 echo " If you believe this message is in error you may use the continue"
4298 echo " switch (-continue) to $0 to continue."
4307 if [ "$CFG_SQL_ibase" != "no" ]; then
4308 if compileTest unix/ibase "InterBase"; then
4309 if [ "$CFG_SQL_ibase" = "auto" ]; then
4310 CFG_SQL_ibase=plugin
4313 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4314 echo "InterBase support cannot be enabled due to functionality tests!"
4315 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4316 echo " If you believe this message is in error you may use the continue"
4317 echo " switch (-continue) to $0 to continue."
4326 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4327 if compileTest unix/sqlite2 "SQLite2"; then
4328 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4329 CFG_SQL_sqlite2=plugin
4332 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4333 echo "SQLite2 support cannot be enabled due to functionality tests!"
4334 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4335 echo " If you believe this message is in error you may use the continue"
4336 echo " switch (-continue) to $0 to continue."
4345 if [ "$CFG_SQL_sqlite" != "no" ]; then
4346 SQLITE_AUTODETECT_FAILED="no"
4347 if [ "$CFG_SQLITE" = "system" ]; then
4348 if [ -n "$PKG_CONFIG" ]; then
4349 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4350 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4353 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4355 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4356 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4357 CFG_SQL_sqlite=plugin
4359 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4361 SQLITE_AUTODETECT_FAILED="yes"
4364 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4365 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4366 CFG_SQL_sqlite=plugin
4369 SQLITE_AUTODETECT_FAILED="yes"
4373 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4374 echo "SQLite support cannot be enabled due to functionality tests!"
4375 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4376 echo " If you believe this message is in error you may use the continue"
4377 echo " switch (-continue) to $0 to continue."
4383 if [ "$OPT_VERBOSE" = "yes" ]; then
4384 echo "unknown SQL driver: $_SQLDR"
4390 # auto-detect NIS support
4391 if [ "$CFG_NIS" != "no" ]; then
4392 if compileTest unix/nis "NIS"; then
4395 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4396 echo "NIS support cannot be enabled due to functionality tests!"
4397 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4398 echo " If you believe this message is in error you may use the continue"
4399 echo " switch (-continue) to $0 to continue."
4407 # auto-detect CUPS support
4408 if [ "$CFG_CUPS" != "no" ]; then
4409 if compileTest unix/cups "Cups"; then
4412 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4413 echo "Cups support cannot be enabled due to functionality tests!"
4414 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4415 echo " If you believe this message is in error you may use the continue"
4416 echo " switch (-continue) to $0 to continue."
4424 # auto-detect iconv(3) support
4425 if [ "$CFG_ICONV" != "no" ]; then
4426 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4428 elif compileTest unix/iconv "POSIX iconv"; then
4430 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4432 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4435 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4436 echo "Iconv support cannot be enabled due to functionality tests!"
4437 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4438 echo " If you believe this message is in error you may use the continue"
4439 echo " switch (-continue) to $0 to continue."
4447 # auto-detect libdbus-1 support
4448 if [ "$CFG_DBUS" != "no" ]; then
4449 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4450 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4451 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4453 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4454 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4455 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4456 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4458 if [ "$CFG_DBUS" = "auto" ]; then
4460 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4461 # CFG_DBUS is "yes" or "linked" here
4463 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4464 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4465 echo " If you believe this message is in error you may use the continue"
4466 echo " switch (-continue) to $0 to continue."
4472 # auto-detect Glib support
4473 if [ "$CFG_GLIB" != "no" ]; then
4474 if [ -n "$PKG_CONFIG" ]; then
4475 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4476 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4478 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4480 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4481 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4483 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4484 echo "Glib 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."
4495 # auto-detect GTK style support
4496 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4497 if [ -n "$PKG_CONFIG" ]; then
4498 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4499 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4501 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4503 QT_CONFIG="$QT_CONFIG gtkstyle"
4504 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4505 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4507 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4508 echo "Gtk theme support cannot be enabled due to functionality tests!"
4509 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4510 echo " If you believe this message is in error you may use the continue"
4511 echo " switch (-continue) to $0 to continue."
4517 elif [ "$CFG_GLIB" = "no" ]; then
4522 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4523 if [ -n "$PKG_CONFIG" ]; then
4524 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4525 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4527 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4529 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4530 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4532 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4533 echo "Gstreamer support cannot be enabled due to functionality tests!"
4534 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4535 echo " If you believe this message is in error you may use the continue"
4536 echo " switch (-continue) to $0 to continue."
4542 elif [ "$CFG_GLIB" = "no" ]; then
4546 # auto-detect libicu support
4547 if [ "$CFG_ICU" != "no" ]; then
4548 if compileTest unix/icu "ICU"; then
4549 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4551 if [ "$CFG_ICU" = "auto" ]; then
4553 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4556 echo "The ICU library support cannot be enabled."
4557 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4558 echo " If you believe this message is in error you may use the continue"
4559 echo " switch (-continue) to $0 to continue."
4565 # Auto-detect PulseAudio support
4566 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4567 if [ -n "$PKG_CONFIG" ]; then
4568 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4569 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4571 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4573 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4574 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4576 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4577 echo "PulseAudio support cannot be enabled due to functionality tests!"
4578 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4579 echo " If you believe this message is in error you may use the continue"
4580 echo " switch (-continue) to $0 to continue."
4589 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4590 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4591 if [ "$CFG_GUI" = "no" ]; then
4592 if [ "$CFG_OPENGL" = "auto" ]; then
4595 if [ "$CFG_OPENGL" != "no" ]; then
4596 echo "OpenGL enabled, but GUI disabled."
4597 echo " You might need to either enable the GUI or disable OpenGL"
4601 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4602 if compileTest x11/opengl "OpenGL"; then
4604 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4607 if [ "$CFG_OPENGL" = "yes" ]; then
4608 echo "All the OpenGL functionality tests failed!"
4609 echo " You might need to modify the include and library search paths by editing"
4610 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4611 echo " ${XQMAKESPEC}."
4618 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4619 if [ "$CFG_OPENGL" = "desktop" ]; then
4620 compileTest x11/glxfbconfig "OpenGL"
4621 if [ $? != "0" ]; then
4622 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4629 elif [ "$CFG_OPENGL" = "es2" ]; then
4631 compileTest unix/opengles2 "OpenGL ES 2.x"
4632 if [ $? != "0" ]; then
4633 echo "The OpenGL ES 2.0 functionality test failed!"
4634 echo " You might need to modify the include and library search paths by editing"
4635 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4636 echo " ${XQMAKESPEC}."
4639 elif [ "$CFG_OPENGL" = "desktop" ]; then
4640 # Desktop OpenGL support
4641 compileTest x11/opengl "OpenGL"
4642 if [ $? != "0" ]; then
4643 echo "The OpenGL functionality test failed!"
4644 echo " You might need to modify the include and library search paths by editing"
4645 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4646 echo " ${XQMAKESPEC}."
4651 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4652 compileTest x11/glxfbconfig "OpenGL"
4653 if [ $? != "0" ]; then
4654 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4661 fi # X11/MINGW OpenGL
4663 if [ "$BUILD_ON_MAC" = "yes" ]; then
4664 if [ "$CFG_COREWLAN" = "auto" ]; then
4665 if compileTest mac/corewlan "CoreWlan"; then
4673 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4674 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4675 if compileTest unix/opengldesktop "OpenGL"; then
4677 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4680 if [ "$CFG_OPENGL" = "yes" ]; then
4681 echo "All the OpenGL functionality tests failed!"
4682 echo " You might need to modify the include and library search paths by editing"
4683 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4684 echo " ${XQMAKESPEC}."
4689 elif [ "$CFG_OPENGL" = "es2" ]; then
4691 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4692 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4693 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4694 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4695 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4696 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4697 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4698 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4701 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4702 if [ $? != "0" ]; then
4703 echo "The OpenGL ES 2.0 functionality test failed!"
4704 echo " You might need to modify the include and library search paths by editing"
4705 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4706 echo " ${XQMAKESPEC}."
4709 elif [ "$CFG_OPENGL" = "desktop" ]; then
4710 # Desktop OpenGL support
4711 compileTest unix/opengldesktop "OpenGL"
4712 if [ $? != "0" ]; then
4713 echo "The OpenGL functionality test failed!"
4714 echo " You might need to modify the include and library search paths by editing"
4715 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4716 echo " ${XQMAKESPEC}."
4721 # auto-detect FontConfig support
4722 if [ "$CFG_FONTCONFIG" != "no" ]; then
4723 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4724 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4725 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4727 QT_CFLAGS_FONTCONFIG=
4728 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4730 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4731 QT_CONFIG="$QT_CONFIG fontconfig"
4732 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4733 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4735 CFG_LIBFREETYPE=system
4742 # Save these for a check later
4743 ORIG_CFG_XCB="$CFG_XCB"
4744 ORIG_CFG_EGLFS="$CFG_EGLFS"
4745 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4746 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4747 ORIG_CFG_KMS="$CFG_KMS"
4749 if [ "$CFG_LIBUDEV" != "no" ]; then
4750 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4751 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4752 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4753 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4754 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4756 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4758 QT_CONFIG="$QT_CONFIG libudev"
4759 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4760 echo "The libudev functionality test failed!"
4766 if [ "$CFG_LIBUDEV" = "no" ]; then
4767 QMakeVar add DEFINES QT_NO_LIBUDEV
4770 if [ "$CFG_EVDEV" != "no" ]; then
4771 if compileTest unix/evdev "evdev"; then
4773 QT_CONFIG="$QT_CONFIG evdev"
4774 elif [ "$CFG_EVDEV" = "yes" ]; then
4775 echo "The evdev functionality test failed!"
4781 if [ "$CFG_EVDEV" = "no" ]; then
4782 QMakeVar add DEFINES QT_NO_EVDEV
4785 # Check we actually have X11 :-)
4786 if compileTest x11/xlib "XLib"; then
4787 QT_CONFIG="$QT_CONFIG xlib"
4790 # auto-detect Xrender support
4791 if [ "$CFG_XRENDER" != "no" ]; then
4792 if compileTest x11/xrender "Xrender"; then
4794 QT_CONFIG="$QT_CONFIG xrender"
4796 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4797 echo "Xrender support cannot be enabled due to functionality tests!"
4798 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4799 echo " If you believe this message is in error you may use the continue"
4800 echo " switch (-continue) to $0 to continue."
4808 if [ "$CFG_XCB" != "no" ]; then
4809 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4810 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4811 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4813 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4815 if [ "$CFG_XCB" = "qt" ]; then
4816 QT_CONFIG="$QT_CONFIG xcb-qt"
4820 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4821 XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm"
4822 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
4823 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
4826 if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4827 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4828 QT_CONFIG="$QT_CONFIG xcb-render"
4831 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4833 QT_CONFIG="$QT_CONFIG xcb-glx"
4836 echo "The test for linking against libxcb and support libraries failed!"
4837 echo " You might need install dependency packages, or pass -qt-xcb."
4838 echo " See src/plugins/platforms/xcb/README."
4843 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4844 QT_CONFIG="$QT_CONFIG xcb-xlib"
4847 # auto-detect XInput2 support. Needed by xcb too.
4848 if [ "$CFG_XINPUT2" != "no" ]; then
4849 if compileTest x11/xinput2 "XInput2"; then
4853 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4854 echo "XInput2 support cannot be enabled due to functionality tests!"
4855 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4856 echo " If you believe this message is in error you may use the continue"
4857 echo " switch (-continue) to $0 to continue."
4865 if [ "$CFG_XCB" != "auto" ]; then
4866 echo "The test for linking against libxcb failed!"
4867 echo " You might need to install dependency packages for libxcb."
4868 echo " See src/plugins/platforms/xcb/README."
4874 if [ "$CFG_XCB" = "no" ]; then
4875 QMakeVar add DEFINES QT_NO_XCB
4878 if [ "$CFG_DIRECTFB" != "no" ]; then
4879 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4880 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4881 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4882 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4884 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4885 echo " DirectFB support cannot be enabled due to functionality tests!"
4886 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4887 echo " If you believe this message is in error you may use the continue"
4888 echo " switch (-continue) to $0 to continue."
4898 if [ "$CFG_LINUXFB" != "no" ]; then
4899 if compileTest qpa/linuxfb "LinuxFB"; then
4901 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4902 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4903 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4904 echo " If you believe this message is in error you may use the continue"
4905 echo " switch (-continue) to $0 to continue."
4912 if [ "$CFG_KMS" != "no" ]; then
4913 if compileTest qpa/kms "KMS"; then
4915 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4916 echo " KMS support cannot be enabled due to functionality tests!"
4917 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4918 echo " If you believe this message is in error you may use the continue"
4919 echo " switch (-continue) to $0 to continue."
4926 # Detect libxkbcommon
4927 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4928 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4929 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4930 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4931 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4933 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4937 if [ "$CFG_EGL" != "no" ]; then
4938 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4939 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4940 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4941 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4942 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4943 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4944 fi # detect EGL support
4945 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4947 elif [ "$CFG_EGL" = "yes" ]; then
4948 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4949 echo " You might need to modify the include and library search paths by editing"
4950 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4955 elif [ "$CFG_OPENGL" = "desktop" ]; then
4956 if [ "$CFG_EGL" = "yes" ]; then
4957 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4958 echo "Either disable EGL support or enable OpenGL ES support."
4964 if [ "$CFG_EGLFS" != "no" ]; then
4965 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4966 CFG_EGLFS="$CFG_EGL"
4972 if [ "$CFG_KMS" = "yes" ]; then
4973 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4980 # Detect accessibility support
4981 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4982 if [ "$CFG_XCB" = "no" ]; then
4983 CFG_ACCESSIBILITY=yes
4985 # linux/xcb accessibility needs dbus and atspi-2
4986 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4987 CFG_ACCESSIBILITY=yes
4989 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4990 CFG_ACCESSIBILITY=no
4992 echo "Accessibility support needs pkg-config and libatspi2."
4999 # Determine the default QPA platform
5000 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
5002 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
5003 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
5004 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5005 QT_QPA_DEFAULT_PLATFORM="windows"
5006 elif [ "$BUILD_ON_MAC" = "yes" ]; then
5007 QT_QPA_DEFAULT_PLATFORM="cocoa"
5008 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
5009 QT_QPA_DEFAULT_PLATFORM="qnx"
5011 QT_QPA_DEFAULT_PLATFORM="xcb"
5016 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
5017 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
5018 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
5019 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
5021 if [ "$CFG_DIRECTFB" = "yes" ]; then
5022 QT_CONFIG="$QT_CONFIG directfb"
5023 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
5024 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
5026 if [ "$CFG_LINUXFB" = "yes" ]; then
5027 QT_CONFIG="$QT_CONFIG linuxfb"
5029 if [ "$CFG_KMS" = "yes" ]; then
5030 QT_CONFIG="$QT_CONFIG kms"
5033 if [ "$BUILD_ON_MAC" = "yes" ]; then
5034 if compileTest mac/coreservices "CoreServices"; then
5035 QT_CONFIG="$QT_CONFIG coreservices"
5037 QMakeVar add DEFINES QT_NO_CORESERVICES
5041 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5042 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5043 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5044 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5045 echo "No QPA platform plugin enabled!"
5046 echo " If you really want to build without a QPA platform plugin you must pass"
5047 echo " -no-qpa-platform-guard to configure. Doing this will"
5048 echo " produce a Qt that can not run GUI applications."
5049 echo " The dependencies needed for xcb to build are listed in"
5050 echo " src/plugins/platforms/xcb/README"
5057 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5058 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5059 if compileTest unix/freetype "FreeType"; then
5060 CFG_LIBFREETYPE=system
5066 if ! compileTest unix/stl "STL" &&
5067 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5068 echo "STL functionality check failed! Cannot build Qt with this STL library."
5069 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5074 # detect POSIX clock_gettime()
5075 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5076 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5077 CFG_CLOCK_GETTIME=yes
5079 CFG_CLOCK_GETTIME=no
5083 # detect POSIX monotonic clocks
5084 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5085 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5086 CFG_CLOCK_MONOTONIC=yes
5088 CFG_CLOCK_MONOTONIC=no
5090 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5091 CFG_CLOCK_MONOTONIC=no
5095 if [ "$CFG_MREMAP" = "auto" ]; then
5096 if compileTest unix/mremap "mremap"; then
5103 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5104 if [ "$CFG_GETADDRINFO" != "no" ]; then
5105 if compileTest unix/getaddrinfo "getaddrinfo"; then
5108 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5109 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5110 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5111 echo " If you believe this message is in error you may use the continue"
5112 echo " switch (-continue) to $0 to continue."
5120 # find if the platform provides inotify
5121 if [ "$CFG_INOTIFY" != "no" ]; then
5122 if compileTest unix/inotify "inotify"; then
5125 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5126 echo "inotify support cannot be enabled due to functionality tests!"
5127 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5128 echo " If you believe this message is in error you may use the continue"
5129 echo " switch (-continue) to $0 to continue."
5137 # find if the platform provides if_nametoindex (ipv6 interface name support)
5138 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5139 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5142 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5143 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5144 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5145 echo " If you believe this message is in error you may use the continue"
5146 echo " switch (-continue) to $0 to continue."
5154 # find if the platform provides getifaddrs (network interface enumeration)
5155 if [ "$CFG_GETIFADDRS" != "no" ]; then
5156 if compileTest unix/getifaddrs "getifaddrs"; then
5159 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5160 echo "getifaddrs support cannot be enabled due to functionality tests!"
5161 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5162 echo " If you believe this message is in error you may use the continue"
5163 echo " switch (-continue) to $0 to continue."
5172 if [ "$CFG_OPENSSL" != "no" ]; then
5173 if compileTest unix/openssl "OpenSSL"; then
5174 if [ "$CFG_OPENSSL" = "auto" ]; then
5178 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5179 echo "OpenSSL support cannot be enabled due to functionality tests!"
5180 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5181 echo " If you believe this message is in error you may use the continue"
5182 echo " switch (-continue) to $0 to continue."
5191 if [ "$CFG_PCRE" != "qt" ]; then
5192 if compileTest unix/pcre "PCRE"; then
5195 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5196 echo "PCRE support cannot be enabled due to functionality tests!"
5197 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5198 echo " If you believe this message is in error you may use the continue"
5199 echo " switch (-continue) to $0 to continue."
5207 # detect OpenVG support
5208 if [ "$CFG_OPENVG" != "no" ]; then
5209 if compileTest unix/openvg "OpenVG"; then
5210 if [ "$CFG_OPENVG" = "auto" ]; then
5213 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5214 if [ "$CFG_OPENVG" = "auto" ]; then
5217 CFG_OPENVG_ON_OPENGL=yes
5218 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5219 if [ "$CFG_OPENVG" = "auto" ]; then
5222 CFG_OPENVG_LC_INCLUDES=yes
5223 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5224 if [ "$CFG_OPENVG" = "auto" ]; then
5227 CFG_OPENVG_LC_INCLUDES=yes
5228 CFG_OPENVG_ON_OPENGL=yes
5230 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5231 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5232 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5233 echo " If you believe this message is in error you may use the continue"
5234 echo " switch (-continue) to $0 to continue."
5240 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5241 CFG_OPENVG_SHIVA=yes
5245 if [ "$CFG_ALSA" = "auto" ]; then
5246 if compileTest unix/alsa "alsa"; then
5253 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5254 if [ "$CFG_ARCH" = "arm" ]; then
5255 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5256 if [ $? != "0" ]; then
5257 CFG_JAVASCRIPTCORE_JIT=no
5260 case "$XPLATFORM" in
5262 CFG_JAVASCRIPTCORE_JIT=no
5268 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5269 QMakeVar set JAVASCRIPTCORE_JIT yes
5270 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5271 QMakeVar set JAVASCRIPTCORE_JIT no
5274 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5275 CFG_AUDIO_BACKEND=yes
5278 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5279 echo "Warning: largefile support cannot be disabled for win32."
5283 #-------------------------------------------------------------------------------
5284 # ask for all that hasn't been auto-detected or specified in the arguments
5285 #-------------------------------------------------------------------------------
5287 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5289 # disable accessibility
5290 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5291 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5293 QT_CONFIG="$QT_CONFIG accessibility"
5297 if [ "$CFG_EGL" = "yes" ]; then
5298 QT_CONFIG="$QT_CONFIG egl"
5300 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5304 if [ "$CFG_EGLFS" = "yes" ]; then
5305 QT_CONFIG="$QT_CONFIG eglfs"
5307 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5311 if [ "$CFG_OPENVG" = "no" ]; then
5312 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5314 QT_CONFIG="$QT_CONFIG openvg"
5315 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5316 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5318 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5319 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5321 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5322 QT_CONFIG="$QT_CONFIG shivavg"
5323 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5328 if [ "$CFG_OPENGL" = "no" ]; then
5329 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5331 QT_CONFIG="$QT_CONFIG opengl"
5334 if [ "$CFG_OPENGL" = "es2" ]; then
5335 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5338 if [ "$CFG_OPENGL" = "es2" ]; then
5339 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5340 QT_CONFIG="$QT_CONFIG opengles2"
5343 # build up the variables for output
5344 if [ "$CFG_DEBUG" = "yes" ]; then
5345 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5346 elif [ "$CFG_DEBUG" = "no" ]; then
5347 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5349 if [ "$CFG_SHARED" = "yes" ]; then
5350 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5351 QT_CONFIG="$QT_CONFIG shared"
5352 elif [ "$CFG_SHARED" = "no" ]; then
5353 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5354 QT_CONFIG="$QT_CONFIG static"
5357 #FIXME: qpa is implicit this should all be removed
5358 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5359 QT_CONFIG="$QT_CONFIG qpa"
5360 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5361 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5363 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5364 # Do not set this here for Windows. Let qmake do it so
5365 # debug and release precompiled headers are kept separate.
5366 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5368 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5369 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5370 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5371 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5372 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5373 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5375 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5376 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5378 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5379 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5380 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5381 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5382 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5383 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5384 QMakeVar add QMAKE_CFLAGS -g
5385 QMakeVar add QMAKE_CXXFLAGS -g
5386 QT_CONFIG="$QT_CONFIG separate_debug_info"
5388 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5389 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5391 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5392 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5393 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5394 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5395 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5396 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5397 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5398 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5399 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5400 if [ "$CFG_ARCH" = "mips" ]; then
5401 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5402 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5404 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5405 QT_CONFIG="$QT_CONFIG clock-gettime"
5407 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5408 QT_CONFIG="$QT_CONFIG clock-monotonic"
5410 if [ "$CFG_MREMAP" = "yes" ]; then
5411 QT_CONFIG="$QT_CONFIG mremap"
5413 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5414 QT_CONFIG="$QT_CONFIG getaddrinfo"
5416 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5417 QT_CONFIG="$QT_CONFIG ipv6ifname"
5419 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5420 QT_CONFIG="$QT_CONFIG getifaddrs"
5422 if [ "$CFG_INOTIFY" = "yes" ]; then
5423 QT_CONFIG="$QT_CONFIG inotify"
5425 if [ "$CFG_LIBJPEG" = "no" ]; then
5427 elif [ "$CFG_LIBJPEG" = "system" ]; then
5428 QT_CONFIG="$QT_CONFIG system-jpeg"
5430 if [ "$CFG_JPEG" = "no" ]; then
5431 QT_CONFIG="$QT_CONFIG no-jpeg"
5432 elif [ "$CFG_JPEG" = "yes" ]; then
5433 QT_CONFIG="$QT_CONFIG jpeg"
5435 if [ "$CFG_LIBPNG" = "no" ]; then
5438 if [ "$CFG_LIBPNG" = "system" ]; then
5439 QT_CONFIG="$QT_CONFIG system-png"
5441 if [ "$CFG_PNG" = "no" ]; then
5442 QT_CONFIG="$QT_CONFIG no-png"
5443 elif [ "$CFG_PNG" = "yes" ]; then
5444 QT_CONFIG="$QT_CONFIG png"
5446 if [ "$CFG_GIF" = "no" ]; then
5447 QT_CONFIG="$QT_CONFIG no-gif"
5448 elif [ "$CFG_GIF" = "yes" ]; then
5449 QT_CONFIG="$QT_CONFIG gif"
5451 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5452 QT_CONFIG="$QT_CONFIG no-freetype"
5453 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5454 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5455 QT_CONFIG="$QT_CONFIG system-freetype"
5457 QT_CONFIG="$QT_CONFIG freetype"
5459 if [ "$CFG_GUI" = "auto" ]; then
5462 if [ "$CFG_GUI" = "no" ]; then
5463 QT_CONFIG="$QT_CONFIG no-gui"
5466 if [ "$CFG_WIDGETS" = "no" ]; then
5467 QT_CONFIG="$QT_CONFIG no-widgets"
5468 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5471 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5472 #On Mac we implicitly link against libz, so we
5473 #never use the 3rdparty stuff.
5474 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5476 if [ "$CFG_ZLIB" = "yes" ]; then
5477 QT_CONFIG="$QT_CONFIG zlib"
5478 elif [ "$CFG_ZLIB" = "system" ]; then
5479 QT_CONFIG="$QT_CONFIG system-zlib"
5482 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5483 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5484 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5485 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5486 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5487 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5488 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5489 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5490 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5491 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5492 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5493 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5494 [ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb"
5495 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5496 [ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies"
5498 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5499 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5501 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5502 if [ "$CFG_RPATH" = "yes" ]; then
5503 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5505 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5506 if [ -n "$RPATH_FLAGS" ]; then
5508 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5512 elif [ "$CFG_RPATH" = "yes" ]; then
5513 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5517 if [ -n "$RPATH_FLAGS" ]; then
5518 # add the user defined rpaths
5519 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5522 if [ "$CFG_RPATH" = "yes" ]; then
5523 QT_CONFIG="$QT_CONFIG rpath"
5526 if [ '!' -z "$I_FLAGS" ]; then
5527 # add the user define include paths
5528 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5529 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5532 if [ '!' -z "$W_FLAGS" ]; then
5533 # add the user defined warning flags
5534 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5535 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5536 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5539 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5540 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5541 # Follow default behavior of configure.exe by overriding with "rtti".
5542 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5545 if [ "$CFG_ALSA" = "yes" ]; then
5546 QT_CONFIG="$QT_CONFIG alsa"
5549 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5550 QT_CONFIG="$QT_CONFIG pulseaudio"
5553 if [ "$CFG_COREWLAN" = "yes" ]; then
5554 QT_CONFIG="$QT_CONFIG corewlan"
5557 if [ "$CFG_ICU" = "yes" ]; then
5558 QT_CONFIG="$QT_CONFIG icu"
5561 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5562 QT_CONFIG="$QT_CONFIG force_asserts"
5565 if [ "$CFG_PCRE" = "qt" ]; then
5566 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5570 # Some Qt modules are too advanced in C++ for some old compilers
5571 # Detect here the platforms where they are known to work.
5573 # See Qt documentation for more information on which features are
5574 # supported and on which compilers.
5576 canBuildQtConcurrent="yes"
5577 canUseV8Snapshot="yes"
5579 case "$XPLATFORM" in
5581 # PA-RISC's assembly is too limited
5582 # gcc 3.4 on that platform can't build QtXmlPatterns
5583 # the assembly it generates cannot be compiled
5585 # Check gcc's version
5586 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5590 canBuildQtXmlPatterns="no"
5594 canBuildQtXmlPatterns="no"
5598 unsupported/vxworks-*-g++*)
5601 unsupported/vxworks-*-dcc*)
5603 canBuildQtXmlPatterns="no"
5606 # Check gcc's version
5607 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5615 canBuildQtXmlPatterns="no"
5620 # Check the compiler version
5621 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5624 canBuildQtXmlPatterns="no"
5625 canBuildQtConcurrent="no"
5629 canBuildQtConcurrent="no"
5635 canBuildQtXmlPatterns="no"
5636 canBuildQtConcurrent="no"
5642 # Get the xlC version
5643 cat > xlcver.c <<EOF
5647 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5652 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5653 xlcver=`./xlcver 2>/dev/null`
5656 if [ "$OPT_VERBOSE" = "yes" ]; then
5657 if [ -n "$xlcver" ]; then
5658 echo Found IBM xlC version: $xlcver.
5660 echo Could not determine IBM xlC version, assuming oldest supported.
5667 canBuildQtXmlPatterns="no"
5668 canBuildQtConcurrent="no"
5672 canBuildQtConcurrent="no"
5678 canBuildQtConcurrent="no"
5682 if [ "$CFG_GUI" = "no" ]; then
5683 # WebKit requires QtGui
5687 if [ "$CFG_SHARED" = "no" ]; then
5689 echo "WARNING: Using static linking will disable the WebKit module."
5694 CFG_CONCURRENT="yes"
5695 if [ "$canBuildQtConcurrent" = "no" ]; then
5696 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5699 QT_CONFIG="$QT_CONFIG concurrent"
5703 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5704 QT_CONFIG="$QT_CONFIG audio-backend"
5708 if [ "$CFG_WEBKIT" = "debug" ]; then
5709 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5713 QT_CONFIG="$QT_CONFIG v8"
5714 # Detect snapshot support
5715 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5716 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5719 *) canUseV8Snapshot="no"
5723 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5724 # QEMU crashes when building inside Scratchbox with an ARM target
5725 canUseV8Snapshot="no"
5728 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5729 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5731 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5732 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5735 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5736 QT_CONFIG="$QT_CONFIG v8snapshot"
5740 if [ "$CFG_QML_DEBUG" = "no" ]; then
5741 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5744 case "$QMAKE_CONF_COMPILER" in
5747 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5749 case "$COMPILER_VERSION" in
5751 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5752 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5753 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5756 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5757 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5758 QT_GCC_PATCH_VERSION=0
5768 #-------------------------------------------------------------------------------
5769 # part of configuration information goes into qconfig.h
5770 #-------------------------------------------------------------------------------
5772 case "$CFG_QCONFIG" in
5774 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5777 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5778 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5779 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5780 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5781 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5782 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5784 echo "#endif" >>"$tmpconfig"
5788 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5792 # define QT_EDITION $QT_EDITION
5796 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5797 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5799 if [ "$CFG_SHARED" = "no" ]; then
5800 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5801 /* Qt was configured for a static build */
5802 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5809 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5810 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5813 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5814 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5817 if [ "$BUILD_ON_MAC" = "yes" ]; then
5818 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5819 #if defined(__LP64__)
5820 # define QT_POINTER_SIZE 8
5822 # define QT_POINTER_SIZE 4
5826 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5827 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5830 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5831 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5832 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5835 # Add compiler sub-architecture support
5836 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5837 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5838 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5840 MIPS_DSP MIPS_DSPR2; do
5841 eval "VAL=\$CFG_$SUBARCH"
5844 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5845 >>"$outpath/src/corelib/global/qconfig.h.new"
5850 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5852 if [ "$CFG_DEV" = "yes" ]; then
5853 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5856 # Add QPA to config.h
5857 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5859 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5860 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5863 # Add turned on SQL drivers
5864 for DRIVER in $CFG_SQL_AVAILABLE; do
5865 eval "VAL=\$CFG_SQL_$DRIVER"
5868 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5869 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5870 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5873 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5878 QMakeVar set sql-drivers "$SQL_DRIVERS"
5879 QMakeVar set sql-plugins "$SQL_PLUGINS"
5881 # Add other configuration options to the qconfig.h file
5882 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5883 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5884 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5885 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5886 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5888 # X11/Unix/Mac only configs
5889 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5890 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5891 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5892 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5893 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5894 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5895 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5896 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5897 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5898 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5899 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5900 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5901 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5902 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5904 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5905 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5906 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5907 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5908 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5909 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5910 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5911 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5912 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5913 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5914 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5915 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5916 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5918 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5919 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5920 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5921 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5922 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5923 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5924 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5925 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5927 # sort QCONFIG_FLAGS for neatness if we can
5928 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5929 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5931 if [ -n "$QCONFIG_FLAGS" ]; then
5932 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5933 #ifndef QT_BOOTSTRAPPED
5936 for cfg in $QCONFIG_FLAGS; do
5937 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5938 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5939 # figure out define logic, so we can output the correct
5940 # ifdefs to override the global defines in a project
5942 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5943 # QT_NO_option can be forcefully turned on by QT_option
5944 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5945 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5946 # QT_option can be forcefully turned off by QT_NO_option
5947 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5950 if [ -z $cfgdNeg ]; then
5951 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5958 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5959 #if defined($cfgd) && defined($cfgdNeg)
5961 #elif !defined($cfgd) && !defined($cfgdNeg)
5968 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5969 #endif // QT_BOOTSTRAPPED
5974 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5975 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5976 #define QT_VISIBILITY_AVAILABLE
5981 if [ -n "$QT_LIBINFIX" ]; then
5982 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5983 #define QT_LIBINFIX "$QT_LIBINFIX"
5988 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5990 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5991 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5992 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5994 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5995 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5996 chmod -w "$outpath/src/corelib/global/qconfig.h"
5997 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5998 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
6002 #-------------------------------------------------------------------------------
6003 # save configuration into qconfig.pri
6004 #-------------------------------------------------------------------------------
6005 QTCONFIG="$outpath/mkspecs/qconfig.pri"
6006 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
6007 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
6008 if [ "$CFG_DEBUG" = "yes" ]; then
6009 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
6010 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6011 QT_CONFIG="$QT_CONFIG release"
6013 QT_CONFIG="$QT_CONFIG debug"
6014 elif [ "$CFG_DEBUG" = "no" ]; then
6015 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
6016 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6017 QT_CONFIG="$QT_CONFIG debug"
6019 QT_CONFIG="$QT_CONFIG release"
6021 if [ "$CFG_FRAMEWORK" = "no" ]; then
6022 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
6024 QT_CONFIG="$QT_CONFIG qt_framework"
6025 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
6027 if [ "$CFG_DEV" = "yes" ]; then
6028 QT_CONFIG="$QT_CONFIG private_tests"
6031 cat >>"$QTCONFIG.tmp" <<EOF
6033 CONFIG += $QTCONFIG_CONFIG
6035 QT_HOST_ARCH = $CFG_HOST_ARCH
6036 QT_CPU_FEATURES = $CFG_CPUFEATURES
6037 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
6038 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6039 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6040 QT_EDITION = $Edition
6041 QT_CONFIG += $QT_CONFIG
6044 QT_VERSION = $QT_VERSION
6045 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6046 QT_MINOR_VERSION = $QT_MINOR_VERSION
6047 QT_PATCH_VERSION = $QT_PATCH_VERSION
6050 QT_LIBINFIX = $QT_LIBINFIX
6051 QT_NAMESPACE = $QT_NAMESPACE
6055 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6056 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6057 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6058 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6059 echo >> "$QTCONFIG.tmp"
6062 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6063 echo "# sysroot" >>"$QTCONFIG.tmp"
6064 echo "!host_build {" >>"$QTCONFIG.tmp"
6065 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6066 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6067 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6068 echo "}" >> "$QTCONFIG.tmp"
6069 echo >> "$QTCONFIG.tmp"
6071 if [ -n "$RPATH_FLAGS" ]; then
6072 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6074 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6075 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6076 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6077 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6080 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6081 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6082 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6085 # replace qconfig.pri if it differs from the newly created temp file
6086 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6087 rm -f "$QTCONFIG.tmp"
6089 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6092 #-------------------------------------------------------------------------------
6093 # save configuration into qmodule.pri
6094 #-------------------------------------------------------------------------------
6095 QTMODULE="$outpath/mkspecs/qmodule.pri"
6097 echo "CONFIG += $QMAKE_CONFIG" >> "$QTMODULE.tmp"
6098 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6100 if [ -n "$QT_CFLAGS_PSQL" ]; then
6101 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6103 if [ -n "$QT_LFLAGS_PSQL" ]; then
6104 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6106 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6107 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6109 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6110 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6112 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6113 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6115 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6116 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6118 if [ -n "$QT_LFLAGS_ODBC" ]; then
6119 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6121 if [ -n "$QT_LFLAGS_TDS" ]; then
6122 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6125 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6126 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6129 #dump in the OPENSSL_LIBS info
6130 if [ '!' -z "$OPENSSL_LIBS" ]; then
6131 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6132 elif [ "$CFG_OPENSSL" = "linked" ]; then
6133 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6136 #dump in the SDK info
6137 if [ '!' -z "$CFG_SDK" ]; then
6138 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6142 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6143 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6145 # replace qmodule.pri if it differs from the newly created temp file
6146 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6147 rm -f "$QTMODULE.tmp"
6149 mv -f "$QTMODULE.tmp" "$QTMODULE"
6152 #-------------------------------------------------------------------------------
6153 # save configuration into .qmake.cache
6154 #-------------------------------------------------------------------------------
6156 CACHEFILE="$outpath/.qmake.cache"
6157 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6158 cat >>"$CACHEFILE.tmp" <<EOF
6160 QT_SOURCE_TREE = \$\$quote($relpath)
6161 QT_BUILD_TREE = \$\$quote($outpath)
6164 # replace .qmake.cache if it differs from the newly created temp file
6165 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6166 rm -f "$CACHEFILE.tmp"
6168 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6171 #-------------------------------------------------------------------------------
6172 # give feedback on configuration
6173 #-------------------------------------------------------------------------------
6174 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6177 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6178 echo "Build type: $PLATFORM"
6180 echo "Building on: $PLATFORM"
6181 echo "Building for: $XPLATFORM"
6184 # the missing space before $CFG_FEATURES is intentional
6185 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6186 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6188 if [ -n "$PLATFORM_NOTES" ]; then
6189 echo "Platform notes:"
6190 echo "$PLATFORM_NOTES"
6195 if [ "$OPT_VERBOSE" = "yes" ]; then
6196 echo $ECHO_N "qmake vars .......... $ECHO_C"
6197 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6198 echo "qmake switches ......... $QMAKE_SWITCHES"
6201 echo "Build .................. $CFG_BUILD_PARTS"
6202 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6203 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6204 echo "Debug .................. yes (combined)"
6205 if [ "$CFG_DEBUG" = "yes" ]; then
6206 echo "Default Link ........... debug"
6208 echo "Default Link ........... release"
6211 echo "Debug .................. $CFG_DEBUG"
6213 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6214 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6216 echo "C++11 support .......... $CFG_CXX11"
6217 if [ -n "$PKG_CONFIG" ]; then
6218 echo "pkg-config ............. yes"
6220 echo "pkg-config ............. no"
6222 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6223 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6224 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6225 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6226 echo "QtGui module ........... $CFG_GUI"
6227 echo "QtWidgets module ....... $CFG_WIDGETS"
6228 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6229 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6231 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6233 echo "QML debugging .......... $CFG_QML_DEBUG"
6234 echo "PCH support ............ $CFG_PRECOMPILE"
6235 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6236 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6237 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6238 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6239 elif [ "$CFG_ARCH" = "arm" ]; then
6240 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6241 echo "NEON support ........... ${CFG_NEON}"
6243 if [ "$CFG_ARCH" = "mips" ]; then
6244 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6246 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6247 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6248 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6249 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6250 echo "NIS support ............ $CFG_NIS"
6251 echo "CUPS support ........... $CFG_CUPS"
6252 echo "Iconv support .......... $CFG_ICONV"
6253 echo "Glib support ........... $CFG_GLIB"
6254 echo "GStreamer support ...... $CFG_GSTREAMER"
6255 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6256 echo "Large File support ..... $CFG_LARGEFILE"
6257 echo "GIF support ............ $CFG_GIF"
6258 if [ "$CFG_JPEG" = "no" ]; then
6259 echo "JPEG support ........... $CFG_JPEG"
6261 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6263 if [ "$CFG_PNG" = "no" ]; then
6264 echo "PNG support ............ $CFG_PNG"
6266 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6268 echo "zlib support ........... $CFG_ZLIB"
6269 echo "Session management ..... $CFG_SM"
6270 echo "libudev support ........ $CFG_LIBUDEV"
6272 if [ "$XPLATFORM_QNX" = "yes" ]; then
6273 echo "SLOG2 support .......... $CFG_SLOG2"
6275 echo "Use system proxies ..... $CFG_SYSTEM_PROXIES"
6277 if [ "$CFG_OPENGL" = "desktop" ]; then
6278 echo "OpenGL support ......... yes (Desktop OpenGL)"
6279 elif [ "$CFG_OPENGL" = "es2" ]; then
6280 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6282 echo "OpenGL support ......... no"
6285 if [ "$CFG_OPENVG" ]; then
6286 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6287 echo "OpenVG support ......... ShivaVG"
6289 echo "OpenVG support ......... $CFG_OPENVG"
6293 echo "XShape support ......... $CFG_XSHAPE"
6294 echo "XVideo support ......... $CFG_XVIDEO"
6295 echo "XSync support .......... $CFG_XSYNC"
6296 echo "Xinerama support ....... $CFG_XINERAMA"
6297 echo "Xcursor support ........ $CFG_XCURSOR"
6298 echo "Xfixes support ......... $CFG_XFIXES"
6299 echo "Xrandr support ......... $CFG_XRANDR"
6300 echo "Xi support ............. $CFG_XINPUT"
6301 echo "Xi2 support ............ $CFG_XINPUT2"
6302 echo "MIT-SHM support ........ $CFG_MITSHM"
6303 echo "FontConfig support ..... $CFG_FONTCONFIG"
6304 echo "XKB Support ............ $CFG_XKB"
6305 echo "immodule support ....... $CFG_IM"
6306 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6308 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6309 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6310 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6311 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6312 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6313 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6314 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6315 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6316 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6319 if [ "$CFG_OPENSSL" = "yes" ]; then
6320 OPENSSL_LINKAGE="(run-time)"
6321 elif [ "$CFG_OPENSSL" = "linked" ]; then
6322 OPENSSL_LINKAGE="(linked)"
6324 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6325 echo "Alsa support ........... $CFG_ALSA"
6326 if [ "$BUILD_ON_MAC" = "yes" ]; then
6327 echo "CoreWlan support ....... $CFG_COREWLAN"
6329 echo "libICU support ......... $CFG_ICU"
6330 echo "PCRE support ........... $CFG_PCRE"
6331 echo "Xcb support ............ $CFG_XCB"
6332 echo "Xrender support ........ $CFG_XRENDER"
6333 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" != "no" ]; then
6334 echo "XInput2 support ........ $CFG_XINPUT2"
6336 echo "EGLFS support .......... $CFG_EGLFS"
6337 echo "DirectFB support ....... $CFG_DIRECTFB"
6338 echo "LinuxFB support ........ $CFG_LINUXFB"
6339 echo "KMS support ............ $CFG_KMS"
6342 # complain about not being able to use dynamic plugins if we are using a static build
6343 if [ "$CFG_SHARED" = "no" ]; then
6345 echo "WARNING: Using static linking will disable the use of dynamically"
6346 echo "loaded plugins. Make sure to import all needed static plugins,"
6347 echo "or compile needed modules into the library."
6350 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6352 echo "NOTE: When linking against OpenSSL, you can override the default"
6353 echo "library names through OPENSSL_LIBS."
6355 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6359 exec 1>&3 3>&- # restore stdout
6360 cat $outpath/config.summary # display config feedback to user
6362 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6364 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6365 echo "if you want a pure debug build."
6370 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6375 #-------------------------------------------------------------------------------
6376 # build makefiles based on the configuration
6377 #-------------------------------------------------------------------------------
6379 if [ "$CFG_PROCESS" != "no" ]; then
6381 if [ "$CFG_PROCESS" = "full" ]; then
6382 echo "Creating makefiles. Please wait..."
6383 "$outpath/bin/qmake" -r "$relpath"
6386 "$outpath/bin/qmake" "$relpath"
6389 if [ "$OPT_FAST" = "yes" ]; then
6391 for part in $CFG_BUILD_PARTS; do
6393 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6396 if [ "x$PART_ROOTS" != "x" ]; then
6398 echo "Creating stub makefiles. Please wait..."
6399 QMAKE="$outpath/bin/qmake"
6400 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6401 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6403 test -f "$outpath/$d/Makefile" && continue
6404 echo " for $relpath/$p"
6406 mkdir -p "$outpath/$d" || exit
6407 cat > "$outpath/$d/Makefile" <<EOF || exit
6408 # $outpath/$d/Makefile: generated by configure
6410 # WARNING: This makefile will be replaced with a real makefile.
6411 # All changes made to this file will be lost.
6416 all clean install qmake first Makefile: FORCE
6417 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6427 #-------------------------------------------------------------------------------
6428 # check for platforms that we don't yet know about
6429 #-------------------------------------------------------------------------------
6430 if [ "$CFG_ARCH" = "unknown" ]; then
6433 NOTICE: configure was unable to determine the architecture
6434 for the $XQMAKESPEC target.
6436 Qt will not use a specialized implementation for any atomic
6437 operations. Instead a generic implemention based on either GCC
6438 intrinsics or C++11 std::atomic<T> will be used (when
6439 available). The generic implementations are generally as fast
6440 as and always as safe as a specialized implementation.
6442 If no generic implementation is available, Qt will use a
6443 fallback UNIX implementation which uses a single
6444 pthread_mutex_t to protect all atomic operations. This
6445 implementation is the slow (but safe) fallback implementation
6446 for architectures Qt does not yet support.
6450 #-------------------------------------------------------------------------------
6451 # check if the user passed the -no-zlib option, which is no longer supported
6452 #-------------------------------------------------------------------------------
6453 if [ -n "$ZLIB_FORCED" ]; then
6454 which_zlib="supplied"
6455 if [ "$CFG_ZLIB" = "system" ]; then
6461 NOTICE: The -no-zlib option was supplied but is no longer
6464 Qt now requires zlib support in all builds, so the -no-zlib
6465 option was ignored. Qt will be built using the $which_zlib
6470 #-------------------------------------------------------------------------------
6471 # check if the user passed the obsoleted -wayland or -no-wayland flag
6472 #-------------------------------------------------------------------------------
6473 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6476 NOTICE: The -wayland and -no-wayland flags are now obsolete
6478 All configuring of QtWayland plugin and QtCompositor happens in the module
6482 #-------------------------------------------------------------------------------
6483 # check if the user passed the obsoleted -arch or -host-arch options
6484 #-------------------------------------------------------------------------------
6485 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6488 NOTICE: The -arch and -host-arch options are obsolete.
6490 Qt now detects the target and host architectures based on compiler
6491 output. Qt will be built using $CFG_ARCH for the target architecture
6492 and $CFG_HOST_ARCH for the host architecture (note that these two
6493 will be the same unless you are cross-compiling).
6497 #-------------------------------------------------------------------------------
6498 # finally save the executed command to another script
6499 #-------------------------------------------------------------------------------
6500 if [ `basename $0` != "config.status" ]; then
6501 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6503 # add the system variables
6504 for varname in $SYSTEM_VARIABLES; do
6506 'if [ -n "\$'${varname}'" ]; then
6507 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6512 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6514 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6515 echo "#!/bin/sh" > "$outpath/config.status"
6516 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6517 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6518 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6519 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6520 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6521 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6522 echo "else" >> "$outpath/config.status"
6523 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6524 echo "fi" >> "$outpath/config.status"
6525 chmod +x "$outpath/config.status"
6528 if [ -n "$RPATH_MESSAGE" ]; then
6530 echo "$RPATH_MESSAGE"
6533 MAKE=`basename "$MAKE"`
6535 echo Qt is now configured for building. Just run \'$MAKE\'.
6536 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6537 echo Once everything is built, Qt is installed.
6538 echo You should not run \'$MAKE install\'.
6540 echo Once everything is built, you must run \'$MAKE install\'.
6541 echo Qt will be installed into $QT_INSTALL_PREFIX
6544 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.