2 #############################################################################
4 ## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/legal
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## Commercial License Usage
11 ## Licensees holding valid commercial Qt licenses may use this file in
12 ## accordance with the commercial license agreement provided with the
13 ## Software or, alternatively, in accordance with the terms contained in
14 ## a written agreement between you and Digia. For licensing terms and
15 ## conditions see http://qt.digia.com/licensing. For further information
16 ## use the contact form at http://qt.digia.com/contact-us.
18 ## GNU Lesser General Public License Usage
19 ## Alternatively, this file may be used under the terms of the GNU Lesser
20 ## General Public License version 2.1 as published by the Free Software
21 ## Foundation and appearing in the file LICENSE.LGPL included in the
22 ## packaging of this file. Please review the following information to
23 ## ensure the GNU Lesser General Public License version 2.1 requirements
24 ## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
26 ## In addition, as a special exception, Digia gives you certain additional
27 ## rights. These rights are described in the Digia Qt LGPL Exception
28 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
30 ## GNU General Public License Usage
31 ## Alternatively, this file may be used under the terms of the GNU
32 ## General Public License version 3.0 as published by the Free Software
33 ## Foundation and appearing in the file LICENSE.GPL included in the
34 ## packaging of this file. Please review the following information to
35 ## ensure the GNU General Public License version 3.0 requirements will be
36 ## met: http://www.gnu.org/copyleft/gpl.html.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 compilerSupportsFlag()
229 cat >conftest.cpp <<EOF
230 int main() { return 0; }
232 "$@" -o conftest-out.o conftest.cpp
234 rm -f conftest.cpp conftest-out.o
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag $compiler $lflags >/dev/null 2>&1
251 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 #-------------------------------------------------------------------------------
399 #-------------------------------------------------------------------------------
403 EditionString=Commercial
407 # parse the arguments, setting things to "yes" or "no"
408 while [ "$#" -gt 0 ]; do
412 #Autoconf style options
414 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
418 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
422 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
423 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
426 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
429 -h|help|--help|-help)
430 if [ "$VAL" = "yes" ]; then
432 COMMERCIAL_USER="no" #doesn't matter we will display the help
435 COMMERCIAL_USER="no" #doesn't matter we will display the help
439 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
443 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
450 if [ "$UNKNOWN_ARG" = "yes" ]; then
462 COMMERCIAL_USER="yes"
476 if [ "$COMMERCIAL_USER" = "ask" ]; then
478 echo "Which edition of Qt do you want to use ?"
480 echo "Type 'c' if you want to use the Commercial Edition."
481 echo "Type 'o' if you want to use the Open Source Edition."
485 if [ "$commercial" = "c" ]; then
486 COMMERCIAL_USER="yes"
488 elif [ "$commercial" = "o" ]; then
495 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
496 # Commercial preview release
497 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
500 QT_EDITION="QT_EDITION_DESKTOP"
501 LicenseType="Technology Preview"
502 elif [ $COMMERCIAL_USER = "yes" ]; then
503 # one of commercial editions
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
506 # read in the license file
507 if [ -f "$LICENSE_FILE" ]; then
508 . "$LICENSE_FILE" >/dev/null 2>&1
509 if [ -z "$LicenseKeyExt" ]; then
511 echo "You are using an old license file."
513 echo "Please install the license file supplied by Digia,"
514 echo "or install the Qt Open Source Edition if you intend to"
515 echo "develop free software."
518 if [ -z "$Licensee" ]; then
520 echo "Invalid license key. Please check the license key."
524 if [ -z "$LicenseKeyExt" ]; then
526 echo $ECHO_N "Please enter your license key: $ECHO_C"
528 Licensee="Unknown user"
533 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
534 && LicenseValid="yes" \
536 if [ "$LicenseValid" != "yes" ]; then
538 echo "Invalid license key. Please check the license key."
541 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
542 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
543 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
544 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
546 # determine which edition we are licensed to use
547 case "$LicenseTypeCode" in
549 LicenseType="Commercial"
553 QT_EDITION="QT_EDITION_UNIVERSAL"
556 Edition="FullFramework"
557 EditionString="Full Framework"
558 QT_EDITION="QT_EDITION_DESKTOP"
561 Edition="GUIFramework"
562 EditionString="GUI Framework"
563 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
568 LicenseType="Evaluation"
569 QMakeVar add DEFINES QT_EVAL
573 QT_EDITION="QT_EDITION_EVALUATION"
578 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
580 echo "Invalid license key. Please check the license key."
584 # verify that we are licensed to use Qt on this platform
586 case "$PlatformCode" in
589 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
593 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
596 ### EMBEDDED_QPA logic missing ###
597 case "$PlatformCode,$PLATFORM_MAC" in
598 X9,* | XC,* | XU,* | XW,* | XM,*)
600 LICENSE_EXTENSION="-ALLOS"
602 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
603 # Qt for Embedded Linux
604 LICENSE_EXTENSION="-EMBEDDED"
606 6M,* | N7,* | N9,* | NX,*)
608 LICENSE_EXTENSION="-EMBEDDED"
610 FM,* | LM,yes | ZM,no)
612 LICENSE_EXTENSION="-DESKTOP"
616 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
618 echo "You are not licensed for the $Platform platform."
620 echo "Please use the contact form at http://qt.digia.com/contact-us"
621 echo "to upgrade your license to include the $Platform platform, or install"
622 echo "the Qt Open Source Edition if you intend to develop free software."
627 if test -r "$relpath/.LICENSE"; then
628 # Generic, non-final license
630 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
635 *TECHNOLOGY?PREVIEW*)
642 echo >&2 "Invalid license files; cannot continue"
647 EditionString="$Edition"
648 QT_EDITION="QT_EDITION_DESKTOP"
651 case "$LicenseFeatureCode" in
654 case "$LicenseType" in
656 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
659 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
665 case "$LicenseType" in
667 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
670 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
676 echo "Invalid license key. Please check the license key."
680 case "$LicenseFeatureCode" in
688 if [ '!' -f "$outpath/LICENSE" ]; then
689 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
690 echo "this software has disappeared."
692 echo "Sorry, you are not licensed to use this software."
693 echo "Try re-installing."
697 elif [ $COMMERCIAL_USER = "no" ]; then
698 # Open Source edition - may only be used under the terms of the GPL or LGPL.
699 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
700 Licensee="Open Source"
702 EditionString="Open Source"
703 QT_EDITION="QT_EDITION_OPENSOURCE"
706 #-------------------------------------------------------------------------------
707 # initalize variables
708 #-------------------------------------------------------------------------------
710 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
711 for varname in $SYSTEM_VARIABLES; do
712 qmakevarname="${varname}"
713 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
714 if [ "${varname}" = "LDFLAGS" ]; then
715 qmakevarname="LFLAGS"
716 elif [ "${varname}" = "LD" ]; then
720 'if [ -n "\$'${varname}'" ]; then
721 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
725 # Use CC/CXX to run config.tests
726 mkdir -p "$outpath/config.tests"
727 rm -f "$outpath/config.tests/.qmake.cache"
728 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
730 QMakeVar add styles "mac fusion windows"
732 # QTDIR may be set and point to an old or system-wide Qt installation
735 # the minimum version of libdbus-1 that we require:
736 MIN_DBUS_1_VERSION=0.93
738 # initalize internal variables
739 CFG_CONFIGURE_EXIT_ON_ERROR=yes
742 CFG_GUI=auto # (yes|no|auto)
748 CFG_FORCEDEBUGINFO=no
769 CFG_OPENVG_LC_INCLUDES=no
770 CFG_OPENVG_SHIVA=auto
771 CFG_OPENVG_ON_OPENGL=auto
777 QT_DEFAULT_BUILD_PARTS="libs tools examples"
781 CFG_AUDIO_BACKEND=auto
784 CFG_JAVASCRIPTCORE_JIT=auto
786 CFG_STACK_PROTECTOR_STRONG=auto
788 CFG_SYSTEM_PROXIES=no
790 # Target architecture
793 # Host architecture, same as CFG_ARCH when not cross-compiling
795 CFG_HOST_CPUFEATURES=
796 # Set when the -arch or -host-arch arguments are used
797 OPT_OBSOLETE_HOST_ARG=no
810 CFG_OBSOLETE_WAYLAND=no
822 CFG_SEPARATE_DEBUG_INFO=no
823 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
824 CFG_REDUCE_EXPORTS=auto
832 CFG_REDUCE_RELOCATIONS=auto
833 CFG_ACCESSIBILITY=auto
838 CFG_CLOCK_GETTIME=auto
839 CFG_CLOCK_MONOTONIC=auto
856 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
857 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
862 OPT_CONFIRM_LICENSE=no
875 QPA_PLATFORM_GUARD=yes
878 # initalize variables used for installation
890 QT_INSTALL_TRANSLATIONS=
895 CFG_GCC_SYSROOT="yes"
900 #flags for SQL drivers
908 QT_LFLAGS_ODBC="-lodbc"
911 # flags for libdbus-1
915 # flags for Glib (X11 only)
919 # flags for GStreamer (X11 only)
923 # default qpa platform
924 QT_QPA_DEFAULT_PLATFORM=
926 #-------------------------------------------------------------------------------
927 # check SQL drivers available in this package
928 #-------------------------------------------------------------------------------
930 # opensource version removes some drivers, so force them to be off
936 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
937 for a in "$relpath/src/plugins/sqldrivers/"*; do
939 base_a=`basename "$a"`
940 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
941 eval "CFG_SQL_${base_a}=auto"
946 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
947 if [ -d "$relpath/src/plugins/imageformats" ]; then
948 for a in "$relpath/src/plugins/imageformats/"*; do
950 base_a=`basename "$a"`
951 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
956 #-------------------------------------------------------------------------------
957 # parse command line arguments
958 #-------------------------------------------------------------------------------
960 # parse the arguments, setting things to "yes" or "no"
961 while [ "$#" -gt 0 ]; do
965 #Autoconf style options
967 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
971 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
975 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
976 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
979 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
983 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
987 -no-*-*|-plugin-*-*|-qt-*-*)
988 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
989 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
993 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
996 #Qt style options that pass an argument
997 -prefix|-docdir|-headerdir|-plugindir|-importdir|-qmldir|-archdatadir|-datadir|-libdir|-bindir|-libexecdir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa|-qconfig)
998 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1002 #Qt style complex options in one command
1003 -enable-*|-disable-*)
1004 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1005 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1015 #Qt Builtin/System style options
1016 -no-*|-system-*|-qt-*)
1017 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1018 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1020 #Options that cannot be generalized
1027 # this option may or may not be followed by an argument
1028 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1037 # this option may or may not be followed by an argument
1038 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1046 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1047 # this option may or may not be followed by an argument
1048 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1067 if [ "$1" = "-D" ]; then
1071 VAL=`echo $1 | sed 's,-D,,'`
1076 # this option may or may not be followed by an argument
1077 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1086 if [ "$1" = "-I" ]; then
1090 VAL=`echo $1 | sed 's,-I,,'`
1095 if [ "$1" = "-L" ]; then
1099 VAL=`echo $1 | sed 's,-L,,'`
1104 if [ "$1" = "-R" ]; then
1108 VAL=`echo $1 | sed 's,-R,,'`
1113 if [ "$1" = "-l" ]; then
1117 VAL=`echo $1 | sed 's,-l,,'`
1122 if [ "$1" = "-F" ]; then
1126 VAL=`echo $1 | sed 's,-F,,'`
1131 if [ "$1" = "-fw" ]; then
1135 VAL=`echo $1 | sed 's,-fw,,'`
1142 #General options, including Qt style yes options
1144 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1151 if [ "$UNKNOWN_ARG" = "yes" ]; then
1152 echo "$1: unknown argument"
1163 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1164 CFG_ACCESSIBILITY="$VAL"
1173 CFG_USE_GNUMAKE="$VAL"
1176 CFG_MYSQL_CONFIG="$VAL"
1179 QT_INSTALL_PREFIX="$VAL"
1182 QT_HOST_PREFIX="$VAL"
1191 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1192 CFG_PKGCONFIG="$VAL"
1198 CFG_PKGCONFIG="force"
1201 QT_INSTALL_DOCS="$VAL"
1204 QT_INSTALL_HEADERS="$VAL"
1207 QT_INSTALL_PLUGINS="$VAL"
1210 QT_INSTALL_IMPORTS="$VAL"
1213 QT_INSTALL_QML="$VAL"
1216 QT_INSTALL_ARCHDATA="$VAL"
1219 QT_INSTALL_DATA="$VAL"
1222 QT_INSTALL_LIBS="$VAL"
1231 QT_INSTALL_TRANSLATIONS="$VAL"
1233 sysconfdir|settingsdir)
1234 QT_INSTALL_SETTINGS="$VAL"
1237 QT_INSTALL_EXAMPLES="$VAL"
1240 QT_INSTALL_TESTS="$VAL"
1249 CFG_GCC_SYSROOT="$VAL"
1252 QT_INSTALL_BINS="$VAL"
1255 QT_INSTALL_LIBEXECS="$VAL"
1258 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1265 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1266 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1267 [ "$VAL" = "es2" ]; then
1274 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1281 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1284 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1287 if [ "$BUILD_ON_MAC" = "yes" ]; then
1289 DeviceVar set QMAKE_MAC_SDK "$VAL"
1295 OPT_OBSOLETE_HOST_ARG=yes
1298 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1299 CFG_MAC_HARFBUZZ="$VAL"
1306 if [ "$BUILD_ON_MAC" = "yes" ]; then
1307 CFG_FRAMEWORK="$VAL"
1313 if [ "$VAL" = "yes" ]; then
1315 QMakeVar add QMAKE_CFLAGS -pg
1316 QMakeVar add QMAKE_CXXFLAGS -pg
1317 QMakeVar add QMAKE_LFLAGS -pg
1318 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1324 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1331 if [ "$VAL" = "yes" ]; then
1332 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1337 # keep compatibility with old platform names
1343 PLATFORM=hpux-acc-o64
1346 PLATFORM=hpux-acc-64
1349 PLATFORM=hpux-acc-64
1361 PLATFORM=reliant-cds-64
1364 PLATFORM=solaris-cc-64
1367 PLATFORM=unixware-cc
1370 PLATFORM=unixware-g++
1373 PLATFORM=unixware-cc
1376 PLATFORM=unixware-g++
1382 i386) NATIVE_64_ARCH="x86_64" ;;
1383 powerpc) NATIVE_64_ARCH="ppc64" ;;
1384 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1386 if [ ! -z "$NATIVE_64_ARCH" ]; then
1387 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1394 case `basename "$XPLATFORM"` in win32-g++*)
1397 CFG_REDUCE_EXPORTS=no
1402 XPLATFORM=`resolveDeviceMkspec $VAL`
1403 [ "$XPLATFORM" = "undefined" ] && exit 101
1406 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1407 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1408 DeviceVar set $DEV_VAR $DEV_VAL
1411 QT_QPA_DEFAULT_PLATFORM="$VAL"
1414 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1415 CFG_DEBUG_RELEASE="$VAL"
1421 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1422 CFG_RELEASE_QMAKE="$VAL"
1428 if [ "$VAL" = "yes" ]; then
1430 elif [ "$VAL" = "no" ]; then
1440 CFG_FORCEDEBUGINFO="$VAL"
1442 developer-build|commercial|opensource)
1443 # These switches have been dealt with already
1446 if [ "$VAL" = "yes" ]; then
1448 elif [ "$VAL" = "no" ]; then
1455 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1456 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1462 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1463 if [ "$VAL" = "no" ]; then
1464 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1465 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1466 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1472 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1479 if [ "$VAL" = "no" ]; then
1486 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1494 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1501 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1508 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1515 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1522 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1529 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1536 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1543 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1544 CFG_PRECOMPILE="$VAL"
1549 separate-debug-info)
1550 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1551 CFG_SEPARATE_DEBUG_INFO="$VAL"
1552 elif [ "$VAL" = "nocopy" ] ; then
1553 CFG_SEPARATE_DEBUG_INFO="yes"
1554 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1560 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1561 CFG_REDUCE_EXPORTS="$VAL"
1567 if [ "$VAL" = "no" ]; then
1574 if [ "$VAL" = "no" ]; then
1581 if [ "$VAL" = "no" ]; then
1588 if [ "$VAL" = "no" ]; then
1595 if [ "$VAL" = "no" ]; then
1602 if [ "$VAL" = "no" ]; then
1609 if [ "$VAL" = "no" ]; then
1619 if [ "$VAL" = "no" ]; then
1626 if [ "$VAL" = "no" ]; then
1633 if [ "$VAL" = "no" ]; then
1634 CFG_MIPS_DSPR2="$VAL"
1640 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1641 CFG_REDUCE_RELOCATIONS="$VAL"
1647 [ "$VAL" = "qt" ] && VAL=yes
1648 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1653 # No longer supported:
1654 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1657 if [ "$VAL" = "system" ]; then
1664 [ "$VAL" = "yes" ] && VAL=qt
1665 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1672 [ "$VAL" = "yes" ] && VAL=qt
1673 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1680 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1687 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1694 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1701 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1708 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1715 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1716 CFG_FONTCONFIG="$VAL"
1722 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1729 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ] || [ "$VAL" = "qt" ]; then
1731 if [ "$VAL" = "yes" ]; then
1739 CFG_OBSOLETE_WAYLAND=yes
1742 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1749 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1756 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1763 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1770 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1777 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1784 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1791 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1798 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1805 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1812 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1813 CFG_GSTREAMER="$VAL"
1819 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1820 CFG_QGTKSTYLE="$VAL"
1826 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1829 if [ "$VAL" = "no" ]; then
1837 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1839 elif [ "$VAL" = "no" ]; then
1846 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1847 QPA_PLATFORM_GUARD="$VAL"
1853 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1855 elif [ "$VAL" = "runtime" ]; then
1862 if [ "$VAL" = "yes" ]; then
1869 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1876 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1877 CFG_LARGEFILE="$VAL"
1883 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1890 if [ "$VAL" = "yes" ]; then
1891 CFG_OPENSSL="linked"
1897 if [ "$VAL" = "yes" ]; then
1900 if [ "$VAL" = "no" ]; then
1908 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1909 CFG_JAVASCRIPTCORE_JIT="$VAL"
1915 if [ "$VAL" = "yes" ]; then
1916 OPT_CONFIRM_LICENSE="$VAL"
1922 if [ "$VAL" = "yes" ]; then
1928 sql-*|imageformat-*)
1929 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1930 # if autoconf style options were used, $VAL can be "yes" or "no"
1931 [ "$VAL" = "yes" ] && VAL=qt
1932 # now $VAL should be "no", "qt", or "plugin"... double-check
1933 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1936 # now $VAL is "no", "qt", or "plugin"
1938 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1939 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1941 # Grab the available values
1944 avail="$CFG_SQL_AVAILABLE"
1947 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1948 if [ "$OPT" != "plugin" ]; then
1949 # png is always built in
1955 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1959 # Check that that user's value is available.
1962 if [ "$VAL" = "$d" ]; then
1967 [ "$found" = yes ] || ERROR=yes
1969 if [ "$VAR" = "sql" ]; then
1970 # set the CFG_SQL_driver
1971 eval "CFG_SQL_$VAL=\$OPT"
1973 elif [ "$VAR" = "imageformat" ]; then
1974 [ "$OPT" = "qt" ] && OPT=yes
1975 VAL="`echo $VAL |tr a-z A-Z`"
1976 eval "CFG_$VAL=$OPT"
1980 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1981 if [ "$OPT" = "plugin" ]; then
1984 QMakeVar add "${VAR}s" "${VAL}"
1985 elif [ "$OPT" = "no" ]; then
1986 PLUG_VAR="${VAR}-plugin"
1988 QMakeVar del "${IN_VAR}s" "$VAL"
1989 QMakeVar del "${PLUG_VAR}s" "$VAL"
1991 if [ "$ERROR" = "yes" ]; then
1992 echo "$CURRENT_OPT: unknown argument"
1997 if [ "$VAL" = "yes" ]; then
1998 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1999 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
2003 elif [ "$VAL" = "no" ]; then
2004 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
2005 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2014 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2021 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2028 DEFINES="$DEFINES \"$VAL\""
2029 D_FLAGS="$D_FLAGS -D\"$VAL\""
2032 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2035 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2038 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2041 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2044 if [ "$BUILD_ON_MAC" = "yes" ]; then
2045 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2046 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2052 if [ "$BUILD_ON_MAC" = "yes" ]; then
2053 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2059 W_FLAGS="$W_FLAGS \"${VAL}\""
2074 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2075 CFG_AUDIO_BACKEND="$VAL"
2081 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2088 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2089 CFG_FORCE_ASSERTS="$VAL"
2095 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2102 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2109 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2110 CFG_SYSTEM_PROXIES="$VAL"
2119 if [ "$UNKNOWN_OPT" = "yes" ]; then
2120 echo "${CURRENT_OPT}: invalid command-line switch"
2126 # update QT_CONFIG to show our current predefined configuration
2127 case "$CFG_QCONFIG" in
2128 minimal|small|medium|large|full)
2129 # these are a sequence of increasing functionality
2130 for c in minimal small medium large full; do
2131 QT_CONFIG="$QT_CONFIG $c-config"
2132 [ "$CFG_QCONFIG" = $c ] && break
2136 # not known to be sufficient for anything
2137 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2138 echo >&2 "Error: configuration file not found:"
2139 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2141 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2146 #-------------------------------------------------------------------------------
2147 # build tree initialization
2148 #-------------------------------------------------------------------------------
2150 # where to find which..
2151 unixtests="$relpath/config.tests/unix"
2152 mactests="$relpath/config.tests/mac"
2153 WHICH="$unixtests/which.test"
2155 PERL=`$WHICH perl 2>/dev/null`
2157 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2159 for e in gawk nawk awk; do
2160 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2167 PERL="/usr/bin/perl"
2168 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2172 ### skip this if the user just needs help...
2173 if [ "$OPT_HELP" != "yes" ]; then
2175 # is this a shadow build?
2176 if [ "$OPT_SHADOW" = "maybe" ]; then
2178 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2179 if [ -h "$outpath" ]; then
2180 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2186 if [ "$OPT_SHADOW" = "yes" ]; then
2187 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2188 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2189 echo >&2 "Cannot proceed."
2192 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2195 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2197 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2198 echo "Qt can be built in release mode with separate debug information, so"
2199 echo "-debug-and-release is not necessary anymore"
2203 if [ "$CFG_SILENT" = "yes" ]; then
2204 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2207 # if the source tree is different from the build tree,
2208 # symlink or copy part of the sources
2209 if [ "$OPT_SHADOW" = "yes" ]; then
2210 echo "Preparing build tree..."
2212 if [ -z "$PERL" ]; then
2214 echo "You need perl in your PATH to make a shadow build."
2215 echo "Cannot proceed."
2219 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2221 # make a syncqt script that can be used in the shadow
2222 rm -f "$outpath/bin/syncqt"
2223 if [ -x "$relpath/bin/syncqt" ]; then
2224 mkdir -p "$outpath/bin"
2225 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2226 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2227 chmod 755 "$outpath/bin/syncqt"
2230 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2231 rm -f "$outpath/bin/$i"
2232 if [ -x "$relpath/bin/$i" ]; then
2233 mkdir -p "$outpath/bin"
2234 echo "#!/bin/sh" >"$outpath/bin/$i"
2235 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2236 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2237 chmod 755 "$outpath/bin/$i"
2241 # save a pre-existing mkspecs/modules dir
2242 test -d "$outpath/mkspecs/modules" && \
2243 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2244 # ditto for mkspecs/modules-inst
2245 test -d "$outpath/mkspecs/modules-inst" && \
2246 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2248 # symlink the mkspecs directory
2249 mkdir -p "$outpath/mkspecs"
2250 rm -rf "$outpath"/mkspecs/*
2251 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2255 rm -rf "$outpath/mkspecs/$1"
2256 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2257 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2260 # Special case for mkspecs/features directory.
2261 # To be able to place .prf files into a shadow build directory,
2262 # we're creating links for files only. The directory structure is reproduced.
2263 ShadowMkspecs features
2265 # The modules dir is special, too.
2266 if test -d "$outpath/mkspecs-modules"; then
2267 rm -rf "$outpath/mkspecs/modules"
2268 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2270 ShadowMkspecs modules
2273 # The modules-inst dir is not quite as special, but still.
2274 if test -d "$outpath/mkspecs-modules-inst"; then
2275 rm -rf "$outpath/mkspecs/modules-inst"
2276 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2279 # Prepare doc directory
2280 mkdir -p "$outpath/doc"
2281 ln -f -s "$relpath"/doc/global "$outpath/doc"
2284 # symlink fonts to be able to run application from build directory
2285 if [ ! -d "${outpath}/lib/fonts" ]; then
2286 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2287 mkdir -p "${outpath}/lib"
2288 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2292 if [ "$OPT_FAST" = "auto" ]; then
2293 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2300 # find a make command
2301 if [ -z "$MAKE" ]; then
2303 for mk in gmake make; do
2304 if "$WHICH" $mk >/dev/null 2>&1; then
2309 if [ -z "$MAKE" ]; then
2310 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2311 echo >&2 "Cannot proceed."
2314 # export MAKE, we need it later in the config.tests
2320 #-------------------------------------------------------------------------------
2321 # auto-detect all that hasn't been specified in the arguments
2322 #-------------------------------------------------------------------------------
2324 if [ -z "$PLATFORM" ]; then
2326 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2328 OSX_VERSION=`uname -r | cut -d. -f1`
2329 # Select compiler. Use g++ unless we find a usable Clang version
2331 if [ "$OSX_VERSION" -ge 12 ]; then
2332 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2334 elif [ "$OSX_VERSION" -eq 11 ]; then
2335 # We're on Lion. Check if we have a supported Clang version
2336 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2338 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2344 #PLATFORM=aix-g++-64
2346 #PLATFORM=aix-xlc-64
2348 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2358 # PLATFORM=dynix-g++
2364 PLATFORM=freebsd-g++
2366 - Also available for FreeBSD: freebsd-icc
2370 PLATFORM=openbsd-g++
2381 #PLATFORM=irix-cc-64
2383 - Also available for IRIX: irix-g++ irix-cc-64
2387 case "$UNAME_MACHINE" in
2389 #PLATFORM=hpuxi-acc-32
2390 PLATFORM=hpuxi-acc-64
2392 - Also available for HP-UXi: hpuxi-acc-32
2398 #PLATFORM=hpux-acc-64
2400 #PLATFORM=hpux-acc-o64
2402 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2411 - Also available for Tru64: tru64-g++
2415 case "$UNAME_MACHINE" in
2417 PLATFORM=linux-g++-64
2424 - Also available for Linux: linux-kcc linux-icc linux-cxx
2428 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2429 PLATFORM="solaris-g++"
2431 #PLATFORM=solaris-g++
2433 #PLATFORM=solaris-cc64
2436 - Also available for Solaris: solaris-g++ solaris-cc-64
2439 ReliantUNIX-*:*|SINIX-*:*)
2440 PLATFORM=reliant-cds
2441 #PLATFORM=reliant-cds-64
2443 - Also available for Reliant UNIX: reliant-cds-64
2453 #PLATFORM=unixware-g++
2454 PLATFORM=unixware-cc
2456 - Also available for OpenUNIX: unixware-g++
2460 #PLATFORM=unixware-g++
2461 PLATFORM=unixware-cc
2463 - Also available for UnixWare: unixware-g++
2470 - Also available for SCO OpenServer: sco-g++
2474 PLATFORM=unixware-g++
2477 PLATFORM=unsupported/qnx-g++
2480 if [ "$OPT_HELP" != "yes" ]; then
2482 echo " The build script does not currently recognize all" >&2
2483 echo " platforms supported by Qt." >&2
2484 echo " Rerun this script with a -platform option listed to" >&2
2485 echo " set the system/compiler combination you use." >&2
2492 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2494 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2495 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2496 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2498 if [ -d "$PLATFORM" ]; then
2499 QMAKESPEC="$PLATFORM"
2501 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2503 if [ -d "$XPLATFORM" ]; then
2504 XQMAKESPEC="$XPLATFORM"
2506 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2508 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2509 QT_CROSS_COMPILE=yes
2510 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2511 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2514 if [ "$BUILD_ON_MAC" = "yes" ]; then
2515 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2517 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2518 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2519 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2520 echo " built with 'macx-g++'" >&2
2526 # check specified platforms are supported
2527 if [ '!' -d "$QMAKESPEC" ]; then
2529 echo " The specified system/compiler is not supported:"
2533 echo " Please see the README file for a complete list."
2537 if [ '!' -d "$XQMAKESPEC" ]; then
2539 echo " The specified system/compiler is not supported:"
2543 echo " Please see the README file for a complete list."
2547 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2549 echo " The specified system/compiler port is not complete:"
2551 echo " $XQMAKESPEC/qplatformdefs.h"
2553 echo " Please use the contact form at http://qt.digia.com/contact-us"
2558 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2559 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2560 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2561 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2562 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2566 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2567 case `basename "$XPLATFORM"` in
2570 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2572 echo "Please use the contact form at http://qt.digia.com/contact-us"
2573 echo "to upgrade your license to include this platform, or install"
2574 echo "the Qt Open Source Edition if you intend to develop free software."
2580 #-------------------------------------------------------------------------------
2581 # tests that don't need qmake (must be run before displaying help)
2582 #-------------------------------------------------------------------------------
2584 # detect build style
2585 if [ "$CFG_DEBUG" = "auto" ]; then
2586 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2587 CFG_DEBUG_RELEASE=yes
2589 elif [ "$CFG_DEV" = "yes" ]; then
2590 CFG_DEBUG_RELEASE=no
2593 CFG_DEBUG_RELEASE=no
2597 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2598 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2601 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2602 QT_CONFIG="$QT_CONFIG force_debug_info"
2605 # pass on $CFG_SDK to the arch/configure tests.
2606 if [ -n "$CFG_SDK" ]; then
2607 MAC_SDK_FLAG="-sdk $CFG_SDK"
2612 # find the default framework value
2613 if [ "$BUILD_ON_MAC" = "yes" ]; then
2614 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2615 CFG_FRAMEWORK="$CFG_SHARED"
2616 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2618 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2626 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2628 TEST_COMPILER=$QMAKE_CONF_COMPILER
2629 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2630 if [ -z "$TEST_COMPILER" ]; then
2631 echo "ERROR: Cannot set the compiler for the configuration tests"
2635 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2638 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2639 if [ -n "$GCC_MACHINE_DUMP" ]; then
2640 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2643 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2644 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2648 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2650 # auto-detect precompiled header support
2651 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2652 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2659 # auto-detect support for separate debug info in objcopy
2660 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2661 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2662 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2663 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2664 CFG_SEPARATE_DEBUG_INFO=no
2668 # binutils on HP-UX is buggy; default to no.
2669 CFG_SEPARATE_DEBUG_INFO=no
2672 CFG_SEPARATE_DEBUG_INFO=yes
2678 # auto-detect -fvisibility support
2679 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2680 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2681 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2682 echo "-reduce-exports was requested but this compiler does not support it"
2683 echo "Re-run configure with -v for more information"
2686 CFG_REDUCE_EXPORTS=no
2688 CFG_REDUCE_EXPORTS=yes
2692 # auto-detect -fstack-protector-strong support (for QNX only currently)
2693 if [ "$XPLATFORM_QNX" = "yes" ]; then
2694 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2695 CFG_STACK_PROTECTOR_STRONG=yes
2697 CFG_STACK_PROTECTOR_STRONG=no
2700 CFG_STACK_PROTECTOR_STRONG=no
2703 # detect the availability of the -Bsymbolic-functions linker optimization
2704 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2705 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2706 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2707 echo "-reduce-relocations was requested but this compiler does not support it"
2708 echo "Re-run configure with -v for more information"
2711 CFG_REDUCE_RELOCATIONS=no
2713 CFG_REDUCE_RELOCATIONS=yes
2717 # auto-detect GNU make support
2718 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2722 # find the default framework value
2723 if [ "$BUILD_ON_MAC" = "yes" ]; then
2724 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2725 CFG_FRAMEWORK="$CFG_SHARED"
2726 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2728 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2736 # auto-detect default include and library search paths
2737 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2738 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2739 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2740 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2741 /^End of search/ { yup=0 }
2742 yup { print substr($0, 2) }
2743 /^\#include </ { yup=1 }
2745 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2747 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2750 #setup the build parts
2751 if [ -z "$CFG_BUILD_PARTS" ]; then
2752 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2754 # build tests by default, if a developer build
2755 if [ "$CFG_DEV" = "yes" ]; then
2756 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2759 # don't build tools by default when cross-compiling
2760 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2761 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2764 for nobuild in $CFG_NOBUILD_PARTS; do
2765 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2767 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2769 # echo "WARNING: libs is a required part of the build."
2771 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2774 #-------------------------------------------------------------------------------
2775 # post process QT_INSTALL_* variables
2776 #-------------------------------------------------------------------------------
2778 if [ -z "$QT_INSTALL_PREFIX" ]; then
2779 if [ "$CFG_DEV" = "yes" ]; then
2780 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2782 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2785 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2787 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2788 QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2790 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2792 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2793 QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2795 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2797 if [ -z "$QT_INSTALL_ARCHDATA" ]; then #default
2798 QT_INSTALL_ARCHDATA="$QT_INSTALL_PREFIX" #fallback
2800 QT_INSTALL_ARCHDATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_ARCHDATA"`
2802 if [ -z "$QT_INSTALL_DATA" ]; then #default
2803 QT_INSTALL_DATA="$QT_INSTALL_PREFIX" #fallback
2805 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2807 if [ -z "$QT_INSTALL_BINS" ]; then #default
2808 QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2810 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2812 if [ -z "$QT_INSTALL_LIBEXECS" ]; then #default
2813 QT_INSTALL_LIBEXECS="$QT_INSTALL_ARCHDATA/libexec" #fallback
2815 QT_INSTALL_LIBEXECS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBEXECS"`
2817 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2818 QT_INSTALL_DOCS="$QT_INSTALL_DATA/doc" #fallback
2820 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2822 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2823 QT_INSTALL_PLUGINS="$QT_INSTALL_ARCHDATA/plugins" #fallback
2825 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2827 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2828 QT_INSTALL_IMPORTS="$QT_INSTALL_ARCHDATA/imports" #fallback
2830 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2833 if [ -z "$QT_INSTALL_QML" ]; then #default
2834 QT_INSTALL_QML="$QT_INSTALL_ARCHDATA/qml" #fallback
2836 QT_INSTALL_QML=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_QML"`
2838 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2839 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_DATA/translations" #fallback
2841 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2843 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2844 if [ "$BUILD_ON_MAC" = "yes" ]; then
2845 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2847 QT_INSTALL_SETTINGS=/etc/xdg
2850 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2852 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2853 QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2855 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2858 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2859 QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2861 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2863 #------- host paths --------
2865 if [ -z "$QT_HOST_PREFIX" ]; then
2866 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2869 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2873 if [ -z "$QT_HOST_BINS" ]; then #default
2875 QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2877 QT_HOST_BINS="$QT_INSTALL_BINS"
2880 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2882 if [ -z "$QT_HOST_DATA" ]; then #default
2884 QT_HOST_DATA="$QT_HOST_PREFIX"
2886 QT_HOST_DATA="$QT_INSTALL_ARCHDATA"
2889 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2892 #-------------------------------------------------------------------------------
2893 # help - interactive parts of the script _after_ this section please
2894 #-------------------------------------------------------------------------------
2896 # next, emit a usage message if something failed.
2897 if [ "$OPT_HELP" = "yes" ]; then
2898 [ "x$ERROR" = "xyes" ] && echo
2899 if [ "$CFG_NIS" = "no" ]; then
2906 if [ "$CFG_CUPS" = "no" ]; then
2913 if [ "$CFG_ICONV" = "no" ]; then
2920 if [ "$CFG_LARGEFILE" = "no" ]; then
2927 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2935 if [ "$CFG_XCB" = "no" ]; then
2943 if [ "$CFG_EGLFS" = "no" ]; then
2951 if [ "$CFG_DIRECTFB" = "no" ]; then
2959 if [ "$CFG_LINUXFB" = "no" ]; then
2967 if [ "$CFG_KMS" = "no" ]; then
2975 if [ "$CFG_XINPUT2" = "no" ]; then
2983 if [ "$CFG_DBUS" = "no" ]; then
2991 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2999 if [ "$CFG_GLIB" = "no" ]; then
3008 Usage: $relconf [options]
3010 Installation options:
3012 These are optional, but you may specify install directories.
3014 -prefix <dir> ...... This will install everything relative to <dir>
3015 (default $QT_INSTALL_PREFIX)
3017 -hostprefix [dir] .. Tools and libraries needed when developing
3018 applications are installed in [dir]. If [dir] is
3019 not given, the current build directory will be used.
3022 You may use these to separate different parts of the install:
3024 -bindir <dir> ......... User executables will be installed to <dir>
3025 (default PREFIX/bin)
3026 -headerdir <dir> ...... Headers will be installed to <dir>
3027 (default PREFIX/include)
3028 -libdir <dir> ......... Libraries will be installed to <dir>
3029 (default PREFIX/lib)
3030 -archdatadir <dir>..... Arch-dependent data used by Qt will be installed to <dir>
3032 -plugindir <dir> ...... Plugins will be installed to <dir>
3033 (default ARCHDATADIR/plugins)
3034 -libexecdir <dir> ..... Program executables will be installed to <dir>
3035 (default ARCHDATADIR/libexec)
3036 -importdir <dir> ...... Imports for QML1 will be installed to <dir>
3037 (default ARCHDATADIR/imports)
3038 -qmldir <dir> ......... Imports for QML2 will be installed to <dir>
3039 (default ARCHDATADIR/qml)
3040 -datadir <dir> ........ Arch-independent data used by Qt will be installed to <dir>
3042 -docdir <dir> ......... Documentation will be installed to <dir>
3043 (default DATADIR/doc)
3044 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3045 (default DATADIR/translations)
3046 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3047 (default PREFIX/etc/settings)
3048 -examplesdir <dir> .... Examples will be installed to <dir>
3049 (default PREFIX/examples)
3050 -testsdir <dir> ....... Tests will be installed to <dir>
3051 (default PREFIX/tests)
3053 -hostbindir <dir> .. Host executables will be installed to <dir>
3054 (default HOSTPREFIX/bin)
3055 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3056 (default HOSTPREFIX)
3060 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3061 that needs to be evaluated. If the evaluation succeeds, the feature is
3062 included. Here is a short explanation of each option:
3064 * -release ........... Compile and link Qt with debugging turned off.
3065 -debug ............. Compile and link Qt with debugging turned on.
3066 -debug-and-release . Compile and link two versions of Qt, with and without
3067 debugging turned on (Mac only).
3069 -force-debug-info .. Create symbol files for release builds.
3071 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3073 -opensource ........ Compile and link the Open-Source Edition of Qt.
3074 -commercial ........ Compile and link the Commercial Edition of Qt.
3076 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3077 + -c++11 ............. Compile Qt with C++11 support enabled.
3079 * -shared ............ Create and use shared Qt libraries.
3080 -static ............ Create and use static Qt libraries.
3082 * -process ........... Generate only a top-level Makefile.
3083 -fully-process ..... Generate Makefiles for the entire Qt tree.
3084 -dont-process ...... Do not generate any Makefiles.
3086 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3088 -fast .............. Configure Qt quickly by generating Makefiles only for
3089 library and subdirectory targets. All other Makefiles
3090 are created as wrappers, which will in turn run qmake.
3092 -no-largefile ...... Disables large file support.
3093 + -largefile ......... Enables Qt to access files larger than 4 GB.
3095 -no-accessibility .. Do not compile Accessibility support.
3096 + -accessibility ..... Compile Accessibility support.
3098 -no-sql-<driver> ... Disable SQL <driver> entirely.
3099 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3101 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3104 Possible values for <driver>:
3105 [ $CFG_SQL_AVAILABLE ]
3107 -system-sqlite ..... Use sqlite from the operating system.
3109 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3110 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3112 -no-qml-debug ...... Do not build the in-process QML debugging support.
3113 + -qml-debug ......... Build the QML debugging support.
3115 -platform target ... The operating system and compiler you are building
3118 See the README file for a list of supported
3119 operating systems and compilers.
3121 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3122 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3123 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3124 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3125 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3126 -no-avx ............ Do not compile with use of AVX instructions.
3127 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3128 -no-neon ........... Do not compile with use of NEON instructions.
3129 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3130 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3132 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3133 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3135 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3137 -D <string> ........ Add an explicit define to the preprocessor.
3138 -I <string> ........ Add an explicit include path.
3139 -L <string> ........ Add an explicit library path.
3141 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3142 configure determines whether to use pkg-config or not with
3143 some heuristics such as checking the environment variables.
3144 -no-pkg-config ..... Disable use of pkg-config.
3145 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3146 detection heuristic).
3148 -help, -h .......... Display this information.
3150 Third Party Libraries:
3152 -qt-zlib ........... Use the zlib bundled with Qt.
3153 + -system-zlib ....... Use zlib from the operating system.
3154 See http://www.gzip.org/zlib
3156 -no-gif ............ Do not compile GIF reading support.
3158 -no-libpng ......... Do not compile PNG support.
3159 -qt-libpng ......... Use the libpng bundled with Qt.
3160 + -system-libpng ..... Use libpng from the operating system.
3161 See http://www.libpng.org/pub/png
3163 -no-libjpeg ........ Do not compile JPEG support.
3164 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3165 + -system-libjpeg .... Use libjpeg from the operating system.
3166 See http://www.ijg.org
3168 -no-openssl ........ Do not compile support for OpenSSL.
3169 + -openssl ........... Enable run-time OpenSSL support.
3170 -openssl-linked .... Enabled linked OpenSSL support.
3172 -qt-pcre ........... Use the PCRE library bundled with Qt.
3173 + -system-pcre ....... Use the PCRE library from the operating system.
3175 -qt-xcb ............ Use xcb- libraries bundled with Qt.
3176 (libxcb.so will still be used from operating system).
3177 + -system-xcb ........ Use xcb- libraries from the operating system.
3181 -make <part> ....... Add part to the list of parts to be built at make time.
3182 ($QT_DEFAULT_BUILD_PARTS)
3183 -nomake <part> ..... Exclude part from the list of parts to be built.
3185 -no-gui ............ Don't build the QtGui library and dependencies.
3186 + -gui ............... Build the QtGui library and dependencies.
3188 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3189 + -widgets ........... Build the QtWidgets library and dependencies.
3191 -R <string> ........ Add an explicit runtime library path to the Qt
3193 -l <string> ........ Add an explicit library.
3195 -no-rpath .......... Do not use the library install path as a runtime
3197 + -rpath ............. Link Qt libraries and executables using the library
3198 install path as a runtime library path. Equivalent
3199 to -R install_libpath
3201 -continue .......... Continue as far as possible if an error occurs.
3203 -verbose, -v ....... Print verbose information about each step of the
3206 -silent ............ Reduce the build output so that warnings and errors
3207 can be seen more easily.
3209 * -no-optimized-qmake ... Do not build qmake optimized.
3210 -optimized-qmake ...... Build qmake optimized.
3212 $NSN -no-nis ............ Do not compile NIS support.
3213 $NSY -nis ............... Compile NIS support.
3215 $CUN -no-cups ........... Do not compile CUPS support.
3216 $CUY -cups .............. Compile CUPS support.
3217 Requires cups/cups.h and libcups.so.2.
3219 $CIN -no-iconv .......... Do not compile support for iconv(3).
3220 $CIY -iconv ............. Compile support for iconv(3).
3222 -no-icu ............ Do not compile support for ICU libraries.
3223 + -icu ............... Compile support for ICU libraries.
3225 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3226 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3228 $PHN -no-pch ............ Do not use precompiled header support.
3229 $PHY -pch ............... Use precompiled header support.
3231 $DBN -no-dbus ........... Do not compile the QtDBus module.
3232 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3233 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3235 -reduce-relocations ..... Reduce relocations in the libraries through extra
3236 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3237 experimental; needs GNU ld >= 2.18).
3239 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3241 -device <name> ............... Cross-compile for device <name> (experimental)
3242 -device-option <key=value> ... Add device specific options for the device mkspec
3245 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3246 $SBY -separate-debug-info .... Strip debug information into a separate file.
3248 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3249 $XCBY -xcb ............... Compile Xcb support.
3251 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3252 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3254 $DFBN -no-directfb ....... Do not compile DirectFB support.
3255 $DFBY -directfb .......... Compile DirectFB support.
3257 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3258 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3260 $KMSN -no-kms ............ Do not compile KMS support.
3261 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3263 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3265 -xplatform target ... The target platform when cross-compiling.
3267 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3268 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3270 -no-feature-<feature> Do not compile in <feature>.
3271 -feature-<feature> .. Compile in <feature>. The available features
3272 are described in src/corelib/global/qfeatures.txt
3274 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3275 default ($CFG_QCONFIG).
3277 -no-opengl .......... Do not support OpenGL.
3278 -opengl <api> ....... Enable OpenGL support
3279 With no parameter, this will attempt to auto-detect
3280 OpenGL ES 2, or regular desktop OpenGL.
3281 Use es2 for <api> to override auto-detection.
3283 * -no-system-proxies .. Do not use system network proxies by default.
3284 -system-proxies ..... Use system network proxies by default.
3286 $GBN -no-glib ........... Do not compile Glib support.
3287 $GBY -glib .............. Compile Glib support.
3290 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3293 $X2N -no-xinput2......... Do not compile XInput2 support.
3294 $X2Y -xinput2............ Compile XInput2 support.
3300 if [ "$XPLATFORM_QNX" = "yes" ]; then
3303 -no-slog2 .......... Do not compile with slog2 support.
3304 -slog2 ............. Compile with slog2 support.
3310 if [ "$BUILD_ON_MAC" = "yes" ]; then
3315 -Fstring ........... Add an explicit framework path.
3316 -fw string ......... Add an explicit framework.
3318 * -framework ......... Build Qt as a series of frameworks and
3319 link tools against those frameworks.
3320 -no-framework ...... Do not build Qt as a series of frameworks.
3322 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3323 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3325 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3326 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3327 QT_ENABLE_HARFBUZZ environment variable.
3332 [ "x$ERROR" = "xyes" ] && exit 1
3337 # -----------------------------------------------------------------------------
3338 # LICENSING, INTERACTIVE PART
3339 # -----------------------------------------------------------------------------
3342 echo "This is the Qt ${EditionString} Edition."
3345 if [ "$Edition" = "OpenSource" ]; then
3347 echo "You are licensed to use this software under the terms of"
3348 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3349 if [ -f "$relpath/LICENSE.GPL3" ]; then
3350 echo "You are also licensed to use this software under the terms of"
3351 echo "the GNU General Public License (GPL) versions 3."
3357 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3358 echo "You have already accepted the terms of the $LicenseType license."
3361 if [ -f "$relpath/LICENSE.GPL3" ]; then
3362 echo "Type '3' to view the GNU General Public License version 3."
3364 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3365 echo "Type 'yes' to accept this license offer."
3366 echo "Type 'no' to decline this license offer."
3368 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3372 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3374 elif [ "$acceptance" = "no" ]; then
3375 echo "You are not licensed to use this software."
3378 elif [ "$acceptance" = "3" ]; then
3379 more "$relpath/LICENSE.GPL3"
3380 elif [ "$acceptance" = "L" ]; then
3381 more "$relpath/LICENSE.LGPL"
3384 elif [ "$Edition" = "Preview" ]; then
3385 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3388 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3389 echo "You have already accepted the terms of the $LicenseType license."
3392 echo "You are licensed to use this software under the terms of"
3393 echo "the $TheLicense"
3395 echo "Type '?' to read the Preview License."
3396 echo "Type 'yes' to accept this license offer."
3397 echo "Type 'no' to decline this license offer."
3399 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3403 if [ "$acceptance" = "yes" ]; then
3405 elif [ "$acceptance" = "no" ] ;then
3406 echo "You are not licensed to use this software."
3409 elif [ "$acceptance" = "?" ]; then
3410 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3413 elif [ "$Edition" != "OpenSource" ]; then
3414 if [ -n "$ExpiryDate" ]; then
3415 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3416 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3417 Today=`date +%Y%m%d`
3418 if [ "$Today" -gt "$ExpiryDate" ]; then
3419 case "$LicenseType" in
3420 Commercial|Academic|Educational)
3422 echo "WARNING WARNING WARNING WARNING"
3424 echo " Your support and upgrade period has expired."
3426 echo " You may continue to use your last licensed release"
3427 echo " of Qt under the terms of your existing license"
3428 echo " agreement. But you are not entitled to technical"
3429 echo " support, nor are you entitled to use any more recent"
3430 echo " Qt releases."
3432 echo " Please use the contact form at http://qt.digia.com/contact-us"
3433 echo " to renew your support and upgrades for this license."
3435 echo "WARNING WARNING WARNING WARNING"
3441 echo "NOTICE NOTICE NOTICE NOTICE"
3443 echo " Your Evaluation license has expired."
3445 echo " You are no longer licensed to use this software. Please"
3446 echo " use the contact form at http://qt.digia.com/contact-us to"
3447 echo " purchase license, or install the Qt Open Source Edition"
3448 echo " if you intend to develop free software."
3450 echo "NOTICE NOTICE NOTICE NOTICE"
3457 TheLicense=`head -n 1 "$outpath/LICENSE"`
3459 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3460 echo "You have already accepted the terms of the $TheLicense."
3463 echo "You are licensed to use this software under the terms of"
3464 echo "the $TheLicense."
3466 echo "Type '?' to view the $TheLicense."
3467 echo "Type 'yes' to accept this license offer."
3468 echo "Type 'no' to decline this license offer."
3470 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3474 if [ "$acceptance" = "yes" ]; then
3476 elif [ "$acceptance" = "no" ]; then
3477 echo "You are not licensed to use this software."
3480 else [ "$acceptance" = "?" ]
3481 more "$outpath/LICENSE"
3486 # this should be moved somewhere else
3489 AIX_VERSION=`uname -v`
3490 if [ "$AIX_VERSION" -lt "5" ]; then
3491 QMakeVar add QMAKE_LIBS_X11 -lbind
3498 #-------------------------------------------------------------------------------
3499 # generate qconfig.cpp
3500 #-------------------------------------------------------------------------------
3501 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3503 shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3504 shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3506 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3508 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3509 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3511 /* Installation date */
3512 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3514 /* Installation Info */
3515 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3516 "qt_prfxpath=$QT_INSTALL_PREFIX",
3517 "qt_docspath=$QT_INSTALL_DOCS",
3518 "qt_hdrspath=$QT_INSTALL_HEADERS",
3519 "qt_libspath=$QT_INSTALL_LIBS",
3520 "qt_lbexpath=$QT_INSTALL_LIBEXECS",
3521 "qt_binspath=$QT_INSTALL_BINS",
3522 "qt_plugpath=$QT_INSTALL_PLUGINS",
3523 "qt_impspath=$QT_INSTALL_IMPORTS",
3524 "qt_qml2path=$QT_INSTALL_QML",
3525 "qt_adatpath=$QT_INSTALL_ARCHDATA",
3526 "qt_datapath=$QT_INSTALL_DATA",
3527 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3528 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3529 "qt_tstspath=$QT_INSTALL_TESTS",
3530 #ifdef QT_BUILD_QMAKE
3531 "qt_ssrtpath=$CFG_SYSROOT",
3532 "qt_hpfxpath=$QT_HOST_PREFIX",
3533 "qt_hbinpath=$QT_HOST_BINS",
3534 "qt_hdatpath=$QT_HOST_DATA",
3535 "qt_targspec=$shortxspec",
3536 "qt_hostspec=$shortspec",
3539 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3542 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3544 /* strlen( "qt_lcnsxxxx" ) == 12 */
3545 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3546 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3548 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3551 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3552 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3553 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3555 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3556 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3557 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3560 # -----------------------------------------------------------------------------
3561 if [ "$LicenseType" = "Evaluation" ]; then
3562 EVALKEY=qt_qevalkey=$LicenseKeyExt
3563 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3564 EVALKEY=qt_qevalkey=
3567 if [ -n "$EVALKEY" ]; then
3568 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3569 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3570 /* Evaluation license key */
3571 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3573 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3577 # -----------------------------------------------------------------------------
3579 # -----------------------------------------------------------------------------
3582 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3583 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3586 # $1: input variable name (awk regexp)
3587 # $2: optional output variable name
3588 # $3: optional value transformation (sed command)
3589 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3590 # is where the resulting variable is written to
3591 setBootstrapVariable()
3593 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3597 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3598 echo "Creating qmake. Please wait..."
3600 mkdir -p "$outpath/qmake" || exit
3602 for mkfile in GNUmakefile Makefile; do
3605 in_mkfile="${mkfile}.in"
3606 if [ "$mkfile" = "Makefile" ]; then
3607 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3608 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3610 in_mkfile="${mkfile}.unix"
3612 in_mkfile="$relpath/qmake/$in_mkfile"
3613 mkfile="$outpath/qmake/$mkfile"
3614 if [ -f "$mkfile" ]; then
3615 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3618 [ -f "$in_mkfile" ] || continue
3620 echo "########################################################################" > "$mkfile"
3621 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3622 echo "########################################################################" >> "$mkfile"
3625 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3626 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3627 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3629 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3630 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3633 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3634 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3635 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3636 setBootstrapVariable QMAKE_CFLAGS
3637 setBootstrapVariable QMAKE_CXXFLAGS
3638 setBootstrapVariable QMAKE_LFLAGS
3640 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3641 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3642 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3644 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3645 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3646 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3647 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3648 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3649 elif [ "$CFG_DEBUG" = "yes" ]; then
3650 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3651 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3652 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3653 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3656 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3657 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3658 for rpath in $RPATH_FLAGS; do
3659 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3662 if [ "$BUILD_ON_MAC" = "yes" ]; then
3663 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3664 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3665 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3666 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3667 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3668 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3669 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3670 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3671 if [ '!' -z "$CFG_SDK" ]; then
3672 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3673 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3674 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3675 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3676 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3679 if [ '!' -z "$D_FLAGS" ]; then
3680 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3682 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3683 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3684 QMAKE_DATA_DIR="$QT_INSTALL_ARCHDATA"
3685 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3687 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3688 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3689 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3690 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3691 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3692 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3693 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3694 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3695 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3696 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3698 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3699 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3700 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3701 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3706 (cd "$outpath/qmake"; "$MAKE") || exit 2
3709 #-------------------------------------------------------------------------------
3710 # create a qt.conf for the Qt build tree itself
3711 #-------------------------------------------------------------------------------
3713 QTCONFFILE="$outpath/bin/qt.conf"
3714 cat > "$QTCONFFILE" <<EOF
3719 #-------------------------------------------------------------------------------
3720 # write out device config before we run the test.
3721 #-------------------------------------------------------------------------------
3722 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3723 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3724 rm -f "$DEVICE_VARS_FILE"
3726 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3727 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3730 #-------------------------------------------------------------------------------
3732 #-------------------------------------------------------------------------------
3733 if [ -z "$PKG_CONFIG" ]; then
3734 # See if PKG_CONFIG is set in the mkspec:
3735 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3737 if [ -z "$PKG_CONFIG" ]; then
3738 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3741 if [ "$CFG_PKGCONFIG" = "no" ]; then
3743 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3745 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3746 echo >&2 "a correctly setup pkg-config environment!"
3748 elif [ -n "$PKG_CONFIG" ]; then
3749 # found a pkg-config
3750 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3751 # when xcompiling, check environment to see if it's actually usable
3752 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3753 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3754 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3755 if [ -n "$GCC_MACHINE_DUMP" ]; then
3756 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3758 export PKG_CONFIG_LIBDIR
3759 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3760 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3761 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3762 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3763 echo >&2 "Set this variable to the directory that contains target .pc files"
3764 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3765 echo >&2 "use -force-pkg-config to override this test."
3769 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3772 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3773 if [ -n "$CFG_SYSROOT" ]; then
3774 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3775 export PKG_CONFIG_SYSROOT_DIR
3776 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3777 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3778 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3779 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3780 echo >&2 "or use -force-pkg-config to override this test."
3784 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3788 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3789 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3793 if [ -z "$PKG_CONFIG" ]; then
3794 QT_CONFIG="$QT_CONFIG no-pkg-config"
3797 #-------------------------------------------------------------------------------
3798 # tests that need qmake
3799 #-------------------------------------------------------------------------------
3801 # parameters: path, name, extra args
3804 path=config.tests/$1
3807 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3810 #-------------------------------------------------------------------------------
3811 # determine the target and host architectures
3812 #-------------------------------------------------------------------------------
3814 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3815 OUTFILE=$outpath/arch.result
3816 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3817 if [ $? -eq 0 ]; then
3818 eval `cat "$OUTFILE"`
3821 echo "Could not determine the target architecture!"
3822 echo "Turn on verbose messaging (-v) to see the final report."
3824 rm -f "$OUTFILE" 2>/dev/null
3825 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3827 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3828 # Do the same test again, using the host compiler
3829 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3830 if [ $? -eq 0 ]; then
3831 eval `cat "$OUTFILE"`
3834 echo "Could not determine the host architecture!"
3835 echo "Turn on verbose messaging (-v) to see the final report."
3837 rm -f "$OUTFILE" 2>/dev/null
3838 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3840 # not cross compiling, host == target
3841 CFG_HOST_ARCH="$CFG_ARCH"
3842 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3846 if [ "$OPT_VERBOSE" = "yes" ]; then
3847 echo "System architecture: '$CFG_ARCH'"
3848 echo "Host architecture: '$CFG_HOST_ARCH'"
3851 #-------------------------------------------------------------------------------
3852 # functionality tests
3853 #-------------------------------------------------------------------------------
3855 # Detect C++11 support
3856 if [ "$CFG_CXX11" != "no" ]; then
3857 if compileTest common/c++11 "C++11"; then
3859 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3860 echo "C++11 support cannot be enabled due to functionality tests!"
3861 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3862 echo " If you believe this message is in error you may use the continue"
3863 echo " switch (-continue) to $0 to continue."
3870 # detect availability of float math.h functions
3871 if compileTest unix/floatmath "floatmath"; then
3872 CFG_USE_FLOATMATH=yes
3874 CFG_USE_FLOATMATH=no
3877 # detect sse2 support
3878 if [ "${CFG_SSE2}" = "auto" ]; then
3879 if compileTest common/sse2 "sse2"; then
3886 # detect sse3 support
3887 if [ "${CFG_SSE3}" = "auto" ]; then
3888 if compileTest common/sse3 "sse3"; then
3895 # detect ssse3 support
3896 if [ "${CFG_SSSE3}" = "auto" ]; then
3897 if compileTest common/ssse3 "ssse3"; then
3904 # detect sse4.1 support
3905 if [ "${CFG_SSE4_1}" = "auto" ]; then
3906 if compileTest common/sse4_1 "sse4_1"; then
3913 # detect sse4.2 support
3914 if [ "${CFG_SSE4_2}" = "auto" ]; then
3915 if compileTest common/sse4_2 "sse4_2"; then
3922 # detect avx support
3923 if [ "${CFG_AVX}" = "auto" ]; then
3924 if compileTest common/avx "avx"; then
3925 case "$XQMAKESPEC" in
3927 # Some clang versions produce internal compiler errors compiling Qt AVX code
3928 case `$TEST_COMPILER --version` in
3929 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3931 if [ "$OPT_VERBOSE" = "yes" ]; then
3932 echo 'AVX support disabled for blacklisted clang compiler'
3949 # detect avx2 support
3950 if [ "${CFG_AVX}" = "no" ]; then
3953 if [ "${CFG_AVX2}" = "auto" ]; then
3954 if compileTest common/avx2 "avx2"; then
3961 # check iWMMXt support
3962 if [ "$CFG_IWMMXT" = "yes" ]; then
3963 compileTest unix/iwmmxt "iwmmxt"
3964 if [ $? != "0" ]; then
3965 echo "The iWMMXt functionality test failed!"
3966 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3971 # detect neon support
3972 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3973 if compileTest unix/neon "neon"; then
3978 elif [ "$CFG_ARCH" != "arm" ]; then
3982 # detect mips_dsp support
3983 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3984 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
3989 elif [ "$CFG_ARCH" != "mips" ]; then
3993 # detect mips_dspr2 support
3994 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3995 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
4000 elif [ "$CFG_ARCH" != "mips" ]; then
4004 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4007 if [ "$CFG_ZLIB" = "no" ]; then
4008 # Note: Qt no longer support builds without zlib
4009 # So we force a "no" to be "auto" here.
4010 # If you REALLY really need no zlib support, you can still disable
4011 # it by doing the following:
4012 # add "no-zlib" to mkspecs/qconfig.pri
4013 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4015 # There's no guarantee that Qt will build under those conditions
4021 if [ "$XPLATFORM_QNX" = "yes" ]; then
4022 if [ "$CFG_SLOG2" != "no" ]; then
4023 if compileTest unix/slog2 "slog2"; then
4025 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4032 if [ "$CFG_ZLIB" = "auto" ]; then
4033 if compileTest unix/zlib "zlib"; then
4040 if [ "$CFG_LARGEFILE" = "auto" ]; then
4041 #Large files should be enabled for all Linux systems
4045 if [ "$CFG_GUI" = "no" ]; then
4046 QPA_PLATFORM_GUARD=no
4049 # detect how jpeg should be built
4050 if [ "$CFG_JPEG" = "auto" ]; then
4051 if [ "$CFG_SHARED" = "yes" ]; then
4058 if [ "$CFG_LIBJPEG" = "auto" ]; then
4059 if compileTest unix/libjpeg "libjpeg"; then
4066 # detect how gif should be built
4067 if [ "$CFG_GIF" = "auto" ]; then
4068 if [ "$CFG_SHARED" = "yes" ]; then
4076 if [ "$CFG_LIBPNG" = "auto" ]; then
4077 if compileTest unix/libpng "libpng"; then
4084 if [ "$CFG_EGLFS" = "yes" ]; then
4085 if [ "$CFG_EGL" = "no" ]; then
4086 echo "The EGLFS plugin requires EGL support and cannot be built"
4089 if [ "$CFG_OPENGL" != "es2" ]; then
4090 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4097 if [ "$CFG_KMS" = "yes" ]; then
4098 if [ "$CFG_EGL" = "no" ]; then
4099 echo "The KMS plugin requires EGL support and cannot be built"
4102 if [ "$CFG_OPENGL" != "es2" ]; then
4103 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4108 # auto-detect SQL-modules support
4109 for _SQLDR in $CFG_SQL_AVAILABLE; do
4112 if [ "$CFG_SQL_mysql" != "no" ]; then
4113 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4114 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4115 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4116 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4117 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4118 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4119 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4121 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4122 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4123 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4124 echo " You need MySql 4 or higher."
4125 echo " If you believe this message is in error you may use the continue"
4126 echo " switch (-continue) to $0 to continue."
4131 QT_LFLAGS_MYSQL_R=""
4135 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4136 QMakeVar add CONFIG use_libmysqlclient_r
4137 if [ "$CFG_SQL_mysql" = "auto" ]; then
4138 CFG_SQL_mysql=plugin
4140 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4141 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4142 if [ "$CFG_SQL_mysql" = "auto" ]; then
4143 CFG_SQL_mysql=plugin
4146 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4147 echo "MySQL support cannot be enabled due to functionality tests!"
4148 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4149 echo " If you believe this message is in error you may use the continue"
4150 echo " switch (-continue) to $0 to continue."
4155 QT_LFLAGS_MYSQL_R=""
4163 if [ "$CFG_SQL_psql" != "no" ]; then
4164 # Be careful not to use native pg_config when cross building.
4165 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4166 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4167 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4169 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4170 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4171 # But, respect PSQL_LIBS if set
4172 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4173 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4174 if [ "$CFG_SQL_psql" = "auto" ]; then
4178 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4179 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4180 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4181 echo " If you believe this message is in error you may use the continue"
4182 echo " switch (-continue) to $0 to continue."
4193 if [ "$CFG_SQL_odbc" != "no" ]; then
4194 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4195 if [ "$CFG_SQL_odbc" = "auto" ]; then
4199 if compileTest unix/iodbc "iODBC"; then
4200 QT_LFLAGS_ODBC="-liodbc"
4201 if [ "$CFG_SQL_odbc" = "auto" ]; then
4205 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4206 echo "ODBC support cannot be enabled due to functionality tests!"
4207 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4208 echo " If you believe this message is in error you may use the continue"
4209 echo " switch (-continue) to $0 to continue."
4219 if [ "$CFG_SQL_oci" != "no" ]; then
4220 if compileTest unix/oci "OCI"; then
4221 if [ "$CFG_SQL_oci" = "auto" ]; then
4225 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4226 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4227 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4228 echo " If you believe this message is in error you may use the continue"
4229 echo " switch (-continue) to $0 to continue."
4238 if [ "$CFG_SQL_tds" != "no" ]; then
4239 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4240 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4241 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4242 if [ "$CFG_SQL_tds" = "auto" ]; then
4246 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4247 echo "TDS support cannot be enabled due to functionality tests!"
4248 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4249 echo " If you believe this message is in error you may use the continue"
4250 echo " switch (-continue) to $0 to continue."
4259 if [ "$CFG_SQL_db2" != "no" ]; then
4260 if compileTest unix/db2 "DB2"; then
4261 if [ "$CFG_SQL_db2" = "auto" ]; then
4265 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4266 echo "ODBC support cannot be enabled due to functionality tests!"
4267 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4268 echo " If you believe this message is in error you may use the continue"
4269 echo " switch (-continue) to $0 to continue."
4278 if [ "$CFG_SQL_ibase" != "no" ]; then
4279 if compileTest unix/ibase "InterBase"; then
4280 if [ "$CFG_SQL_ibase" = "auto" ]; then
4281 CFG_SQL_ibase=plugin
4284 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4285 echo "InterBase support cannot be enabled due to functionality tests!"
4286 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4287 echo " If you believe this message is in error you may use the continue"
4288 echo " switch (-continue) to $0 to continue."
4297 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4298 if compileTest unix/sqlite2 "SQLite2"; then
4299 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4300 CFG_SQL_sqlite2=plugin
4303 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4304 echo "SQLite2 support cannot be enabled due to functionality tests!"
4305 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4306 echo " If you believe this message is in error you may use the continue"
4307 echo " switch (-continue) to $0 to continue."
4316 if [ "$CFG_SQL_sqlite" != "no" ]; then
4317 SQLITE_AUTODETECT_FAILED="no"
4318 if [ "$CFG_SQLITE" = "system" ]; then
4319 if [ -n "$PKG_CONFIG" ]; then
4320 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4321 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4324 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4326 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4327 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4328 CFG_SQL_sqlite=plugin
4330 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4332 SQLITE_AUTODETECT_FAILED="yes"
4335 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4336 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4337 CFG_SQL_sqlite=plugin
4340 SQLITE_AUTODETECT_FAILED="yes"
4344 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4345 echo "SQLite support cannot be enabled due to functionality tests!"
4346 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4347 echo " If you believe this message is in error you may use the continue"
4348 echo " switch (-continue) to $0 to continue."
4354 if [ "$OPT_VERBOSE" = "yes" ]; then
4355 echo "unknown SQL driver: $_SQLDR"
4361 # auto-detect NIS support
4362 if [ "$CFG_NIS" != "no" ]; then
4363 if compileTest unix/nis "NIS"; then
4366 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4367 echo "NIS support cannot be enabled due to functionality tests!"
4368 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4369 echo " If you believe this message is in error you may use the continue"
4370 echo " switch (-continue) to $0 to continue."
4378 # auto-detect CUPS support
4379 if [ "$CFG_CUPS" != "no" ]; then
4380 if compileTest unix/cups "Cups"; then
4383 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4384 echo "Cups support cannot be enabled due to functionality tests!"
4385 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4386 echo " If you believe this message is in error you may use the continue"
4387 echo " switch (-continue) to $0 to continue."
4395 # auto-detect iconv(3) support
4396 if [ "$CFG_ICONV" != "no" ]; then
4397 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4399 elif compileTest unix/iconv "POSIX iconv"; then
4401 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4403 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4406 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4407 echo "Iconv support cannot be enabled due to functionality tests!"
4408 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4409 echo " If you believe this message is in error you may use the continue"
4410 echo " switch (-continue) to $0 to continue."
4418 # auto-detect libdbus-1 support
4419 if [ "$CFG_DBUS" != "no" ]; then
4420 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4421 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4422 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4424 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4425 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4426 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4427 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4429 if [ "$CFG_DBUS" = "auto" ]; then
4431 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4432 # CFG_DBUS is "yes" or "linked" here
4434 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4435 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4436 echo " If you believe this message is in error you may use the continue"
4437 echo " switch (-continue) to $0 to continue."
4443 # auto-detect Glib support
4444 if [ "$CFG_GLIB" != "no" ]; then
4445 if [ -n "$PKG_CONFIG" ]; then
4446 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4447 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4449 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4451 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4452 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4454 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4455 echo "Glib support cannot be enabled due to functionality tests!"
4456 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4457 echo " If you believe this message is in error you may use the continue"
4458 echo " switch (-continue) to $0 to continue."
4466 # auto-detect GTK style support
4467 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4468 if [ -n "$PKG_CONFIG" ]; then
4469 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4470 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4472 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4474 QT_CONFIG="$QT_CONFIG gtkstyle"
4475 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4476 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4478 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4479 echo "Gtk theme support cannot be enabled due to functionality tests!"
4480 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4481 echo " If you believe this message is in error you may use the continue"
4482 echo " switch (-continue) to $0 to continue."
4488 elif [ "$CFG_GLIB" = "no" ]; then
4493 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4494 if [ -n "$PKG_CONFIG" ]; then
4495 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4496 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4498 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4500 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4501 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4503 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4504 echo "Gstreamer support cannot be enabled due to functionality tests!"
4505 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4506 echo " If you believe this message is in error you may use the continue"
4507 echo " switch (-continue) to $0 to continue."
4513 elif [ "$CFG_GLIB" = "no" ]; then
4517 # auto-detect libicu support
4518 if [ "$CFG_ICU" != "no" ]; then
4519 if compileTest unix/icu "ICU"; then
4520 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4522 if [ "$CFG_ICU" = "auto" ]; then
4524 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4527 echo "The ICU library support cannot be enabled."
4528 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4529 echo " If you believe this message is in error you may use the continue"
4530 echo " switch (-continue) to $0 to continue."
4536 # Auto-detect PulseAudio support
4537 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4538 if [ -n "$PKG_CONFIG" ]; then
4539 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4540 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4542 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4544 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4545 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4547 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4548 echo "PulseAudio support cannot be enabled due to functionality tests!"
4549 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4550 echo " If you believe this message is in error you may use the continue"
4551 echo " switch (-continue) to $0 to continue."
4560 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4561 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4562 if [ "$CFG_GUI" = "no" ]; then
4563 if [ "$CFG_OPENGL" = "auto" ]; then
4566 if [ "$CFG_OPENGL" != "no" ]; then
4567 echo "OpenGL enabled, but GUI disabled."
4568 echo " You might need to either enable the GUI or disable OpenGL"
4572 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4573 if compileTest x11/opengl "OpenGL"; then
4575 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4578 if [ "$CFG_OPENGL" = "yes" ]; then
4579 echo "All the OpenGL functionality tests failed!"
4580 echo " You might need to modify the include and library search paths by editing"
4581 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4582 echo " ${XQMAKESPEC}."
4589 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4590 if [ "$CFG_OPENGL" = "desktop" ]; then
4591 compileTest x11/glxfbconfig "OpenGL"
4592 if [ $? != "0" ]; then
4593 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4600 elif [ "$CFG_OPENGL" = "es2" ]; then
4602 compileTest unix/opengles2 "OpenGL ES 2.x"
4603 if [ $? != "0" ]; then
4604 echo "The OpenGL ES 2.0 functionality test failed!"
4605 echo " You might need to modify the include and library search paths by editing"
4606 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4607 echo " ${XQMAKESPEC}."
4610 elif [ "$CFG_OPENGL" = "desktop" ]; then
4611 # Desktop OpenGL support
4612 compileTest x11/opengl "OpenGL"
4613 if [ $? != "0" ]; then
4614 echo "The OpenGL functionality test failed!"
4615 echo " You might need to modify the include and library search paths by editing"
4616 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4617 echo " ${XQMAKESPEC}."
4622 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4623 compileTest x11/glxfbconfig "OpenGL"
4624 if [ $? != "0" ]; then
4625 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4632 fi # X11/MINGW OpenGL
4634 if [ "$BUILD_ON_MAC" = "yes" ]; then
4635 if [ "$CFG_COREWLAN" = "auto" ]; then
4636 if compileTest mac/corewlan "CoreWlan"; then
4644 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4645 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4646 if compileTest unix/opengldesktop "OpenGL"; then
4648 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4651 if [ "$CFG_OPENGL" = "yes" ]; then
4652 echo "All the OpenGL functionality tests failed!"
4653 echo " You might need to modify the include and library search paths by editing"
4654 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4655 echo " ${XQMAKESPEC}."
4660 elif [ "$CFG_OPENGL" = "es2" ]; then
4662 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4663 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4664 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4665 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4666 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4667 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4668 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4669 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4672 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4673 if [ $? != "0" ]; then
4674 echo "The OpenGL ES 2.0 functionality test failed!"
4675 echo " You might need to modify the include and library search paths by editing"
4676 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4677 echo " ${XQMAKESPEC}."
4680 elif [ "$CFG_OPENGL" = "desktop" ]; then
4681 # Desktop OpenGL support
4682 compileTest unix/opengldesktop "OpenGL"
4683 if [ $? != "0" ]; then
4684 echo "The OpenGL functionality test failed!"
4685 echo " You might need to modify the include and library search paths by editing"
4686 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4687 echo " ${XQMAKESPEC}."
4692 # auto-detect FontConfig support
4693 if [ "$CFG_FONTCONFIG" != "no" ]; then
4694 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4695 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4696 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4698 QT_CFLAGS_FONTCONFIG=
4699 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4701 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4702 QT_CONFIG="$QT_CONFIG fontconfig"
4703 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4704 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4706 CFG_LIBFREETYPE=system
4713 # Save these for a check later
4714 ORIG_CFG_XCB="$CFG_XCB"
4715 ORIG_CFG_EGLFS="$CFG_EGLFS"
4716 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4717 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4718 ORIG_CFG_KMS="$CFG_KMS"
4720 if [ "$CFG_LIBUDEV" != "no" ]; then
4721 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4722 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4723 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4724 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4725 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4727 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4729 QT_CONFIG="$QT_CONFIG libudev"
4730 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4731 echo "The libudev functionality test failed!"
4737 if [ "$CFG_LIBUDEV" = "no" ]; then
4738 QMakeVar add DEFINES QT_NO_LIBUDEV
4741 if [ "$CFG_EVDEV" != "no" ]; then
4742 if compileTest unix/evdev "evdev"; then
4744 QT_CONFIG="$QT_CONFIG evdev"
4745 elif [ "$CFG_EVDEV" = "yes" ]; then
4746 echo "The evdev functionality test failed!"
4752 if [ "$CFG_EVDEV" = "no" ]; then
4753 QMakeVar add DEFINES QT_NO_EVDEV
4756 # Check we actually have X11 :-)
4757 if compileTest x11/xlib "XLib"; then
4758 QT_CONFIG="$QT_CONFIG xlib"
4761 # auto-detect Xrender support
4762 if [ "$CFG_XRENDER" != "no" ]; then
4763 if compileTest x11/xrender "Xrender"; then
4765 QT_CONFIG="$QT_CONFIG xrender"
4767 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4768 echo "Xrender support cannot be enabled due to functionality tests!"
4769 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4770 echo " If you believe this message is in error you may use the continue"
4771 echo " switch (-continue) to $0 to continue."
4779 if [ "$CFG_XCB" != "no" ]; then
4780 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4781 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4782 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4784 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4786 if [ "$CFG_XCB" = "qt" ]; then
4787 QT_CONFIG="$QT_CONFIG xcb-qt"
4791 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4792 XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm"
4793 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
4794 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
4797 if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4798 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4799 QT_CONFIG="$QT_CONFIG xcb-render"
4802 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4804 QT_CONFIG="$QT_CONFIG xcb-glx"
4807 echo "The test for linking against libxcb and support libraries failed!"
4808 echo " You might need install dependency packages, or pass -qt-xcb."
4809 echo " See src/plugins/platforms/xcb/README."
4814 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4815 QT_CONFIG="$QT_CONFIG xcb-xlib"
4818 # auto-detect XInput2 support. Needed by xcb too.
4819 if [ "$CFG_XINPUT2" != "no" ]; then
4820 if compileTest x11/xinput2 "XInput2"; then
4824 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4825 echo "XInput2 support cannot be enabled due to functionality tests!"
4826 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4827 echo " If you believe this message is in error you may use the continue"
4828 echo " switch (-continue) to $0 to continue."
4836 if [ "$CFG_XCB" != "auto" ]; then
4837 echo "The test for linking against libxcb failed!"
4838 echo " You might need to install dependency packages for libxcb."
4839 echo " See src/plugins/platforms/xcb/README."
4845 if [ "$CFG_XCB" = "no" ]; then
4846 QMakeVar add DEFINES QT_NO_XCB
4849 if [ "$CFG_DIRECTFB" != "no" ]; then
4850 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4851 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4852 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4853 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4855 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4856 echo " DirectFB support cannot be enabled due to functionality tests!"
4857 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4858 echo " If you believe this message is in error you may use the continue"
4859 echo " switch (-continue) to $0 to continue."
4869 if [ "$CFG_LINUXFB" != "no" ]; then
4870 if compileTest qpa/linuxfb "LinuxFB"; then
4872 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4873 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4874 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4875 echo " If you believe this message is in error you may use the continue"
4876 echo " switch (-continue) to $0 to continue."
4883 if [ "$CFG_KMS" != "no" ]; then
4884 if compileTest qpa/kms "KMS"; then
4886 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4887 echo " KMS support cannot be enabled due to functionality tests!"
4888 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4889 echo " If you believe this message is in error you may use the continue"
4890 echo " switch (-continue) to $0 to continue."
4897 # Detect libxkbcommon
4898 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4899 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4900 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4901 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4902 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4904 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4908 if [ "$CFG_EGL" != "no" ]; then
4909 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4910 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4911 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4912 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4913 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4914 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4915 fi # detect EGL support
4916 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4918 elif [ "$CFG_EGL" = "yes" ]; then
4919 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4920 echo " You might need to modify the include and library search paths by editing"
4921 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4926 elif [ "$CFG_OPENGL" = "desktop" ]; then
4927 if [ "$CFG_EGL" = "yes" ]; then
4928 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4929 echo "Either disable EGL support or enable OpenGL ES support."
4935 if [ "$CFG_EGLFS" != "no" ]; then
4936 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4937 CFG_EGLFS="$CFG_EGL"
4943 if [ "$CFG_KMS" = "yes" ]; then
4944 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4951 # Detect accessibility support
4952 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4953 if [ "$CFG_XCB" = "no" ]; then
4954 CFG_ACCESSIBILITY=yes
4956 # linux/xcb accessibility needs dbus
4957 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ]; then
4958 CFG_ACCESSIBILITY=yes
4960 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4961 CFG_ACCESSIBILITY=no
4963 echo "Accessibility support needs DBus."
4970 # Determine the default QPA platform
4971 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4973 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4974 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4975 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4976 QT_QPA_DEFAULT_PLATFORM="windows"
4977 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4978 QT_QPA_DEFAULT_PLATFORM="cocoa"
4979 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4980 QT_QPA_DEFAULT_PLATFORM="qnx"
4982 QT_QPA_DEFAULT_PLATFORM="xcb"
4987 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4988 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4989 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4990 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4992 if [ "$CFG_DIRECTFB" = "yes" ]; then
4993 QT_CONFIG="$QT_CONFIG directfb"
4994 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4995 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4997 if [ "$CFG_LINUXFB" = "yes" ]; then
4998 QT_CONFIG="$QT_CONFIG linuxfb"
5000 if [ "$CFG_KMS" = "yes" ]; then
5001 QT_CONFIG="$QT_CONFIG kms"
5004 if [ "$BUILD_ON_MAC" = "yes" ]; then
5005 if compileTest mac/coreservices "CoreServices"; then
5006 QT_CONFIG="$QT_CONFIG coreservices"
5008 QMakeVar add DEFINES QT_NO_CORESERVICES
5012 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5013 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5014 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5015 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5016 echo "No QPA platform plugin enabled!"
5017 echo " If you really want to build without a QPA platform plugin you must pass"
5018 echo " -no-qpa-platform-guard to configure. Doing this will"
5019 echo " produce a Qt that can not run GUI applications."
5020 echo " The dependencies needed for xcb to build are listed in"
5021 echo " src/plugins/platforms/xcb/README"
5028 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5029 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5030 if compileTest unix/freetype "FreeType"; then
5031 CFG_LIBFREETYPE=system
5037 if ! compileTest unix/stl "STL" &&
5038 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5039 echo "STL functionality check failed! Cannot build Qt with this STL library."
5040 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5045 # detect POSIX clock_gettime()
5046 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5047 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5048 CFG_CLOCK_GETTIME=yes
5050 CFG_CLOCK_GETTIME=no
5054 # detect POSIX monotonic clocks
5055 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5056 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5057 CFG_CLOCK_MONOTONIC=yes
5059 CFG_CLOCK_MONOTONIC=no
5061 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5062 CFG_CLOCK_MONOTONIC=no
5066 if [ "$CFG_MREMAP" = "auto" ]; then
5067 if compileTest unix/mremap "mremap"; then
5074 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5075 if [ "$CFG_GETADDRINFO" != "no" ]; then
5076 if compileTest unix/getaddrinfo "getaddrinfo"; then
5079 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5080 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5081 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5082 echo " If you believe this message is in error you may use the continue"
5083 echo " switch (-continue) to $0 to continue."
5091 # find if the platform provides inotify
5092 if [ "$CFG_INOTIFY" != "no" ]; then
5093 if compileTest unix/inotify "inotify"; then
5096 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5097 echo "inotify support cannot be enabled due to functionality tests!"
5098 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5099 echo " If you believe this message is in error you may use the continue"
5100 echo " switch (-continue) to $0 to continue."
5108 # find if the platform provides if_nametoindex (ipv6 interface name support)
5109 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5110 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5113 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5114 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5115 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5116 echo " If you believe this message is in error you may use the continue"
5117 echo " switch (-continue) to $0 to continue."
5125 # find if the platform provides getifaddrs (network interface enumeration)
5126 if [ "$CFG_GETIFADDRS" != "no" ]; then
5127 if compileTest unix/getifaddrs "getifaddrs"; then
5130 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5131 echo "getifaddrs support cannot be enabled due to functionality tests!"
5132 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5133 echo " If you believe this message is in error you may use the continue"
5134 echo " switch (-continue) to $0 to continue."
5143 if [ "$CFG_OPENSSL" != "no" ]; then
5144 if compileTest unix/openssl "OpenSSL"; then
5145 if [ "$CFG_OPENSSL" = "auto" ]; then
5149 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5150 echo "OpenSSL support cannot be enabled due to functionality tests!"
5151 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5152 echo " If you believe this message is in error you may use the continue"
5153 echo " switch (-continue) to $0 to continue."
5162 if [ "$CFG_PCRE" != "qt" ]; then
5163 if compileTest unix/pcre "PCRE"; then
5166 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5167 echo "PCRE support cannot be enabled due to functionality tests!"
5168 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5169 echo " If you believe this message is in error you may use the continue"
5170 echo " switch (-continue) to $0 to continue."
5178 # detect OpenVG support
5179 if [ "$CFG_OPENVG" != "no" ]; then
5180 if compileTest unix/openvg "OpenVG"; then
5181 if [ "$CFG_OPENVG" = "auto" ]; then
5184 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5185 if [ "$CFG_OPENVG" = "auto" ]; then
5188 CFG_OPENVG_ON_OPENGL=yes
5189 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5190 if [ "$CFG_OPENVG" = "auto" ]; then
5193 CFG_OPENVG_LC_INCLUDES=yes
5194 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5195 if [ "$CFG_OPENVG" = "auto" ]; then
5198 CFG_OPENVG_LC_INCLUDES=yes
5199 CFG_OPENVG_ON_OPENGL=yes
5201 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5202 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5203 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5204 echo " If you believe this message is in error you may use the continue"
5205 echo " switch (-continue) to $0 to continue."
5211 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5212 CFG_OPENVG_SHIVA=yes
5216 if [ "$CFG_ALSA" = "auto" ]; then
5217 if compileTest unix/alsa "alsa"; then
5224 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5225 if [ "$CFG_ARCH" = "arm" ]; then
5226 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5227 if [ $? != "0" ]; then
5228 CFG_JAVASCRIPTCORE_JIT=no
5231 case "$XPLATFORM" in
5233 CFG_JAVASCRIPTCORE_JIT=no
5239 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5240 QMakeVar set JAVASCRIPTCORE_JIT yes
5241 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5242 QMakeVar set JAVASCRIPTCORE_JIT no
5245 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5246 CFG_AUDIO_BACKEND=yes
5249 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5250 echo "Warning: largefile support cannot be disabled for win32."
5254 #-------------------------------------------------------------------------------
5255 # ask for all that hasn't been auto-detected or specified in the arguments
5256 #-------------------------------------------------------------------------------
5258 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5260 # disable accessibility
5261 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5262 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5264 QT_CONFIG="$QT_CONFIG accessibility"
5268 if [ "$CFG_EGL" = "yes" ]; then
5269 QT_CONFIG="$QT_CONFIG egl"
5271 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5275 if [ "$CFG_EGLFS" = "yes" ]; then
5276 QT_CONFIG="$QT_CONFIG eglfs"
5278 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5282 if [ "$CFG_OPENVG" = "no" ]; then
5283 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5285 QT_CONFIG="$QT_CONFIG openvg"
5286 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5287 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5289 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5290 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5292 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5293 QT_CONFIG="$QT_CONFIG shivavg"
5294 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5299 if [ "$CFG_OPENGL" = "no" ]; then
5300 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5302 QT_CONFIG="$QT_CONFIG opengl"
5305 if [ "$CFG_OPENGL" = "es2" ]; then
5306 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5309 if [ "$CFG_OPENGL" = "es2" ]; then
5310 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5311 QT_CONFIG="$QT_CONFIG opengles2"
5314 # build up the variables for output
5315 if [ "$CFG_DEBUG" = "yes" ]; then
5316 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5317 elif [ "$CFG_DEBUG" = "no" ]; then
5318 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5320 if [ "$CFG_SHARED" = "yes" ]; then
5321 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5322 QT_CONFIG="$QT_CONFIG shared"
5323 elif [ "$CFG_SHARED" = "no" ]; then
5324 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5325 QT_CONFIG="$QT_CONFIG static"
5328 #FIXME: qpa is implicit this should all be removed
5329 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5330 QT_CONFIG="$QT_CONFIG qpa"
5331 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5332 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5334 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5335 # Do not set this here for Windows. Let qmake do it so
5336 # debug and release precompiled headers are kept separate.
5337 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5339 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5340 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5341 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5342 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5343 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5344 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5346 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5347 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5349 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5350 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5351 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5352 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5353 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5354 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5355 QMakeVar add QMAKE_CFLAGS -g
5356 QMakeVar add QMAKE_CXXFLAGS -g
5357 QT_CONFIG="$QT_CONFIG separate_debug_info"
5359 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5360 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5362 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5363 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5364 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5365 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5366 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5367 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5368 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5369 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5370 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5371 if [ "$CFG_ARCH" = "mips" ]; then
5372 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5373 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5375 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5376 QT_CONFIG="$QT_CONFIG clock-gettime"
5378 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5379 QT_CONFIG="$QT_CONFIG clock-monotonic"
5381 if [ "$CFG_MREMAP" = "yes" ]; then
5382 QT_CONFIG="$QT_CONFIG mremap"
5384 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5385 QT_CONFIG="$QT_CONFIG getaddrinfo"
5387 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5388 QT_CONFIG="$QT_CONFIG ipv6ifname"
5390 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5391 QT_CONFIG="$QT_CONFIG getifaddrs"
5393 if [ "$CFG_INOTIFY" = "yes" ]; then
5394 QT_CONFIG="$QT_CONFIG inotify"
5396 if [ "$CFG_LIBJPEG" = "no" ]; then
5398 elif [ "$CFG_LIBJPEG" = "system" ]; then
5399 QT_CONFIG="$QT_CONFIG system-jpeg"
5401 if [ "$CFG_JPEG" = "no" ]; then
5402 QT_CONFIG="$QT_CONFIG no-jpeg"
5403 elif [ "$CFG_JPEG" = "yes" ]; then
5404 QT_CONFIG="$QT_CONFIG jpeg"
5406 if [ "$CFG_LIBPNG" = "no" ]; then
5409 if [ "$CFG_LIBPNG" = "system" ]; then
5410 QT_CONFIG="$QT_CONFIG system-png"
5412 if [ "$CFG_PNG" = "no" ]; then
5413 QT_CONFIG="$QT_CONFIG no-png"
5414 elif [ "$CFG_PNG" = "yes" ]; then
5415 QT_CONFIG="$QT_CONFIG png"
5417 if [ "$CFG_GIF" = "no" ]; then
5418 QT_CONFIG="$QT_CONFIG no-gif"
5419 elif [ "$CFG_GIF" = "yes" ]; then
5420 QT_CONFIG="$QT_CONFIG gif"
5422 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5423 QT_CONFIG="$QT_CONFIG no-freetype"
5424 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5425 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5426 QT_CONFIG="$QT_CONFIG system-freetype"
5428 QT_CONFIG="$QT_CONFIG freetype"
5430 if [ "$CFG_GUI" = "auto" ]; then
5433 if [ "$CFG_GUI" = "no" ]; then
5434 QT_CONFIG="$QT_CONFIG no-gui"
5437 if [ "$CFG_WIDGETS" = "no" ]; then
5438 QT_CONFIG="$QT_CONFIG no-widgets"
5439 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5442 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5443 #On Mac we implicitly link against libz, so we
5444 #never use the 3rdparty stuff.
5445 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5447 if [ "$CFG_ZLIB" = "yes" ]; then
5448 QT_CONFIG="$QT_CONFIG zlib"
5449 elif [ "$CFG_ZLIB" = "system" ]; then
5450 QT_CONFIG="$QT_CONFIG system-zlib"
5453 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5454 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5455 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5456 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5457 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5458 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5459 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5460 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5461 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5462 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5463 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5464 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5465 [ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb"
5466 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5467 [ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies"
5469 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5470 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5472 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5473 if [ "$CFG_RPATH" = "yes" ]; then
5474 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5476 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5477 if [ -n "$RPATH_FLAGS" ]; then
5479 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5483 elif [ "$CFG_RPATH" = "yes" ]; then
5484 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5488 if [ -n "$RPATH_FLAGS" ]; then
5489 # add the user defined rpaths
5490 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5493 if [ "$CFG_RPATH" = "yes" ]; then
5494 QT_CONFIG="$QT_CONFIG rpath"
5497 if [ '!' -z "$I_FLAGS" ]; then
5498 # add the user define include paths
5499 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5500 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5503 if [ '!' -z "$W_FLAGS" ]; then
5504 # add the user defined warning flags
5505 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5506 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5507 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5510 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5511 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5512 # Follow default behavior of configure.exe by overriding with "rtti".
5513 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5516 if [ "$CFG_ALSA" = "yes" ]; then
5517 QT_CONFIG="$QT_CONFIG alsa"
5520 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5521 QT_CONFIG="$QT_CONFIG pulseaudio"
5524 if [ "$CFG_COREWLAN" = "yes" ]; then
5525 QT_CONFIG="$QT_CONFIG corewlan"
5528 if [ "$CFG_ICU" = "yes" ]; then
5529 QT_CONFIG="$QT_CONFIG icu"
5532 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5533 QT_CONFIG="$QT_CONFIG force_asserts"
5536 if [ "$CFG_PCRE" = "qt" ]; then
5537 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5541 # Some Qt modules are too advanced in C++ for some old compilers
5542 # Detect here the platforms where they are known to work.
5544 # See Qt documentation for more information on which features are
5545 # supported and on which compilers.
5547 canBuildQtConcurrent="yes"
5548 canUseV8Snapshot="yes"
5550 case "$XPLATFORM" in
5552 # PA-RISC's assembly is too limited
5553 # gcc 3.4 on that platform can't build QtXmlPatterns
5554 # the assembly it generates cannot be compiled
5556 # Check gcc's version
5557 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5561 canBuildQtXmlPatterns="no"
5565 canBuildQtXmlPatterns="no"
5569 unsupported/vxworks-*-g++*)
5572 unsupported/vxworks-*-dcc*)
5574 canBuildQtXmlPatterns="no"
5577 # Check gcc's version
5578 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5586 canBuildQtXmlPatterns="no"
5591 # Check the compiler version
5592 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5595 canBuildQtXmlPatterns="no"
5596 canBuildQtConcurrent="no"
5600 canBuildQtConcurrent="no"
5606 canBuildQtXmlPatterns="no"
5607 canBuildQtConcurrent="no"
5613 # Get the xlC version
5614 cat > xlcver.c <<EOF
5618 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5623 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5624 xlcver=`./xlcver 2>/dev/null`
5627 if [ "$OPT_VERBOSE" = "yes" ]; then
5628 if [ -n "$xlcver" ]; then
5629 echo Found IBM xlC version: $xlcver.
5631 echo Could not determine IBM xlC version, assuming oldest supported.
5638 canBuildQtXmlPatterns="no"
5639 canBuildQtConcurrent="no"
5643 canBuildQtConcurrent="no"
5649 canBuildQtConcurrent="no"
5653 if [ "$CFG_GUI" = "no" ]; then
5654 # WebKit requires QtGui
5658 if [ "$CFG_SHARED" = "no" ]; then
5660 echo "WARNING: Using static linking will disable the WebKit module."
5665 CFG_CONCURRENT="yes"
5666 if [ "$canBuildQtConcurrent" = "no" ]; then
5667 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5670 QT_CONFIG="$QT_CONFIG concurrent"
5674 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5675 QT_CONFIG="$QT_CONFIG audio-backend"
5679 if [ "$CFG_WEBKIT" = "debug" ]; then
5680 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5684 QT_CONFIG="$QT_CONFIG v8"
5685 # Detect snapshot support
5686 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5687 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5690 *) canUseV8Snapshot="no"
5694 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5695 # QEMU crashes when building inside Scratchbox with an ARM target
5696 canUseV8Snapshot="no"
5699 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5700 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5702 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5703 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5706 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5707 QT_CONFIG="$QT_CONFIG v8snapshot"
5711 if [ "$CFG_QML_DEBUG" = "no" ]; then
5712 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5715 case "$QMAKE_CONF_COMPILER" in
5718 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5720 case "$COMPILER_VERSION" in
5722 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5723 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5724 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5727 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5728 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5729 QT_GCC_PATCH_VERSION=0
5739 #-------------------------------------------------------------------------------
5740 # part of configuration information goes into qconfig.h
5741 #-------------------------------------------------------------------------------
5743 case "$CFG_QCONFIG" in
5745 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5748 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5749 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5750 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5751 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5752 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5753 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5755 echo "#endif" >>"$tmpconfig"
5759 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5763 # define QT_EDITION $QT_EDITION
5767 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5768 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5770 if [ "$CFG_SHARED" = "no" ]; then
5771 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5772 /* Qt was configured for a static build */
5773 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5780 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5781 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5784 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5785 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5788 if [ "$BUILD_ON_MAC" = "yes" ]; then
5789 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5790 #if defined(__LP64__)
5791 # define QT_POINTER_SIZE 8
5793 # define QT_POINTER_SIZE 4
5797 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5798 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5801 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5802 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5803 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5806 # Add compiler sub-architecture support
5807 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5808 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5809 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5811 MIPS_DSP MIPS_DSPR2; do
5812 eval "VAL=\$CFG_$SUBARCH"
5815 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5816 >>"$outpath/src/corelib/global/qconfig.h.new"
5821 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5823 if [ "$CFG_DEV" = "yes" ]; then
5824 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5827 # Add QPA to config.h
5828 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5830 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5831 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5834 # Add turned on SQL drivers
5835 for DRIVER in $CFG_SQL_AVAILABLE; do
5836 eval "VAL=\$CFG_SQL_$DRIVER"
5839 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5840 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5841 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5844 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5849 QMakeVar set sql-drivers "$SQL_DRIVERS"
5850 QMakeVar set sql-plugins "$SQL_PLUGINS"
5852 # Add other configuration options to the qconfig.h file
5853 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5854 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5855 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5856 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5857 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5859 # X11/Unix/Mac only configs
5860 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5861 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5862 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5863 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5864 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5865 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5866 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5867 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5868 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5869 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5870 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5871 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5872 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5873 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5875 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5876 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5877 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5878 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5879 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5880 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5881 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5882 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5883 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5884 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5885 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5886 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5887 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5889 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5890 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5891 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5892 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5893 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5894 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5895 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5896 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5898 # sort QCONFIG_FLAGS for neatness if we can
5899 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5900 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5902 if [ -n "$QCONFIG_FLAGS" ]; then
5903 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5904 #ifndef QT_BOOTSTRAPPED
5907 for cfg in $QCONFIG_FLAGS; do
5908 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5909 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5910 # figure out define logic, so we can output the correct
5911 # ifdefs to override the global defines in a project
5913 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5914 # QT_NO_option can be forcefully turned on by QT_option
5915 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5916 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5917 # QT_option can be forcefully turned off by QT_NO_option
5918 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5921 if [ -z $cfgdNeg ]; then
5922 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5929 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5930 #if defined($cfgd) && defined($cfgdNeg)
5932 #elif !defined($cfgd) && !defined($cfgdNeg)
5939 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5940 #endif // QT_BOOTSTRAPPED
5945 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5946 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5947 #define QT_VISIBILITY_AVAILABLE
5952 if [ -n "$QT_LIBINFIX" ]; then
5953 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5954 #define QT_LIBINFIX "$QT_LIBINFIX"
5959 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5961 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5962 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5963 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5965 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5966 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5967 chmod -w "$outpath/src/corelib/global/qconfig.h"
5968 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5969 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5973 #-------------------------------------------------------------------------------
5974 # save configuration into qconfig.pri
5975 #-------------------------------------------------------------------------------
5976 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5977 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5978 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5979 if [ "$CFG_DEBUG" = "yes" ]; then
5980 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5981 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5982 QT_CONFIG="$QT_CONFIG release"
5984 QT_CONFIG="$QT_CONFIG debug"
5985 elif [ "$CFG_DEBUG" = "no" ]; then
5986 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5987 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5988 QT_CONFIG="$QT_CONFIG debug"
5990 QT_CONFIG="$QT_CONFIG release"
5992 if [ "$CFG_FRAMEWORK" = "no" ]; then
5993 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5995 QT_CONFIG="$QT_CONFIG qt_framework"
5996 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5998 if [ "$CFG_DEV" = "yes" ]; then
5999 QT_CONFIG="$QT_CONFIG private_tests"
6002 cat >>"$QTCONFIG.tmp" <<EOF
6004 CONFIG += $QTCONFIG_CONFIG
6006 QT_HOST_ARCH = $CFG_HOST_ARCH
6007 QT_CPU_FEATURES = $CFG_CPUFEATURES
6008 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
6009 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6010 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6011 QT_EDITION = $Edition
6012 QT_CONFIG += $QT_CONFIG
6015 QT_VERSION = $QT_VERSION
6016 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6017 QT_MINOR_VERSION = $QT_MINOR_VERSION
6018 QT_PATCH_VERSION = $QT_PATCH_VERSION
6021 QT_LIBINFIX = $QT_LIBINFIX
6022 QT_NAMESPACE = $QT_NAMESPACE
6026 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6027 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6028 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6029 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6030 echo >> "$QTCONFIG.tmp"
6033 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6034 echo "# sysroot" >>"$QTCONFIG.tmp"
6035 echo "!host_build {" >>"$QTCONFIG.tmp"
6036 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6037 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6038 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6039 echo "}" >> "$QTCONFIG.tmp"
6040 echo >> "$QTCONFIG.tmp"
6042 if [ -n "$RPATH_FLAGS" ]; then
6043 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6045 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6046 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6047 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6048 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6051 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6052 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6053 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6056 # replace qconfig.pri if it differs from the newly created temp file
6057 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6058 rm -f "$QTCONFIG.tmp"
6060 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6063 #-------------------------------------------------------------------------------
6064 # save configuration into qmodule.pri
6065 #-------------------------------------------------------------------------------
6066 QTMODULE="$outpath/mkspecs/qmodule.pri"
6068 echo "CONFIG += $QMAKE_CONFIG" >> "$QTMODULE.tmp"
6069 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6071 if [ -n "$QT_CFLAGS_PSQL" ]; then
6072 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6074 if [ -n "$QT_LFLAGS_PSQL" ]; then
6075 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6077 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6078 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6080 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6081 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6083 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6084 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6086 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6087 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6089 if [ -n "$QT_LFLAGS_ODBC" ]; then
6090 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6092 if [ -n "$QT_LFLAGS_TDS" ]; then
6093 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6096 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6097 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6100 #dump in the OPENSSL_LIBS info
6101 if [ '!' -z "$OPENSSL_LIBS" ]; then
6102 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6103 elif [ "$CFG_OPENSSL" = "linked" ]; then
6104 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6108 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6109 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6111 # replace qmodule.pri if it differs from the newly created temp file
6112 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6113 rm -f "$QTMODULE.tmp"
6115 mv -f "$QTMODULE.tmp" "$QTMODULE"
6118 #-------------------------------------------------------------------------------
6119 # save configuration into .qmake.cache
6120 #-------------------------------------------------------------------------------
6122 CACHEFILE="$outpath/.qmake.cache"
6123 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6124 cat >>"$CACHEFILE.tmp" <<EOF
6126 QT_SOURCE_TREE = \$\$quote($relpath)
6127 QT_BUILD_TREE = \$\$quote($outpath)
6130 # replace .qmake.cache if it differs from the newly created temp file
6131 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6132 rm -f "$CACHEFILE.tmp"
6134 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6137 #-------------------------------------------------------------------------------
6138 # give feedback on configuration
6139 #-------------------------------------------------------------------------------
6140 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6143 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6144 echo "Build type: $PLATFORM"
6146 echo "Building on: $PLATFORM"
6147 echo "Building for: $XPLATFORM"
6150 # the missing space before $CFG_FEATURES is intentional
6151 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6152 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6154 if [ -n "$PLATFORM_NOTES" ]; then
6155 echo "Platform notes:"
6156 echo "$PLATFORM_NOTES"
6161 if [ "$OPT_VERBOSE" = "yes" ]; then
6162 echo $ECHO_N "qmake vars .......... $ECHO_C"
6163 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6164 echo "qmake switches ......... $QMAKE_SWITCHES"
6167 echo "Build .................. $CFG_BUILD_PARTS"
6168 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6169 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6170 echo "Debug .................. yes (combined)"
6171 if [ "$CFG_DEBUG" = "yes" ]; then
6172 echo "Default Link ........... debug"
6174 echo "Default Link ........... release"
6177 echo "Debug .................. $CFG_DEBUG"
6179 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6180 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6182 echo "C++11 support .......... $CFG_CXX11"
6183 if [ -n "$PKG_CONFIG" ]; then
6184 echo "pkg-config ............. yes"
6186 echo "pkg-config ............. no"
6188 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6189 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6190 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6191 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6192 echo "QtGui module ........... $CFG_GUI"
6193 echo "QtWidgets module ....... $CFG_WIDGETS"
6194 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6195 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6197 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6199 echo "QML debugging .......... $CFG_QML_DEBUG"
6200 echo "PCH support ............ $CFG_PRECOMPILE"
6201 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6202 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6203 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6204 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6205 elif [ "$CFG_ARCH" = "arm" ]; then
6206 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6207 echo "NEON support ........... ${CFG_NEON}"
6209 if [ "$CFG_ARCH" = "mips" ]; then
6210 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6212 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6213 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6214 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6215 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6216 echo "NIS support ............ $CFG_NIS"
6217 echo "CUPS support ........... $CFG_CUPS"
6218 echo "Iconv support .......... $CFG_ICONV"
6219 echo "Glib support ........... $CFG_GLIB"
6220 echo "GStreamer support ...... $CFG_GSTREAMER"
6221 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6222 echo "Large File support ..... $CFG_LARGEFILE"
6223 echo "GIF support ............ $CFG_GIF"
6224 if [ "$CFG_JPEG" = "no" ]; then
6225 echo "JPEG support ........... $CFG_JPEG"
6227 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6229 if [ "$CFG_PNG" = "no" ]; then
6230 echo "PNG support ............ $CFG_PNG"
6232 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6234 echo "zlib support ........... $CFG_ZLIB"
6235 echo "Session management ..... $CFG_SM"
6236 echo "libudev support ........ $CFG_LIBUDEV"
6238 if [ "$XPLATFORM_QNX" = "yes" ]; then
6239 echo "SLOG2 support .......... $CFG_SLOG2"
6241 echo "Use system proxies ..... $CFG_SYSTEM_PROXIES"
6243 if [ "$CFG_OPENGL" = "desktop" ]; then
6244 echo "OpenGL support ......... yes (Desktop OpenGL)"
6245 elif [ "$CFG_OPENGL" = "es2" ]; then
6246 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6248 echo "OpenGL support ......... no"
6251 if [ "$CFG_OPENVG" ]; then
6252 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6253 echo "OpenVG support ......... ShivaVG"
6255 echo "OpenVG support ......... $CFG_OPENVG"
6259 echo "XShape support ......... $CFG_XSHAPE"
6260 echo "XVideo support ......... $CFG_XVIDEO"
6261 echo "XSync support .......... $CFG_XSYNC"
6262 echo "Xinerama support ....... $CFG_XINERAMA"
6263 echo "Xcursor support ........ $CFG_XCURSOR"
6264 echo "Xfixes support ......... $CFG_XFIXES"
6265 echo "Xrandr support ......... $CFG_XRANDR"
6266 echo "Xi support ............. $CFG_XINPUT"
6267 echo "Xi2 support ............ $CFG_XINPUT2"
6268 echo "MIT-SHM support ........ $CFG_MITSHM"
6269 echo "FontConfig support ..... $CFG_FONTCONFIG"
6270 echo "XKB Support ............ $CFG_XKB"
6271 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6273 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6274 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6275 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6276 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6277 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6278 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6279 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6280 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6281 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6284 if [ "$CFG_OPENSSL" = "yes" ]; then
6285 OPENSSL_LINKAGE="(run-time)"
6286 elif [ "$CFG_OPENSSL" = "linked" ]; then
6287 OPENSSL_LINKAGE="(linked)"
6289 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6290 echo "Alsa support ........... $CFG_ALSA"
6291 if [ "$BUILD_ON_MAC" = "yes" ]; then
6292 echo "CoreWlan support ....... $CFG_COREWLAN"
6294 echo "libICU support ......... $CFG_ICU"
6295 echo "PCRE support ........... $CFG_PCRE"
6296 echo "Xcb support ............ $CFG_XCB"
6297 echo "Xrender support ........ $CFG_XRENDER"
6298 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" != "no" ]; then
6299 echo "XInput2 support ........ $CFG_XINPUT2"
6301 echo "EGLFS support .......... $CFG_EGLFS"
6302 echo "DirectFB support ....... $CFG_DIRECTFB"
6303 echo "LinuxFB support ........ $CFG_LINUXFB"
6304 echo "KMS support ............ $CFG_KMS"
6307 # complain about not being able to use dynamic plugins if we are using a static build
6308 if [ "$CFG_SHARED" = "no" ]; then
6310 echo "WARNING: Using static linking will disable the use of dynamically"
6311 echo "loaded plugins. Make sure to import all needed static plugins,"
6312 echo "or compile needed modules into the library."
6315 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6317 echo "NOTE: When linking against OpenSSL, you can override the default"
6318 echo "library names through OPENSSL_LIBS."
6320 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6324 exec 1>&3 3>&- # restore stdout
6325 cat $outpath/config.summary # display config feedback to user
6327 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6329 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6330 echo "if you want a pure debug build."
6335 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6340 #-------------------------------------------------------------------------------
6341 # build makefiles based on the configuration
6342 #-------------------------------------------------------------------------------
6344 if [ "$CFG_PROCESS" != "no" ]; then
6346 if [ "$CFG_PROCESS" = "full" ]; then
6347 echo "Creating makefiles. Please wait..."
6348 "$outpath/bin/qmake" -r "$relpath"
6351 "$outpath/bin/qmake" "$relpath"
6354 if [ "$OPT_FAST" = "yes" ]; then
6356 for part in $CFG_BUILD_PARTS; do
6358 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6361 if [ "x$PART_ROOTS" != "x" ]; then
6363 echo "Creating stub makefiles. Please wait..."
6364 QMAKE="$outpath/bin/qmake"
6365 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6366 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6368 test -f "$outpath/$d/Makefile" && continue
6369 echo " for $relpath/$p"
6371 mkdir -p "$outpath/$d" || exit
6372 cat > "$outpath/$d/Makefile" <<EOF || exit
6373 # $outpath/$d/Makefile: generated by configure
6375 # WARNING: This makefile will be replaced with a real makefile.
6376 # All changes made to this file will be lost.
6381 all clean install qmake first Makefile: FORCE
6382 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6392 #-------------------------------------------------------------------------------
6393 # check for platforms that we don't yet know about
6394 #-------------------------------------------------------------------------------
6395 if [ "$CFG_ARCH" = "unknown" ]; then
6398 NOTICE: configure was unable to determine the architecture
6399 for the $XQMAKESPEC target.
6401 Qt will not use a specialized implementation for any atomic
6402 operations. Instead a generic implemention based on either GCC
6403 intrinsics or C++11 std::atomic<T> will be used (when
6404 available). The generic implementations are generally as fast
6405 as and always as safe as a specialized implementation.
6407 If no generic implementation is available, Qt will use a
6408 fallback UNIX implementation which uses a single
6409 pthread_mutex_t to protect all atomic operations. This
6410 implementation is the slow (but safe) fallback implementation
6411 for architectures Qt does not yet support.
6415 #-------------------------------------------------------------------------------
6416 # check if the user passed the -no-zlib option, which is no longer supported
6417 #-------------------------------------------------------------------------------
6418 if [ -n "$ZLIB_FORCED" ]; then
6419 which_zlib="supplied"
6420 if [ "$CFG_ZLIB" = "system" ]; then
6426 NOTICE: The -no-zlib option was supplied but is no longer
6429 Qt now requires zlib support in all builds, so the -no-zlib
6430 option was ignored. Qt will be built using the $which_zlib
6435 #-------------------------------------------------------------------------------
6436 # check if the user passed the obsoleted -wayland or -no-wayland flag
6437 #-------------------------------------------------------------------------------
6438 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6441 NOTICE: The -wayland and -no-wayland flags are now obsolete
6443 All configuring of QtWayland plugin and QtCompositor happens in the module
6447 #-------------------------------------------------------------------------------
6448 # check if the user passed the obsoleted -arch or -host-arch options
6449 #-------------------------------------------------------------------------------
6450 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6453 NOTICE: The -arch and -host-arch options are obsolete.
6455 Qt now detects the target and host architectures based on compiler
6456 output. Qt will be built using $CFG_ARCH for the target architecture
6457 and $CFG_HOST_ARCH for the host architecture (note that these two
6458 will be the same unless you are cross-compiling).
6462 #-------------------------------------------------------------------------------
6463 # finally save the executed command to another script
6464 #-------------------------------------------------------------------------------
6465 if [ `basename $0` != "config.status" ]; then
6466 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6468 # add the system variables
6469 for varname in $SYSTEM_VARIABLES; do
6471 'if [ -n "\$'${varname}'" ]; then
6472 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6477 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6479 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6480 echo "#!/bin/sh" > "$outpath/config.status"
6481 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6482 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6483 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6484 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6485 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6486 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6487 echo "else" >> "$outpath/config.status"
6488 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6489 echo "fi" >> "$outpath/config.status"
6490 chmod +x "$outpath/config.status"
6493 if [ -n "$RPATH_MESSAGE" ]; then
6495 echo "$RPATH_MESSAGE"
6498 MAKE=`basename "$MAKE"`
6500 echo Qt is now configured for building. Just run \'$MAKE\'.
6501 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6502 echo Once everything is built, Qt is installed.
6503 echo You should not run \'$MAKE install\'.
6505 echo Once everything is built, you must run \'$MAKE install\'.
6506 echo Qt will be installed into $QT_INSTALL_PREFIX
6509 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.