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,,'`
1117 if [ "$1" = "-l" ]; then
1121 VAL=`echo $1 | sed 's,-l,,'`
1126 if [ "$1" = "-F" ]; then
1130 VAL=`echo $1 | sed 's,-F,,'`
1135 if [ "$1" = "-fw" ]; then
1139 VAL=`echo $1 | sed 's,-fw,,'`
1146 #General options, including Qt style yes options
1148 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1155 if [ "$UNKNOWN_ARG" = "yes" ]; then
1156 echo "$1: unknown argument"
1167 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1168 CFG_ACCESSIBILITY="$VAL"
1177 CFG_USE_GNUMAKE="$VAL"
1180 CFG_MYSQL_CONFIG="$VAL"
1183 QT_INSTALL_PREFIX="$VAL"
1186 QT_HOST_PREFIX="$VAL"
1195 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1196 CFG_PKGCONFIG="$VAL"
1202 CFG_PKGCONFIG="force"
1205 QT_INSTALL_DOCS="$VAL"
1208 QT_INSTALL_HEADERS="$VAL"
1211 QT_INSTALL_PLUGINS="$VAL"
1214 QT_INSTALL_IMPORTS="$VAL"
1217 QT_INSTALL_QML="$VAL"
1220 QT_INSTALL_ARCHDATA="$VAL"
1223 QT_INSTALL_DATA="$VAL"
1226 QT_INSTALL_LIBS="$VAL"
1235 QT_INSTALL_TRANSLATIONS="$VAL"
1237 sysconfdir|settingsdir)
1238 QT_INSTALL_SETTINGS="$VAL"
1241 QT_INSTALL_EXAMPLES="$VAL"
1244 QT_INSTALL_TESTS="$VAL"
1253 CFG_GCC_SYSROOT="$VAL"
1256 QT_INSTALL_BINS="$VAL"
1259 QT_INSTALL_LIBEXECS="$VAL"
1262 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1269 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1270 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1271 [ "$VAL" = "es2" ]; then
1278 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1285 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1288 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1291 if [ "$BUILD_ON_MAC" = "yes" ]; then
1293 DeviceVar set QMAKE_MAC_SDK "$VAL"
1299 OPT_OBSOLETE_HOST_ARG=yes
1302 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1303 CFG_MAC_HARFBUZZ="$VAL"
1310 if [ "$BUILD_ON_MAC" = "yes" ]; then
1311 CFG_FRAMEWORK="$VAL"
1317 if [ "$VAL" = "yes" ]; then
1319 QMakeVar add QMAKE_CFLAGS -pg
1320 QMakeVar add QMAKE_CXXFLAGS -pg
1321 QMakeVar add QMAKE_LFLAGS -pg
1322 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1328 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1335 if [ "$VAL" = "yes" ]; then
1336 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1341 # keep compatibility with old platform names
1347 PLATFORM=hpux-acc-o64
1350 PLATFORM=hpux-acc-64
1353 PLATFORM=hpux-acc-64
1365 PLATFORM=reliant-cds-64
1368 PLATFORM=solaris-cc-64
1371 PLATFORM=unixware-cc
1374 PLATFORM=unixware-g++
1377 PLATFORM=unixware-cc
1380 PLATFORM=unixware-g++
1386 i386) NATIVE_64_ARCH="x86_64" ;;
1387 powerpc) NATIVE_64_ARCH="ppc64" ;;
1388 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1390 if [ ! -z "$NATIVE_64_ARCH" ]; then
1391 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1398 case `basename "$XPLATFORM"` in win32-g++*)
1401 CFG_REDUCE_EXPORTS=no
1406 XPLATFORM=`resolveDeviceMkspec $VAL`
1407 [ "$XPLATFORM" = "undefined" ] && exit 101
1410 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1411 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1412 DeviceVar set $DEV_VAR $DEV_VAL
1415 QT_QPA_DEFAULT_PLATFORM="$VAL"
1418 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1419 CFG_DEBUG_RELEASE="$VAL"
1425 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1426 CFG_RELEASE_QMAKE="$VAL"
1432 if [ "$VAL" = "yes" ]; then
1434 elif [ "$VAL" = "no" ]; then
1444 CFG_FORCEDEBUGINFO="$VAL"
1446 developer-build|commercial|opensource)
1447 # These switches have been dealt with already
1450 if [ "$VAL" = "yes" ]; then
1452 elif [ "$VAL" = "no" ]; then
1459 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1460 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1466 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1467 if [ "$VAL" = "no" ]; then
1468 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1469 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1470 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1476 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1483 if [ "$VAL" = "no" ]; then
1490 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1498 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1505 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1512 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1519 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1526 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1533 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1540 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1547 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1548 CFG_PRECOMPILE="$VAL"
1553 separate-debug-info)
1554 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1555 CFG_SEPARATE_DEBUG_INFO="$VAL"
1556 elif [ "$VAL" = "nocopy" ] ; then
1557 CFG_SEPARATE_DEBUG_INFO="yes"
1558 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1564 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1565 CFG_REDUCE_EXPORTS="$VAL"
1571 if [ "$VAL" = "no" ]; then
1578 if [ "$VAL" = "no" ]; then
1585 if [ "$VAL" = "no" ]; then
1592 if [ "$VAL" = "no" ]; then
1599 if [ "$VAL" = "no" ]; then
1606 if [ "$VAL" = "no" ]; then
1613 if [ "$VAL" = "no" ]; then
1623 if [ "$VAL" = "no" ]; then
1630 if [ "$VAL" = "no" ]; then
1637 if [ "$VAL" = "no" ]; then
1638 CFG_MIPS_DSPR2="$VAL"
1644 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1645 CFG_REDUCE_RELOCATIONS="$VAL"
1651 [ "$VAL" = "qt" ] && VAL=yes
1652 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1657 # No longer supported:
1658 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1661 if [ "$VAL" = "system" ]; then
1668 [ "$VAL" = "yes" ] && VAL=qt
1669 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1676 [ "$VAL" = "yes" ] && VAL=qt
1677 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1684 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1691 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1698 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1705 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1712 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1719 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1720 CFG_FONTCONFIG="$VAL"
1726 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1733 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ] || [ "$VAL" = "qt" ]; then
1735 if [ "$VAL" = "yes" ]; then
1743 CFG_OBSOLETE_WAYLAND=yes
1746 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1753 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1760 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1767 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1774 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1781 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1788 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1795 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1802 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1809 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1816 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1817 CFG_GSTREAMER="$VAL"
1823 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1824 CFG_QGTKSTYLE="$VAL"
1830 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1833 if [ "$VAL" = "no" ]; then
1841 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1843 elif [ "$VAL" = "no" ]; then
1850 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1851 QPA_PLATFORM_GUARD="$VAL"
1857 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1859 elif [ "$VAL" = "runtime" ]; then
1866 if [ "$VAL" = "yes" ]; then
1873 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1880 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1881 CFG_LARGEFILE="$VAL"
1887 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1894 if [ "$VAL" = "yes" ]; then
1895 CFG_OPENSSL="linked"
1901 if [ "$VAL" = "yes" ]; then
1904 if [ "$VAL" = "no" ]; then
1912 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1913 CFG_JAVASCRIPTCORE_JIT="$VAL"
1919 if [ "$VAL" = "yes" ]; then
1920 OPT_CONFIRM_LICENSE="$VAL"
1926 if [ "$VAL" = "yes" ]; then
1932 sql-*|imageformat-*)
1933 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1934 # if autoconf style options were used, $VAL can be "yes" or "no"
1935 [ "$VAL" = "yes" ] && VAL=qt
1936 # now $VAL should be "no", "qt", or "plugin"... double-check
1937 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1940 # now $VAL is "no", "qt", or "plugin"
1942 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1943 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1945 # Grab the available values
1948 avail="$CFG_SQL_AVAILABLE"
1951 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1952 if [ "$OPT" != "plugin" ]; then
1953 # png is always built in
1959 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1963 # Check that that user's value is available.
1966 if [ "$VAL" = "$d" ]; then
1971 [ "$found" = yes ] || ERROR=yes
1973 if [ "$VAR" = "sql" ]; then
1974 # set the CFG_SQL_driver
1975 eval "CFG_SQL_$VAL=\$OPT"
1977 elif [ "$VAR" = "imageformat" ]; then
1978 [ "$OPT" = "qt" ] && OPT=yes
1979 VAL="`echo $VAL |tr a-z A-Z`"
1980 eval "CFG_$VAL=$OPT"
1984 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1985 if [ "$OPT" = "plugin" ]; then
1988 QMakeVar add "${VAR}s" "${VAL}"
1989 elif [ "$OPT" = "no" ]; then
1990 PLUG_VAR="${VAR}-plugin"
1992 QMakeVar del "${IN_VAR}s" "$VAL"
1993 QMakeVar del "${PLUG_VAR}s" "$VAL"
1995 if [ "$ERROR" = "yes" ]; then
1996 echo "$CURRENT_OPT: unknown argument"
2001 if [ "$VAL" = "yes" ]; then
2002 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
2003 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
2007 elif [ "$VAL" = "no" ]; then
2008 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
2009 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2018 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2025 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2032 DEFINES="$DEFINES \"$VAL\""
2033 D_FLAGS="$D_FLAGS -D\"$VAL\""
2036 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2039 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2042 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2045 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2048 if [ "$BUILD_ON_MAC" = "yes" ]; then
2049 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2050 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2056 if [ "$BUILD_ON_MAC" = "yes" ]; then
2057 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2063 W_FLAGS="$W_FLAGS \"${VAL}\""
2078 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2079 CFG_AUDIO_BACKEND="$VAL"
2085 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2092 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2093 CFG_FORCE_ASSERTS="$VAL"
2099 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2106 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2113 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2114 CFG_SYSTEM_PROXIES="$VAL"
2123 if [ "$UNKNOWN_OPT" = "yes" ]; then
2124 echo "${CURRENT_OPT}: invalid command-line switch"
2130 # update QT_CONFIG to show our current predefined configuration
2131 case "$CFG_QCONFIG" in
2132 minimal|small|medium|large|full)
2133 # these are a sequence of increasing functionality
2134 for c in minimal small medium large full; do
2135 QT_CONFIG="$QT_CONFIG $c-config"
2136 [ "$CFG_QCONFIG" = $c ] && break
2140 # not known to be sufficient for anything
2141 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2142 echo >&2 "Error: configuration file not found:"
2143 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2145 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2150 #-------------------------------------------------------------------------------
2151 # build tree initialization
2152 #-------------------------------------------------------------------------------
2154 # where to find which..
2155 unixtests="$relpath/config.tests/unix"
2156 mactests="$relpath/config.tests/mac"
2157 WHICH="$unixtests/which.test"
2159 PERL=`$WHICH perl 2>/dev/null`
2161 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2163 for e in gawk nawk awk; do
2164 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2171 PERL="/usr/bin/perl"
2172 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2176 ### skip this if the user just needs help...
2177 if [ "$OPT_HELP" != "yes" ]; then
2179 # is this a shadow build?
2180 if [ "$OPT_SHADOW" = "maybe" ]; then
2182 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2183 if [ -h "$outpath" ]; then
2184 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2190 if [ "$OPT_SHADOW" = "yes" ]; then
2191 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2192 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2193 echo >&2 "Cannot proceed."
2196 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2199 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2201 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2202 echo "Qt can be built in release mode with separate debug information, so"
2203 echo "-debug-and-release is not necessary anymore"
2207 if [ "$CFG_SILENT" = "yes" ]; then
2208 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2211 # if the source tree is different from the build tree,
2212 # symlink or copy part of the sources
2213 if [ "$OPT_SHADOW" = "yes" ]; then
2214 echo "Preparing build tree..."
2216 if [ -z "$PERL" ]; then
2218 echo "You need perl in your PATH to make a shadow build."
2219 echo "Cannot proceed."
2223 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2225 # make a syncqt script that can be used in the shadow
2226 rm -f "$outpath/bin/syncqt"
2227 if [ -x "$relpath/bin/syncqt" ]; then
2228 mkdir -p "$outpath/bin"
2229 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2230 echo "perl \"$relpath/bin/syncqt\" -mkspecsdir \"$outpath/mkspecs\" \"\$@\"" >>"$outpath/bin/syncqt"
2231 chmod 755 "$outpath/bin/syncqt"
2234 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2235 rm -f "$outpath/bin/$i"
2236 if [ -x "$relpath/bin/$i" ]; then
2237 mkdir -p "$outpath/bin"
2238 echo "#!/bin/sh" >"$outpath/bin/$i"
2239 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2240 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2241 chmod 755 "$outpath/bin/$i"
2245 # save a pre-existing mkspecs/modules dir
2246 test -d "$outpath/mkspecs/modules" && \
2247 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2248 # ditto for mkspecs/modules-inst
2249 test -d "$outpath/mkspecs/modules-inst" && \
2250 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2252 # symlink the mkspecs directory
2253 mkdir -p "$outpath/mkspecs"
2254 rm -rf "$outpath"/mkspecs/*
2255 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2259 rm -rf "$outpath/mkspecs/$1"
2260 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2261 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2264 # Special case for mkspecs/features directory.
2265 # To be able to place .prf files into a shadow build directory,
2266 # we're creating links for files only. The directory structure is reproduced.
2267 ShadowMkspecs features
2269 # The modules dir is special, too.
2270 if test -d "$outpath/mkspecs-modules"; then
2271 rm -rf "$outpath/mkspecs/modules"
2272 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2274 ShadowMkspecs modules
2277 # The modules-inst dir is not quite as special, but still.
2278 if test -d "$outpath/mkspecs-modules-inst"; then
2279 rm -rf "$outpath/mkspecs/modules-inst"
2280 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2283 # Prepare doc directory
2284 mkdir -p "$outpath/doc"
2285 ln -f -s "$relpath"/doc/global "$outpath/doc"
2288 # symlink fonts to be able to run application from build directory
2289 if [ ! -d "${outpath}/lib/fonts" ]; then
2290 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2291 mkdir -p "${outpath}/lib"
2292 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2296 if [ "$OPT_FAST" = "auto" ]; then
2297 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2304 # find a make command
2305 if [ -z "$MAKE" ]; then
2307 for mk in gmake make; do
2308 if "$WHICH" $mk >/dev/null 2>&1; then
2313 if [ -z "$MAKE" ]; then
2314 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2315 echo >&2 "Cannot proceed."
2318 # export MAKE, we need it later in the config.tests
2324 #-------------------------------------------------------------------------------
2325 # auto-detect all that hasn't been specified in the arguments
2326 #-------------------------------------------------------------------------------
2328 if [ -z "$PLATFORM" ]; then
2330 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2332 OSX_VERSION=`uname -r | cut -d. -f1`
2333 # Select compiler. Use g++ unless we find a usable Clang version
2335 if [ "$OSX_VERSION" -ge 12 ]; then
2336 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2338 elif [ "$OSX_VERSION" -eq 11 ]; then
2339 # We're on Lion. Check if we have a supported Clang version
2340 if [ "$(clang -v 2>&1 | grep -Po '(?<=version )[\d]')" -ge 3 ]; then
2342 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2348 #PLATFORM=aix-g++-64
2350 #PLATFORM=aix-xlc-64
2352 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2362 # PLATFORM=dynix-g++
2368 PLATFORM=freebsd-g++
2370 - Also available for FreeBSD: freebsd-icc
2374 PLATFORM=openbsd-g++
2385 #PLATFORM=irix-cc-64
2387 - Also available for IRIX: irix-g++ irix-cc-64
2391 case "$UNAME_MACHINE" in
2393 #PLATFORM=hpuxi-acc-32
2394 PLATFORM=hpuxi-acc-64
2396 - Also available for HP-UXi: hpuxi-acc-32
2402 #PLATFORM=hpux-acc-64
2404 #PLATFORM=hpux-acc-o64
2406 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2415 - Also available for Tru64: tru64-g++
2419 case "$UNAME_MACHINE" in
2421 PLATFORM=linux-g++-64
2428 - Also available for Linux: linux-kcc linux-icc linux-cxx
2432 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2433 PLATFORM="solaris-g++"
2435 #PLATFORM=solaris-g++
2437 #PLATFORM=solaris-cc64
2440 - Also available for Solaris: solaris-g++ solaris-cc-64
2443 ReliantUNIX-*:*|SINIX-*:*)
2444 PLATFORM=reliant-cds
2445 #PLATFORM=reliant-cds-64
2447 - Also available for Reliant UNIX: reliant-cds-64
2457 #PLATFORM=unixware-g++
2458 PLATFORM=unixware-cc
2460 - Also available for OpenUNIX: unixware-g++
2464 #PLATFORM=unixware-g++
2465 PLATFORM=unixware-cc
2467 - Also available for UnixWare: unixware-g++
2474 - Also available for SCO OpenServer: sco-g++
2478 PLATFORM=unixware-g++
2481 PLATFORM=unsupported/qnx-g++
2484 if [ "$OPT_HELP" != "yes" ]; then
2486 echo " The build script does not currently recognize all" >&2
2487 echo " platforms supported by Qt." >&2
2488 echo " Rerun this script with a -platform option listed to" >&2
2489 echo " set the system/compiler combination you use." >&2
2496 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2498 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2499 case "$XPLATFORM" in *-maemo*) XPLATFORM_MAEMO=yes;; esac
2500 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2502 if [ -d "$PLATFORM" ]; then
2503 QMAKESPEC="$PLATFORM"
2505 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2507 if [ -d "$XPLATFORM" ]; then
2508 XQMAKESPEC="$XPLATFORM"
2510 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2512 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2513 QT_CROSS_COMPILE=yes
2514 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2515 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2518 if [ "$BUILD_ON_MAC" = "yes" ]; then
2519 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2521 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2522 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2523 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2524 echo " built with 'macx-g++'" >&2
2530 # check specified platforms are supported
2531 if [ '!' -d "$QMAKESPEC" ]; then
2533 echo " The specified system/compiler is not supported:"
2537 echo " Please see the README file for a complete list."
2541 if [ '!' -d "$XQMAKESPEC" ]; then
2543 echo " The specified system/compiler is not supported:"
2547 echo " Please see the README file for a complete list."
2551 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2553 echo " The specified system/compiler port is not complete:"
2555 echo " $XQMAKESPEC/qplatformdefs.h"
2557 echo " Please use the contact form at http://qt.digia.com/contact-us"
2562 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2563 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2564 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2565 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2566 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2570 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2571 case `basename "$XPLATFORM"` in
2574 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2576 echo "Please use the contact form at http://qt.digia.com/contact-us"
2577 echo "to upgrade your license to include this platform, or install"
2578 echo "the Qt Open Source Edition if you intend to develop free software."
2584 #-------------------------------------------------------------------------------
2585 # tests that don't need qmake (must be run before displaying help)
2586 #-------------------------------------------------------------------------------
2588 # detect build style
2589 if [ "$CFG_DEBUG" = "auto" ]; then
2590 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2591 CFG_DEBUG_RELEASE=yes
2593 elif [ "$CFG_DEV" = "yes" ]; then
2594 CFG_DEBUG_RELEASE=no
2597 CFG_DEBUG_RELEASE=no
2601 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2602 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2605 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2606 QT_CONFIG="$QT_CONFIG force_debug_info"
2609 # pass on $CFG_SDK to the arch/configure tests.
2610 if [ -n "$CFG_SDK" ]; then
2611 MAC_SDK_FLAG="-sdk $CFG_SDK"
2616 # find the default framework value
2617 if [ "$BUILD_ON_MAC" = "yes" ]; then
2618 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2619 CFG_FRAMEWORK="$CFG_SHARED"
2620 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2622 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2630 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2632 TEST_COMPILER=$QMAKE_CONF_COMPILER
2633 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2634 if [ -z "$TEST_COMPILER" ]; then
2635 echo "ERROR: Cannot set the compiler for the configuration tests"
2639 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2642 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2643 if [ -n "$GCC_MACHINE_DUMP" ]; then
2644 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2647 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2648 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2652 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2654 # auto-detect precompiled header support
2655 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2656 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2663 # auto-detect support for separate debug info in objcopy
2664 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2665 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2666 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2667 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2668 CFG_SEPARATE_DEBUG_INFO=no
2672 # binutils on HP-UX is buggy; default to no.
2673 CFG_SEPARATE_DEBUG_INFO=no
2676 CFG_SEPARATE_DEBUG_INFO=yes
2682 # auto-detect -fvisibility support
2683 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2684 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2685 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2686 echo "-reduce-exports was requested but this compiler does not support it"
2687 echo "Re-run configure with -v for more information"
2690 CFG_REDUCE_EXPORTS=no
2692 CFG_REDUCE_EXPORTS=yes
2696 # auto-detect -fstack-protector-strong support (for QNX only currently)
2697 if [ "$XPLATFORM_QNX" = "yes" ]; then
2698 if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then
2699 CFG_STACK_PROTECTOR_STRONG=yes
2701 CFG_STACK_PROTECTOR_STRONG=no
2704 CFG_STACK_PROTECTOR_STRONG=no
2707 # detect the availability of the -Bsymbolic-functions linker optimization
2708 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2709 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2710 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2711 echo "-reduce-relocations was requested but this compiler does not support it"
2712 echo "Re-run configure with -v for more information"
2715 CFG_REDUCE_RELOCATIONS=no
2717 CFG_REDUCE_RELOCATIONS=yes
2721 # auto-detect GNU make support
2722 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2726 # find the default framework value
2727 if [ "$BUILD_ON_MAC" = "yes" ]; then
2728 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2729 CFG_FRAMEWORK="$CFG_SHARED"
2730 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2732 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2740 # auto-detect default include and library search paths
2741 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2742 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2743 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2744 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2745 /^End of search/ { yup=0 }
2746 yup { print substr($0, 2) }
2747 /^\#include </ { yup=1 }
2749 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2751 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2754 #setup the build parts
2755 if [ -z "$CFG_BUILD_PARTS" ]; then
2756 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2758 # build tests by default, if a developer build
2759 if [ "$CFG_DEV" = "yes" ]; then
2760 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2763 # don't build tools by default when cross-compiling
2764 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2765 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2768 for nobuild in $CFG_NOBUILD_PARTS; do
2769 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2771 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2773 # echo "WARNING: libs is a required part of the build."
2775 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2778 #-------------------------------------------------------------------------------
2779 # post process QT_INSTALL_* variables
2780 #-------------------------------------------------------------------------------
2782 if [ -z "$QT_INSTALL_PREFIX" ]; then
2783 if [ "$CFG_DEV" = "yes" ]; then
2784 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2786 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2789 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2791 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2792 QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2794 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2796 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2797 QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2799 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2801 if [ -z "$QT_INSTALL_ARCHDATA" ]; then #default
2802 QT_INSTALL_ARCHDATA="$QT_INSTALL_PREFIX" #fallback
2804 QT_INSTALL_ARCHDATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_ARCHDATA"`
2806 if [ -z "$QT_INSTALL_DATA" ]; then #default
2807 QT_INSTALL_DATA="$QT_INSTALL_PREFIX" #fallback
2809 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2811 if [ -z "$QT_INSTALL_BINS" ]; then #default
2812 QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2814 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2816 if [ -z "$QT_INSTALL_LIBEXECS" ]; then #default
2817 QT_INSTALL_LIBEXECS="$QT_INSTALL_ARCHDATA/libexec" #fallback
2819 QT_INSTALL_LIBEXECS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBEXECS"`
2821 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2822 QT_INSTALL_DOCS="$QT_INSTALL_DATA/doc" #fallback
2824 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2826 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2827 QT_INSTALL_PLUGINS="$QT_INSTALL_ARCHDATA/plugins" #fallback
2829 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2831 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2832 QT_INSTALL_IMPORTS="$QT_INSTALL_ARCHDATA/imports" #fallback
2834 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2837 if [ -z "$QT_INSTALL_QML" ]; then #default
2838 QT_INSTALL_QML="$QT_INSTALL_ARCHDATA/qml" #fallback
2840 QT_INSTALL_QML=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_QML"`
2842 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2843 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_DATA/translations" #fallback
2845 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2847 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2848 if [ "$BUILD_ON_MAC" = "yes" ]; then
2849 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2851 QT_INSTALL_SETTINGS=/etc/xdg
2854 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2856 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2857 QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2859 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2862 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2863 QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2865 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2867 #------- host paths --------
2869 if [ -z "$QT_HOST_PREFIX" ]; then
2870 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2873 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2877 if [ -z "$QT_HOST_BINS" ]; then #default
2879 QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2881 QT_HOST_BINS="$QT_INSTALL_BINS"
2884 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2886 if [ -z "$QT_HOST_DATA" ]; then #default
2888 QT_HOST_DATA="$QT_HOST_PREFIX"
2890 QT_HOST_DATA="$QT_INSTALL_ARCHDATA"
2893 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2896 #-------------------------------------------------------------------------------
2897 # help - interactive parts of the script _after_ this section please
2898 #-------------------------------------------------------------------------------
2900 # next, emit a usage message if something failed.
2901 if [ "$OPT_HELP" = "yes" ]; then
2902 [ "x$ERROR" = "xyes" ] && echo
2903 if [ "$CFG_NIS" = "no" ]; then
2910 if [ "$CFG_CUPS" = "no" ]; then
2917 if [ "$CFG_ICONV" = "no" ]; then
2924 if [ "$CFG_LARGEFILE" = "no" ]; then
2931 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2939 if [ "$CFG_XCB" = "no" ]; then
2947 if [ "$CFG_EGLFS" = "no" ]; then
2955 if [ "$CFG_DIRECTFB" = "no" ]; then
2963 if [ "$CFG_LINUXFB" = "no" ]; then
2971 if [ "$CFG_KMS" = "no" ]; then
2979 if [ "$CFG_XINPUT2" = "no" ]; then
2987 if [ "$CFG_DBUS" = "no" ]; then
2995 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
3003 if [ "$CFG_GLIB" = "no" ]; then
3012 Usage: $relconf [options]
3014 Installation options:
3016 These are optional, but you may specify install directories.
3018 -prefix <dir> ...... This will install everything relative to <dir>
3019 (default $QT_INSTALL_PREFIX)
3021 -hostprefix [dir] .. Tools and libraries needed when developing
3022 applications are installed in [dir]. If [dir] is
3023 not given, the current build directory will be used.
3026 You may use these to separate different parts of the install:
3028 -bindir <dir> ......... User executables will be installed to <dir>
3029 (default PREFIX/bin)
3030 -headerdir <dir> ...... Headers will be installed to <dir>
3031 (default PREFIX/include)
3032 -libdir <dir> ......... Libraries will be installed to <dir>
3033 (default PREFIX/lib)
3034 -archdatadir <dir>..... Arch-dependent data used by Qt will be installed to <dir>
3036 -plugindir <dir> ...... Plugins will be installed to <dir>
3037 (default ARCHDATADIR/plugins)
3038 -libexecdir <dir> ..... Program executables will be installed to <dir>
3039 (default ARCHDATADIR/libexec)
3040 -importdir <dir> ...... Imports for QML1 will be installed to <dir>
3041 (default ARCHDATADIR/imports)
3042 -qmldir <dir> ......... Imports for QML2 will be installed to <dir>
3043 (default ARCHDATADIR/qml)
3044 -datadir <dir> ........ Arch-independent data used by Qt will be installed to <dir>
3046 -docdir <dir> ......... Documentation will be installed to <dir>
3047 (default DATADIR/doc)
3048 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3049 (default DATADIR/translations)
3050 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3051 (default PREFIX/etc/settings)
3052 -examplesdir <dir> .... Examples will be installed to <dir>
3053 (default PREFIX/examples)
3054 -testsdir <dir> ....... Tests will be installed to <dir>
3055 (default PREFIX/tests)
3057 -hostbindir <dir> .. Host executables will be installed to <dir>
3058 (default HOSTPREFIX/bin)
3059 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3060 (default HOSTPREFIX)
3064 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3065 that needs to be evaluated. If the evaluation succeeds, the feature is
3066 included. Here is a short explanation of each option:
3068 * -release ........... Compile and link Qt with debugging turned off.
3069 -debug ............. Compile and link Qt with debugging turned on.
3070 -debug-and-release . Compile and link two versions of Qt, with and without
3071 debugging turned on (Mac only).
3073 -force-debug-info .. Create symbol files for release builds.
3075 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3077 -opensource ........ Compile and link the Open-Source Edition of Qt.
3078 -commercial ........ Compile and link the Commercial Edition of Qt.
3080 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3081 + -c++11 ............. Compile Qt with C++11 support enabled.
3083 * -shared ............ Create and use shared Qt libraries.
3084 -static ............ Create and use static Qt libraries.
3086 * -process ........... Generate only a top-level Makefile.
3087 -fully-process ..... Generate Makefiles for the entire Qt tree.
3088 -dont-process ...... Do not generate any Makefiles.
3090 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3092 -fast .............. Configure Qt quickly by generating Makefiles only for
3093 library and subdirectory targets. All other Makefiles
3094 are created as wrappers, which will in turn run qmake.
3096 -no-largefile ...... Disables large file support.
3097 + -largefile ......... Enables Qt to access files larger than 4 GB.
3099 -no-accessibility .. Do not compile Accessibility support.
3100 + -accessibility ..... Compile Accessibility support.
3102 -no-sql-<driver> ... Disable SQL <driver> entirely.
3103 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3105 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3108 Possible values for <driver>:
3109 [ $CFG_SQL_AVAILABLE ]
3111 -system-sqlite ..... Use sqlite from the operating system.
3113 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3114 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3116 -no-qml-debug ...... Do not build the in-process QML debugging support.
3117 + -qml-debug ......... Build the QML debugging support.
3119 -platform target ... The operating system and compiler you are building
3122 See the README file for a list of supported
3123 operating systems and compilers.
3125 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3126 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3127 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3128 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3129 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3130 -no-avx ............ Do not compile with use of AVX instructions.
3131 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3132 -no-neon ........... Do not compile with use of NEON instructions.
3133 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3134 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3136 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3137 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3139 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3141 -D <string> ........ Add an explicit define to the preprocessor.
3142 -I <string> ........ Add an explicit include path.
3143 -L <string> ........ Add an explicit library path.
3145 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3146 configure determines whether to use pkg-config or not with
3147 some heuristics such as checking the environment variables.
3148 -no-pkg-config ..... Disable use of pkg-config.
3149 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3150 detection heuristic).
3152 -help, -h .......... Display this information.
3154 Third Party Libraries:
3156 -qt-zlib ........... Use the zlib bundled with Qt.
3157 + -system-zlib ....... Use zlib from the operating system.
3158 See http://www.gzip.org/zlib
3160 -no-gif ............ Do not compile GIF reading support.
3162 -no-libpng ......... Do not compile PNG support.
3163 -qt-libpng ......... Use the libpng bundled with Qt.
3164 + -system-libpng ..... Use libpng from the operating system.
3165 See http://www.libpng.org/pub/png
3167 -no-libjpeg ........ Do not compile JPEG support.
3168 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3169 + -system-libjpeg .... Use libjpeg from the operating system.
3170 See http://www.ijg.org
3172 -no-openssl ........ Do not compile support for OpenSSL.
3173 + -openssl ........... Enable run-time OpenSSL support.
3174 -openssl-linked .... Enabled linked OpenSSL support.
3176 -qt-pcre ........... Use the PCRE library bundled with Qt.
3177 + -system-pcre ....... Use the PCRE library from the operating system.
3179 -qt-xcb ............ Use xcb- libraries bundled with Qt.
3180 (libxcb.so will still be used from operating system).
3181 + -system-xcb ........ Use xcb- libraries from the operating system.
3185 -make <part> ....... Add part to the list of parts to be built at make time.
3186 ($QT_DEFAULT_BUILD_PARTS)
3187 -nomake <part> ..... Exclude part from the list of parts to be built.
3189 -no-gui ............ Don't build the QtGui library and dependencies.
3190 + -gui ............... Build the QtGui library and dependencies.
3192 -no-widgets ........ Don't build the QtWidgets library and dependencies.
3193 + -widgets ........... Build the QtWidgets library and dependencies.
3195 -R <string> ........ Add an explicit runtime library path to the Qt
3197 -l <string> ........ Add an explicit library.
3199 -no-rpath .......... Do not use the library install path as a runtime
3201 + -rpath ............. Link Qt libraries and executables using the library
3202 install path as a runtime library path. Equivalent
3203 to -R install_libpath
3205 -continue .......... Continue as far as possible if an error occurs.
3207 -verbose, -v ....... Print verbose information about each step of the
3210 -silent ............ Reduce the build output so that warnings and errors
3211 can be seen more easily.
3213 * -no-optimized-qmake ... Do not build qmake optimized.
3214 -optimized-qmake ...... Build qmake optimized.
3216 $NSN -no-nis ............ Do not compile NIS support.
3217 $NSY -nis ............... Compile NIS support.
3219 $CUN -no-cups ........... Do not compile CUPS support.
3220 $CUY -cups .............. Compile CUPS support.
3221 Requires cups/cups.h and libcups.so.2.
3223 $CIN -no-iconv .......... Do not compile support for iconv(3).
3224 $CIY -iconv ............. Compile support for iconv(3).
3226 -no-icu ............ Do not compile support for ICU libraries.
3227 + -icu ............... Compile support for ICU libraries.
3229 -no-strip .......... Do not strip binaries and libraries of unneeded symbols.
3230 * -strip ............. Strip binaries and libraries of unneeded symbols when installing.
3232 $PHN -no-pch ............ Do not use precompiled header support.
3233 $PHY -pch ............... Use precompiled header support.
3235 $DBN -no-dbus ........... Do not compile the QtDBus module.
3236 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3237 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3239 -reduce-relocations ..... Reduce relocations in the libraries through extra
3240 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3241 experimental; needs GNU ld >= 2.18).
3243 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3245 -device <name> ............... Cross-compile for device <name> (experimental)
3246 -device-option <key=value> ... Add device specific options for the device mkspec
3249 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3250 $SBY -separate-debug-info .... Strip debug information into a separate file.
3252 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3253 $XCBY -xcb ............... Compile Xcb support.
3255 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3256 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3258 $DFBN -no-directfb ....... Do not compile DirectFB support.
3259 $DFBY -directfb .......... Compile DirectFB support.
3261 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3262 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3264 $KMSN -no-kms ............ Do not compile KMS support.
3265 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3267 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3269 -xplatform target ... The target platform when cross-compiling.
3271 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3272 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3274 -no-feature-<feature> Do not compile in <feature>.
3275 -feature-<feature> .. Compile in <feature>. The available features
3276 are described in src/corelib/global/qfeatures.txt
3278 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3279 default ($CFG_QCONFIG).
3281 -no-opengl .......... Do not support OpenGL.
3282 -opengl <api> ....... Enable OpenGL support
3283 With no parameter, this will attempt to auto-detect
3284 OpenGL ES 2, or regular desktop OpenGL.
3285 Use es2 for <api> to override auto-detection.
3287 * -no-system-proxies .. Do not use system network proxies by default.
3288 -system-proxies ..... Use system network proxies by default.
3290 $GBN -no-glib ........... Do not compile Glib support.
3291 $GBY -glib .............. Compile Glib support.
3294 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3297 $X2N -no-xinput2......... Do not compile XInput2 support.
3298 $X2Y -xinput2............ Compile XInput2 support.
3304 if [ "$XPLATFORM_QNX" = "yes" ]; then
3307 -no-slog2 .......... Do not compile with slog2 support.
3308 -slog2 ............. Compile with slog2 support.
3314 if [ "$BUILD_ON_MAC" = "yes" ]; then
3319 -Fstring ........... Add an explicit framework path.
3320 -fw string ......... Add an explicit framework.
3322 * -framework ......... Build Qt as a series of frameworks and
3323 link tools against those frameworks.
3324 -no-framework ...... Do not build Qt as a series of frameworks.
3326 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3327 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3329 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3330 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3331 QT_ENABLE_HARFBUZZ environment variable.
3336 [ "x$ERROR" = "xyes" ] && exit 1
3341 # -----------------------------------------------------------------------------
3342 # LICENSING, INTERACTIVE PART
3343 # -----------------------------------------------------------------------------
3346 echo "This is the Qt ${EditionString} Edition."
3349 if [ "$Edition" = "OpenSource" ]; then
3351 echo "You are licensed to use this software under the terms of"
3352 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3353 if [ -f "$relpath/LICENSE.GPL3" ]; then
3354 echo "You are also licensed to use this software under the terms of"
3355 echo "the GNU General Public License (GPL) versions 3."
3361 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3362 echo "You have already accepted the terms of the $LicenseType license."
3365 if [ -f "$relpath/LICENSE.GPL3" ]; then
3366 echo "Type '3' to view the GNU General Public License version 3."
3368 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3369 echo "Type 'yes' to accept this license offer."
3370 echo "Type 'no' to decline this license offer."
3372 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3376 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3378 elif [ "$acceptance" = "no" ]; then
3379 echo "You are not licensed to use this software."
3382 elif [ "$acceptance" = "3" ]; then
3383 more "$relpath/LICENSE.GPL3"
3384 elif [ "$acceptance" = "L" ]; then
3385 more "$relpath/LICENSE.LGPL"
3388 elif [ "$Edition" = "Preview" ]; then
3389 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3392 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3393 echo "You have already accepted the terms of the $LicenseType license."
3396 echo "You are licensed to use this software under the terms of"
3397 echo "the $TheLicense"
3399 echo "Type '?' to read the Preview License."
3400 echo "Type 'yes' to accept this license offer."
3401 echo "Type 'no' to decline this license offer."
3403 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3407 if [ "$acceptance" = "yes" ]; then
3409 elif [ "$acceptance" = "no" ] ;then
3410 echo "You are not licensed to use this software."
3413 elif [ "$acceptance" = "?" ]; then
3414 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3417 elif [ "$Edition" != "OpenSource" ]; then
3418 if [ -n "$ExpiryDate" ]; then
3419 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3420 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3421 Today=`date +%Y%m%d`
3422 if [ "$Today" -gt "$ExpiryDate" ]; then
3423 case "$LicenseType" in
3424 Commercial|Academic|Educational)
3426 echo "WARNING WARNING WARNING WARNING"
3428 echo " Your support and upgrade period has expired."
3430 echo " You may continue to use your last licensed release"
3431 echo " of Qt under the terms of your existing license"
3432 echo " agreement. But you are not entitled to technical"
3433 echo " support, nor are you entitled to use any more recent"
3434 echo " Qt releases."
3436 echo " Please use the contact form at http://qt.digia.com/contact-us"
3437 echo " to renew your support and upgrades for this license."
3439 echo "WARNING WARNING WARNING WARNING"
3445 echo "NOTICE NOTICE NOTICE NOTICE"
3447 echo " Your Evaluation license has expired."
3449 echo " You are no longer licensed to use this software. Please"
3450 echo " use the contact form at http://qt.digia.com/contact-us to"
3451 echo " purchase license, or install the Qt Open Source Edition"
3452 echo " if you intend to develop free software."
3454 echo "NOTICE NOTICE NOTICE NOTICE"
3461 TheLicense=`head -n 1 "$outpath/LICENSE"`
3463 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3464 echo "You have already accepted the terms of the $TheLicense."
3467 echo "You are licensed to use this software under the terms of"
3468 echo "the $TheLicense."
3470 echo "Type '?' to view the $TheLicense."
3471 echo "Type 'yes' to accept this license offer."
3472 echo "Type 'no' to decline this license offer."
3474 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3478 if [ "$acceptance" = "yes" ]; then
3480 elif [ "$acceptance" = "no" ]; then
3481 echo "You are not licensed to use this software."
3484 else [ "$acceptance" = "?" ]
3485 more "$outpath/LICENSE"
3490 # this should be moved somewhere else
3493 AIX_VERSION=`uname -v`
3494 if [ "$AIX_VERSION" -lt "5" ]; then
3495 QMakeVar add QMAKE_LIBS_X11 -lbind
3502 #-------------------------------------------------------------------------------
3503 # generate qconfig.cpp
3504 #-------------------------------------------------------------------------------
3505 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3507 shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3508 shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"`
3510 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3512 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3513 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3515 /* Installation date */
3516 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3518 /* Installation Info */
3519 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3520 "qt_prfxpath=$QT_INSTALL_PREFIX",
3521 "qt_docspath=$QT_INSTALL_DOCS",
3522 "qt_hdrspath=$QT_INSTALL_HEADERS",
3523 "qt_libspath=$QT_INSTALL_LIBS",
3524 "qt_lbexpath=$QT_INSTALL_LIBEXECS",
3525 "qt_binspath=$QT_INSTALL_BINS",
3526 "qt_plugpath=$QT_INSTALL_PLUGINS",
3527 "qt_impspath=$QT_INSTALL_IMPORTS",
3528 "qt_qml2path=$QT_INSTALL_QML",
3529 "qt_adatpath=$QT_INSTALL_ARCHDATA",
3530 "qt_datapath=$QT_INSTALL_DATA",
3531 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3532 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3533 "qt_tstspath=$QT_INSTALL_TESTS",
3534 #ifdef QT_BUILD_QMAKE
3535 "qt_ssrtpath=$CFG_SYSROOT",
3536 "qt_hpfxpath=$QT_HOST_PREFIX",
3537 "qt_hbinpath=$QT_HOST_BINS",
3538 "qt_hdatpath=$QT_HOST_DATA",
3539 "qt_targspec=$shortxspec",
3540 "qt_hostspec=$shortspec",
3543 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3546 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3548 /* strlen( "qt_lcnsxxxx" ) == 12 */
3549 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3550 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3552 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3555 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3556 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3557 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3559 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3560 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3561 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3564 # -----------------------------------------------------------------------------
3565 if [ "$LicenseType" = "Evaluation" ]; then
3566 EVALKEY=qt_qevalkey=$LicenseKeyExt
3567 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3568 EVALKEY=qt_qevalkey=
3571 if [ -n "$EVALKEY" ]; then
3572 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3573 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3574 /* Evaluation license key */
3575 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3577 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3581 # -----------------------------------------------------------------------------
3583 # -----------------------------------------------------------------------------
3586 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3587 "$outpath/bin/syncqt" -minimal -module QtCore "$relpath" || exit 1
3590 # $1: input variable name (awk regexp)
3591 # $2: optional output variable name
3592 # $3: optional value transformation (sed command)
3593 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3594 # is where the resulting variable is written to
3595 setBootstrapVariable()
3597 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3601 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3602 echo "Creating qmake. Please wait..."
3604 mkdir -p "$outpath/qmake" || exit
3606 for mkfile in GNUmakefile Makefile; do
3609 in_mkfile="${mkfile}.in"
3610 if [ "$mkfile" = "Makefile" ]; then
3611 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3612 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3614 in_mkfile="${mkfile}.unix"
3616 in_mkfile="$relpath/qmake/$in_mkfile"
3617 mkfile="$outpath/qmake/$mkfile"
3618 if [ -f "$mkfile" ]; then
3619 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3622 [ -f "$in_mkfile" ] || continue
3624 echo "########################################################################" > "$mkfile"
3625 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3626 echo "########################################################################" >> "$mkfile"
3629 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3630 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3631 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3633 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3634 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3637 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3638 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3639 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3640 setBootstrapVariable QMAKE_CFLAGS
3641 setBootstrapVariable QMAKE_CXXFLAGS
3642 setBootstrapVariable QMAKE_LFLAGS
3644 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3645 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3646 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3648 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3649 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3650 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3651 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3652 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3653 elif [ "$CFG_DEBUG" = "yes" ]; then
3654 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3655 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3656 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3657 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3660 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3661 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3662 for rpath in $RPATH_FLAGS; do
3663 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3666 if [ "$BUILD_ON_MAC" = "yes" ]; then
3667 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3668 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3669 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3670 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3671 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3672 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3673 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3674 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3675 if [ '!' -z "$CFG_SDK" ]; then
3676 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3677 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3678 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3679 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3680 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3683 if [ '!' -z "$D_FLAGS" ]; then
3684 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3686 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3687 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3688 QMAKE_DATA_DIR="$QT_INSTALL_ARCHDATA"
3689 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3691 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3692 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3693 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3694 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3695 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3696 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3697 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3698 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3699 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3700 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3702 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3703 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3704 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3705 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3710 (cd "$outpath/qmake"; "$MAKE") || exit 2
3713 #-------------------------------------------------------------------------------
3714 # create a qt.conf for the Qt build tree itself
3715 #-------------------------------------------------------------------------------
3717 QTCONFFILE="$outpath/bin/qt.conf"
3718 cat > "$QTCONFFILE" <<EOF
3723 #-------------------------------------------------------------------------------
3724 # write out device config before we run the test.
3725 #-------------------------------------------------------------------------------
3726 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3727 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3728 rm -f "$DEVICE_VARS_FILE"
3730 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3731 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3734 #-------------------------------------------------------------------------------
3736 #-------------------------------------------------------------------------------
3737 if [ -z "$PKG_CONFIG" ]; then
3738 # See if PKG_CONFIG is set in the mkspec:
3739 PKG_CONFIG="`"$outpath/bin/qmake" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" /dev/null 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`"
3741 if [ -z "$PKG_CONFIG" ]; then
3742 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3745 if [ "$CFG_PKGCONFIG" = "no" ]; then
3747 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3749 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3750 echo >&2 "a correctly setup pkg-config environment!"
3752 elif [ -n "$PKG_CONFIG" ]; then
3753 # found a pkg-config
3754 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3755 # when xcompiling, check environment to see if it's actually usable
3756 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3757 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3758 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3759 if [ -n "$GCC_MACHINE_DUMP" ]; then
3760 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3762 export PKG_CONFIG_LIBDIR
3763 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3764 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3765 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3766 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3767 echo >&2 "Set this variable to the directory that contains target .pc files"
3768 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3769 echo >&2 "use -force-pkg-config to override this test."
3773 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3776 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3777 if [ -n "$CFG_SYSROOT" ]; then
3778 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3779 export PKG_CONFIG_SYSROOT_DIR
3780 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3781 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3782 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3783 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3784 echo >&2 "or use -force-pkg-config to override this test."
3788 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3792 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3793 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3797 if [ -z "$PKG_CONFIG" ]; then
3798 QT_CONFIG="$QT_CONFIG no-pkg-config"
3801 #-------------------------------------------------------------------------------
3802 # tests that need qmake
3803 #-------------------------------------------------------------------------------
3805 # parameters: path, name, extra args
3808 path=config.tests/$1
3811 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3814 #-------------------------------------------------------------------------------
3815 # determine the target and host architectures
3816 #-------------------------------------------------------------------------------
3818 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3819 OUTFILE=$outpath/arch.result
3820 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3821 if [ $? -eq 0 ]; then
3822 eval `cat "$OUTFILE"`
3825 echo "Could not determine the target architecture!"
3826 echo "Turn on verbose messaging (-v) to see the final report."
3828 rm -f "$OUTFILE" 2>/dev/null
3829 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3831 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3832 # Do the same test again, using the host compiler
3833 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3834 if [ $? -eq 0 ]; then
3835 eval `cat "$OUTFILE"`
3838 echo "Could not determine the host architecture!"
3839 echo "Turn on verbose messaging (-v) to see the final report."
3841 rm -f "$OUTFILE" 2>/dev/null
3842 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3844 # not cross compiling, host == target
3845 CFG_HOST_ARCH="$CFG_ARCH"
3846 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3850 if [ "$OPT_VERBOSE" = "yes" ]; then
3851 echo "System architecture: '$CFG_ARCH'"
3852 echo "Host architecture: '$CFG_HOST_ARCH'"
3855 #-------------------------------------------------------------------------------
3856 # functionality tests
3857 #-------------------------------------------------------------------------------
3859 # Detect C++11 support
3860 if [ "$CFG_CXX11" != "no" ]; then
3861 if compileTest common/c++11 "C++11"; then
3863 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3864 echo "C++11 support cannot be enabled due to functionality tests!"
3865 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3866 echo " If you believe this message is in error you may use the continue"
3867 echo " switch (-continue) to $0 to continue."
3874 # detect availability of float math.h functions
3875 if compileTest unix/floatmath "floatmath"; then
3876 CFG_USE_FLOATMATH=yes
3878 CFG_USE_FLOATMATH=no
3881 # detect sse2 support
3882 if [ "${CFG_SSE2}" = "auto" ]; then
3883 if compileTest common/sse2 "sse2"; then
3890 # detect sse3 support
3891 if [ "${CFG_SSE3}" = "auto" ]; then
3892 if compileTest common/sse3 "sse3"; then
3899 # detect ssse3 support
3900 if [ "${CFG_SSSE3}" = "auto" ]; then
3901 if compileTest common/ssse3 "ssse3"; then
3908 # detect sse4.1 support
3909 if [ "${CFG_SSE4_1}" = "auto" ]; then
3910 if compileTest common/sse4_1 "sse4_1"; then
3917 # detect sse4.2 support
3918 if [ "${CFG_SSE4_2}" = "auto" ]; then
3919 if compileTest common/sse4_2 "sse4_2"; then
3926 # detect avx support
3927 if [ "${CFG_AVX}" = "auto" ]; then
3928 if compileTest common/avx "avx"; then
3929 case "$XQMAKESPEC" in
3931 # Some clang versions produce internal compiler errors compiling Qt AVX code
3932 case `$TEST_COMPILER --version` in
3933 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3935 if [ "$OPT_VERBOSE" = "yes" ]; then
3936 echo 'AVX support disabled for blacklisted clang compiler'
3953 # detect avx2 support
3954 if [ "${CFG_AVX}" = "no" ]; then
3957 if [ "${CFG_AVX2}" = "auto" ]; then
3958 if compileTest common/avx2 "avx2"; then
3965 # check iWMMXt support
3966 if [ "$CFG_IWMMXT" = "yes" ]; then
3967 compileTest unix/iwmmxt "iwmmxt"
3968 if [ $? != "0" ]; then
3969 echo "The iWMMXt functionality test failed!"
3970 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3975 # detect neon support
3976 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3977 if compileTest unix/neon "neon"; then
3982 elif [ "$CFG_ARCH" != "arm" ]; then
3986 # detect mips_dsp support
3987 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3988 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dsp "mips_dsp" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
3993 elif [ "$CFG_ARCH" != "mips" ]; then
3997 # detect mips_dspr2 support
3998 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3999 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dspr2 "mips_dspr2" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then
4004 elif [ "$CFG_ARCH" != "mips" ]; then
4008 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4011 if [ "$CFG_ZLIB" = "no" ]; then
4012 # Note: Qt no longer support builds without zlib
4013 # So we force a "no" to be "auto" here.
4014 # If you REALLY really need no zlib support, you can still disable
4015 # it by doing the following:
4016 # add "no-zlib" to mkspecs/qconfig.pri
4017 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4019 # There's no guarantee that Qt will build under those conditions
4025 if [ "$XPLATFORM_QNX" = "yes" ]; then
4026 if [ "$CFG_SLOG2" != "no" ]; then
4027 if compileTest unix/slog2 "slog2"; then
4029 QMAKE_CONFIG="$QMAKE_CONFIG slog2"
4036 if [ "$CFG_ZLIB" = "auto" ]; then
4037 if compileTest unix/zlib "zlib"; then
4044 if [ "$CFG_LARGEFILE" = "auto" ]; then
4045 #Large files should be enabled for all Linux systems
4049 if [ "$CFG_GUI" = "no" ]; then
4050 QPA_PLATFORM_GUARD=no
4053 # detect how jpeg should be built
4054 if [ "$CFG_JPEG" = "auto" ]; then
4055 if [ "$CFG_SHARED" = "yes" ]; then
4062 if [ "$CFG_LIBJPEG" = "auto" ]; then
4063 if compileTest unix/libjpeg "libjpeg"; then
4070 # detect how gif should be built
4071 if [ "$CFG_GIF" = "auto" ]; then
4072 if [ "$CFG_SHARED" = "yes" ]; then
4080 if [ "$CFG_LIBPNG" = "auto" ]; then
4081 if compileTest unix/libpng "libpng"; then
4088 if [ "$CFG_EGLFS" = "yes" ]; then
4089 if [ "$CFG_EGL" = "no" ]; then
4090 echo "The EGLFS plugin requires EGL support and cannot be built"
4093 if [ "$CFG_OPENGL" != "es2" ]; then
4094 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4101 if [ "$CFG_KMS" = "yes" ]; then
4102 if [ "$CFG_EGL" = "no" ]; then
4103 echo "The KMS plugin requires EGL support and cannot be built"
4106 if [ "$CFG_OPENGL" != "es2" ]; then
4107 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4112 # auto-detect SQL-modules support
4113 for _SQLDR in $CFG_SQL_AVAILABLE; do
4116 if [ "$CFG_SQL_mysql" != "no" ]; then
4117 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4118 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4119 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4120 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4121 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4122 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4123 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4125 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4126 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4127 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4128 echo " You need MySql 4 or higher."
4129 echo " If you believe this message is in error you may use the continue"
4130 echo " switch (-continue) to $0 to continue."
4135 QT_LFLAGS_MYSQL_R=""
4139 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4140 QMakeVar add CONFIG use_libmysqlclient_r
4141 if [ "$CFG_SQL_mysql" = "auto" ]; then
4142 CFG_SQL_mysql=plugin
4144 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4145 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4146 if [ "$CFG_SQL_mysql" = "auto" ]; then
4147 CFG_SQL_mysql=plugin
4150 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4151 echo "MySQL support cannot be enabled due to functionality tests!"
4152 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4153 echo " If you believe this message is in error you may use the continue"
4154 echo " switch (-continue) to $0 to continue."
4159 QT_LFLAGS_MYSQL_R=""
4167 if [ "$CFG_SQL_psql" != "no" ]; then
4168 # Be careful not to use native pg_config when cross building.
4169 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4170 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4171 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4173 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4174 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4175 # But, respect PSQL_LIBS if set
4176 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4177 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4178 if [ "$CFG_SQL_psql" = "auto" ]; then
4182 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4183 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4184 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4185 echo " If you believe this message is in error you may use the continue"
4186 echo " switch (-continue) to $0 to continue."
4197 if [ "$CFG_SQL_odbc" != "no" ]; then
4198 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4199 if [ "$CFG_SQL_odbc" = "auto" ]; then
4203 if compileTest unix/iodbc "iODBC"; then
4204 QT_LFLAGS_ODBC="-liodbc"
4205 if [ "$CFG_SQL_odbc" = "auto" ]; then
4209 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4210 echo "ODBC support cannot be enabled due to functionality tests!"
4211 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4212 echo " If you believe this message is in error you may use the continue"
4213 echo " switch (-continue) to $0 to continue."
4223 if [ "$CFG_SQL_oci" != "no" ]; then
4224 if compileTest unix/oci "OCI"; then
4225 if [ "$CFG_SQL_oci" = "auto" ]; then
4229 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4230 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4231 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4232 echo " If you believe this message is in error you may use the continue"
4233 echo " switch (-continue) to $0 to continue."
4242 if [ "$CFG_SQL_tds" != "no" ]; then
4243 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4244 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4245 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4246 if [ "$CFG_SQL_tds" = "auto" ]; then
4250 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4251 echo "TDS support cannot be enabled due to functionality tests!"
4252 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4253 echo " If you believe this message is in error you may use the continue"
4254 echo " switch (-continue) to $0 to continue."
4263 if [ "$CFG_SQL_db2" != "no" ]; then
4264 if compileTest unix/db2 "DB2"; then
4265 if [ "$CFG_SQL_db2" = "auto" ]; then
4269 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4270 echo "ODBC support cannot be enabled due to functionality tests!"
4271 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4272 echo " If you believe this message is in error you may use the continue"
4273 echo " switch (-continue) to $0 to continue."
4282 if [ "$CFG_SQL_ibase" != "no" ]; then
4283 if compileTest unix/ibase "InterBase"; then
4284 if [ "$CFG_SQL_ibase" = "auto" ]; then
4285 CFG_SQL_ibase=plugin
4288 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4289 echo "InterBase support cannot be enabled due to functionality tests!"
4290 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4291 echo " If you believe this message is in error you may use the continue"
4292 echo " switch (-continue) to $0 to continue."
4301 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4302 if compileTest unix/sqlite2 "SQLite2"; then
4303 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4304 CFG_SQL_sqlite2=plugin
4307 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4308 echo "SQLite2 support cannot be enabled due to functionality tests!"
4309 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4310 echo " If you believe this message is in error you may use the continue"
4311 echo " switch (-continue) to $0 to continue."
4320 if [ "$CFG_SQL_sqlite" != "no" ]; then
4321 SQLITE_AUTODETECT_FAILED="no"
4322 if [ "$CFG_SQLITE" = "system" ]; then
4323 if [ -n "$PKG_CONFIG" ]; then
4324 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4325 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4328 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4330 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4331 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4332 CFG_SQL_sqlite=plugin
4334 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4336 SQLITE_AUTODETECT_FAILED="yes"
4339 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4340 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4341 CFG_SQL_sqlite=plugin
4344 SQLITE_AUTODETECT_FAILED="yes"
4348 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4349 echo "SQLite support cannot be enabled due to functionality tests!"
4350 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4351 echo " If you believe this message is in error you may use the continue"
4352 echo " switch (-continue) to $0 to continue."
4358 if [ "$OPT_VERBOSE" = "yes" ]; then
4359 echo "unknown SQL driver: $_SQLDR"
4365 # auto-detect NIS support
4366 if [ "$CFG_NIS" != "no" ]; then
4367 if compileTest unix/nis "NIS"; then
4370 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4371 echo "NIS support cannot be enabled due to functionality tests!"
4372 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4373 echo " If you believe this message is in error you may use the continue"
4374 echo " switch (-continue) to $0 to continue."
4382 # auto-detect CUPS support
4383 if [ "$CFG_CUPS" != "no" ]; then
4384 if compileTest unix/cups "Cups"; then
4387 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4388 echo "Cups support cannot be enabled due to functionality tests!"
4389 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4390 echo " If you believe this message is in error you may use the continue"
4391 echo " switch (-continue) to $0 to continue."
4399 # auto-detect iconv(3) support
4400 if [ "$CFG_ICONV" != "no" ]; then
4401 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4403 elif compileTest unix/iconv "POSIX iconv"; then
4405 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4407 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4410 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4411 echo "Iconv support cannot be enabled due to functionality tests!"
4412 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4413 echo " If you believe this message is in error you may use the continue"
4414 echo " switch (-continue) to $0 to continue."
4422 # auto-detect libdbus-1 support
4423 if [ "$CFG_DBUS" != "no" ]; then
4424 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4425 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4426 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4428 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4429 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4430 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4431 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4433 if [ "$CFG_DBUS" = "auto" ]; then
4435 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4436 # CFG_DBUS is "yes" or "linked" here
4438 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4439 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4440 echo " If you believe this message is in error you may use the continue"
4441 echo " switch (-continue) to $0 to continue."
4447 # auto-detect Glib support
4448 if [ "$CFG_GLIB" != "no" ]; then
4449 if [ -n "$PKG_CONFIG" ]; then
4450 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4451 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4453 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4455 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4456 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4458 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4459 echo "Glib support cannot be enabled due to functionality tests!"
4460 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4461 echo " If you believe this message is in error you may use the continue"
4462 echo " switch (-continue) to $0 to continue."
4470 # auto-detect GTK style support
4471 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4472 if [ -n "$PKG_CONFIG" ]; then
4473 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.18 atk 2>/dev/null`
4474 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4476 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4478 QT_CONFIG="$QT_CONFIG gtkstyle"
4479 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4480 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4482 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4483 echo "Gtk theme support cannot be enabled due to functionality tests!"
4484 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4485 echo " If you believe this message is in error you may use the continue"
4486 echo " switch (-continue) to $0 to continue."
4492 elif [ "$CFG_GLIB" = "no" ]; then
4497 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4498 if [ -n "$PKG_CONFIG" ]; then
4499 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4500 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4502 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4504 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4505 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4507 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4508 echo "Gstreamer support cannot be enabled due to functionality tests!"
4509 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4510 echo " If you believe this message is in error you may use the continue"
4511 echo " switch (-continue) to $0 to continue."
4517 elif [ "$CFG_GLIB" = "no" ]; then
4521 # auto-detect libicu support
4522 if [ "$CFG_ICU" != "no" ]; then
4523 if compileTest unix/icu "ICU"; then
4524 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4526 if [ "$CFG_ICU" = "auto" ]; then
4528 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4531 echo "The ICU library support cannot be enabled."
4532 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4533 echo " If you believe this message is in error you may use the continue"
4534 echo " switch (-continue) to $0 to continue."
4540 # Auto-detect PulseAudio support
4541 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4542 if [ -n "$PKG_CONFIG" ]; then
4543 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4544 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4546 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4548 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4549 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4551 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4552 echo "PulseAudio support cannot be enabled due to functionality tests!"
4553 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4554 echo " If you believe this message is in error you may use the continue"
4555 echo " switch (-continue) to $0 to continue."
4564 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4565 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4566 if [ "$CFG_GUI" = "no" ]; then
4567 if [ "$CFG_OPENGL" = "auto" ]; then
4570 if [ "$CFG_OPENGL" != "no" ]; then
4571 echo "OpenGL enabled, but GUI disabled."
4572 echo " You might need to either enable the GUI or disable OpenGL"
4576 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4577 if compileTest x11/opengl "OpenGL"; then
4579 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4582 if [ "$CFG_OPENGL" = "yes" ]; then
4583 echo "All the OpenGL functionality tests failed!"
4584 echo " You might need to modify the include and library search paths by editing"
4585 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4586 echo " ${XQMAKESPEC}."
4593 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4594 if [ "$CFG_OPENGL" = "desktop" ]; then
4595 compileTest x11/glxfbconfig "OpenGL"
4596 if [ $? != "0" ]; then
4597 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4604 elif [ "$CFG_OPENGL" = "es2" ]; then
4606 compileTest unix/opengles2 "OpenGL ES 2.x"
4607 if [ $? != "0" ]; then
4608 echo "The OpenGL ES 2.0 functionality test failed!"
4609 echo " You might need to modify the include and library search paths by editing"
4610 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4611 echo " ${XQMAKESPEC}."
4614 elif [ "$CFG_OPENGL" = "desktop" ]; then
4615 # Desktop OpenGL support
4616 compileTest x11/opengl "OpenGL"
4617 if [ $? != "0" ]; then
4618 echo "The OpenGL functionality test failed!"
4619 echo " You might need to modify the include and library search paths by editing"
4620 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4621 echo " ${XQMAKESPEC}."
4626 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4627 compileTest x11/glxfbconfig "OpenGL"
4628 if [ $? != "0" ]; then
4629 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4636 fi # X11/MINGW OpenGL
4638 if [ "$BUILD_ON_MAC" = "yes" ]; then
4639 if [ "$CFG_COREWLAN" = "auto" ]; then
4640 if compileTest mac/corewlan "CoreWlan"; then
4648 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4649 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4650 if compileTest unix/opengldesktop "OpenGL"; then
4652 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4655 if [ "$CFG_OPENGL" = "yes" ]; then
4656 echo "All the OpenGL functionality tests failed!"
4657 echo " You might need to modify the include and library search paths by editing"
4658 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4659 echo " ${XQMAKESPEC}."
4664 elif [ "$CFG_OPENGL" = "es2" ]; then
4666 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4667 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4668 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4669 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4670 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4671 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4672 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4673 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4676 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4677 if [ $? != "0" ]; then
4678 echo "The OpenGL ES 2.0 functionality test failed!"
4679 echo " You might need to modify the include and library search paths by editing"
4680 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4681 echo " ${XQMAKESPEC}."
4684 elif [ "$CFG_OPENGL" = "desktop" ]; then
4685 # Desktop OpenGL support
4686 compileTest unix/opengldesktop "OpenGL"
4687 if [ $? != "0" ]; then
4688 echo "The OpenGL functionality test failed!"
4689 echo " You might need to modify the include and library search paths by editing"
4690 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4691 echo " ${XQMAKESPEC}."
4696 # auto-detect FontConfig support
4697 if [ "$CFG_FONTCONFIG" != "no" ]; then
4698 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4699 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4700 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4702 QT_CFLAGS_FONTCONFIG=
4703 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4705 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4706 QT_CONFIG="$QT_CONFIG fontconfig"
4707 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4708 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4710 CFG_LIBFREETYPE=system
4717 # Save these for a check later
4718 ORIG_CFG_XCB="$CFG_XCB"
4719 ORIG_CFG_EGLFS="$CFG_EGLFS"
4720 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4721 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4722 ORIG_CFG_KMS="$CFG_KMS"
4724 if [ "$CFG_LIBUDEV" != "no" ]; then
4725 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4726 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4727 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4728 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4729 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4731 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4733 QT_CONFIG="$QT_CONFIG libudev"
4734 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4735 echo "The libudev functionality test failed!"
4741 if [ "$CFG_LIBUDEV" = "no" ]; then
4742 QMakeVar add DEFINES QT_NO_LIBUDEV
4745 if [ "$CFG_EVDEV" != "no" ]; then
4746 if compileTest unix/evdev "evdev"; then
4748 QT_CONFIG="$QT_CONFIG evdev"
4749 elif [ "$CFG_EVDEV" = "yes" ]; then
4750 echo "The evdev functionality test failed!"
4756 if [ "$CFG_EVDEV" = "no" ]; then
4757 QMakeVar add DEFINES QT_NO_EVDEV
4760 # Check we actually have X11 :-)
4761 if compileTest x11/xlib "XLib"; then
4762 QT_CONFIG="$QT_CONFIG xlib"
4765 # auto-detect Xrender support
4766 if [ "$CFG_XRENDER" != "no" ]; then
4767 if compileTest x11/xrender "Xrender"; then
4769 QT_CONFIG="$QT_CONFIG xrender"
4771 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4772 echo "Xrender support cannot be enabled due to functionality tests!"
4773 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4774 echo " If you believe this message is in error you may use the continue"
4775 echo " switch (-continue) to $0 to continue."
4783 if [ "$CFG_XCB" != "no" ]; then
4784 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4785 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4786 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4788 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4790 if [ "$CFG_XCB" = "qt" ]; then
4791 QT_CONFIG="$QT_CONFIG xcb-qt"
4795 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4796 XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm"
4797 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`"
4798 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`"
4801 if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4802 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4803 QT_CONFIG="$QT_CONFIG xcb-render"
4806 if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4808 QT_CONFIG="$QT_CONFIG xcb-glx"
4811 echo "The test for linking against libxcb and support libraries failed!"
4812 echo " You might need install dependency packages, or pass -qt-xcb."
4813 echo " See src/plugins/platforms/xcb/README."
4818 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4819 QT_CONFIG="$QT_CONFIG xcb-xlib"
4822 # auto-detect XInput2 support. Needed by xcb too.
4823 if [ "$CFG_XINPUT2" != "no" ]; then
4824 if compileTest x11/xinput2 "XInput2"; then
4828 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4829 echo "XInput2 support cannot be enabled due to functionality tests!"
4830 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4831 echo " If you believe this message is in error you may use the continue"
4832 echo " switch (-continue) to $0 to continue."
4840 if [ "$CFG_XCB" != "auto" ]; then
4841 echo "The test for linking against libxcb failed!"
4842 echo " You might need to install dependency packages for libxcb."
4843 echo " See src/plugins/platforms/xcb/README."
4849 if [ "$CFG_XCB" = "no" ]; then
4850 QMakeVar add DEFINES QT_NO_XCB
4853 if [ "$CFG_DIRECTFB" != "no" ]; then
4854 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4855 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4856 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4857 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4859 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4860 echo " DirectFB support cannot be enabled due to functionality tests!"
4861 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4862 echo " If you believe this message is in error you may use the continue"
4863 echo " switch (-continue) to $0 to continue."
4873 if [ "$CFG_LINUXFB" != "no" ]; then
4874 if compileTest qpa/linuxfb "LinuxFB"; then
4876 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4877 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4878 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4879 echo " If you believe this message is in error you may use the continue"
4880 echo " switch (-continue) to $0 to continue."
4887 if [ "$CFG_KMS" != "no" ]; then
4888 if compileTest qpa/kms "KMS"; then
4890 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4891 echo " KMS support cannot be enabled due to functionality tests!"
4892 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4893 echo " If you believe this message is in error you may use the continue"
4894 echo " switch (-continue) to $0 to continue."
4901 # Detect libxkbcommon
4902 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4903 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4904 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4905 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4906 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4908 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4912 if [ "$CFG_EGL" != "no" ]; then
4913 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4914 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4915 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4916 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4917 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4918 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4919 fi # detect EGL support
4920 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4922 elif [ "$CFG_EGL" = "yes" ]; then
4923 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4924 echo " You might need to modify the include and library search paths by editing"
4925 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4930 elif [ "$CFG_OPENGL" = "desktop" ]; then
4931 if [ "$CFG_EGL" = "yes" ]; then
4932 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4933 echo "Either disable EGL support or enable OpenGL ES support."
4939 if [ "$CFG_EGLFS" != "no" ]; then
4940 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4941 CFG_EGLFS="$CFG_EGL"
4947 if [ "$CFG_KMS" = "yes" ]; then
4948 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4955 # Detect accessibility support
4956 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4957 if [ "$CFG_XCB" = "no" ]; then
4958 CFG_ACCESSIBILITY=yes
4960 # linux/xcb accessibility needs dbus
4961 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ]; then
4962 CFG_ACCESSIBILITY=yes
4964 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4965 CFG_ACCESSIBILITY=no
4967 echo "Accessibility support needs DBus."
4974 # Determine the default QPA platform
4975 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4977 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4978 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4979 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4980 QT_QPA_DEFAULT_PLATFORM="windows"
4981 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4982 QT_QPA_DEFAULT_PLATFORM="cocoa"
4983 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4984 QT_QPA_DEFAULT_PLATFORM="qnx"
4986 QT_QPA_DEFAULT_PLATFORM="xcb"
4991 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4992 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4993 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4994 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4996 if [ "$CFG_DIRECTFB" = "yes" ]; then
4997 QT_CONFIG="$QT_CONFIG directfb"
4998 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4999 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
5001 if [ "$CFG_LINUXFB" = "yes" ]; then
5002 QT_CONFIG="$QT_CONFIG linuxfb"
5004 if [ "$CFG_KMS" = "yes" ]; then
5005 QT_CONFIG="$QT_CONFIG kms"
5008 if [ "$BUILD_ON_MAC" = "yes" ]; then
5009 if compileTest mac/coreservices "CoreServices"; then
5010 QT_CONFIG="$QT_CONFIG coreservices"
5012 QMakeVar add DEFINES QT_NO_CORESERVICES
5016 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
5017 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
5018 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
5019 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
5020 echo "No QPA platform plugin enabled!"
5021 echo " If you really want to build without a QPA platform plugin you must pass"
5022 echo " -no-qpa-platform-guard to configure. Doing this will"
5023 echo " produce a Qt that can not run GUI applications."
5024 echo " The dependencies needed for xcb to build are listed in"
5025 echo " src/plugins/platforms/xcb/README"
5032 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5033 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5034 if compileTest unix/freetype "FreeType"; then
5035 CFG_LIBFREETYPE=system
5041 if ! compileTest unix/stl "STL" &&
5042 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5043 echo "STL functionality check failed! Cannot build Qt with this STL library."
5044 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5049 # detect POSIX clock_gettime()
5050 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5051 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5052 CFG_CLOCK_GETTIME=yes
5054 CFG_CLOCK_GETTIME=no
5058 # detect POSIX monotonic clocks
5059 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5060 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5061 CFG_CLOCK_MONOTONIC=yes
5063 CFG_CLOCK_MONOTONIC=no
5065 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5066 CFG_CLOCK_MONOTONIC=no
5070 if [ "$CFG_MREMAP" = "auto" ]; then
5071 if compileTest unix/mremap "mremap"; then
5078 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5079 if [ "$CFG_GETADDRINFO" != "no" ]; then
5080 if compileTest unix/getaddrinfo "getaddrinfo"; then
5083 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5084 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5085 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5086 echo " If you believe this message is in error you may use the continue"
5087 echo " switch (-continue) to $0 to continue."
5095 # find if the platform provides inotify
5096 if [ "$CFG_INOTIFY" != "no" ]; then
5097 if compileTest unix/inotify "inotify"; then
5100 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5101 echo "inotify support cannot be enabled due to functionality tests!"
5102 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5103 echo " If you believe this message is in error you may use the continue"
5104 echo " switch (-continue) to $0 to continue."
5112 # find if the platform provides if_nametoindex (ipv6 interface name support)
5113 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5114 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5117 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5118 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5119 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5120 echo " If you believe this message is in error you may use the continue"
5121 echo " switch (-continue) to $0 to continue."
5129 # find if the platform provides getifaddrs (network interface enumeration)
5130 if [ "$CFG_GETIFADDRS" != "no" ]; then
5131 if compileTest unix/getifaddrs "getifaddrs"; then
5134 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5135 echo "getifaddrs support cannot be enabled due to functionality tests!"
5136 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5137 echo " If you believe this message is in error you may use the continue"
5138 echo " switch (-continue) to $0 to continue."
5147 if [ "$CFG_OPENSSL" != "no" ]; then
5148 if compileTest unix/openssl "OpenSSL"; then
5149 if [ "$CFG_OPENSSL" = "auto" ]; then
5153 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5154 echo "OpenSSL support cannot be enabled due to functionality tests!"
5155 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5156 echo " If you believe this message is in error you may use the continue"
5157 echo " switch (-continue) to $0 to continue."
5166 if [ "$CFG_PCRE" != "qt" ]; then
5167 if compileTest unix/pcre "PCRE"; then
5170 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5171 echo "PCRE support cannot be enabled due to functionality tests!"
5172 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5173 echo " If you believe this message is in error you may use the continue"
5174 echo " switch (-continue) to $0 to continue."
5182 # detect OpenVG support
5183 if [ "$CFG_OPENVG" != "no" ]; then
5184 if compileTest unix/openvg "OpenVG"; then
5185 if [ "$CFG_OPENVG" = "auto" ]; then
5188 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5189 if [ "$CFG_OPENVG" = "auto" ]; then
5192 CFG_OPENVG_ON_OPENGL=yes
5193 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5194 if [ "$CFG_OPENVG" = "auto" ]; then
5197 CFG_OPENVG_LC_INCLUDES=yes
5198 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5199 if [ "$CFG_OPENVG" = "auto" ]; then
5202 CFG_OPENVG_LC_INCLUDES=yes
5203 CFG_OPENVG_ON_OPENGL=yes
5205 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5206 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5207 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5208 echo " If you believe this message is in error you may use the continue"
5209 echo " switch (-continue) to $0 to continue."
5215 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5216 CFG_OPENVG_SHIVA=yes
5220 if [ "$CFG_ALSA" = "auto" ]; then
5221 if compileTest unix/alsa "alsa"; then
5228 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5229 if [ "$CFG_ARCH" = "arm" ]; then
5230 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5231 if [ $? != "0" ]; then
5232 CFG_JAVASCRIPTCORE_JIT=no
5235 case "$XPLATFORM" in
5237 CFG_JAVASCRIPTCORE_JIT=no
5243 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5244 QMakeVar set JAVASCRIPTCORE_JIT yes
5245 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5246 QMakeVar set JAVASCRIPTCORE_JIT no
5249 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5250 CFG_AUDIO_BACKEND=yes
5253 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5254 echo "Warning: largefile support cannot be disabled for win32."
5258 #-------------------------------------------------------------------------------
5259 # ask for all that hasn't been auto-detected or specified in the arguments
5260 #-------------------------------------------------------------------------------
5262 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5264 # disable accessibility
5265 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5266 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5268 QT_CONFIG="$QT_CONFIG accessibility"
5272 if [ "$CFG_EGL" = "yes" ]; then
5273 QT_CONFIG="$QT_CONFIG egl"
5275 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5279 if [ "$CFG_EGLFS" = "yes" ]; then
5280 QT_CONFIG="$QT_CONFIG eglfs"
5282 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5286 if [ "$CFG_OPENVG" = "no" ]; then
5287 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5289 QT_CONFIG="$QT_CONFIG openvg"
5290 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5291 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5293 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5294 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5296 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5297 QT_CONFIG="$QT_CONFIG shivavg"
5298 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5303 if [ "$CFG_OPENGL" = "no" ]; then
5304 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5306 QT_CONFIG="$QT_CONFIG opengl"
5309 if [ "$CFG_OPENGL" = "es2" ]; then
5310 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5313 if [ "$CFG_OPENGL" = "es2" ]; then
5314 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5315 QT_CONFIG="$QT_CONFIG opengles2"
5318 # build up the variables for output
5319 if [ "$CFG_DEBUG" = "yes" ]; then
5320 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5321 elif [ "$CFG_DEBUG" = "no" ]; then
5322 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5324 if [ "$CFG_SHARED" = "yes" ]; then
5325 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5326 QT_CONFIG="$QT_CONFIG shared"
5327 elif [ "$CFG_SHARED" = "no" ]; then
5328 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5329 QT_CONFIG="$QT_CONFIG static"
5332 #FIXME: qpa is implicit this should all be removed
5333 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5334 QT_CONFIG="$QT_CONFIG qpa"
5335 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5337 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5338 # Do not set this here for Windows. Let qmake do it so
5339 # debug and release precompiled headers are kept separate.
5340 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5342 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5343 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5344 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5345 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5346 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5347 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5349 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5350 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5352 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5353 [ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong"
5354 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5355 [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip"
5356 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5357 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5358 QMakeVar add QMAKE_CFLAGS -g
5359 QMakeVar add QMAKE_CXXFLAGS -g
5360 QT_CONFIG="$QT_CONFIG separate_debug_info"
5362 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5363 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5365 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5366 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5367 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5368 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5369 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5370 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5371 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5372 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5373 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5374 if [ "$CFG_ARCH" = "mips" ]; then
5375 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5376 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5378 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5379 QT_CONFIG="$QT_CONFIG clock-gettime"
5381 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5382 QT_CONFIG="$QT_CONFIG clock-monotonic"
5384 if [ "$CFG_MREMAP" = "yes" ]; then
5385 QT_CONFIG="$QT_CONFIG mremap"
5387 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5388 QT_CONFIG="$QT_CONFIG getaddrinfo"
5390 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5391 QT_CONFIG="$QT_CONFIG ipv6ifname"
5393 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5394 QT_CONFIG="$QT_CONFIG getifaddrs"
5396 if [ "$CFG_INOTIFY" = "yes" ]; then
5397 QT_CONFIG="$QT_CONFIG inotify"
5399 if [ "$CFG_LIBJPEG" = "no" ]; then
5401 elif [ "$CFG_LIBJPEG" = "system" ]; then
5402 QT_CONFIG="$QT_CONFIG system-jpeg"
5404 if [ "$CFG_JPEG" = "no" ]; then
5405 QT_CONFIG="$QT_CONFIG no-jpeg"
5406 elif [ "$CFG_JPEG" = "yes" ]; then
5407 QT_CONFIG="$QT_CONFIG jpeg"
5409 if [ "$CFG_LIBPNG" = "no" ]; then
5412 if [ "$CFG_LIBPNG" = "system" ]; then
5413 QT_CONFIG="$QT_CONFIG system-png"
5415 if [ "$CFG_PNG" = "no" ]; then
5416 QT_CONFIG="$QT_CONFIG no-png"
5417 elif [ "$CFG_PNG" = "yes" ]; then
5418 QT_CONFIG="$QT_CONFIG png"
5420 if [ "$CFG_GIF" = "no" ]; then
5421 QT_CONFIG="$QT_CONFIG no-gif"
5422 elif [ "$CFG_GIF" = "yes" ]; then
5423 QT_CONFIG="$QT_CONFIG gif"
5425 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5426 QT_CONFIG="$QT_CONFIG no-freetype"
5427 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5428 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5429 QT_CONFIG="$QT_CONFIG system-freetype"
5431 QT_CONFIG="$QT_CONFIG freetype"
5433 if [ "$CFG_GUI" = "auto" ]; then
5436 if [ "$CFG_GUI" = "no" ]; then
5437 QT_CONFIG="$QT_CONFIG no-gui"
5440 if [ "$CFG_WIDGETS" = "no" ]; then
5441 QT_CONFIG="$QT_CONFIG no-widgets"
5442 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5445 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5446 #On Mac we implicitly link against libz, so we
5447 #never use the 3rdparty stuff.
5448 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5450 if [ "$CFG_ZLIB" = "yes" ]; then
5451 QT_CONFIG="$QT_CONFIG zlib"
5452 elif [ "$CFG_ZLIB" = "system" ]; then
5453 QT_CONFIG="$QT_CONFIG system-zlib"
5456 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5457 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5458 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5459 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5460 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5461 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5462 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5463 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5464 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5465 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5466 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5467 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5468 [ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb"
5469 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5470 [ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies"
5472 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5473 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5475 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5476 if [ "$CFG_RPATH" = "yes" ]; then
5477 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5479 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5480 if [ -n "$RPATH_FLAGS" ]; then
5482 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5486 elif [ "$CFG_RPATH" = "yes" ]; then
5487 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5491 if [ -n "$RPATH_FLAGS" ]; then
5492 # add the user defined rpaths
5493 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5496 if [ "$CFG_RPATH" = "yes" ]; then
5497 QT_CONFIG="$QT_CONFIG rpath"
5500 if [ '!' -z "$I_FLAGS" ]; then
5501 # add the user define include paths
5502 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5503 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5506 if [ '!' -z "$W_FLAGS" ]; then
5507 # add the user defined warning flags
5508 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5509 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5510 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5513 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5514 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5515 # Follow default behavior of configure.exe by overriding with "rtti".
5516 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5519 if [ "$CFG_ALSA" = "yes" ]; then
5520 QT_CONFIG="$QT_CONFIG alsa"
5523 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5524 QT_CONFIG="$QT_CONFIG pulseaudio"
5527 if [ "$CFG_COREWLAN" = "yes" ]; then
5528 QT_CONFIG="$QT_CONFIG corewlan"
5531 if [ "$CFG_ICU" = "yes" ]; then
5532 QT_CONFIG="$QT_CONFIG icu"
5535 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5536 QT_CONFIG="$QT_CONFIG force_asserts"
5539 if [ "$CFG_PCRE" = "qt" ]; then
5540 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5544 # Some Qt modules are too advanced in C++ for some old compilers
5545 # Detect here the platforms where they are known to work.
5547 # See Qt documentation for more information on which features are
5548 # supported and on which compilers.
5550 canBuildQtConcurrent="yes"
5551 canUseV8Snapshot="yes"
5553 case "$XPLATFORM" in
5555 # PA-RISC's assembly is too limited
5556 # gcc 3.4 on that platform can't build QtXmlPatterns
5557 # the assembly it generates cannot be compiled
5559 # Check gcc's version
5560 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5564 canBuildQtXmlPatterns="no"
5568 canBuildQtXmlPatterns="no"
5572 unsupported/vxworks-*-g++*)
5575 unsupported/vxworks-*-dcc*)
5577 canBuildQtXmlPatterns="no"
5580 # Check gcc's version
5581 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5589 canBuildQtXmlPatterns="no"
5594 # Check the compiler version
5595 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5598 canBuildQtXmlPatterns="no"
5599 canBuildQtConcurrent="no"
5603 canBuildQtConcurrent="no"
5609 canBuildQtXmlPatterns="no"
5610 canBuildQtConcurrent="no"
5616 # Get the xlC version
5617 cat > xlcver.c <<EOF
5621 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5626 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5627 xlcver=`./xlcver 2>/dev/null`
5630 if [ "$OPT_VERBOSE" = "yes" ]; then
5631 if [ -n "$xlcver" ]; then
5632 echo Found IBM xlC version: $xlcver.
5634 echo Could not determine IBM xlC version, assuming oldest supported.
5641 canBuildQtXmlPatterns="no"
5642 canBuildQtConcurrent="no"
5646 canBuildQtConcurrent="no"
5652 canBuildQtConcurrent="no"
5656 if [ "$CFG_GUI" = "no" ]; then
5657 # WebKit requires QtGui
5661 if [ "$CFG_SHARED" = "no" ]; then
5663 echo "WARNING: Using static linking will disable the WebKit module."
5668 CFG_CONCURRENT="yes"
5669 if [ "$canBuildQtConcurrent" = "no" ]; then
5670 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5673 QT_CONFIG="$QT_CONFIG concurrent"
5677 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5678 QT_CONFIG="$QT_CONFIG audio-backend"
5682 if [ "$CFG_WEBKIT" = "debug" ]; then
5683 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5687 QT_CONFIG="$QT_CONFIG v8"
5688 # Detect snapshot support
5689 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5690 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5693 *) canUseV8Snapshot="no"
5697 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5698 # QEMU crashes when building inside Scratchbox with an ARM target
5699 canUseV8Snapshot="no"
5702 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5703 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5705 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5706 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5709 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5710 QT_CONFIG="$QT_CONFIG v8snapshot"
5714 if [ "$CFG_QML_DEBUG" = "no" ]; then
5715 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5718 case "$QMAKE_CONF_COMPILER" in
5721 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5723 case "$COMPILER_VERSION" in
5725 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5726 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5727 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5730 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5731 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5732 QT_GCC_PATCH_VERSION=0
5742 #-------------------------------------------------------------------------------
5743 # part of configuration information goes into qconfig.h
5744 #-------------------------------------------------------------------------------
5746 case "$CFG_QCONFIG" in
5748 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5751 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5752 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5753 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5754 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5755 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5756 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5758 echo "#endif" >>"$tmpconfig"
5762 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5766 # define QT_EDITION $QT_EDITION
5770 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5771 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5773 if [ "$CFG_SHARED" = "no" ]; then
5774 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5775 /* Qt was configured for a static build */
5776 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5783 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5784 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5787 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5788 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5791 if [ "$BUILD_ON_MAC" = "yes" ]; then
5792 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5793 #if defined(__LP64__)
5794 # define QT_POINTER_SIZE 8
5796 # define QT_POINTER_SIZE 4
5800 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5801 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5804 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5805 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5806 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5809 # Add compiler sub-architecture support
5810 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5811 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5812 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5814 MIPS_DSP MIPS_DSPR2; do
5815 eval "VAL=\$CFG_$SUBARCH"
5818 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5819 >>"$outpath/src/corelib/global/qconfig.h.new"
5824 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5826 if [ "$CFG_DEV" = "yes" ]; then
5827 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5830 # Add QPA to config.h
5831 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5833 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5834 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5837 # Add turned on SQL drivers
5838 for DRIVER in $CFG_SQL_AVAILABLE; do
5839 eval "VAL=\$CFG_SQL_$DRIVER"
5842 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5843 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5844 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5847 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5852 QMakeVar set sql-drivers "$SQL_DRIVERS"
5853 QMakeVar set sql-plugins "$SQL_PLUGINS"
5855 # Add other configuration options to the qconfig.h file
5856 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5857 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5858 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5859 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5860 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5862 # X11/Unix/Mac only configs
5863 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5864 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5865 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5866 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5867 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5868 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5869 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5870 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5871 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5872 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5873 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5874 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5875 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5876 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5878 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5879 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5880 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5881 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5882 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5883 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5884 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5885 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5886 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5887 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5888 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5889 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5890 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5892 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5893 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5894 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5895 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5896 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5897 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5898 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5899 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5901 # sort QCONFIG_FLAGS for neatness if we can
5902 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5903 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5905 if [ -n "$QCONFIG_FLAGS" ]; then
5906 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5907 #ifndef QT_BOOTSTRAPPED
5910 for cfg in $QCONFIG_FLAGS; do
5911 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5912 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5913 # figure out define logic, so we can output the correct
5914 # ifdefs to override the global defines in a project
5916 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5917 # QT_NO_option can be forcefully turned on by QT_option
5918 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5919 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5920 # QT_option can be forcefully turned off by QT_NO_option
5921 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5924 if [ -z $cfgdNeg ]; then
5925 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5932 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5933 #if defined($cfgd) && defined($cfgdNeg)
5935 #elif !defined($cfgd) && !defined($cfgdNeg)
5942 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5943 #endif // QT_BOOTSTRAPPED
5948 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5949 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5950 #define QT_VISIBILITY_AVAILABLE
5955 if [ -n "$QT_LIBINFIX" ]; then
5956 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5957 #define QT_LIBINFIX "$QT_LIBINFIX"
5962 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5964 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5965 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5966 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5968 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5969 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5970 chmod -w "$outpath/src/corelib/global/qconfig.h"
5971 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5972 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5976 #-------------------------------------------------------------------------------
5977 # save configuration into qconfig.pri
5978 #-------------------------------------------------------------------------------
5979 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5980 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5981 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5982 if [ "$CFG_DEBUG" = "yes" ]; then
5983 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5984 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5985 QT_CONFIG="$QT_CONFIG release"
5987 QT_CONFIG="$QT_CONFIG debug"
5988 elif [ "$CFG_DEBUG" = "no" ]; then
5989 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5990 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5991 QT_CONFIG="$QT_CONFIG debug"
5993 QT_CONFIG="$QT_CONFIG release"
5995 if [ "$CFG_FRAMEWORK" = "no" ]; then
5996 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5998 QT_CONFIG="$QT_CONFIG qt_framework"
5999 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
6001 if [ "$CFG_DEV" = "yes" ]; then
6002 QT_CONFIG="$QT_CONFIG private_tests"
6005 cat >>"$QTCONFIG.tmp" <<EOF
6007 CONFIG += $QTCONFIG_CONFIG
6009 QT_HOST_ARCH = $CFG_HOST_ARCH
6010 QT_CPU_FEATURES = $CFG_CPUFEATURES
6011 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
6012 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6013 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
6014 QT_EDITION = $Edition
6015 QT_CONFIG += $QT_CONFIG
6018 QT_VERSION = $QT_VERSION
6019 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6020 QT_MINOR_VERSION = $QT_MINOR_VERSION
6021 QT_PATCH_VERSION = $QT_PATCH_VERSION
6024 QT_LIBINFIX = $QT_LIBINFIX
6025 QT_NAMESPACE = $QT_NAMESPACE
6029 if [ "$CFG_SHARED" = "no" ]; then
6030 echo "QT_DEFAULT_QPA_PLUGIN = $QT_QPA_DEFAULT_PLATFORM" >> "$QTCONFIG.tmp"
6031 echo >> "$QTCONFIG.tmp"
6034 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6035 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6036 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6037 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6038 echo >> "$QTCONFIG.tmp"
6041 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6042 echo "# sysroot" >>"$QTCONFIG.tmp"
6043 echo "!host_build {" >>"$QTCONFIG.tmp"
6044 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6045 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6046 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6047 echo "}" >> "$QTCONFIG.tmp"
6048 echo >> "$QTCONFIG.tmp"
6050 if [ -n "$RPATH_FLAGS" ]; then
6051 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6053 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6054 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6055 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6056 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6059 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6060 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6061 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6064 # replace qconfig.pri if it differs from the newly created temp file
6065 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6066 rm -f "$QTCONFIG.tmp"
6068 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6071 #-------------------------------------------------------------------------------
6072 # save configuration into qmodule.pri
6073 #-------------------------------------------------------------------------------
6074 QTMODULE="$outpath/mkspecs/qmodule.pri"
6076 echo "CONFIG += $QMAKE_CONFIG" >> "$QTMODULE.tmp"
6077 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6079 if [ -n "$QT_CFLAGS_PSQL" ]; then
6080 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6082 if [ -n "$QT_LFLAGS_PSQL" ]; then
6083 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6085 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6086 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6088 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6089 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6091 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6092 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6094 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6095 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6097 if [ -n "$QT_LFLAGS_ODBC" ]; then
6098 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6100 if [ -n "$QT_LFLAGS_TDS" ]; then
6101 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6104 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6105 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6108 #dump in the OPENSSL_LIBS info
6109 if [ '!' -z "$OPENSSL_LIBS" ]; then
6110 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6111 elif [ "$CFG_OPENSSL" = "linked" ]; then
6112 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6116 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6117 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6119 # replace qmodule.pri if it differs from the newly created temp file
6120 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6121 rm -f "$QTMODULE.tmp"
6123 mv -f "$QTMODULE.tmp" "$QTMODULE"
6126 #-------------------------------------------------------------------------------
6127 # save configuration into .qmake.cache
6128 #-------------------------------------------------------------------------------
6130 CACHEFILE="$outpath/.qmake.cache"
6131 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6132 cat >>"$CACHEFILE.tmp" <<EOF
6133 QT_SOURCE_TREE = \$\$quote($relpath)
6134 QT_BUILD_TREE = \$\$quote($outpath)
6137 # replace .qmake.cache if it differs from the newly created temp file
6138 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6139 rm -f "$CACHEFILE.tmp"
6141 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6144 #-------------------------------------------------------------------------------
6145 # give feedback on configuration
6146 #-------------------------------------------------------------------------------
6147 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6150 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6151 echo "Build type: $PLATFORM"
6153 echo "Building on: $PLATFORM"
6154 echo "Building for: $XPLATFORM"
6157 # the missing space before $CFG_FEATURES is intentional
6158 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6159 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6161 if [ -n "$PLATFORM_NOTES" ]; then
6162 echo "Platform notes:"
6163 echo "$PLATFORM_NOTES"
6168 if [ "$OPT_VERBOSE" = "yes" ]; then
6169 echo $ECHO_N "qmake vars .......... $ECHO_C"
6170 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6171 echo "qmake switches ......... $QMAKE_SWITCHES"
6174 echo "Build .................. $CFG_BUILD_PARTS"
6175 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6176 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6177 echo "Debug .................. yes (combined)"
6178 if [ "$CFG_DEBUG" = "yes" ]; then
6179 echo "Default Link ........... debug"
6181 echo "Default Link ........... release"
6184 echo "Debug .................. $CFG_DEBUG"
6186 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6187 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6189 echo "C++11 support .......... $CFG_CXX11"
6190 if [ -n "$PKG_CONFIG" ]; then
6191 echo "pkg-config ............. yes"
6193 echo "pkg-config ............. no"
6195 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6196 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6197 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6198 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6199 echo "QtGui module ........... $CFG_GUI"
6200 echo "QtWidgets module ....... $CFG_WIDGETS"
6201 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6202 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6204 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6206 echo "QML debugging .......... $CFG_QML_DEBUG"
6207 echo "PCH support ............ $CFG_PRECOMPILE"
6208 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6209 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6210 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6211 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6212 elif [ "$CFG_ARCH" = "arm" ]; then
6213 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6214 echo "NEON support ........... ${CFG_NEON}"
6216 if [ "$CFG_ARCH" = "mips" ]; then
6217 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6219 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6220 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6221 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6222 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6223 echo "NIS support ............ $CFG_NIS"
6224 echo "CUPS support ........... $CFG_CUPS"
6225 echo "Iconv support .......... $CFG_ICONV"
6226 echo "Glib support ........... $CFG_GLIB"
6227 echo "GStreamer support ...... $CFG_GSTREAMER"
6228 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6229 echo "Large File support ..... $CFG_LARGEFILE"
6230 echo "GIF support ............ $CFG_GIF"
6231 if [ "$CFG_JPEG" = "no" ]; then
6232 echo "JPEG support ........... $CFG_JPEG"
6234 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6236 if [ "$CFG_PNG" = "no" ]; then
6237 echo "PNG support ............ $CFG_PNG"
6239 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6241 echo "zlib support ........... $CFG_ZLIB"
6242 echo "Session management ..... $CFG_SM"
6243 echo "libudev support ........ $CFG_LIBUDEV"
6245 if [ "$XPLATFORM_QNX" = "yes" ]; then
6246 echo "SLOG2 support .......... $CFG_SLOG2"
6248 echo "Use system proxies ..... $CFG_SYSTEM_PROXIES"
6250 if [ "$CFG_OPENGL" = "desktop" ]; then
6251 echo "OpenGL support ......... yes (Desktop OpenGL)"
6252 elif [ "$CFG_OPENGL" = "es2" ]; then
6253 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6255 echo "OpenGL support ......... no"
6258 if [ "$CFG_OPENVG" ]; then
6259 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6260 echo "OpenVG support ......... ShivaVG"
6262 echo "OpenVG support ......... $CFG_OPENVG"
6266 echo "XShape support ......... $CFG_XSHAPE"
6267 echo "XVideo support ......... $CFG_XVIDEO"
6268 echo "XSync support .......... $CFG_XSYNC"
6269 echo "Xinerama support ....... $CFG_XINERAMA"
6270 echo "Xcursor support ........ $CFG_XCURSOR"
6271 echo "Xfixes support ......... $CFG_XFIXES"
6272 echo "Xrandr support ......... $CFG_XRANDR"
6273 echo "Xi support ............. $CFG_XINPUT"
6274 echo "Xi2 support ............ $CFG_XINPUT2"
6275 echo "MIT-SHM support ........ $CFG_MITSHM"
6276 echo "FontConfig support ..... $CFG_FONTCONFIG"
6277 echo "XKB Support ............ $CFG_XKB"
6278 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6280 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6281 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6282 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6283 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6284 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6285 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6286 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6287 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6288 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6291 if [ "$CFG_OPENSSL" = "yes" ]; then
6292 OPENSSL_LINKAGE="(run-time)"
6293 elif [ "$CFG_OPENSSL" = "linked" ]; then
6294 OPENSSL_LINKAGE="(linked)"
6296 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6297 echo "Alsa support ........... $CFG_ALSA"
6298 if [ "$BUILD_ON_MAC" = "yes" ]; then
6299 echo "CoreWlan support ....... $CFG_COREWLAN"
6301 echo "libICU support ......... $CFG_ICU"
6302 echo "PCRE support ........... $CFG_PCRE"
6303 echo "Xcb support ............ $CFG_XCB"
6304 echo "Xrender support ........ $CFG_XRENDER"
6305 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" != "no" ]; then
6306 echo "XInput2 support ........ $CFG_XINPUT2"
6308 echo "EGLFS support .......... $CFG_EGLFS"
6309 echo "DirectFB support ....... $CFG_DIRECTFB"
6310 echo "LinuxFB support ........ $CFG_LINUXFB"
6311 echo "KMS support ............ $CFG_KMS"
6314 # complain about not being able to use dynamic plugins if we are using a static build
6315 if [ "$CFG_SHARED" = "no" ]; then
6317 echo "WARNING: Using static linking will disable the use of dynamically"
6318 echo "loaded plugins. Make sure to import all needed static plugins,"
6319 echo "or compile needed modules into the library."
6322 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6324 echo "NOTE: When linking against OpenSSL, you can override the default"
6325 echo "library names through OPENSSL_LIBS."
6327 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6331 exec 1>&3 3>&- # restore stdout
6332 cat $outpath/config.summary # display config feedback to user
6334 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6336 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6337 echo "if you want a pure debug build."
6342 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6347 #-------------------------------------------------------------------------------
6348 # build makefiles based on the configuration
6349 #-------------------------------------------------------------------------------
6351 if [ "$CFG_PROCESS" != "no" ]; then
6353 if [ "$CFG_PROCESS" = "full" ]; then
6354 echo "Creating makefiles. Please wait..."
6355 "$outpath/bin/qmake" -r "$relpath"
6358 "$outpath/bin/qmake" "$relpath"
6361 if [ "$OPT_FAST" = "yes" ]; then
6363 for part in $CFG_BUILD_PARTS; do
6365 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6368 if [ "x$PART_ROOTS" != "x" ]; then
6370 echo "Creating stub makefiles. Please wait..."
6371 QMAKE="$outpath/bin/qmake"
6372 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6373 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6375 test -f "$outpath/$d/Makefile" && continue
6376 echo " for $relpath/$p"
6378 mkdir -p "$outpath/$d" || exit
6379 cat > "$outpath/$d/Makefile" <<EOF || exit
6380 # $outpath/$d/Makefile: generated by configure
6382 # WARNING: This makefile will be replaced with a real makefile.
6383 # All changes made to this file will be lost.
6388 all clean install qmake first Makefile: FORCE
6389 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6399 #-------------------------------------------------------------------------------
6400 # check for platforms that we don't yet know about
6401 #-------------------------------------------------------------------------------
6402 if [ "$CFG_ARCH" = "unknown" ]; then
6405 NOTICE: configure was unable to determine the architecture
6406 for the $XQMAKESPEC target.
6408 Qt will not use a specialized implementation for any atomic
6409 operations. Instead a generic implemention based on either GCC
6410 intrinsics or C++11 std::atomic<T> will be used (when
6411 available). The generic implementations are generally as fast
6412 as and always as safe as a specialized implementation.
6414 If no generic implementation is available, Qt will use a
6415 fallback UNIX implementation which uses a single
6416 pthread_mutex_t to protect all atomic operations. This
6417 implementation is the slow (but safe) fallback implementation
6418 for architectures Qt does not yet support.
6422 #-------------------------------------------------------------------------------
6423 # check if the user passed the -no-zlib option, which is no longer supported
6424 #-------------------------------------------------------------------------------
6425 if [ -n "$ZLIB_FORCED" ]; then
6426 which_zlib="supplied"
6427 if [ "$CFG_ZLIB" = "system" ]; then
6433 NOTICE: The -no-zlib option was supplied but is no longer
6436 Qt now requires zlib support in all builds, so the -no-zlib
6437 option was ignored. Qt will be built using the $which_zlib
6442 #-------------------------------------------------------------------------------
6443 # check if the user passed the obsoleted -wayland or -no-wayland flag
6444 #-------------------------------------------------------------------------------
6445 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6448 NOTICE: The -wayland and -no-wayland flags are now obsolete
6450 All configuring of QtWayland plugin and QtCompositor happens in the module
6454 #-------------------------------------------------------------------------------
6455 # check if the user passed the obsoleted -arch or -host-arch options
6456 #-------------------------------------------------------------------------------
6457 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6460 NOTICE: The -arch and -host-arch options are obsolete.
6462 Qt now detects the target and host architectures based on compiler
6463 output. Qt will be built using $CFG_ARCH for the target architecture
6464 and $CFG_HOST_ARCH for the host architecture (note that these two
6465 will be the same unless you are cross-compiling).
6469 #-------------------------------------------------------------------------------
6470 # finally save the executed command to another script
6471 #-------------------------------------------------------------------------------
6472 if [ `basename $0` != "config.status" ]; then
6473 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6475 # add the system variables
6476 for varname in $SYSTEM_VARIABLES; do
6478 'if [ -n "\$'${varname}'" ]; then
6479 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6484 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6486 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6487 echo "#!/bin/sh" > "$outpath/config.status"
6488 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6489 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6490 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6491 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6492 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6493 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6494 echo "else" >> "$outpath/config.status"
6495 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6496 echo "fi" >> "$outpath/config.status"
6497 chmod +x "$outpath/config.status"
6500 if [ -n "$RPATH_MESSAGE" ]; then
6502 echo "$RPATH_MESSAGE"
6505 MAKE=`basename "$MAKE"`
6507 echo Qt is now configured for building. Just run \'$MAKE\'.
6508 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6509 echo Once everything is built, Qt is installed.
6510 echo You should not run \'$MAKE install\'.
6512 echo Once everything is built, you must run \'$MAKE install\'.
6513 echo Qt will be installed into $QT_INSTALL_PREFIX
6516 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.