2 #############################################################################
4 ## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/
7 ## This file is the build configuration utility of the Qt Toolkit.
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## GNU Lesser General Public License Usage
11 ## This file may be used under the terms of the GNU Lesser General Public
12 ## License version 2.1 as published by the Free Software Foundation and
13 ## appearing in the file LICENSE.LGPL included in the packaging of this
14 ## file. Please review the following information to ensure the GNU Lesser
15 ## General Public License version 2.1 requirements will be met:
16 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 ## In addition, as a special exception, Nokia gives you certain additional
19 ## rights. These rights are described in the Nokia Qt LGPL Exception
20 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 ## GNU General Public License Usage
23 ## Alternatively, this file may be used under the terms of the GNU General
24 ## Public License version 3.0 as published by the Free Software Foundation
25 ## and appearing in the file LICENSE.GPL included in the packaging of this
26 ## file. Please review the following information to ensure the GNU General
27 ## Public License version 3.0 requirements will be met:
28 ## http://www.gnu.org/copyleft/gpl.html.
31 ## Alternatively, this file may be used in accordance with the terms and
32 ## conditions contained in a signed written agreement between you and Nokia.
41 #############################################################################
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
47 # the name of this script
49 # the directory of this script is the "source tree"
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
66 # initialize global variables
73 QMAKE_VARS_FILE=.qmake.vars
74 DEVICE_VARS_FILE=.device.vars
77 :> "$DEVICE_VARS_FILE"
79 #-------------------------------------------------------------------------------
81 #-------------------------------------------------------------------------------
85 echo "$@" | sed 's/ /\ /g'
88 # Adds a new qmake variable to the cache
89 # Usage: QMakeVar mode varname contents
90 # where mode is one of: set, add, del
104 echo >&2 "BUG: wrong command to QMakeVar: $1"
108 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
111 shellArgumentListToQMakeListHelper()
114 for arg in "$@"; do retval="$retval \"$arg\""; done
118 # Convert a string usable on a shell command line into word-by-word quoted
120 shellArgumentListToQMakeList()
122 # eval is needed for the shell to interpret the backslash escape sequences
123 eval shellArgumentListToQMakeListHelper "$@"
126 # Helper function for getQMakeConf. It parses include statements in
127 # qmake.conf and prints out the expanded file
130 while read line; do case "$line" in
132 inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
133 current_dir=`dirname "$1"`
134 conf_file="$current_dir/$inc_file"
135 if [ ! -f "$conf_file" ]; then
136 echo "WARNING: Unable to find file $conf_file" >&2
139 getQMakeConf1 "$conf_file"
141 *load\(device_config\)*)
142 conf_file="$DEVICE_VARS_FILE"
143 if [ ! -f "$conf_file" ]; then
144 echo "WARNING: Unable to find file $conf_file" >&2
147 getQMakeConf1 "$conf_file"
159 values["LITERAL_WHITESPACE"] = " "
160 values["LITERAL_DOLLAR"] = "$"
162 /^[_A-Z0-9.]+[ \t]*\+?=/ {
163 valStart = index($0, "=") + 1
166 if (substr($0, valStart - 2, 1) == "+") {
170 variable = substr($0, 0, valStart - 2 - append)
171 value = substr($0, valStart)
172 gsub("[ \t]+", "", variable)
173 gsub("^[ \t]+", "", value)
174 gsub("[ \t]+$", "", value)
177 while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
178 ovalue = ovalue substr(value, 1, RSTART - 1)
179 var = substr(value, RSTART + 2, RLENGTH - 2)
180 value = substr(value, RSTART + RLENGTH)
182 var = substr(var, 2, length(var) - 2)
184 ovalue = ovalue values[var]
186 ovalue = ovalue value
188 combinedValue = values[variable]
189 if (append == 1 && length(combinedValue) > 0) {
190 combinedValue = combinedValue " " ovalue
192 combinedValue = ovalue
194 values[variable] = combinedValue
197 for (var in values) {
198 print var "=" values[var]
206 echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
209 # relies on $QMAKESPEC being set correctly. parses include statements in
210 # qmake.conf and prints out the expanded file
213 if [ -z "$specvals" ]; then
214 specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
216 getQMakeConf3 "$1" "$specvals"
221 if [ -z "$xspecvals" ]; then
222 xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
224 getQMakeConf3 "$1" "$xspecvals"
227 # relies on $TEST_COMPILER being set correctly
228 compilerSupportsFlag()
230 cat >conftest.cpp <<EOF
231 int main() { return 0; }
233 "$TEST_COMPILER" "$@" -o conftest.o conftest.cpp
235 rm -f conftest.cpp conftest.o
239 # relies on $TEST_COMPILER being set correctly
245 safe_flag=`shellEscape "$flag"`
246 lflags=$lflags,$safe_flag
248 compilerSupportsFlag "$lflags" >/dev/null 2>&1
251 # $1: newline-separated list of default paths
253 # stdout: input path or nothing
258 echo "$1" | grep "^$path\$" > /dev/null || echo "$path"
263 filterDefaultPaths "$DEFAULT_INCDIRS"
268 filterDefaultPaths "$DEFAULT_LIBDIRS"
271 filterPathOptionsHelper()
273 local flag defpaths sep p path
279 if [ "x$path" != "x$p" ]; then
280 path=`echo "$path" | filterDefaultPaths "$defpaths"`
281 test -z "$path" && continue
283 # Re-quote for shell & qmake
284 p=`echo "$p" | sed 's,[^ ]* .*,"&",g'`
285 printf "%s%s" "$sep" "$p"
292 # $2: newline-separated list of default paths
293 # stdin: list of command line options
294 # sdout: stdin without the options naming default paths
297 # The eval does escape interpretation for us
298 eval filterPathOptionsHelper $1 "\"$2\"" "`cat`"
301 filterIncludeOptions()
303 filterPathOptions -I "$DEFAULT_INCDIRS"
306 filterLibraryOptions()
308 filterPathOptions -L "$DEFAULT_LIBDIRS"
311 #-------------------------------------------------------------------------------
313 #-------------------------------------------------------------------------------
321 echo >&2 "BUG: wrong command to QMakeVar: $1"
325 echo "$2" "$eq" "$3" >> "$DEVICE_VARS_FILE"
328 resolveDeviceMkspec()
330 result=$(find "$relpath/mkspecs/devices/" -type d -name "*$1*" | sed "s,^$relpath/mkspecs/,,")
331 match_count=$(echo "$result" | wc -w)
332 if [ "$match_count" -gt 1 ]; then
333 echo >&2 "Error: Multiple matches for device '$1'. Candidates are:"
334 tabbed_result=$(echo "$result" | sed "s,^, ,")
335 echo >&2 "$tabbed_result"
337 elif [ "$match_count" -eq 0 ]; then
338 echo >&2 "Error: No device matching '$1'"
345 #-------------------------------------------------------------------------------
346 # operating system detection
347 #-------------------------------------------------------------------------------
349 # need that throughout the script
350 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
351 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
352 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
353 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
355 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
356 if echo '\c' | grep '\c' >/dev/null; then
362 #-------------------------------------------------------------------------------
363 # window system detection
364 #-------------------------------------------------------------------------------
368 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
373 #-----------------------------------------------------------------------------
374 # Qt version detection
375 #-----------------------------------------------------------------------------
376 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
380 if [ -n "$QT_VERSION" ]; then
381 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
382 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
383 if [ -n "$MAJOR" ]; then
384 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
385 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
386 QT_MAJOR_VERSION="$MAJOR"
387 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
388 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
391 if [ -z "$QT_MAJOR_VERSION" ]; then
392 echo "Cannot process version from qglobal.h: $QT_VERSION"
393 echo "Cannot proceed."
397 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
398 if [ -z "$QT_PACKAGEDATE" ]; then
399 echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
400 echo "Cannot proceed"
404 #-------------------------------------------------------------------------------
406 #-------------------------------------------------------------------------------
410 EditionString=Commercial
414 # parse the arguments, setting things to "yes" or "no"
415 while [ "$#" -gt 0 ]; do
419 #Autoconf style options
421 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
425 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
429 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
430 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
433 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
436 -h|help|--help|-help)
437 if [ "$VAL" = "yes" ]; then
439 COMMERCIAL_USER="no" #doesn't matter we will display the help
442 COMMERCIAL_USER="no" #doesn't matter we will display the help
446 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
450 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
457 if [ "$UNKNOWN_ARG" = "yes" ]; then
469 COMMERCIAL_USER="yes"
483 if [ "$COMMERCIAL_USER" = "ask" ]; then
485 echo "Which edition of Qt do you want to use ?"
487 echo "Type 'c' if you want to use the Commercial Edition."
488 echo "Type 'o' if you want to use the Open Source Edition."
492 if [ "$commercial" = "c" ]; then
493 COMMERCIAL_USER="yes"
495 elif [ "$commercial" = "o" ]; then
502 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
503 # Commercial preview release
504 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
507 QT_EDITION="QT_EDITION_DESKTOP"
508 LicenseType="Technology Preview"
509 elif [ $COMMERCIAL_USER = "yes" ]; then
510 # one of commercial editions
511 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
513 # read in the license file
514 if [ -f "$LICENSE_FILE" ]; then
515 . "$LICENSE_FILE" >/dev/null 2>&1
516 if [ -z "$LicenseKeyExt" ]; then
518 echo "You are using an old license file."
520 echo "Please install the license file supplied by Nokia,"
521 echo "or install the Qt Open Source Edition if you intend to"
522 echo "develop free software."
525 if [ -z "$Licensee" ]; then
527 echo "Invalid license key. Please check the license key."
531 if [ -z "$LicenseKeyExt" ]; then
533 echo $ECHO_N "Please enter your license key: $ECHO_C"
535 Licensee="Unknown user"
540 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
541 && LicenseValid="yes" \
543 if [ "$LicenseValid" != "yes" ]; then
545 echo "Invalid license key. Please check the license key."
548 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
549 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
550 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
551 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
553 # determine which edition we are licensed to use
554 case "$LicenseTypeCode" in
556 LicenseType="Commercial"
560 QT_EDITION="QT_EDITION_UNIVERSAL"
563 Edition="FullFramework"
564 EditionString="Full Framework"
565 QT_EDITION="QT_EDITION_DESKTOP"
568 Edition="GUIFramework"
569 EditionString="GUI Framework"
570 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
575 LicenseType="Evaluation"
576 QMakeVar add DEFINES QT_EVAL
580 QT_EDITION="QT_EDITION_EVALUATION"
585 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
587 echo "Invalid license key. Please check the license key."
591 # verify that we are licensed to use Qt on this platform
593 case "$PlatformCode" in
596 PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
600 PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
603 ### EMBEDDED_QPA logic missing ###
604 case "$PlatformCode,$PLATFORM_MAC" in
605 X9,* | XC,* | XU,* | XW,* | XM,*)
607 LICENSE_EXTENSION="-ALLOS"
609 8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
610 # Qt for Embedded Linux
611 LICENSE_EXTENSION="-EMBEDDED"
613 6M,* | N7,* | N9,* | NX,*)
615 LICENSE_EXTENSION="-EMBEDDED"
617 FM,* | LM,yes | ZM,no)
619 LICENSE_EXTENSION="-DESKTOP"
623 [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
625 echo "You are not licensed for the $Platform platform."
627 echo "Please contact qt-info@nokia.com to upgrade your license to"
628 echo "include the $Platform platform, or install the Qt Open Source Edition"
629 echo "if you intend to develop free software."
634 if test -r "$relpath/.LICENSE"; then
635 # Generic, non-final license
637 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
642 *TECHNOLOGY?PREVIEW*)
649 echo >&2 "Invalid license files; cannot continue"
654 EditionString="$Edition"
655 QT_EDITION="QT_EDITION_DESKTOP"
658 case "$LicenseFeatureCode" in
661 case "$LicenseType" in
663 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
666 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
672 case "$LicenseType" in
674 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
677 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
683 echo "Invalid license key. Please check the license key."
687 case "$LicenseFeatureCode" in
695 if [ '!' -f "$outpath/LICENSE" ]; then
696 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
697 echo "this software has disappeared."
699 echo "Sorry, you are not licensed to use this software."
700 echo "Try re-installing."
704 elif [ $COMMERCIAL_USER = "no" ]; then
705 # Open Source edition - may only be used under the terms of the GPL or LGPL.
706 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
707 Licensee="Open Source"
709 EditionString="Open Source"
710 QT_EDITION="QT_EDITION_OPENSOURCE"
713 #-------------------------------------------------------------------------------
714 # initalize variables
715 #-------------------------------------------------------------------------------
717 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
718 for varname in $SYSTEM_VARIABLES; do
719 qmakevarname="${varname}"
720 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
721 if [ "${varname}" = "LDFLAGS" ]; then
722 qmakevarname="LFLAGS"
723 elif [ "${varname}" = "LD" ]; then
727 'if [ -n "\$'${varname}'" ]; then
728 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
732 # Use CC/CXX to run config.tests
733 mkdir -p "$outpath/config.tests"
734 rm -f "$outpath/config.tests/.qmake.cache"
735 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
737 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
739 # QTDIR may be set and point to an old or system-wide Qt installation
742 # the minimum version of libdbus-1 that we require:
743 MIN_DBUS_1_VERSION=0.93
745 # initalize internal variables
746 CFG_CONFIGURE_EXIT_ON_ERROR=yes
748 CFG_GUI=auto # (yes|no|auto)
754 CFG_FORCEDEBUGINFO=no
775 CFG_OPENVG_LC_INCLUDES=no
776 CFG_OPENVG_SHIVA=auto
777 CFG_OPENVG_ON_OPENGL=auto
783 QT_DEFAULT_BUILD_PARTS="libs tools examples"
787 CFG_AUDIO_BACKEND=auto
790 CFG_JAVASCRIPTCORE_JIT=auto
793 # Target architecture
796 # Host architecture, same as CFG_ARCH when not cross-compiling
798 CFG_HOST_CPUFEATURES=
799 # Set when the -arch or -host-arch arguments are used
800 OPT_OBSOLETE_HOST_ARG=no
814 CFG_OBSOLETE_WAYLAND=no
826 CFG_SEPARATE_DEBUG_INFO=no
827 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
828 CFG_REDUCE_EXPORTS=auto
836 CFG_REDUCE_RELOCATIONS=auto
837 CFG_ACCESSIBILITY=auto
842 CFG_CLOCK_GETTIME=auto
843 CFG_CLOCK_MONOTONIC=auto
851 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
853 CFG_PREFIX_INSTALL=yes
862 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
863 XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*)
868 OPT_CONFIRM_LICENSE=no
881 QPA_PLATFORM_GUARD=yes
884 # initalize variables used for installation
893 QT_INSTALL_TRANSLATIONS=
898 CFG_GCC_SYSROOT="yes"
903 #flags for SQL drivers
911 QT_LFLAGS_ODBC="-lodbc"
914 # flags for libdbus-1
918 # flags for Glib (X11 only)
922 # flags for GStreamer (X11 only)
926 # default qpa platform
927 QT_QPA_DEFAULT_PLATFORM=
929 #-------------------------------------------------------------------------------
930 # check SQL drivers available in this package
931 #-------------------------------------------------------------------------------
933 # opensource version removes some drivers, so force them to be off
939 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
940 for a in "$relpath/src/plugins/sqldrivers/"*; do
942 base_a=`basename "$a"`
943 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
944 eval "CFG_SQL_${base_a}=auto"
949 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
950 if [ -d "$relpath/src/plugins/imageformats" ]; then
951 for a in "$relpath/src/plugins/imageformats/"*; do
953 base_a=`basename "$a"`
954 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
959 #-------------------------------------------------------------------------------
960 # parse command line arguments
961 #-------------------------------------------------------------------------------
963 # parse the arguments, setting things to "yes" or "no"
964 while [ "$#" -gt 0 ]; do
968 #Autoconf style options
970 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
974 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
978 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
979 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
982 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
986 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
990 -no-*-*|-plugin-*-*|-qt-*-*)
991 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
992 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
996 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
999 #Qt style options that pass an argument
1000 -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-device|-device-option|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-hostdatadir|-hostbindir|-qpa|-qconfig)
1001 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1005 #Qt style complex options in one command
1006 -enable-*|-disable-*)
1007 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1008 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1010 #Qt Builtin/System style options
1011 -no-*|-system-*|-qt-*)
1012 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1013 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1015 #Options that cannot be generalized
1022 # this option may or may not be followed by an argument
1023 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1032 # this option may or may not be followed by an argument
1033 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1041 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1042 # this option may or may not be followed by an argument
1043 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1062 if [ "$1" = "-D" ]; then
1066 VAL=`echo $1 | sed 's,-D,,'`
1071 # this option may or may not be followed by an argument
1072 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1081 if [ "$1" = "-I" ]; then
1085 VAL=`echo $1 | sed 's,-I,,'`
1090 if [ "$1" = "-L" ]; then
1094 VAL=`echo $1 | sed 's,-L,,'`
1099 if [ "$1" = "-R" ]; then
1103 VAL=`echo $1 | sed 's,-R,,'`
1108 if [ "$1" = "-l" ]; then
1112 VAL=`echo $1 | sed 's,-l,,'`
1117 if [ "$1" = "-F" ]; then
1121 VAL=`echo $1 | sed 's,-F,,'`
1126 if [ "$1" = "-fw" ]; then
1130 VAL=`echo $1 | sed 's,-fw,,'`
1137 #General options, including Qt style yes options
1139 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1146 if [ "$UNKNOWN_ARG" = "yes" ]; then
1147 echo "$1: unknown argument"
1158 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1159 CFG_ACCESSIBILITY="$VAL"
1168 CFG_USE_GNUMAKE="$VAL"
1171 CFG_MYSQL_CONFIG="$VAL"
1174 QT_INSTALL_PREFIX="$VAL"
1177 QT_HOST_PREFIX="$VAL"
1186 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1187 CFG_PKGCONFIG="$VAL"
1193 CFG_PKGCONFIG="force"
1196 QT_INSTALL_DOCS="$VAL"
1199 QT_INSTALL_HEADERS="$VAL"
1202 QT_INSTALL_PLUGINS="$VAL"
1205 QT_INSTALL_IMPORTS="$VAL"
1208 QT_INSTALL_DATA="$VAL"
1211 QT_INSTALL_LIBS="$VAL"
1220 QT_INSTALL_TRANSLATIONS="$VAL"
1222 sysconfdir|settingsdir)
1223 QT_INSTALL_SETTINGS="$VAL"
1226 QT_INSTALL_EXAMPLES="$VAL"
1229 QT_INSTALL_TESTS="$VAL"
1238 CFG_GCC_SYSROOT="$VAL"
1241 QT_INSTALL_BINS="$VAL"
1244 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1251 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1252 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1253 [ "$VAL" = "es2" ]; then
1260 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1267 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1270 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1273 if [ "$BUILD_ON_MAC" = "yes" ]; then
1280 OPT_OBSOLETE_HOST_ARG=yes
1283 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1284 CFG_MAC_HARFBUZZ="$VAL"
1291 if [ "$BUILD_ON_MAC" = "yes" ]; then
1292 CFG_FRAMEWORK="$VAL"
1298 if [ "$VAL" = "yes" ]; then
1300 QMakeVar add QMAKE_CFLAGS -pg
1301 QMakeVar add QMAKE_CXXFLAGS -pg
1302 QMakeVar add QMAKE_LFLAGS -pg
1303 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1309 if [ "$VAL" = "yes" ]; then
1310 QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1315 # keep compatibility with old platform names
1321 PLATFORM=hpux-acc-o64
1324 PLATFORM=hpux-acc-64
1327 PLATFORM=hpux-acc-64
1339 PLATFORM=reliant-cds-64
1342 PLATFORM=solaris-cc-64
1345 PLATFORM=unixware-cc
1348 PLATFORM=unixware-g++
1351 PLATFORM=unixware-cc
1354 PLATFORM=unixware-g++
1360 i386) NATIVE_64_ARCH="x86_64" ;;
1361 powerpc) NATIVE_64_ARCH="ppc64" ;;
1362 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1364 if [ ! -z "$NATIVE_64_ARCH" ]; then
1365 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1372 case `basename "$XPLATFORM"` in win32-g++*)
1376 CFG_REDUCE_EXPORTS=no
1381 XPLATFORM=`resolveDeviceMkspec $VAL`
1382 [ "$XPLATFORM" = "undefined" ] && exit 101
1385 DEV_VAR=`echo $VAL | sed "s,^\(.*\)=.*,\1,"`
1386 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
1387 DeviceVar set $DEV_VAR $DEV_VAL
1390 QT_QPA_DEFAULT_PLATFORM="$VAL"
1393 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1394 CFG_DEBUG_RELEASE="$VAL"
1400 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1401 CFG_RELEASE_QMAKE="$VAL"
1407 if [ "$VAL" = "yes" ]; then
1409 elif [ "$VAL" = "no" ]; then
1416 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1417 CFG_PREFIX_INSTALL="$VAL"
1426 CFG_FORCEDEBUGINFO="$VAL"
1428 developer-build|commercial|opensource)
1429 # These switches have been dealt with already
1432 if [ "$VAL" = "yes" ]; then
1434 elif [ "$VAL" = "no" ]; then
1441 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1442 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1448 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1449 if [ "$VAL" = "no" ]; then
1450 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1451 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1452 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1458 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1465 if [ "$VAL" = "no" ]; then
1472 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1480 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1487 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1494 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1501 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1508 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1515 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1522 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1529 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1530 CFG_PRECOMPILE="$VAL"
1535 separate-debug-info)
1536 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1537 CFG_SEPARATE_DEBUG_INFO="$VAL"
1538 elif [ "$VAL" = "nocopy" ] ; then
1539 CFG_SEPARATE_DEBUG_INFO="yes"
1540 CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1546 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1547 CFG_REDUCE_EXPORTS="$VAL"
1553 if [ "$VAL" = "no" ]; then
1560 if [ "$VAL" = "no" ]; then
1567 if [ "$VAL" = "no" ]; then
1574 if [ "$VAL" = "no" ]; then
1581 if [ "$VAL" = "no" ]; then
1588 if [ "$VAL" = "no" ]; then
1595 if [ "$VAL" = "no" ]; then
1605 if [ "$VAL" = "no" ]; then
1612 if [ "$VAL" = "no" ]; then
1619 if [ "$VAL" = "no" ]; then
1620 CFG_MIPS_DSPR2="$VAL"
1626 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1627 CFG_REDUCE_RELOCATIONS="$VAL"
1633 [ "$VAL" = "qt" ] && VAL=yes
1634 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1639 # No longer supported:
1640 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1643 if [ "$VAL" = "system" ]; then
1650 [ "$VAL" = "yes" ] && VAL=qt
1651 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1658 [ "$VAL" = "yes" ] && VAL=qt
1659 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1666 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1673 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1680 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1687 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1694 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1701 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1702 CFG_FONTCONFIG="$VAL"
1708 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1715 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1722 CFG_OBSOLETE_WAYLAND=yes
1725 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1732 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1739 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1746 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1753 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1760 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1767 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1774 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1781 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1788 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1789 CFG_GSTREAMER="$VAL"
1795 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1796 CFG_QGTKSTYLE="$VAL"
1802 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1805 if [ "$VAL" = "no" ]; then
1813 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1815 elif [ "$VAL" = "no" ]; then
1822 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1823 QPA_PLATFORM_GUARD="$VAL"
1829 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1831 elif [ "$VAL" = "runtime" ]; then
1838 if [ "$VAL" = "yes" ]; then
1845 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1852 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1853 CFG_LARGEFILE="$VAL"
1859 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1866 if [ "$VAL" = "yes" ]; then
1867 CFG_OPENSSL="linked"
1873 if [ "$VAL" = "yes" ]; then
1876 if [ "$VAL" = "no" ]; then
1884 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then
1885 CFG_JAVASCRIPTCORE_JIT="$VAL"
1891 if [ "$VAL" = "yes" ]; then
1892 OPT_CONFIRM_LICENSE="$VAL"
1898 if [ "$VAL" = "yes" ]; then
1904 sql-*|imageformat-*)
1905 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1906 # if autoconf style options were used, $VAL can be "yes" or "no"
1907 [ "$VAL" = "yes" ] && VAL=qt
1908 # now $VAL should be "no", "qt", or "plugin"... double-check
1909 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1912 # now $VAL is "no", "qt", or "plugin"
1914 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1915 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1917 # Grab the available values
1920 avail="$CFG_SQL_AVAILABLE"
1923 avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1924 if [ "$OPT" != "plugin" ]; then
1925 # png is always built in
1931 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1935 # Check that that user's value is available.
1938 if [ "$VAL" = "$d" ]; then
1943 [ "$found" = yes ] || ERROR=yes
1945 if [ "$VAR" = "sql" ]; then
1946 # set the CFG_SQL_driver
1947 eval "CFG_SQL_$VAL=\$OPT"
1949 elif [ "$VAR" = "imageformat" ]; then
1950 [ "$OPT" = "qt" ] && OPT=yes
1951 VAL="`echo $VAL |tr a-z A-Z`"
1952 eval "CFG_$VAL=$OPT"
1956 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1957 if [ "$OPT" = "plugin" ]; then
1960 QMakeVar add "${VAR}s" "${VAL}"
1961 elif [ "$OPT" = "no" ]; then
1962 PLUG_VAR="${VAR}-plugin"
1964 QMakeVar del "${IN_VAR}s" "$VAL"
1965 QMakeVar del "${PLUG_VAR}s" "$VAL"
1967 if [ "$ERROR" = "yes" ]; then
1968 echo "$CURRENT_OPT: unknown argument"
1973 if [ "$VAL" = "yes" ]; then
1974 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1975 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1979 elif [ "$VAL" = "no" ]; then
1980 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1981 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1990 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1997 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2004 DEFINES="$DEFINES \"$VAL\""
2005 D_FLAGS="$D_FLAGS -D\"$VAL\""
2008 I_FLAGS="$I_FLAGS -I\"${VAL}\""
2011 L_FLAGS="$L_FLAGS -L\"${VAL}\""
2014 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2017 L_FLAGS="$L_FLAGS -l\"${VAL}\""
2020 if [ "$BUILD_ON_MAC" = "yes" ]; then
2021 L_FLAGS="$L_FLAGS -F\"${VAL}\""
2022 I_FLAGS="$I_FLAGS -F\"${VAL}\""
2028 if [ "$BUILD_ON_MAC" = "yes" ]; then
2029 L_FLAGS="$L_FLAGS -framework \"${VAL}\""
2035 W_FLAGS="$W_FLAGS \"${VAL}\""
2050 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2051 CFG_AUDIO_BACKEND="$VAL"
2057 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2064 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2065 CFG_FORCE_ASSERTS="$VAL"
2071 if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2078 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2088 if [ "$UNKNOWN_OPT" = "yes" ]; then
2089 echo "${CURRENT_OPT}: invalid command-line switch"
2095 # update QT_CONFIG to show our current predefined configuration
2096 case "$CFG_QCONFIG" in
2097 minimal|small|medium|large|full)
2098 # these are a sequence of increasing functionality
2099 for c in minimal small medium large full; do
2100 QT_CONFIG="$QT_CONFIG $c-config"
2101 [ "$CFG_QCONFIG" = $c ] && break
2105 # not known to be sufficient for anything
2106 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2107 echo >&2 "Error: configuration file not found:"
2108 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2110 echo >&2 " `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2115 #-------------------------------------------------------------------------------
2116 # build tree initialization
2117 #-------------------------------------------------------------------------------
2119 # where to find which..
2120 unixtests="$relpath/config.tests/unix"
2121 mactests="$relpath/config.tests/mac"
2122 WHICH="$unixtests/which.test"
2124 PERL=`$WHICH perl 2>/dev/null`
2126 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2128 for e in gawk nawk awk; do
2129 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2136 PERL="/usr/bin/perl"
2137 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2141 ### skip this if the user just needs help...
2142 if [ "$OPT_HELP" != "yes" ]; then
2144 # is this a shadow build?
2145 if [ "$OPT_SHADOW" = "maybe" ]; then
2147 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2148 if [ -h "$outpath" ]; then
2149 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2155 if [ "$OPT_SHADOW" = "yes" ]; then
2156 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2157 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2158 echo >&2 "Cannot proceed."
2161 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2164 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2166 echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2167 echo "Qt can be built in release mode with separate debug information, so"
2168 echo "-debug-and-release is not necessary anymore"
2172 if [ "$CFG_SILENT" = "yes" ]; then
2173 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2176 # if the source tree is different from the build tree,
2177 # symlink or copy part of the sources
2178 if [ "$OPT_SHADOW" = "yes" ]; then
2179 echo "Preparing build tree..."
2181 if [ -z "$PERL" ]; then
2183 echo "You need perl in your PATH to make a shadow build."
2184 echo "Cannot proceed."
2188 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2190 # make a syncqt script that can be used in the shadow
2191 rm -f "$outpath/bin/syncqt"
2192 if [ -x "$relpath/bin/syncqt" ]; then
2193 mkdir -p "$outpath/bin"
2194 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2195 echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2196 chmod 755 "$outpath/bin/syncqt"
2199 for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2200 rm -f "$outpath/bin/$i"
2201 if [ -x "$relpath/bin/$i" ]; then
2202 mkdir -p "$outpath/bin"
2203 echo "#!/bin/sh" >"$outpath/bin/$i"
2204 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2205 echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2206 chmod 755 "$outpath/bin/$i"
2210 # save a pre-existing mkspecs/modules dir
2211 test -d "$outpath/mkspecs/modules" && \
2212 mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2213 # ditto for mkspecs/modules-inst
2214 test -d "$outpath/mkspecs/modules-inst" && \
2215 mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2217 # symlink the mkspecs directory
2218 mkdir -p "$outpath/mkspecs"
2219 rm -rf "$outpath"/mkspecs/*
2220 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2221 rm -f "$outpath/mkspecs/default"
2225 rm -rf "$outpath/mkspecs/$1"
2226 find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2227 find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2230 # Special case for mkspecs/features directory.
2231 # To be able to place .prf files into a shadow build directory,
2232 # we're creating links for files only. The directory structure is reproduced.
2233 ShadowMkspecs features
2235 # The modules dir is special, too.
2236 if test -d "$outpath/mkspecs-modules"; then
2237 rm -rf "$outpath/mkspecs/modules"
2238 mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2240 ShadowMkspecs modules
2243 # The modules-inst dir is not quite as special, but still.
2244 if test -d "$outpath/mkspecs-modules-inst"; then
2245 rm -rf "$outpath/mkspecs/modules-inst"
2246 mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2249 # symlink the doc directory
2250 rm -rf "$outpath/doc"
2251 ln -s "$relpath/doc" "$outpath/doc"
2254 # symlink fonts to be able to run application from build directory
2255 if [ ! -d "${outpath}/lib/fonts" ]; then
2256 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2257 mkdir -p "${outpath}/lib"
2258 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2262 if [ "$OPT_FAST" = "auto" ]; then
2263 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2270 # find a make command
2271 if [ -z "$MAKE" ]; then
2273 for mk in gmake make; do
2274 if "$WHICH" $mk >/dev/null 2>&1; then
2279 if [ -z "$MAKE" ]; then
2280 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2281 echo >&2 "Cannot proceed."
2284 # export MAKE, we need it later in the config.tests
2290 #-------------------------------------------------------------------------------
2291 # auto-detect all that hasn't been specified in the arguments
2292 #-------------------------------------------------------------------------------
2294 if [ -z "$PLATFORM" ]; then
2296 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2298 OSX_VERSION=`uname -r | cut -d. -f1`
2299 # Select compiler. Use g++ unless we find a usable Clang version
2301 if [ "$OSX_VERSION" -ge 12 ]; then
2302 # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2304 elif [ "$OSX_VERSION" -eq 11 ]; then
2305 # We're on Lion. Check if we have a supported Clang version
2306 case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2309 PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n"
2316 #PLATFORM=aix-g++-64
2318 #PLATFORM=aix-xlc-64
2320 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2330 # PLATFORM=dynix-g++
2336 PLATFORM=freebsd-g++
2338 - Also available for FreeBSD: freebsd-icc
2342 PLATFORM=openbsd-g++
2353 #PLATFORM=irix-cc-64
2355 - Also available for IRIX: irix-g++ irix-cc-64
2359 case "$UNAME_MACHINE" in
2361 #PLATFORM=hpuxi-acc-32
2362 PLATFORM=hpuxi-acc-64
2364 - Also available for HP-UXi: hpuxi-acc-32
2370 #PLATFORM=hpux-acc-64
2372 #PLATFORM=hpux-acc-o64
2374 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2383 - Also available for Tru64: tru64-g++
2387 case "$UNAME_MACHINE" in
2389 PLATFORM=linux-g++-64
2396 - Also available for Linux: linux-kcc linux-icc linux-cxx
2400 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2401 PLATFORM="solaris-g++"
2403 #PLATFORM=solaris-g++
2405 #PLATFORM=solaris-cc64
2408 - Also available for Solaris: solaris-g++ solaris-cc-64
2411 ReliantUNIX-*:*|SINIX-*:*)
2412 PLATFORM=reliant-cds
2413 #PLATFORM=reliant-cds-64
2415 - Also available for Reliant UNIX: reliant-cds-64
2425 #PLATFORM=unixware-g++
2426 PLATFORM=unixware-cc
2428 - Also available for OpenUNIX: unixware-g++
2432 #PLATFORM=unixware-g++
2433 PLATFORM=unixware-cc
2435 - Also available for UnixWare: unixware-g++
2442 - Also available for SCO OpenServer: sco-g++
2446 PLATFORM=unixware-g++
2449 PLATFORM=unsupported/qnx-g++
2452 if [ "$OPT_HELP" != "yes" ]; then
2454 echo " The build script does not currently recognize all" >&2
2455 echo " platforms supported by Qt." >&2
2456 echo " Rerun this script with a -platform option listed to" >&2
2457 echo " set the system/compiler combination you use." >&2
2464 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2466 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2467 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2468 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2470 if [ -d "$PLATFORM" ]; then
2471 QMAKESPEC="$PLATFORM"
2473 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2475 if [ -d "$XPLATFORM" ]; then
2476 XQMAKESPEC="$XPLATFORM"
2478 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2480 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2481 QT_CROSS_COMPILE=yes
2482 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2483 QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2486 if [ "$BUILD_ON_MAC" = "yes" ]; then
2487 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2489 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2490 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2491 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2492 echo " built with 'macx-g++'" >&2
2498 # check specified platforms are supported
2499 if [ '!' -d "$QMAKESPEC" ]; then
2501 echo " The specified system/compiler is not supported:"
2505 echo " Please see the README file for a complete list."
2509 if [ '!' -d "$XQMAKESPEC" ]; then
2511 echo " The specified system/compiler is not supported:"
2515 echo " Please see the README file for a complete list."
2519 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2521 echo " The specified system/compiler port is not complete:"
2523 echo " $XQMAKESPEC/qplatformdefs.h"
2525 echo " Please contact qt-info@nokia.com."
2530 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2531 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2532 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2533 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2534 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2538 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2539 case `basename "$XPLATFORM"` in
2542 echo "You are not licensed for Qt for `basename $XPLATFORM`."
2544 echo "Please contact qt-info@nokia.com to upgrade your license to"
2545 echo "include this platform, or install the Qt Open Source Edition"
2546 echo "if you intend to develop free software."
2552 #-------------------------------------------------------------------------------
2553 # tests that don't need qmake (must be run before displaying help)
2554 #-------------------------------------------------------------------------------
2556 # detect build style
2557 if [ "$CFG_DEBUG" = "auto" ]; then
2558 if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2559 CFG_DEBUG_RELEASE=yes
2561 elif [ "$CFG_DEV" = "yes" ]; then
2562 CFG_DEBUG_RELEASE=no
2565 CFG_DEBUG_RELEASE=no
2569 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2570 QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2573 if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
2574 QT_CONFIG="$QT_CONFIG force_debug_info"
2577 # pass on $CFG_SDK to the configure tests.
2578 if [ '!' -z "$CFG_SDK" ]; then
2579 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2582 # find the default framework value
2583 if [ "$BUILD_ON_MAC" = "yes" ]; then
2584 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2585 CFG_FRAMEWORK="$CFG_SHARED"
2586 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2588 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2596 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2598 TEST_COMPILER=$QMAKE_CONF_COMPILER
2599 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2600 if [ -z "$TEST_COMPILER" ]; then
2601 echo "ERROR: Cannot set the compiler for the configuration tests"
2605 TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2608 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2609 if [ -n "$GCC_MACHINE_DUMP" ]; then
2610 DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2613 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2614 SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2618 export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test}
2620 # auto-detect precompiled header support
2621 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2622 if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2629 # auto-detect support for separate debug info in objcopy
2630 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2631 TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2632 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2633 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2634 CFG_SEPARATE_DEBUG_INFO=no
2638 # binutils on HP-UX is buggy; default to no.
2639 CFG_SEPARATE_DEBUG_INFO=no
2642 CFG_SEPARATE_DEBUG_INFO=yes
2648 # auto-detect -fvisibility support
2649 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2650 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2651 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2652 echo "-reduce-exports was requested but this compiler does not support it"
2653 echo "Re-run configure with -v for more information"
2656 CFG_REDUCE_EXPORTS=no
2658 CFG_REDUCE_EXPORTS=yes
2662 # detect the availability of the -Bsymbolic-functions linker optimization
2663 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2664 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2665 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2666 echo "-reduce-relocations was requested but this compiler does not support it"
2667 echo "Re-run configure with -v for more information"
2670 CFG_REDUCE_RELOCATIONS=no
2672 CFG_REDUCE_RELOCATIONS=yes
2676 # auto-detect GNU make support
2677 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2681 # find the default framework value
2682 if [ "$BUILD_ON_MAC" = "yes" ]; then
2683 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2684 CFG_FRAMEWORK="$CFG_SHARED"
2685 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2687 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2695 # auto-detect default include and library search paths
2696 gccout=`$TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null`
2697 libdirs=`echo "$gccout" | sed -n -e 's/^LIBRARY_PATH=\(.*\)/\1/p'`
2698 DEFAULT_LIBDIRS=`IFS=:; for i in $libdirs; do test -d "$i" && cd "$i" && pwd; done | sort -u`
2699 DEFAULT_INCDIRS=`echo "$gccout" | awk '
2700 /^End of search/ { yup=0 }
2701 yup { print substr($0, 2) }
2702 /^\#include </ { yup=1 }
2704 test -z "$DEFAULT_LIBDIRS" && DEFAULT_LIBDIRS="/lib
2706 test -z "$DEFAULT_INCDIRS" && DEFAULT_INCDIRS="/usr/include
2709 #setup the build parts
2710 if [ -z "$CFG_BUILD_PARTS" ]; then
2711 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2713 # build tests by default, if a developer build
2714 if [ "$CFG_DEV" = "yes" ]; then
2715 CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2718 # don't build tools by default when cross-compiling
2719 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2720 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2723 for nobuild in $CFG_NOBUILD_PARTS; do
2724 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2726 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2728 # echo "WARNING: libs is a required part of the build."
2730 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2733 #-------------------------------------------------------------------------------
2734 # post process QT_INSTALL_* variables
2735 #-------------------------------------------------------------------------------
2737 if [ -z "$QT_INSTALL_PREFIX" ]; then
2738 if [ "$CFG_DEV" = "yes" ]; then
2739 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2741 QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2744 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2746 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2747 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2748 if [ "$BUILD_ON_MAC" = "yes" ]; then
2749 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2752 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2755 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2757 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2758 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2759 if [ "$BUILD_ON_MAC" = "yes" ]; then
2760 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2765 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2768 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2770 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2771 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2772 if [ "$BUILD_ON_MAC" = "yes" ]; then
2773 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2774 QT_INSTALL_LIBS="/Library/Frameworks"
2778 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2780 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2782 if [ -z "$QT_INSTALL_BINS" ]; then #default
2783 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2784 if [ "$BUILD_ON_MAC" = "yes" ]; then
2785 QT_INSTALL_BINS="/Developer/Applications/Qt"
2788 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2790 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2792 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2793 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2794 if [ "$BUILD_ON_MAC" = "yes" ]; then
2795 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2798 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2800 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2802 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2803 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2804 if [ "$BUILD_ON_MAC" = "yes" ]; then
2805 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2808 [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2810 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2812 if [ -z "$QT_INSTALL_DATA" ]; then #default
2813 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2815 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2817 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2818 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2820 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2822 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2823 if [ "$BUILD_ON_MAC" = "yes" ]; then
2824 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2826 QT_INSTALL_SETTINGS=/etc/xdg
2829 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2831 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2832 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2833 if [ "$BUILD_ON_MAC" = "yes" ]; then
2834 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2837 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2839 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2842 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2843 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2844 if [ "$BUILD_ON_MAC" = "yes" ]; then
2845 QT_INSTALL_TESTS="/Developer/Tests/Qt"
2848 [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2850 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2852 #------- host paths --------
2854 if [ -z "$QT_HOST_PREFIX" ]; then
2855 QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2858 QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2862 if [ -z "$QT_HOST_BINS" ]; then #default
2864 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2865 if [ "$BUILD_ON_MAC" = "yes" ]; then
2866 QT_HOST_BINS="/Developer/Applications/Qt"
2869 [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2871 QT_HOST_BINS="$QT_INSTALL_BINS"
2874 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2876 if [ -z "$QT_HOST_DATA" ]; then #default
2878 QT_HOST_DATA="$QT_HOST_PREFIX"
2880 QT_HOST_DATA="$QT_INSTALL_DATA"
2883 QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2886 #-------------------------------------------------------------------------------
2887 # help - interactive parts of the script _after_ this section please
2888 #-------------------------------------------------------------------------------
2890 # next, emit a usage message if something failed.
2891 if [ "$OPT_HELP" = "yes" ]; then
2892 [ "x$ERROR" = "xyes" ] && echo
2893 if [ "$CFG_NIS" = "no" ]; then
2900 if [ "$CFG_CUPS" = "no" ]; then
2907 if [ "$CFG_ICONV" = "no" ]; then
2914 if [ "$CFG_LARGEFILE" = "no" ]; then
2921 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2929 if [ "$CFG_XCB" = "no" ]; then
2937 if [ "$CFG_EGLFS" = "no" ]; then
2945 if [ "$CFG_DIRECTFB" = "no" ]; then
2953 if [ "$CFG_LINUXFB" = "no" ]; then
2961 if [ "$CFG_KMS" = "no" ]; then
2969 if [ "$CFG_XINPUT2" = "no" ]; then
2977 if [ "$CFG_DBUS" = "no" ]; then
2985 if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2993 if [ "$CFG_GLIB" = "no" ]; then
3002 Usage: $relconf [options]
3004 Installation options:
3006 These are optional, but you may specify install directories.
3008 -prefix <dir> ...... This will install everything relative to <dir>
3009 (default $QT_INSTALL_PREFIX)
3011 -hostprefix [dir] .. Tools and libraries needed when developing
3012 applications are installed in [dir]. If [dir] is
3013 not given, the current build directory will be used.
3016 * -prefix-install .... Force a sandboxed "local" installation of
3017 Qt. This will install into
3018 $QT_INSTALL_PREFIX, if this option is
3019 disabled then some platforms will attempt a
3020 "system" install by placing default values to
3021 be placed in a system location other than
3024 You may use these to separate different parts of the install:
3026 -bindir <dir> ......... Executables will be installed to <dir>
3027 (default PREFIX/bin)
3028 -libdir <dir> ......... Libraries will be installed to <dir>
3029 (default PREFIX/lib)
3030 -docdir <dir> ......... Documentation will be installed to <dir>
3031 (default PREFIX/doc)
3032 -headerdir <dir> ...... Headers will be installed to <dir>
3033 (default PREFIX/include)
3034 -plugindir <dir> ...... Plugins will be installed to <dir>
3035 (default PREFIX/plugins)
3036 -importdir <dir> ...... Imports for QML will be installed to <dir>
3037 (default PREFIX/imports)
3038 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3040 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3041 (default PREFIX/translations)
3042 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3043 (default PREFIX/etc/settings)
3044 -examplesdir <dir> .... Examples will be installed to <dir>
3045 (default PREFIX/examples)
3046 -testsdir <dir> ....... Tests will be installed to <dir>
3047 (default PREFIX/tests)
3049 -hostbindir <dir> .. Host executables will be installed to <dir>
3050 (default HOSTPREFIX/bin)
3051 -hostdatadir <dir> . Data used by qmake will be installed to <dir>
3052 (default HOSTPREFIX)
3056 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3057 that needs to be evaluated. If the evaluation succeeds, the feature is
3058 included. Here is a short explanation of each option:
3060 * -release ........... Compile and link Qt with debugging turned off.
3061 -debug ............. Compile and link Qt with debugging turned on.
3062 -debug-and-release . Compile and link two versions of Qt, with and without
3063 debugging turned on (Mac only).
3065 -force-debug-info .. Create symbol files for release builds.
3067 -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3069 -opensource ........ Compile and link the Open-Source Edition of Qt.
3070 -commercial ........ Compile and link the Commercial Edition of Qt.
3072 -no-c++11 .......... Do not compile Qt with C++11 support enabled.
3073 + -c++11 ............. Compile Qt with C++11 support enabled.
3075 * -shared ............ Create and use shared Qt libraries.
3076 -static ............ Create and use static Qt libraries.
3078 * -process ........... Generate only a top-level Makefile.
3079 -fully-process ..... Generate Makefiles for the entire Qt tree.
3080 -dont-process ...... Do not generate any Makefiles.
3082 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3084 -fast .............. Configure Qt quickly by generating Makefiles only for
3085 library and subdirectory targets. All other Makefiles
3086 are created as wrappers, which will in turn run qmake.
3088 -no-largefile ...... Disables large file support.
3089 + -largefile ......... Enables Qt to access files larger than 4 GB.
3091 -no-accessibility .. Do not compile Accessibility support.
3092 + -accessibility ..... Compile Accessibility support.
3094 -no-sql-<driver> ... Disable SQL <driver> entirely.
3095 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3097 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3100 Possible values for <driver>:
3101 [ $CFG_SQL_AVAILABLE ]
3103 -system-sqlite ..... Use sqlite from the operating system.
3105 -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3106 + -javascript-jit .... Build the JavaScriptCore JIT compiler.
3108 -no-qml-debug ...... Do not build the in-process QML debugging support.
3109 + -qml-debug ......... Build the QML debugging support.
3111 -platform target ... The operating system and compiler you are building
3114 See the README file for a list of supported
3115 operating systems and compilers.
3117 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3118 -no-sse3 ........... Do not compile with use of SSE3 instructions.
3119 -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3120 -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3121 -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3122 -no-avx ............ Do not compile with use of AVX instructions.
3123 -no-avx2 ........... Do not compile with use of AVX2 instructions.
3124 -no-neon ........... Do not compile with use of NEON instructions.
3125 -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3126 -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3128 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3129 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3131 -testcocoon Instrument Qt with the TestCocoon code coverage tool.
3133 -D <string> ........ Add an explicit define to the preprocessor.
3134 -I <string> ........ Add an explicit include path.
3135 -L <string> ........ Add an explicit library path.
3137 + -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3138 configure determines whether to use pkg-config or not with
3139 some heuristics such as checking the environment variables.
3140 -no-pkg-config ..... Disable use of pkg-config.
3141 -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3142 detection heuristic).
3144 -help, -h .......... Display this information.
3146 Third Party Libraries:
3148 -qt-zlib ........... Use the zlib bundled with Qt.
3149 + -system-zlib ....... Use zlib from the operating system.
3150 See http://www.gzip.org/zlib
3152 -no-gif ............ Do not compile GIF reading support.
3154 -no-libpng ......... Do not compile PNG support.
3155 -qt-libpng ......... Use the libpng bundled with Qt.
3156 + -system-libpng ..... Use libpng from the operating system.
3157 See http://www.libpng.org/pub/png
3159 -no-libjpeg ........ Do not compile JPEG support.
3160 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3161 + -system-libjpeg .... Use libjpeg from the operating system.
3162 See http://www.ijg.org
3164 -no-openssl ........ Do not compile support for OpenSSL.
3165 + -openssl ........... Enable run-time OpenSSL support.
3166 -openssl-linked .... Enabled linked OpenSSL support.
3168 -qt-pcre ........... Use the PCRE library bundled with Qt.
3169 + -system-pcre ....... Use the PCRE library from the operating system.
3173 -make <part> ....... Add part to the list of parts to be built at make time.
3174 ($QT_DEFAULT_BUILD_PARTS)
3175 -nomake <part> ..... Exclude part from the list of parts to be built.
3177 -R <string> ........ Add an explicit runtime library path to the Qt
3179 -l <string> ........ Add an explicit library.
3181 -no-rpath .......... Do not use the library install path as a runtime
3183 + -rpath ............. Link Qt libraries and executables using the library
3184 install path as a runtime library path. Equivalent
3185 to -R install_libpath
3187 -continue .......... Continue as far as possible if an error occurs.
3189 -verbose, -v ....... Print verbose information about each step of the
3192 -silent ............ Reduce the build output so that warnings and errors
3193 can be seen more easily.
3195 * -no-optimized-qmake ... Do not build qmake optimized.
3196 -optimized-qmake ...... Build qmake optimized.
3198 -no-gui ............ Don't build the Qt GUI library
3200 $NSN -no-nis ............ Do not compile NIS support.
3201 $NSY -nis ............... Compile NIS support.
3203 $CUN -no-cups ........... Do not compile CUPS support.
3204 $CUY -cups .............. Compile CUPS support.
3205 Requires cups/cups.h and libcups.so.2.
3207 $CIN -no-iconv .......... Do not compile support for iconv(3).
3208 $CIY -iconv ............. Compile support for iconv(3).
3210 $PHN -no-pch ............ Do not use precompiled header support.
3211 $PHY -pch ............... Use precompiled header support.
3213 $DBN -no-dbus ........... Do not compile the QtDBus module.
3214 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3215 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3217 -reduce-relocations ..... Reduce relocations in the libraries through extra
3218 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3219 experimental; needs GNU ld >= 2.18).
3221 -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3223 -device <name> ............... Cross-compile for device <name> (experimental)
3224 -device-option <key=value> ... Add device specific options for the device mkspec
3227 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3228 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3230 $XCBN -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3231 $XCBY -xcb ............... Compile Xcb support.
3233 $EGLFSN -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3234 $EGLFSY -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3236 $DFBN -no-directfb ....... Do not compile DirectFB support.
3237 $DFBY -directfb .......... Compile DirectFB support.
3239 $LFBN -no-linuxfb ........ Do not compile Linux Framebuffer support.
3240 $LFBY -linuxfb ........... Compile Linux Framebuffer support.
3242 $KMSN -no-kms ............ Do not compile KMS support.
3243 $KMSY -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3245 -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3247 -xplatform target ... The target platform when cross-compiling.
3249 -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3250 -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3252 -no-feature-<feature> Do not compile in <feature>.
3253 -feature-<feature> .. Compile in <feature>. The available features
3254 are described in src/corelib/global/qfeatures.txt
3256 -no-freetype ........ Do not compile in Freetype2 support.
3257 -qt-freetype ........ Use the libfreetype bundled with Qt.
3258 * -system-freetype .... Use libfreetype from the operating system.
3259 See http://www.freetype.org/
3261 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3262 default ($CFG_QCONFIG).
3264 -no-opengl .......... Do not support OpenGL.
3265 -opengl <api> ....... Enable OpenGL support
3266 With no parameter, this will attempt to auto-detect
3267 OpenGL ES 2, or regular desktop OpenGL.
3268 Use es2 for <api> to override auto-detection.
3270 $GBN -no-glib ........... Do not compile Glib support.
3271 $GBY -glib .............. Compile Glib support.
3274 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3277 $X2N -no-xinput2......... Do not compile XInput2 support.
3278 $X2Y -xinput2............ Compile XInput2 support.
3284 if [ "$BUILD_ON_MAC" = "yes" ]; then
3289 -Fstring ........... Add an explicit framework path.
3290 -fw string ......... Add an explicit framework.
3292 * -framework ......... Build Qt as a series of frameworks and
3293 link tools against those frameworks.
3294 -no-framework ...... Do not build Qt as a series of frameworks.
3296 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3297 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3299 -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3300 * -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3301 QT_ENABLE_HARFBUZZ environment variable.
3306 [ "x$ERROR" = "xyes" ] && exit 1
3311 # -----------------------------------------------------------------------------
3312 # LICENSING, INTERACTIVE PART
3313 # -----------------------------------------------------------------------------
3316 echo "This is the Qt ${EditionString} Edition."
3319 if [ "$Edition" = "OpenSource" ]; then
3321 echo "You are licensed to use this software under the terms of"
3322 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3323 if [ -f "$relpath/LICENSE.GPL3" ]; then
3324 echo "You are also licensed to use this software under the terms of"
3325 echo "the GNU General Public License (GPL) versions 3."
3331 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3332 echo "You have already accepted the terms of the $LicenseType license."
3335 if [ -f "$relpath/LICENSE.GPL3" ]; then
3336 echo "Type '3' to view the GNU General Public License version 3."
3338 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3339 echo "Type 'yes' to accept this license offer."
3340 echo "Type 'no' to decline this license offer."
3342 echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3346 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3348 elif [ "$acceptance" = "no" ]; then
3349 echo "You are not licensed to use this software."
3352 elif [ "$acceptance" = "3" ]; then
3353 more "$relpath/LICENSE.GPL3"
3354 elif [ "$acceptance" = "L" ]; then
3355 more "$relpath/LICENSE.LGPL"
3358 elif [ "$Edition" = "Preview" ]; then
3359 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3362 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3363 echo "You have already accepted the terms of the $LicenseType license."
3366 echo "You are licensed to use this software under the terms of"
3367 echo "the $TheLicense"
3369 echo "Type '?' to read the Preview License."
3370 echo "Type 'yes' to accept this license offer."
3371 echo "Type 'no' to decline this license offer."
3373 echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3377 if [ "$acceptance" = "yes" ]; then
3379 elif [ "$acceptance" = "no" ] ;then
3380 echo "You are not licensed to use this software."
3383 elif [ "$acceptance" = "?" ]; then
3384 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3387 elif [ "$Edition" != "OpenSource" ]; then
3388 if [ -n "$ExpiryDate" ]; then
3389 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3390 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3391 Today=`date +%Y%m%d`
3392 if [ "$Today" -gt "$ExpiryDate" ]; then
3393 case "$LicenseType" in
3394 Commercial|Academic|Educational)
3395 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3397 echo "NOTICE NOTICE NOTICE NOTICE"
3399 echo " Your support and upgrade period has expired."
3401 echo " You are no longer licensed to use this version of Qt."
3402 echo " Please contact qt-info@nokia.com to renew your support"
3403 echo " and upgrades for this license."
3405 echo "NOTICE NOTICE NOTICE NOTICE"
3410 echo "WARNING WARNING WARNING WARNING"
3412 echo " Your support and upgrade period has expired."
3414 echo " You may continue to use your last licensed release"
3415 echo " of Qt under the terms of your existing license"
3416 echo " agreement. But you are not entitled to technical"
3417 echo " support, nor are you entitled to use any more recent"
3418 echo " Qt releases."
3420 echo " Please contact qt-info@nokia.com to renew your"
3421 echo " support and upgrades for this license."
3423 echo "WARNING WARNING WARNING WARNING"
3430 echo "NOTICE NOTICE NOTICE NOTICE"
3432 echo " Your Evaluation license has expired."
3434 echo " You are no longer licensed to use this software. Please"
3435 echo " contact qt-info@nokia.com to purchase license, or install"
3436 echo " the Qt Open Source Edition if you intend to develop free"
3439 echo "NOTICE NOTICE NOTICE NOTICE"
3446 TheLicense=`head -n 1 "$outpath/LICENSE"`
3448 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3449 echo "You have already accepted the terms of the $TheLicense."
3452 echo "You are licensed to use this software under the terms of"
3453 echo "the $TheLicense."
3455 echo "Type '?' to view the $TheLicense."
3456 echo "Type 'yes' to accept this license offer."
3457 echo "Type 'no' to decline this license offer."
3459 echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3463 if [ "$acceptance" = "yes" ]; then
3465 elif [ "$acceptance" = "no" ]; then
3466 echo "You are not licensed to use this software."
3469 else [ "$acceptance" = "?" ]
3470 more "$outpath/LICENSE"
3475 # this should be moved somewhere else
3478 AIX_VERSION=`uname -v`
3479 if [ "$AIX_VERSION" -lt "5" ]; then
3480 QMakeVar add QMAKE_LIBS_X11 -lbind
3487 #-------------------------------------------------------------------------------
3488 # generate qconfig.cpp
3489 #-------------------------------------------------------------------------------
3490 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3492 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3494 static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee";
3495 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3497 /* Installation date */
3498 static const char qt_configure_installation [12+11] = "qt_instdate=`date +%Y-%m-%d`";
3500 /* Installation Info */
3501 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3502 "qt_prfxpath=$QT_INSTALL_PREFIX",
3503 "qt_docspath=$QT_INSTALL_DOCS",
3504 "qt_hdrspath=$QT_INSTALL_HEADERS",
3505 "qt_libspath=$QT_INSTALL_LIBS",
3506 "qt_binspath=$QT_INSTALL_BINS",
3507 "qt_plugpath=$QT_INSTALL_PLUGINS",
3508 "qt_impspath=$QT_INSTALL_IMPORTS",
3509 "qt_datapath=$QT_INSTALL_DATA",
3510 "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3511 "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3512 "qt_tstspath=$QT_INSTALL_TESTS",
3513 #ifdef QT_BUILD_QMAKE
3514 "qt_ssrtpath=$CFG_SYSROOT",
3515 "qt_hpfxpath=$QT_HOST_PREFIX",
3516 "qt_hbinpath=$QT_HOST_BINS",
3517 "qt_hdatpath=$QT_HOST_DATA",
3520 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3523 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3525 /* strlen( "qt_lcnsxxxx" ) == 12 */
3526 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3527 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3529 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3532 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3533 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3534 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3536 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3537 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3538 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3541 # -----------------------------------------------------------------------------
3542 if [ "$LicenseType" = "Evaluation" ]; then
3543 EVALKEY=qt_qevalkey=$LicenseKeyExt
3544 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3545 EVALKEY=qt_qevalkey=
3548 if [ -n "$EVALKEY" ]; then
3549 rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3550 cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3551 /* Evaluation license key */
3552 static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
3554 chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3558 # -----------------------------------------------------------------------------
3560 # -----------------------------------------------------------------------------
3563 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3565 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3566 if [ "$OPT_SHADOW" = "yes" ]; then
3567 "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3568 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3569 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3573 # $1: input variable name (awk regexp)
3574 # $2: optional output variable name
3575 # $3: optional value transformation (sed command)
3576 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3577 # is where the resulting variable is written to
3578 setBootstrapVariable()
3580 getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3584 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3585 echo "Creating qmake. Please wait..."
3588 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3589 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3590 if [ -f "$QCONFIG_H" ]; then
3591 OLD_QCONFIG_H=$QCONFIG_H
3592 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3595 # create temporary qconfig.h for compiling qmake, if it doesn't exist
3596 # when building qmake, we use #defines for the install paths,
3597 # however they are real functions in the library
3598 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3599 mkdir -p "$outpath/src/corelib/global"
3600 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3601 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3604 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3606 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3607 rm -rf mkspecs/default mkspecs/default-host
3608 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3609 ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3610 mkdir -p "$outpath/qmake" || exit
3612 for mkfile in GNUmakefile Makefile; do
3615 in_mkfile="${mkfile}.in"
3616 if [ "$mkfile" = "Makefile" ]; then
3617 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3618 # (cd qmake && qmake) >/dev/null 2>&1 && continue
3620 in_mkfile="${mkfile}.unix"
3622 in_mkfile="$relpath/qmake/$in_mkfile"
3623 mkfile="$outpath/qmake/$mkfile"
3624 if [ -f "$mkfile" ]; then
3625 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3628 [ -f "$in_mkfile" ] || continue
3630 echo "########################################################################" > "$mkfile"
3631 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3632 echo "########################################################################" >> "$mkfile"
3635 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3636 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3637 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3639 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3640 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3643 [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3644 setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3645 setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3646 setBootstrapVariable QMAKE_CFLAGS
3647 setBootstrapVariable QMAKE_CXXFLAGS
3648 setBootstrapVariable QMAKE_LFLAGS
3650 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3651 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3652 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3654 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3655 setBootstrapVariable QMAKE_CFLAGS_RELEASE
3656 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3657 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3658 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3659 elif [ "$CFG_DEBUG" = "yes" ]; then
3660 setBootstrapVariable QMAKE_CFLAGS_DEBUG
3661 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3662 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3663 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3666 if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3667 setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3668 for rpath in $RPATH_FLAGS; do
3669 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3672 if [ "$BUILD_ON_MAC" = "yes" ]; then
3673 echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3674 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3675 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3676 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3677 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3678 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3679 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3680 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3681 if [ '!' -z "$CFG_SDK" ]; then
3682 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3683 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3684 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3685 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3686 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3689 if [ '!' -z "$D_FLAGS" ]; then
3690 EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3692 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3693 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3694 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3695 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3697 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3698 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3699 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3700 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3701 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3702 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3703 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3704 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3705 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3706 -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3708 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3709 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3710 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3711 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3716 QMAKE_BUILD_ERROR=no
3717 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3718 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3719 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3720 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3723 #-------------------------------------------------------------------------------
3724 # create a qt.conf for the Qt build tree itself
3725 #-------------------------------------------------------------------------------
3727 QTCONFFILE="$outpath/bin/qt.conf"
3728 cat > "$QTCONFFILE" <<EOF
3733 #-------------------------------------------------------------------------------
3735 #-------------------------------------------------------------------------------
3736 if [ -z "$PKG_CONFIG" ]; then
3737 # See if PKG_CONFIG is set in the mkspec:
3738 PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3740 if [ -z "$PKG_CONFIG" ]; then
3741 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3744 if [ "$CFG_PKGCONFIG" = "no" ]; then
3746 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3748 echo >&2 "You have asked to use pkg-config. Please make sure you have"
3749 echo >&2 "a correctly setup pkg-config environment!"
3751 elif [ -n "$PKG_CONFIG" ]; then
3752 # found a pkg-config
3753 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3754 # when xcompiling, check environment to see if it's actually usable
3755 if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3756 if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3757 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3758 if [ -n "$GCC_MACHINE_DUMP" ]; then
3759 PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3761 export PKG_CONFIG_LIBDIR
3762 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3763 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3764 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3765 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3766 echo >&2 "Set this variable to the directory that contains target .pc files"
3767 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3768 echo >&2 "use -force-pkg-config to override this test."
3772 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3775 if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3776 if [ -n "$CFG_SYSROOT" ]; then
3777 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3778 export PKG_CONFIG_SYSROOT_DIR
3779 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3780 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3781 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3782 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3783 echo >&2 "or use -force-pkg-config to override this test."
3787 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3791 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3792 echo >&2 "Could not detect pkg-config from mkspec or PATH."
3796 if [ -z "$PKG_CONFIG" ]; then
3797 QT_CONFIG="$QT_CONFIG no-pkg-config"
3800 #-------------------------------------------------------------------------------
3801 # write out device config before we run the test.
3802 #-------------------------------------------------------------------------------
3803 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3804 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3805 rm -f "$DEVICE_VARS_FILE"
3807 mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3808 DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3811 #-------------------------------------------------------------------------------
3812 # tests that need qmake
3813 #-------------------------------------------------------------------------------
3815 # parameters: path, name, extra args
3818 path=config.tests/$1
3821 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_CONFIG_TEST_COMMANDLINE "$@"
3824 #-------------------------------------------------------------------------------
3825 # determine the target and host architectures
3826 #-------------------------------------------------------------------------------
3828 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3829 OUTFILE=$outpath/arch.result
3830 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_CONFIG_TEST_COMMANDLINE
3831 if [ $? -eq 0 ]; then
3832 eval `cat "$OUTFILE"`
3835 echo "Could not determine the target architecture!"
3836 echo "Turn on verbose messaging (-v) to see the final report."
3838 rm -f "$OUTFILE" 2>/dev/null
3839 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3841 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3842 # Do the same test again, using the host compiler
3843 SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_CONFIG_TEST_COMMANDLINE
3844 if [ $? -eq 0 ]; then
3845 eval `cat "$OUTFILE"`
3848 echo "Could not determine the host architecture!"
3849 echo "Turn on verbose messaging (-v) to see the final report."
3851 rm -f "$OUTFILE" 2>/dev/null
3852 [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3854 # not cross compiling, host == target
3855 CFG_HOST_ARCH="$CFG_ARCH"
3856 CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3860 if [ "$OPT_VERBOSE" = "yes" ]; then
3861 echo "System architecture: '$CFG_ARCH'"
3862 echo "Host architecture: '$CFG_HOST_ARCH'"
3865 #-------------------------------------------------------------------------------
3866 # functionality tests
3867 #-------------------------------------------------------------------------------
3869 # Detect C++11 support
3870 if [ "$CFG_CXX11" != "no" ]; then
3871 if compileTest unix/c++11 "C++11"; then
3873 elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3874 echo "C++11 support cannot be enabled due to functionality tests!"
3875 echo " Turn on verbose messaging (-v) to $0 to see the final report."
3876 echo " If you believe this message is in error you may use the continue"
3877 echo " switch (-continue) to $0 to continue."
3884 # detect availability of float math.h functions
3885 if compileTest unix/floatmath "floatmath"; then
3886 CFG_USE_FLOATMATH=yes
3888 CFG_USE_FLOATMATH=no
3891 # detect sse2 support
3892 if [ "${CFG_SSE2}" = "auto" ]; then
3893 if compileTest common/sse2 "sse2"; then
3900 # detect sse3 support
3901 if [ "${CFG_SSE3}" = "auto" ]; then
3902 if compileTest common/sse3 "sse3"; then
3909 # detect ssse3 support
3910 if [ "${CFG_SSSE3}" = "auto" ]; then
3911 if compileTest common/ssse3 "ssse3"; then
3918 # detect sse4.1 support
3919 if [ "${CFG_SSE4_1}" = "auto" ]; then
3920 if compileTest common/sse4_1 "sse4_1"; then
3927 # detect sse4.2 support
3928 if [ "${CFG_SSE4_2}" = "auto" ]; then
3929 if compileTest common/sse4_2 "sse4_2"; then
3936 # detect avx support
3937 if [ "${CFG_AVX}" = "auto" ]; then
3938 if compileTest common/avx "avx"; then
3939 case "$XQMAKESPEC" in
3941 # Some clang versions produce internal compiler errors compiling Qt AVX code
3942 case `$TEST_COMPILER --version` in
3943 Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3945 if [ "$OPT_VERBOSE" = "yes" ]; then
3946 echo 'AVX support disabled for blacklisted clang compiler'
3963 # detect avx2 support
3964 if [ "${CFG_AVX}" = "no" ]; then
3967 if [ "${CFG_AVX2}" = "auto" ]; then
3968 if compileTest common/avx2 "avx2"; then
3975 # check iWMMXt support
3976 if [ "$CFG_IWMMXT" = "yes" ]; then
3977 compileTest unix/iwmmxt "iwmmxt"
3978 if [ $? != "0" ]; then
3979 echo "The iWMMXt functionality test failed!"
3980 echo " Please make sure your compiler supports iWMMXt intrinsics!"
3985 # detect neon support
3986 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3987 if compileTest unix/neon "neon"; then
3992 elif [ "$CFG_ARCH" != "arm" ]; then
3996 # detect mips_dsp support
3997 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3998 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
4003 elif [ "$CFG_ARCH" != "mips" ]; then
4007 # detect mips_dspr2 support
4008 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
4009 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
4014 elif [ "$CFG_ARCH" != "mips" ]; then
4018 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4021 if [ "$CFG_ZLIB" = "no" ]; then
4022 # Note: Qt no longer support builds without zlib
4023 # So we force a "no" to be "auto" here.
4024 # If you REALLY really need no zlib support, you can still disable
4025 # it by doing the following:
4026 # add "no-zlib" to mkspecs/qconfig.pri
4027 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4029 # There's no guarantee that Qt will build under those conditions
4034 if [ "$CFG_ZLIB" = "auto" ]; then
4035 if compileTest unix/zlib "zlib"; then
4042 if [ "$CFG_LARGEFILE" = "auto" ]; then
4043 #Large files should be enabled for all Linux systems
4047 if [ "$CFG_GUI" = "no" ]; then
4048 QPA_PLATFORM_GUARD=no
4051 # detect how jpeg should be built
4052 if [ "$CFG_JPEG" = "auto" ]; then
4053 if [ "$CFG_SHARED" = "yes" ]; then
4060 if [ "$CFG_LIBJPEG" = "auto" ]; then
4061 if compileTest unix/libjpeg "libjpeg"; then
4068 # detect how gif should be built
4069 if [ "$CFG_GIF" = "auto" ]; then
4070 if [ "$CFG_SHARED" = "yes" ]; then
4078 if [ "$CFG_LIBPNG" = "auto" ]; then
4079 if compileTest unix/libpng "libpng"; then
4086 if [ "$CFG_EGLFS" = "yes" ]; then
4087 if [ "$CFG_EGL" = "no" ]; then
4088 echo "The EGLFS plugin requires EGL support and cannot be built"
4091 if [ "$CFG_OPENGL" != "es2" ]; then
4092 echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4099 if [ "$CFG_KMS" = "yes" ]; then
4100 if [ "$CFG_EGL" = "no" ]; then
4101 echo "The KMS plugin requires EGL support and cannot be built"
4104 if [ "$CFG_OPENGL" != "es2" ]; then
4105 echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4110 # auto-detect SQL-modules support
4111 for _SQLDR in $CFG_SQL_AVAILABLE; do
4114 if [ "$CFG_SQL_mysql" != "no" ]; then
4115 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4116 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4117 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4118 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4119 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4120 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4121 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4123 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4124 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4125 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4126 echo " You need MySql 4 or higher."
4127 echo " If you believe this message is in error you may use the continue"
4128 echo " switch (-continue) to $0 to continue."
4133 QT_LFLAGS_MYSQL_R=""
4137 if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4138 QMakeVar add CONFIG use_libmysqlclient_r
4139 if [ "$CFG_SQL_mysql" = "auto" ]; then
4140 CFG_SQL_mysql=plugin
4142 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4143 elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4144 if [ "$CFG_SQL_mysql" = "auto" ]; then
4145 CFG_SQL_mysql=plugin
4148 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4149 echo "MySQL support cannot be enabled due to functionality tests!"
4150 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4151 echo " If you believe this message is in error you may use the continue"
4152 echo " switch (-continue) to $0 to continue."
4157 QT_LFLAGS_MYSQL_R=""
4165 if [ "$CFG_SQL_psql" != "no" ]; then
4166 # Be careful not to use native pg_config when cross building.
4167 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4168 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4169 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4171 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4172 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4173 # But, respect PSQL_LIBS if set
4174 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4175 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4176 if [ "$CFG_SQL_psql" = "auto" ]; then
4180 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4181 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4182 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4183 echo " If you believe this message is in error you may use the continue"
4184 echo " switch (-continue) to $0 to continue."
4195 if [ "$CFG_SQL_odbc" != "no" ]; then
4196 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4197 if [ "$CFG_SQL_odbc" = "auto" ]; then
4201 if compileTest unix/iodbc "iODBC"; then
4202 QT_LFLAGS_ODBC="-liodbc"
4203 if [ "$CFG_SQL_odbc" = "auto" ]; then
4207 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4208 echo "ODBC support cannot be enabled due to functionality tests!"
4209 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4210 echo " If you believe this message is in error you may use the continue"
4211 echo " switch (-continue) to $0 to continue."
4221 if [ "$CFG_SQL_oci" != "no" ]; then
4222 if compileTest unix/oci "OCI"; then
4223 if [ "$CFG_SQL_oci" = "auto" ]; then
4227 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4228 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4229 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4230 echo " If you believe this message is in error you may use the continue"
4231 echo " switch (-continue) to $0 to continue."
4240 if [ "$CFG_SQL_tds" != "no" ]; then
4241 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4242 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4243 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4244 if [ "$CFG_SQL_tds" = "auto" ]; then
4248 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4249 echo "TDS support cannot be enabled due to functionality tests!"
4250 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4251 echo " If you believe this message is in error you may use the continue"
4252 echo " switch (-continue) to $0 to continue."
4261 if [ "$CFG_SQL_db2" != "no" ]; then
4262 if compileTest unix/db2 "DB2"; then
4263 if [ "$CFG_SQL_db2" = "auto" ]; then
4267 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4268 echo "ODBC support cannot be enabled due to functionality tests!"
4269 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4270 echo " If you believe this message is in error you may use the continue"
4271 echo " switch (-continue) to $0 to continue."
4280 if [ "$CFG_SQL_ibase" != "no" ]; then
4281 if compileTest unix/ibase "InterBase"; then
4282 if [ "$CFG_SQL_ibase" = "auto" ]; then
4283 CFG_SQL_ibase=plugin
4286 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4287 echo "InterBase support cannot be enabled due to functionality tests!"
4288 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4289 echo " If you believe this message is in error you may use the continue"
4290 echo " switch (-continue) to $0 to continue."
4299 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4300 if compileTest unix/sqlite2 "SQLite2"; then
4301 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4302 CFG_SQL_sqlite2=plugin
4305 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4306 echo "SQLite2 support cannot be enabled due to functionality tests!"
4307 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4308 echo " If you believe this message is in error you may use the continue"
4309 echo " switch (-continue) to $0 to continue."
4318 if [ "$CFG_SQL_sqlite" != "no" ]; then
4319 SQLITE_AUTODETECT_FAILED="no"
4320 if [ "$CFG_SQLITE" = "system" ]; then
4321 if [ -n "$PKG_CONFIG" ]; then
4322 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4323 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4326 QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4328 if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4329 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4330 CFG_SQL_sqlite=plugin
4332 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4334 SQLITE_AUTODETECT_FAILED="yes"
4337 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4338 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4339 CFG_SQL_sqlite=plugin
4342 SQLITE_AUTODETECT_FAILED="yes"
4346 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4347 echo "SQLite support cannot be enabled due to functionality tests!"
4348 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4349 echo " If you believe this message is in error you may use the continue"
4350 echo " switch (-continue) to $0 to continue."
4356 if [ "$OPT_VERBOSE" = "yes" ]; then
4357 echo "unknown SQL driver: $_SQLDR"
4363 # auto-detect NIS support
4364 if [ "$CFG_NIS" != "no" ]; then
4365 if compileTest unix/nis "NIS"; then
4368 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4369 echo "NIS support cannot be enabled due to functionality tests!"
4370 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4371 echo " If you believe this message is in error you may use the continue"
4372 echo " switch (-continue) to $0 to continue."
4380 # auto-detect CUPS support
4381 if [ "$CFG_CUPS" != "no" ]; then
4382 if compileTest unix/cups "Cups"; then
4385 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4386 echo "Cups support cannot be enabled due to functionality tests!"
4387 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4388 echo " If you believe this message is in error you may use the continue"
4389 echo " switch (-continue) to $0 to continue."
4397 # auto-detect iconv(3) support
4398 if [ "$CFG_ICONV" != "no" ]; then
4399 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4401 elif compileTest unix/iconv "POSIX iconv"; then
4403 elif compileTest unix/sun-libiconv "SUN libiconv"; then
4405 elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4408 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4409 echo "Iconv support cannot be enabled due to functionality tests!"
4410 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4411 echo " If you believe this message is in error you may use the continue"
4412 echo " switch (-continue) to $0 to continue."
4420 # auto-detect libdbus-1 support
4421 if [ "$CFG_DBUS" != "no" ]; then
4422 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4423 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4424 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4426 if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4427 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4428 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4429 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4431 if [ "$CFG_DBUS" = "auto" ]; then
4433 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4434 # CFG_DBUS is "yes" or "linked" here
4436 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4437 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4438 echo " If you believe this message is in error you may use the continue"
4439 echo " switch (-continue) to $0 to continue."
4445 # auto-detect Glib support
4446 if [ "$CFG_GLIB" != "no" ]; then
4447 if [ -n "$PKG_CONFIG" ]; then
4448 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4449 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4451 if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4453 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4454 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4456 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4457 echo "Glib support cannot be enabled due to functionality tests!"
4458 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4459 echo " If you believe this message is in error you may use the continue"
4460 echo " switch (-continue) to $0 to continue."
4468 # auto-detect GTK style support
4469 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4470 if [ -n "$PKG_CONFIG" ]; then
4471 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4472 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4474 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4476 QT_CONFIG="$QT_CONFIG gtkstyle"
4477 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4478 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4480 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4481 echo "Gtk theme support cannot be enabled due to functionality tests!"
4482 echo " Turn on verbose messaging (-v) to $0 to see the fin al report."
4483 echo " If you believe this message is in error you may use the continue"
4484 echo " switch (-continue) to $0 to continue."
4490 elif [ "$CFG_GLIB" = "no" ]; then
4495 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4496 if [ -n "$PKG_CONFIG" ]; then
4497 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4498 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4500 if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4502 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4503 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4505 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4506 echo "Gstreamer support cannot be enabled due to functionality tests!"
4507 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4508 echo " If you believe this message is in error you may use the continue"
4509 echo " switch (-continue) to $0 to continue."
4515 elif [ "$CFG_GLIB" = "no" ]; then
4519 # auto-detect libicu support
4520 if [ "$CFG_ICU" != "no" ]; then
4521 if compileTest unix/icu "ICU"; then
4522 [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4524 if [ "$CFG_ICU" = "auto" ]; then
4526 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4529 echo "The ICU library support cannot be enabled."
4530 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4531 echo " If you believe this message is in error you may use the continue"
4532 echo " switch (-continue) to $0 to continue."
4538 # Auto-detect PulseAudio support
4539 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4540 if [ -n "$PKG_CONFIG" ]; then
4541 QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4542 QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4544 if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4546 QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4547 QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4549 if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4550 echo "PulseAudio support cannot be enabled due to functionality tests!"
4551 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4552 echo " If you believe this message is in error you may use the continue"
4553 echo " switch (-continue) to $0 to continue."
4562 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4563 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4564 if [ "$CFG_GUI" = "no" ]; then
4565 if [ "$CFG_OPENGL" = "auto" ]; then
4568 if [ "$CFG_OPENGL" != "no" ]; then
4569 echo "OpenGL enabled, but GUI disabled."
4570 echo " You might need to either enable the GUI or disable OpenGL"
4574 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4575 if compileTest x11/opengl "OpenGL"; then
4577 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4580 if [ "$CFG_OPENGL" = "yes" ]; then
4581 echo "All the OpenGL functionality tests failed!"
4582 echo " You might need to modify the include and library search paths by editing"
4583 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4584 echo " ${XQMAKESPEC}."
4591 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4592 if [ "$CFG_OPENGL" = "desktop" ]; then
4593 compileTest x11/glxfbconfig "OpenGL"
4594 if [ $? != "0" ]; then
4595 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4602 elif [ "$CFG_OPENGL" = "es2" ]; then
4604 compileTest unix/opengles2 "OpenGL ES 2.x"
4605 if [ $? != "0" ]; then
4606 echo "The OpenGL ES 2.0 functionality test failed!"
4607 echo " You might need to modify the include and library search paths by editing"
4608 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4609 echo " ${XQMAKESPEC}."
4612 elif [ "$CFG_OPENGL" = "desktop" ]; then
4613 # Desktop OpenGL support
4614 compileTest x11/opengl "OpenGL"
4615 if [ $? != "0" ]; then
4616 echo "The OpenGL functionality test failed!"
4617 echo " You might need to modify the include and library search paths by editing"
4618 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4619 echo " ${XQMAKESPEC}."
4624 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4625 compileTest x11/glxfbconfig "OpenGL"
4626 if [ $? != "0" ]; then
4627 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4634 fi # X11/MINGW OpenGL
4636 if [ "$BUILD_ON_MAC" = "yes" ]; then
4637 if [ "$CFG_COREWLAN" = "auto" ]; then
4638 if compileTest mac/corewlan "CoreWlan"; then
4646 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4647 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4648 if compileTest unix/opengldesktop "OpenGL"; then
4650 elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4653 if [ "$CFG_OPENGL" = "yes" ]; then
4654 echo "All the OpenGL functionality tests failed!"
4655 echo " You might need to modify the include and library search paths by editing"
4656 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4657 echo " ${XQMAKESPEC}."
4662 elif [ "$CFG_OPENGL" = "es2" ]; then
4664 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4665 QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4666 QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4667 QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4668 QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4669 QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4670 QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4671 QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4674 compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4675 if [ $? != "0" ]; then
4676 echo "The OpenGL ES 2.0 functionality test failed!"
4677 echo " You might need to modify the include and library search paths by editing"
4678 echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4679 echo " ${XQMAKESPEC}."
4682 elif [ "$CFG_OPENGL" = "desktop" ]; then
4683 # Desktop OpenGL support
4684 compileTest unix/opengldesktop "OpenGL"
4685 if [ $? != "0" ]; then
4686 echo "The OpenGL functionality test failed!"
4687 echo " You might need to modify the include and library search paths by editing"
4688 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4689 echo " ${XQMAKESPEC}."
4694 # auto-detect FontConfig support
4695 if [ "$CFG_FONTCONFIG" != "no" ]; then
4696 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4697 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4698 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4700 QT_CFLAGS_FONTCONFIG=
4701 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4703 if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4704 QT_CONFIG="$QT_CONFIG fontconfig"
4705 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4706 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4708 CFG_LIBFREETYPE=system
4715 # Save these for a check later
4716 ORIG_CFG_XCB="$CFG_XCB"
4717 ORIG_CFG_EGLFS="$CFG_EGLFS"
4718 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4719 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4720 ORIG_CFG_KMS="$CFG_KMS"
4722 if [ "$CFG_LIBUDEV" != "no" ]; then
4723 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4724 QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4725 QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4726 QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4727 QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4729 if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4731 QT_CONFIG="$QT_CONFIG libudev"
4732 elif [ "$CFG_LIBUDEV" = "yes" ]; then
4733 echo "The libudev functionality test failed!"
4739 if [ "$CFG_LIBUDEV" = "no" ]; then
4740 QMakeVar add DEFINES QT_NO_LIBUDEV
4743 if [ "$CFG_EVDEV" != "no" ]; then
4744 if compileTest unix/evdev "evdev"; then
4746 QT_CONFIG="$QT_CONFIG evdev"
4747 elif [ "$CFG_EVDEV" = "yes" ]; then
4748 echo "The evdev functionality test failed!"
4754 if [ "$CFG_EVDEV" = "no" ]; then
4755 QMakeVar add DEFINES QT_NO_EVDEV
4758 # Check we actually have X11 :-)
4759 if compileTest x11/xlib "XLib"; then
4760 QT_CONFIG="$QT_CONFIG xlib"
4763 # auto-detect Xrender support
4764 if [ "$CFG_XRENDER" != "no" ]; then
4765 if compileTest x11/xrender "Xrender"; then
4767 QT_CONFIG="$QT_CONFIG xrender"
4769 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4770 echo "Xrender support cannot be enabled due to functionality tests!"
4771 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4772 echo " If you believe this message is in error you may use the continue"
4773 echo " switch (-continue) to $0 to continue."
4781 if [ "$CFG_XCB" != "no" ]; then
4782 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4783 QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4784 QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4786 if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4788 if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4789 QT_CONFIG="$QT_CONFIG xcb-render"
4792 if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4794 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4797 if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4798 QT_CONFIG="$QT_CONFIG xcb-xlib"
4801 # auto-detect XInput2 support. Needed by xcb too.
4802 if [ "$CFG_XINPUT2" != "no" ]; then
4803 if compileTest x11/xinput2 "XInput2"; then
4807 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4808 echo "XInput2 support cannot be enabled due to functionality tests!"
4809 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4810 echo " If you believe this message is in error you may use the continue"
4811 echo " switch (-continue) to $0 to continue."
4819 if [ "$CFG_XCB" = "yes" ]; then
4820 echo "The XCB test failed!"
4821 echo " You might need to install dependency packages."
4822 echo " See src/plugins/platforms/xcb/README."
4828 if [ "$CFG_XCB" = "no" ]; then
4829 QMakeVar add DEFINES QT_NO_XCB
4832 if [ "$CFG_DIRECTFB" != "no" ]; then
4833 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4834 QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4835 QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4836 if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4838 elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4839 echo " DirectFB support cannot be enabled due to functionality tests!"
4840 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4841 echo " If you believe this message is in error you may use the continue"
4842 echo " switch (-continue) to $0 to continue."
4852 if [ "$CFG_LINUXFB" != "no" ]; then
4853 if compileTest qpa/linuxfb "LinuxFB"; then
4855 elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4856 echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4857 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4858 echo " If you believe this message is in error you may use the continue"
4859 echo " switch (-continue) to $0 to continue."
4866 if [ "$CFG_KMS" != "no" ]; then
4867 if compileTest qpa/kms "KMS"; then
4869 elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4870 echo " KMS support cannot be enabled due to functionality tests!"
4871 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4872 echo " If you believe this message is in error you may use the continue"
4873 echo " switch (-continue) to $0 to continue."
4880 # Detect libxkbcommon
4881 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4882 QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4883 QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4884 QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4885 QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4887 QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4891 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4892 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4893 QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4894 QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4895 QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4896 QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4897 QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4898 fi # detect EGL support
4899 if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4901 elif [ "$CFG_EGL" = "yes" ]; then
4902 echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4903 echo " You might need to modify the include and library search paths by editing"
4904 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4909 elif [ "$CFG_OPENGL" = "desktop" ]; then
4910 if [ "$CFG_EGL" = "yes" ]; then
4911 echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4912 echo "Either disable EGL support or enable OpenGL ES support."
4918 if [ "$CFG_EGLFS" != "no" ]; then
4919 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4920 CFG_EGLFS="$CFG_EGL"
4926 if [ "$CFG_KMS" = "yes" ]; then
4927 if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4934 # Detect accessibility support
4935 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4936 if [ "$CFG_XCB" = "no" ]; then
4937 CFG_ACCESSIBILITY=yes
4939 # linux/xcb accessibility needs dbus and atspi-2
4940 if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4941 CFG_ACCESSIBILITY=yes
4943 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4944 CFG_ACCESSIBILITY=no
4946 echo "Accessibility support needs pkg-config and libatspi2."
4953 # Determine the default QPA platform
4954 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4956 QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4957 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4958 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4959 QT_QPA_DEFAULT_PLATFORM="windows"
4960 elif [ "$BUILD_ON_MAC" = "yes" ]; then
4961 QT_QPA_DEFAULT_PLATFORM="cocoa"
4962 elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4963 QT_QPA_DEFAULT_PLATFORM="qnx"
4965 QT_QPA_DEFAULT_PLATFORM="xcb"
4970 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4971 QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4972 QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4973 QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4975 if [ "$CFG_DIRECTFB" = "yes" ]; then
4976 QT_CONFIG="$QT_CONFIG directfb"
4977 QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4978 QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4980 if [ "$CFG_LINUXFB" = "yes" ]; then
4981 QT_CONFIG="$QT_CONFIG linuxfb"
4983 if [ "$CFG_KMS" = "yes" ]; then
4984 QT_CONFIG="$QT_CONFIG kms"
4987 if [ "$BUILD_ON_MAC" = "yes" ]; then
4988 if compileTest mac/coreservices "CoreServices"; then
4989 QT_CONFIG="$QT_CONFIG coreservices"
4991 QMakeVar add DEFINES QT_NO_CORESERVICES
4995 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4996 if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4997 if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4998 ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4999 echo "No QPA platform plugin enabled!"
5000 echo " If you really want to build without a QPA platform plugin you must pass"
5001 echo " -no-qpa-platform-guard to configure. Doing this will"
5002 echo " produce a Qt that can not run GUI applications."
5003 echo " The dependencies needed for xcb to build are listed in"
5004 echo " src/plugins/platforms/xcb/README"
5011 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5012 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5013 if compileTest unix/freetype "FreeType"; then
5014 CFG_LIBFREETYPE=system
5020 if ! compileTest unix/stl "STL" &&
5021 [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5022 echo "STL functionality check failed! Cannot build Qt with this STL library."
5023 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5028 # detect POSIX clock_gettime()
5029 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5030 if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5031 CFG_CLOCK_GETTIME=yes
5033 CFG_CLOCK_GETTIME=no
5037 # detect POSIX monotonic clocks
5038 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5039 if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5040 CFG_CLOCK_MONOTONIC=yes
5042 CFG_CLOCK_MONOTONIC=no
5044 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5045 CFG_CLOCK_MONOTONIC=no
5049 if [ "$CFG_MREMAP" = "auto" ]; then
5050 if compileTest unix/mremap "mremap"; then
5057 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5058 if [ "$CFG_GETADDRINFO" != "no" ]; then
5059 if compileTest unix/getaddrinfo "getaddrinfo"; then
5062 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5063 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5064 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5065 echo " If you believe this message is in error you may use the continue"
5066 echo " switch (-continue) to $0 to continue."
5074 # find if the platform provides inotify
5075 if [ "$CFG_INOTIFY" != "no" ]; then
5076 if compileTest unix/inotify "inotify"; then
5079 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5080 echo "inotify support cannot be enabled due to functionality tests!"
5081 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5082 echo " If you believe this message is in error you may use the continue"
5083 echo " switch (-continue) to $0 to continue."
5091 # find if the platform provides if_nametoindex (ipv6 interface name support)
5092 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5093 if compileTest unix/ipv6ifname "IPv6 interface name"; then
5096 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5097 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5098 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5099 echo " If you believe this message is in error you may use the continue"
5100 echo " switch (-continue) to $0 to continue."
5108 # find if the platform provides getifaddrs (network interface enumeration)
5109 if [ "$CFG_GETIFADDRS" != "no" ]; then
5110 if compileTest unix/getifaddrs "getifaddrs"; then
5113 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5114 echo "getifaddrs support cannot be enabled due to functionality tests!"
5115 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5116 echo " If you believe this message is in error you may use the continue"
5117 echo " switch (-continue) to $0 to continue."
5126 if [ "$CFG_OPENSSL" != "no" ]; then
5127 if compileTest unix/openssl "OpenSSL"; then
5128 if [ "$CFG_OPENSSL" = "auto" ]; then
5132 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5133 echo "OpenSSL support cannot be enabled due to functionality tests!"
5134 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5135 echo " If you believe this message is in error you may use the continue"
5136 echo " switch (-continue) to $0 to continue."
5145 if [ "$CFG_PCRE" != "qt" ]; then
5146 if compileTest unix/pcre "PCRE"; then
5149 if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5150 echo "PCRE support cannot be enabled due to functionality tests!"
5151 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5152 echo " If you believe this message is in error you may use the continue"
5153 echo " switch (-continue) to $0 to continue."
5161 # detect OpenVG support
5162 if [ "$CFG_OPENVG" != "no" ]; then
5163 if compileTest unix/openvg "OpenVG"; then
5164 if [ "$CFG_OPENVG" = "auto" ]; then
5167 elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5168 if [ "$CFG_OPENVG" = "auto" ]; then
5171 CFG_OPENVG_ON_OPENGL=yes
5172 elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5173 if [ "$CFG_OPENVG" = "auto" ]; then
5176 CFG_OPENVG_LC_INCLUDES=yes
5177 elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5178 if [ "$CFG_OPENVG" = "auto" ]; then
5181 CFG_OPENVG_LC_INCLUDES=yes
5182 CFG_OPENVG_ON_OPENGL=yes
5184 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5185 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5186 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5187 echo " If you believe this message is in error you may use the continue"
5188 echo " switch (-continue) to $0 to continue."
5194 if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5195 CFG_OPENVG_SHIVA=yes
5199 if [ "$CFG_ALSA" = "auto" ]; then
5200 if compileTest unix/alsa "alsa"; then
5207 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5208 if [ "$CFG_ARCH" = "arm" ]; then
5209 compileTest unix/javascriptcore-jit "javascriptcore-jit"
5210 if [ $? != "0" ]; then
5211 CFG_JAVASCRIPTCORE_JIT=no
5214 case "$XPLATFORM" in
5216 CFG_JAVASCRIPTCORE_JIT=no
5222 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5223 QMakeVar set JAVASCRIPTCORE_JIT yes
5224 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5225 QMakeVar set JAVASCRIPTCORE_JIT no
5228 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5229 CFG_AUDIO_BACKEND=yes
5232 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5233 echo "Warning: largefile support cannot be disabled for win32."
5237 #-------------------------------------------------------------------------------
5238 # ask for all that hasn't been auto-detected or specified in the arguments
5239 #-------------------------------------------------------------------------------
5241 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5243 # disable accessibility
5244 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5245 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5247 QT_CONFIG="$QT_CONFIG accessibility"
5251 if [ "$CFG_EGL" = "yes" ]; then
5252 QT_CONFIG="$QT_CONFIG egl"
5254 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5258 if [ "$CFG_EGLFS" = "yes" ]; then
5259 QT_CONFIG="$QT_CONFIG eglfs"
5261 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5265 if [ "$CFG_OPENVG" = "no" ]; then
5266 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5268 QT_CONFIG="$QT_CONFIG openvg"
5269 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5270 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5272 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5273 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5275 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5276 QT_CONFIG="$QT_CONFIG shivavg"
5277 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5282 if [ "$CFG_OPENGL" = "no" ]; then
5283 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5285 QT_CONFIG="$QT_CONFIG opengl"
5288 if [ "$CFG_OPENGL" = "es2" ]; then
5289 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5292 if [ "$CFG_OPENGL" = "es2" ]; then
5293 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5294 QT_CONFIG="$QT_CONFIG opengles2"
5297 # build up the variables for output
5298 if [ "$CFG_DEBUG" = "yes" ]; then
5299 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5300 elif [ "$CFG_DEBUG" = "no" ]; then
5301 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5303 if [ "$CFG_SHARED" = "yes" ]; then
5304 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5305 QT_CONFIG="$QT_CONFIG shared"
5306 elif [ "$CFG_SHARED" = "no" ]; then
5307 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5308 QT_CONFIG="$QT_CONFIG static"
5311 #FIXME: qpa is implicit this should all be removed
5312 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5313 QT_CONFIG="$QT_CONFIG qpa"
5314 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5315 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5317 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5318 # Do not set this here for Windows. Let qmake do it so
5319 # debug and release precompiled headers are kept separate.
5320 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5322 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5323 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5324 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5325 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5326 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5327 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5329 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5330 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5332 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5333 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5334 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5335 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5336 QMakeVar add QMAKE_CFLAGS -g
5337 QMakeVar add QMAKE_CXXFLAGS -g
5338 QT_CONFIG="$QT_CONFIG separate_debug_info"
5340 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5341 QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5343 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5344 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5345 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5346 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5347 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5348 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5349 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5350 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5351 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5352 if [ "$CFG_ARCH" = "mips" ]; then
5353 [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5354 [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5356 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5357 QT_CONFIG="$QT_CONFIG clock-gettime"
5359 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5360 QT_CONFIG="$QT_CONFIG clock-monotonic"
5362 if [ "$CFG_MREMAP" = "yes" ]; then
5363 QT_CONFIG="$QT_CONFIG mremap"
5365 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5366 QT_CONFIG="$QT_CONFIG getaddrinfo"
5368 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5369 QT_CONFIG="$QT_CONFIG ipv6ifname"
5371 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5372 QT_CONFIG="$QT_CONFIG getifaddrs"
5374 if [ "$CFG_INOTIFY" = "yes" ]; then
5375 QT_CONFIG="$QT_CONFIG inotify"
5377 if [ "$CFG_LIBJPEG" = "no" ]; then
5379 elif [ "$CFG_LIBJPEG" = "system" ]; then
5380 QT_CONFIG="$QT_CONFIG system-jpeg"
5382 if [ "$CFG_JPEG" = "no" ]; then
5383 QT_CONFIG="$QT_CONFIG no-jpeg"
5384 elif [ "$CFG_JPEG" = "yes" ]; then
5385 QT_CONFIG="$QT_CONFIG jpeg"
5387 if [ "$CFG_LIBPNG" = "no" ]; then
5390 if [ "$CFG_LIBPNG" = "system" ]; then
5391 QT_CONFIG="$QT_CONFIG system-png"
5393 if [ "$CFG_PNG" = "no" ]; then
5394 QT_CONFIG="$QT_CONFIG no-png"
5395 elif [ "$CFG_PNG" = "yes" ]; then
5396 QT_CONFIG="$QT_CONFIG png"
5398 if [ "$CFG_GIF" = "no" ]; then
5399 QT_CONFIG="$QT_CONFIG no-gif"
5400 elif [ "$CFG_GIF" = "yes" ]; then
5401 QT_CONFIG="$QT_CONFIG gif"
5403 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5404 QT_CONFIG="$QT_CONFIG no-freetype"
5405 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5406 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5407 QT_CONFIG="$QT_CONFIG system-freetype"
5409 QT_CONFIG="$QT_CONFIG freetype"
5411 if [ "$CFG_GUI" = "auto" ]; then
5414 if [ "$CFG_GUI" = "no" ]; then
5415 QT_CONFIG="$QT_CONFIG no-gui"
5418 if [ "$CFG_WIDGETS" = "no" ]; then
5419 QT_CONFIG="$QT_CONFIG no-widgets"
5420 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5423 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5424 #On Mac we implicitly link against libz, so we
5425 #never use the 3rdparty stuff.
5426 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5428 if [ "$CFG_ZLIB" = "yes" ]; then
5429 QT_CONFIG="$QT_CONFIG zlib"
5430 elif [ "$CFG_ZLIB" = "system" ]; then
5431 QT_CONFIG="$QT_CONFIG system-zlib"
5434 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5435 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5436 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5437 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5438 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5439 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5440 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5441 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5442 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5443 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5444 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5445 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5446 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5447 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5449 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5450 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5452 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5453 if [ "$CFG_RPATH" = "yes" ]; then
5454 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5456 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5457 if [ -n "$RPATH_FLAGS" ]; then
5459 echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5463 elif [ "$CFG_RPATH" = "yes" ]; then
5464 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5468 if [ -n "$RPATH_FLAGS" ]; then
5469 # add the user defined rpaths
5470 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5473 if [ "$CFG_RPATH" = "yes" ]; then
5474 QT_CONFIG="$QT_CONFIG rpath"
5477 if [ '!' -z "$I_FLAGS" ]; then
5478 # add the user define include paths
5479 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5480 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5483 if [ '!' -z "$W_FLAGS" ]; then
5484 # add the user defined warning flags
5485 QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5486 QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5487 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5490 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5491 # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5492 # Follow default behavior of configure.exe by overriding with "rtti".
5493 QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5496 if [ "$CFG_ALSA" = "yes" ]; then
5497 QT_CONFIG="$QT_CONFIG alsa"
5500 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5501 QT_CONFIG="$QT_CONFIG pulseaudio"
5504 if [ "$CFG_COREWLAN" = "yes" ]; then
5505 QT_CONFIG="$QT_CONFIG corewlan"
5508 if [ "$CFG_ICU" = "yes" ]; then
5509 QT_CONFIG="$QT_CONFIG icu"
5512 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5513 QT_CONFIG="$QT_CONFIG force_asserts"
5516 if [ "$CFG_PCRE" = "qt" ]; then
5517 QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5521 # Some Qt modules are too advanced in C++ for some old compilers
5522 # Detect here the platforms where they are known to work.
5524 # See Qt documentation for more information on which features are
5525 # supported and on which compilers.
5527 canBuildQtConcurrent="yes"
5528 canUseV8Snapshot="yes"
5530 case "$XPLATFORM" in
5532 # PA-RISC's assembly is too limited
5533 # gcc 3.4 on that platform can't build QtXmlPatterns
5534 # the assembly it generates cannot be compiled
5536 # Check gcc's version
5537 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5541 canBuildQtXmlPatterns="no"
5545 canBuildQtXmlPatterns="no"
5549 unsupported/vxworks-*-g++*)
5552 unsupported/vxworks-*-dcc*)
5554 canBuildQtXmlPatterns="no"
5557 # Check gcc's version
5558 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5566 canBuildQtXmlPatterns="no"
5571 # Check the compiler version
5572 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5575 canBuildQtXmlPatterns="no"
5576 canBuildQtConcurrent="no"
5580 canBuildQtConcurrent="no"
5586 canBuildQtXmlPatterns="no"
5587 canBuildQtConcurrent="no"
5593 # Get the xlC version
5594 cat > xlcver.c <<EOF
5598 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5603 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5604 xlcver=`./xlcver 2>/dev/null`
5607 if [ "$OPT_VERBOSE" = "yes" ]; then
5608 if [ -n "$xlcver" ]; then
5609 echo Found IBM xlC version: $xlcver.
5611 echo Could not determine IBM xlC version, assuming oldest supported.
5618 canBuildQtXmlPatterns="no"
5619 canBuildQtConcurrent="no"
5623 canBuildQtConcurrent="no"
5629 canBuildQtConcurrent="no"
5633 if [ "$CFG_GUI" = "no" ]; then
5634 # WebKit requires QtGui
5638 if [ "$CFG_SHARED" = "no" ]; then
5640 echo "WARNING: Using static linking will disable the WebKit module."
5645 CFG_CONCURRENT="yes"
5646 if [ "$canBuildQtConcurrent" = "no" ]; then
5647 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5650 QT_CONFIG="$QT_CONFIG concurrent"
5654 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5655 QT_CONFIG="$QT_CONFIG audio-backend"
5659 if [ "$CFG_WEBKIT" = "debug" ]; then
5660 QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5664 QT_CONFIG="$QT_CONFIG v8"
5665 # Detect snapshot support
5666 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5667 case "$CFG_HOST_ARCH,$CFG_ARCH" in
5670 *) canUseV8Snapshot="no"
5674 if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5675 # QEMU crashes when building inside Scratchbox with an ARM target
5676 canUseV8Snapshot="no"
5679 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5680 CFG_V8SNAPSHOT="$canUseV8Snapshot"
5682 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5683 echo "Error: V8 snapshot was requested, but is not supported on this platform."
5686 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5687 QT_CONFIG="$QT_CONFIG v8snapshot"
5691 if [ "$CFG_QML_DEBUG" = "no" ]; then
5692 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5695 case "$QMAKE_CONF_COMPILER" in
5698 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5700 case "$COMPILER_VERSION" in
5702 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5703 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5704 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5707 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5708 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5709 QT_GCC_PATCH_VERSION=0
5719 #-------------------------------------------------------------------------------
5720 # part of configuration information goes into qconfig.h
5721 #-------------------------------------------------------------------------------
5723 case "$CFG_QCONFIG" in
5725 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5728 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5729 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5730 if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5731 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5732 elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5733 cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5735 echo "#endif" >>"$tmpconfig"
5739 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5743 # define QT_EDITION $QT_EDITION
5747 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5748 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5750 if [ "$CFG_SHARED" = "no" ]; then
5751 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5752 /* Qt was configured for a static build */
5753 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5760 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5761 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5764 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5765 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5768 if [ "$BUILD_ON_MAC" = "yes" ]; then
5769 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5770 #if defined(__LP64__)
5771 # define QT_POINTER_SIZE 8
5773 # define QT_POINTER_SIZE 4
5777 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5778 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5781 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5782 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5783 echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5786 # Add compiler sub-architecture support
5787 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5788 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5789 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5791 MIPS_DSP MIPS_DSPR2; do
5792 eval "VAL=\$CFG_$SUBARCH"
5795 echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5796 >>"$outpath/src/corelib/global/qconfig.h.new"
5801 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5803 if [ "$CFG_DEV" = "yes" ]; then
5804 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5807 # Add QPA to config.h
5808 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5810 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5811 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5814 # Add turned on SQL drivers
5815 for DRIVER in $CFG_SQL_AVAILABLE; do
5816 eval "VAL=\$CFG_SQL_$DRIVER"
5819 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5820 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5821 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5824 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5829 QMakeVar set sql-drivers "$SQL_DRIVERS"
5830 QMakeVar set sql-plugins "$SQL_PLUGINS"
5832 # Add other configuration options to the qconfig.h file
5833 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5834 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5835 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5836 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5837 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5839 # X11/Unix/Mac only configs
5840 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5841 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5842 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5843 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5844 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5845 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5846 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5847 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5848 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5849 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5850 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5851 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5852 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5853 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5855 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5856 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5857 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5858 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5859 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5860 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5861 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5862 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5863 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5864 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5865 [ "$CFG_XVIDEO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5866 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5867 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5869 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5870 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5871 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5872 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5873 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5874 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5875 [ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5876 [ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5878 # sort QCONFIG_FLAGS for neatness if we can
5879 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5880 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5882 if [ -n "$QCONFIG_FLAGS" ]; then
5883 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5884 #ifndef QT_BOOTSTRAPPED
5887 for cfg in $QCONFIG_FLAGS; do
5888 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5889 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
5890 # figure out define logic, so we can output the correct
5891 # ifdefs to override the global defines in a project
5893 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5894 # QT_NO_option can be forcefully turned on by QT_option
5895 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5896 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5897 # QT_option can be forcefully turned off by QT_NO_option
5898 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5901 if [ -z $cfgdNeg ]; then
5902 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5909 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5910 #if defined($cfgd) && defined($cfgdNeg)
5912 #elif !defined($cfgd) && !defined($cfgdNeg)
5919 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5920 #endif // QT_BOOTSTRAPPED
5925 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5926 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5927 #define QT_VISIBILITY_AVAILABLE
5932 if [ -n "$QT_LIBINFIX" ]; then
5933 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5934 #define QT_LIBINFIX "$QT_LIBINFIX"
5939 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5941 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5942 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5943 rm -f "$outpath/src/corelib/global/qconfig.h.new"
5945 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5946 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5947 chmod -w "$outpath/src/corelib/global/qconfig.h"
5948 if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5949 ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5953 #-------------------------------------------------------------------------------
5954 # save configuration into qconfig.pri
5955 #-------------------------------------------------------------------------------
5956 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5957 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5958 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5959 if [ "$CFG_DEBUG" = "yes" ]; then
5960 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5961 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5962 QT_CONFIG="$QT_CONFIG release"
5964 QT_CONFIG="$QT_CONFIG debug"
5965 elif [ "$CFG_DEBUG" = "no" ]; then
5966 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5967 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5968 QT_CONFIG="$QT_CONFIG debug"
5970 QT_CONFIG="$QT_CONFIG release"
5972 if [ "$CFG_FRAMEWORK" = "no" ]; then
5973 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5975 QT_CONFIG="$QT_CONFIG qt_framework"
5976 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5978 if [ "$CFG_DEV" = "yes" ]; then
5979 QT_CONFIG="$QT_CONFIG private_tests"
5982 cat >>"$QTCONFIG.tmp" <<EOF
5984 CONFIG += $QTCONFIG_CONFIG
5986 QT_HOST_ARCH = $CFG_HOST_ARCH
5987 QT_CPU_FEATURES = $CFG_CPUFEATURES
5988 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5989 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5990 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5991 QT_EDITION = $Edition
5992 QT_CONFIG += $QT_CONFIG
5995 QT_VERSION = $QT_VERSION
5996 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5997 QT_MINOR_VERSION = $QT_MINOR_VERSION
5998 QT_PATCH_VERSION = $QT_PATCH_VERSION
6001 QT_LIBINFIX = $QT_LIBINFIX
6002 QT_NAMESPACE = $QT_NAMESPACE
6006 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
6007 echo "# pkgconfig" >> "$QTCONFIG.tmp"
6008 echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
6009 echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
6010 echo >> "$QTCONFIG.tmp"
6013 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
6014 echo "# sysroot" >>"$QTCONFIG.tmp"
6015 echo "!host_build {" >>"$QTCONFIG.tmp"
6016 echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6017 echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6018 echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
6019 echo "}" >> "$QTCONFIG.tmp"
6020 echo >> "$QTCONFIG.tmp"
6022 if [ -n "$RPATH_FLAGS" ]; then
6023 echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6025 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6026 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6027 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6028 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6031 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6032 echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6033 echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6036 # replace qconfig.pri if it differs from the newly created temp file
6037 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6038 rm -f "$QTCONFIG.tmp"
6040 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6043 #-------------------------------------------------------------------------------
6044 # save configuration into qmodule.pri
6045 #-------------------------------------------------------------------------------
6046 QTMODULE="$outpath/mkspecs/qmodule.pri"
6048 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6049 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6051 if [ -n "$QT_CFLAGS_PSQL" ]; then
6052 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6054 if [ -n "$QT_LFLAGS_PSQL" ]; then
6055 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6057 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6058 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6060 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6061 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6063 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6064 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6066 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6067 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6069 if [ -n "$QT_LFLAGS_ODBC" ]; then
6070 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6072 if [ -n "$QT_LFLAGS_TDS" ]; then
6073 echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6076 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6077 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6080 #dump in the OPENSSL_LIBS info
6081 if [ '!' -z "$OPENSSL_LIBS" ]; then
6082 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6083 elif [ "$CFG_OPENSSL" = "linked" ]; then
6084 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6087 #dump in the SDK info
6088 if [ '!' -z "$CFG_SDK" ]; then
6089 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6093 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6094 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6096 # replace qmodule.pri if it differs from the newly created temp file
6097 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6098 rm -f "$QTMODULE.tmp"
6100 mv -f "$QTMODULE.tmp" "$QTMODULE"
6103 #-------------------------------------------------------------------------------
6104 # save configuration into .qmake.cache
6105 #-------------------------------------------------------------------------------
6107 CACHEFILE="$outpath/.qmake.cache"
6108 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6109 cat >>"$CACHEFILE.tmp" <<EOF
6111 QT_SOURCE_TREE = \$\$quote($relpath)
6112 QT_BUILD_TREE = \$\$quote($outpath)
6114 include(\$\$PWD/mkspecs/qmodule.pri)
6115 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
6119 # replace .qmake.cache if it differs from the newly created temp file
6120 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6121 rm -f "$CACHEFILE.tmp"
6123 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6126 #-------------------------------------------------------------------------------
6127 # give feedback on configuration
6128 #-------------------------------------------------------------------------------
6129 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6132 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6133 echo "Build type: $PLATFORM"
6135 echo "Building on: $PLATFORM"
6136 echo "Building for: $XPLATFORM"
6139 # the missing space before $CFG_FEATURES is intentional
6140 echo "Architecture: $CFG_ARCH, features:$CFG_CPUFEATURES"
6141 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6143 if [ -n "$PLATFORM_NOTES" ]; then
6144 echo "Platform notes:"
6145 echo "$PLATFORM_NOTES"
6150 if [ "$OPT_VERBOSE" = "yes" ]; then
6151 echo $ECHO_N "qmake vars .......... $ECHO_C"
6152 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6153 echo "qmake switches ......... $QMAKE_SWITCHES"
6156 echo "Build .................. $CFG_BUILD_PARTS"
6157 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6158 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6159 echo "Debug .................. yes (combined)"
6160 if [ "$CFG_DEBUG" = "yes" ]; then
6161 echo "Default Link ........... debug"
6163 echo "Default Link ........... release"
6166 echo "Debug .................. $CFG_DEBUG"
6168 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6169 echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6171 echo "C++11 support .......... $CFG_CXX11"
6172 if [ -n "$PKG_CONFIG" ]; then
6173 echo "pkg-config ............. yes"
6175 echo "pkg-config ............. no"
6177 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module .......... no"
6178 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module .......... yes (run-time)"
6179 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6180 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6181 echo "QtGui module ........... $CFG_GUI"
6182 echo "QtWidgets module ....... $CFG_WIDGETS"
6183 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6184 echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6186 echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6188 echo "QML debugging .......... $CFG_QML_DEBUG"
6189 echo "PCH support ............ $CFG_PRECOMPILE"
6190 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6191 echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6192 echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6193 echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6194 elif [ "$CFG_ARCH" = "arm" ]; then
6195 echo "iWMMXt support ......... ${CFG_IWMMXT}"
6196 echo "NEON support ........... ${CFG_NEON}"
6198 if [ "$CFG_ARCH" = "mips" ]; then
6199 echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6201 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6202 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6203 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6204 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6205 echo "NIS support ............ $CFG_NIS"
6206 echo "CUPS support ........... $CFG_CUPS"
6207 echo "Iconv support .......... $CFG_ICONV"
6208 echo "Glib support ........... $CFG_GLIB"
6209 echo "GStreamer support ...... $CFG_GSTREAMER"
6210 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6211 echo "Large File support ..... $CFG_LARGEFILE"
6212 echo "GIF support ............ $CFG_GIF"
6213 if [ "$CFG_JPEG" = "no" ]; then
6214 echo "JPEG support ........... $CFG_JPEG"
6216 echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6218 if [ "$CFG_PNG" = "no" ]; then
6219 echo "PNG support ............ $CFG_PNG"
6221 echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6223 echo "zlib support ........... $CFG_ZLIB"
6224 echo "Session management ..... $CFG_SM"
6225 echo "libudev support ........ $CFG_LIBUDEV"
6227 if [ "$CFG_OPENGL" = "desktop" ]; then
6228 echo "OpenGL support ......... yes (Desktop OpenGL)"
6229 elif [ "$CFG_OPENGL" = "es2" ]; then
6230 echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6232 echo "OpenGL support ......... no"
6235 if [ "$CFG_OPENVG" ]; then
6236 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6237 echo "OpenVG support ......... ShivaVG"
6239 echo "OpenVG support ......... $CFG_OPENVG"
6243 echo "XShape support ......... $CFG_XSHAPE"
6244 echo "XVideo support ......... $CFG_XVIDEO"
6245 echo "XSync support .......... $CFG_XSYNC"
6246 echo "Xinerama support ....... $CFG_XINERAMA"
6247 echo "Xcursor support ........ $CFG_XCURSOR"
6248 echo "Xfixes support ......... $CFG_XFIXES"
6249 echo "Xrandr support ......... $CFG_XRANDR"
6250 echo "Xi support ............. $CFG_XINPUT"
6251 echo "Xi2 support ............ $CFG_XINPUT2"
6252 echo "MIT-SHM support ........ $CFG_MITSHM"
6253 echo "FontConfig support ..... $CFG_FONTCONFIG"
6254 echo "XKB Support ............ $CFG_XKB"
6255 echo "immodule support ....... $CFG_IM"
6256 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6258 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6259 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6260 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6261 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6262 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6263 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6264 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6265 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6266 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6269 if [ "$CFG_OPENSSL" = "yes" ]; then
6270 OPENSSL_LINKAGE="(run-time)"
6271 elif [ "$CFG_OPENSSL" = "linked" ]; then
6272 OPENSSL_LINKAGE="(linked)"
6274 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6275 echo "Alsa support ........... $CFG_ALSA"
6276 if [ "$BUILD_ON_MAC" = "yes" ]; then
6277 echo "CoreWlan support ....... $CFG_COREWLAN"
6279 echo "libICU support ......... $CFG_ICU"
6280 echo "PCRE support ........... $CFG_PCRE"
6281 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6282 echo "Xcb support ............ limited (old version)"
6284 echo "Xcb support ............ $CFG_XCB"
6286 echo "Xrender support ........ $CFG_XRENDER"
6287 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6288 echo "XInput2 support ........ $CFG_XINPUT2"
6290 echo "EGLFS support .......... $CFG_EGLFS"
6291 echo "DirectFB support ....... $CFG_DIRECTFB"
6292 echo "LinuxFB support ........ $CFG_LINUXFB"
6293 echo "KMS support ............ $CFG_KMS"
6296 # complain about not being able to use dynamic plugins if we are using a static build
6297 if [ "$CFG_SHARED" = "no" ]; then
6299 echo "WARNING: Using static linking will disable the use of dynamically"
6300 echo "loaded plugins. Make sure to import all needed static plugins,"
6301 echo "or compile needed modules into the library."
6304 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6306 echo "NOTE: When linking against OpenSSL, you can override the default"
6307 echo "library names through OPENSSL_LIBS."
6309 echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6313 exec 1>&3 3>&- # restore stdout
6314 cat $outpath/config.summary # display config feedback to user
6316 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6318 echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6319 echo "if you want a pure debug build."
6324 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6329 #-------------------------------------------------------------------------------
6330 # build makefiles based on the configuration
6331 #-------------------------------------------------------------------------------
6333 if [ "$CFG_PROCESS" != "no" ]; then
6335 if [ "$CFG_PROCESS" = "full" ]; then
6336 echo "Creating makefiles. Please wait..."
6337 "$outpath/bin/qmake" -r "$relpath"
6340 "$outpath/bin/qmake" "$relpath"
6343 if [ "$OPT_FAST" = "yes" ]; then
6345 for part in $CFG_BUILD_PARTS; do
6347 examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6350 if [ "x$PART_ROOTS" != "x" ]; then
6352 echo "Creating stub makefiles. Please wait..."
6353 QMAKE="$outpath/bin/qmake"
6354 [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6355 (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6357 test -f "$outpath/$d/Makefile" && continue
6358 echo " for $relpath/$p"
6360 mkdir -p "$outpath/$d" || exit
6361 cat > "$outpath/$d/Makefile" <<EOF || exit
6362 # $outpath/$d/Makefile: generated by configure
6364 # WARNING: This makefile will be replaced with a real makefile.
6365 # All changes made to this file will be lost.
6370 all clean install qmake first Makefile: FORCE
6371 \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6381 #-------------------------------------------------------------------------------
6382 # check for platforms that we don't yet know about
6383 #-------------------------------------------------------------------------------
6384 if [ "$CFG_ARCH" = "unknown" ]; then
6387 NOTICE: configure was unable to determine the architecture
6388 for the $XQMAKESPEC target.
6390 Qt will not use a specialized implementation for any atomic
6391 operations. Instead a generic implemention based on either GCC
6392 intrinsics or C++11 std::atomic<T> will be used (when
6393 available). The generic implementations are generally as fast
6394 as and always as safe as a specialized implementation.
6396 If no generic implementation is available, Qt will use a
6397 fallback UNIX implementation which uses a single
6398 pthread_mutex_t to protect all atomic operations. This
6399 implementation is the slow (but safe) fallback implementation
6400 for architectures Qt does not yet support.
6404 #-------------------------------------------------------------------------------
6405 # check if the user passed the -no-zlib option, which is no longer supported
6406 #-------------------------------------------------------------------------------
6407 if [ -n "$ZLIB_FORCED" ]; then
6408 which_zlib="supplied"
6409 if [ "$CFG_ZLIB" = "system" ]; then
6415 NOTICE: The -no-zlib option was supplied but is no longer
6418 Qt now requires zlib support in all builds, so the -no-zlib
6419 option was ignored. Qt will be built using the $which_zlib
6424 #-------------------------------------------------------------------------------
6425 # check if the user passed the obsoleted -wayland or -no-wayland flag
6426 #-------------------------------------------------------------------------------
6427 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6430 NOTICE: The -wayland and -no-wayland flags are now obsolete
6432 All configuring of QtWayland plugin and QtCompositor happens in the module
6436 #-------------------------------------------------------------------------------
6437 # check if the user passed the obsoleted -arch or -host-arch options
6438 #-------------------------------------------------------------------------------
6439 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6442 NOTICE: The -arch and -host-arch options are obsolete.
6444 Qt now detects the target and host architectures based on compiler
6445 output. Qt will be built using $CFG_ARCH for the target architecture
6446 and $CFG_HOST_ARCH for the host architecture (note that these two
6447 will be the same unless you are cross-compiling).
6451 #-------------------------------------------------------------------------------
6452 # finally save the executed command to another script
6453 #-------------------------------------------------------------------------------
6454 if [ `basename $0` != "config.status" ]; then
6455 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6457 # add the system variables
6458 for varname in $SYSTEM_VARIABLES; do
6460 'if [ -n "\$'${varname}'" ]; then
6461 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6466 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6468 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6469 echo "#!/bin/sh" > "$outpath/config.status"
6470 [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6471 echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6472 [ -n "$PKG_CONFIG_LIBDIR" ] && \
6473 echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6474 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6475 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6476 echo "else" >> "$outpath/config.status"
6477 echo " $CONFIG_STATUS" >> "$outpath/config.status"
6478 echo "fi" >> "$outpath/config.status"
6479 chmod +x "$outpath/config.status"
6482 if [ -n "$RPATH_MESSAGE" ]; then
6484 echo "$RPATH_MESSAGE"
6487 MAKE=`basename "$MAKE"`
6489 echo Qt is now configured for building. Just run \'$MAKE\'.
6490 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6491 echo Once everything is built, Qt is installed.
6492 echo You should not run \'$MAKE install\'.
6494 echo Once everything is built, you must run \'$MAKE install\'.
6495 echo Qt will be installed into $QT_INSTALL_PREFIX
6498 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.